:root {
  color-scheme: dark;
  --bg: #090714;
  --bg-2: #110d21;
  --surface: rgba(18, 14, 34, .76);
  --surface-strong: rgba(25, 19, 44, .94);
  --surface-soft: rgba(255, 255, 255, .045);
  --line: rgba(224, 213, 255, .15);
  --line-strong: rgba(224, 213, 255, .28);
  --text: #f8f4ff;
  --muted: #c4bdd4;
  --dim: #918a9f;
  --gold: #ffd078;
  --pink: #ff6ea8;
  --cyan: #71e4ff;
  --violet: #a78bfa;
  --danger: #ff7a92;
  --success: #76efc2;
  --radius-sm: 12px;
  --radius: 20px;
  --radius-lg: 30px;
  --shadow: 0 30px 90px rgba(0, 0, 0, .42);
  --focus: 0 0 0 3px rgba(113, 228, 255, .45), 0 0 30px rgba(113, 228, 255, .18);
  --max: 1180px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --touch: 44px;
}

@media (min-width: 768px) {
  :root {
    --muted: #b7afc9;
    --dim: #817993;
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
  overscroll-behavior-y: none;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
button:focus-visible, a:focus-visible, input:focus-visible, [tabindex]:focus-visible, summary:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; box-shadow: var(--focus); }
::selection { background: rgba(255, 110, 168, .35); color: #fff; }

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 200;
  padding: 12px 20px;
  background: var(--surface-strong);
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  color: var(--text);
  font-weight: 700;
  font-size: .9rem;
  text-decoration: none;
  transform: translateY(-200%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: none; }

.ambient { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: -5; }
.ambient::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 50% 18%, transparent 0 20%, rgba(9,7,20,.12) 50%, rgba(9,7,20,.88) 100%),
    linear-gradient(180deg, rgba(5,4,12,.05), rgba(5,4,12,.75));
  z-index: 3;
}
.ambient__aurora { position: absolute; width: 75vw; height: 75vw; border-radius: 50%; filter: blur(70px); opacity: .14; animation: aurora 18s ease-in-out infinite alternate; }
.ambient__aurora--one { left: -25vw; top: -25vw; background: #8a46ff; }
.ambient__aurora--two { right: -25vw; bottom: -30vw; background: #ff477d; animation-delay: -7s; }
.ambient__grain { position: absolute; inset: -40%; opacity: .04; z-index: 4; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); transform: rotate(7deg); }
.ambient__stars { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .5; }

@media (min-width: 768px) {
  .ambient__aurora { width: 55vw; height: 55vw; filter: blur(90px); opacity: .18; }
  .ambient__aurora--one { left: -18vw; top: -18vw; }
  .ambient__aurora--two { right: -18vw; bottom: -22vw; }
  .ambient__grain { opacity: .055; }
  .ambient__stars { opacity: .62; }
}

.site-header {
  width: min(calc(100% - 24px), var(--max));
  margin: 0 auto;
  min-height: 64px;
  padding-top: var(--safe-top);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: relative;
  z-index: 10;
}
.brand { width: 170px; display: inline-flex; border-radius: 12px; }
.brand img { width: 100%; display: block; }
.site-header__actions { display: flex; align-items: center; gap: 10px; }
.text-link { color: var(--muted); text-decoration: none; font-size: .9rem; transition: color .2s ease; display: none; }
.text-link:hover { color: var(--text); }
.icon-button {
  width: var(--touch); height: var(--touch); border-radius: 50%; border: 1px solid var(--line);
  background: var(--surface-soft); color: var(--muted); cursor: pointer;
  display: grid; place-items: center; transition: .2s ease;
  flex-shrink: 0;
}
.icon-button:hover { color: var(--text); border-color: var(--line-strong); transform: translateY(-1px); }
.icon-button:active { transform: scale(.92); }
.motion-icon { animation: spin 4s linear infinite; }
.icon-button:hover .motion-icon { animation-duration: 12s; }

.app-shell { width: min(calc(100% - 24px), var(--max)); margin: 0 auto; min-height: calc(100vh - 180px); min-height: calc(100dvh - 180px); padding-bottom: calc(var(--safe-bottom) + 20px); }
.screen { animation: screen-in .55s cubic-bezier(.2,.8,.2,1) both; }
.screen--no-anim { animation: none; }
.screen--center { min-height: 64vh; min-height: 64dvh; display: grid; place-items: center; align-content: center; gap: 20px; text-align: center; }

.hero { min-height: auto; display: grid; grid-template-columns: 1fr; align-items: center; gap: 32px; padding: 24px 0 48px; text-align: center; }
.hero__eyebrow, .eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--gold); text-transform: uppercase; letter-spacing: .18em; font-size: .68rem; font-weight: 800; }
.hero__eyebrow::before, .eyebrow::before { content:""; width: 26px; height: 1px; background: linear-gradient(90deg, transparent, currentColor); }
.hero h1 { margin: 14px 0 18px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.6rem, 12vw, 4.5rem); line-height: .93; letter-spacing: -.04em; font-weight: 500; }
.hero h1 span { background: linear-gradient(110deg, var(--gold), #fff0ce 30%, var(--pink) 68%, var(--cyan)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero__lede { margin: 0 auto; color: var(--muted); font-size: 1.05rem; line-height: 1.65; max-width: 540px; }
.hero__meta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 22px; color: var(--dim); font-size: .8rem; justify-content: center; }
.hero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.hero__meta span::before { content:"✦"; color: var(--pink); font-size: .7rem; }
.hero__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; justify-content: center; }
.hero__copy { order: 1; }
.loom-orbit { order: 2; }

.button {
  border: 1px solid var(--line); border-radius: 999px; padding: 14px 22px; min-height: var(--touch);
  background: rgba(255,255,255,.045); color: var(--text); font-weight: 750; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; text-decoration: none;
  transition: transform .15s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
  -webkit-user-select: none; user-select: none;
}
.button:hover { transform: translateY(-2px); border-color: var(--line-strong); background: rgba(255,255,255,.075); }
.button:active { transform: scale(.96); }
.button--primary { border-color: rgba(255,208,120,.52); background: linear-gradient(115deg, rgba(255,208,120,.22), rgba(255,110,168,.18), rgba(113,228,255,.14)); box-shadow: 0 12px 34px rgba(255,110,168,.12); }
.button--primary:hover { box-shadow: 0 16px 50px rgba(255,110,168,.22); }
.button--primary:active { box-shadow: 0 8px 20px rgba(255,110,168,.15); }
.button--ghost { background: transparent; }
.button--small { padding: 10px 16px; min-height: var(--touch); font-size: .88rem; }
.button:disabled { opacity: .45; cursor: not-allowed; transform: none; }

.loom-orbit { position: relative; aspect-ratio: 1; width: min(100%, 340px); margin-inline: auto; }
.loom-orbit__ring { position:absolute; inset: 8%; border: 1px solid rgba(215,203,255,.14); border-radius:50%; box-shadow: inset 0 0 80px rgba(167,139,250,.05); }
.loom-orbit__ring:nth-child(2){ inset:23%; border-style:dashed; animation:spin 32s linear infinite reverse; }
.loom-orbit__ring:nth-child(3){ inset:37%; border-color:rgba(255,208,120,.25); box-shadow:0 0 42px rgba(255,208,120,.08); }
.loom-orbit__core { position:absolute; inset:34%; border-radius:50%; display:grid; place-items:center; text-align:center; background:radial-gradient(circle,rgba(255,255,255,.14),rgba(31,21,50,.72) 55%,rgba(12,9,24,.95)); border:1px solid rgba(255,255,255,.2); box-shadow:0 0 70px rgba(255,110,168,.16); animation:core-pulse 4s ease-in-out infinite; }
.loom-orbit__master { width:100%; height:100%; object-fit:contain; border-radius:50%; filter:drop-shadow(0 0 20px rgba(255,208,120,.45)) drop-shadow(0 0 40px rgba(167,139,250,.3)); animation:core-pulse 4s ease-in-out infinite; }
.loom-orbit__sparkle { position:absolute; inset:0; border-radius:50%; pointer-events:none; background:conic-gradient(from 0deg,transparent 0deg,rgba(255,255,255,.25) 15deg,transparent 30deg,transparent 120deg,rgba(255,208,120,.2) 135deg,transparent 150deg,transparent 240deg,rgba(113,228,255,.2) 255deg,transparent 270deg); animation:spin 8s linear infinite; mix-blend-mode:screen; opacity:.7; }
.orbit-node { position:absolute; left:50%; top:50%; width:48px; height:48px; transform:translate(-50%,-50%); border-radius:50%; filter:drop-shadow(0 0 14px color-mix(in srgb, var(--strand), transparent 70%)); transition: filter .3s ease; }
.orbit-node img { width:100%; height:100%; display:block; transition: transform .3s ease; animation:img-bob 5s ease-in-out infinite, node-glow 3s ease-in-out infinite; animation-delay:var(--delay),var(--delay); }
.orbit-node:hover { filter:drop-shadow(0 0 24px color-mix(in srgb, var(--strand), transparent 40%)); }
.orbit-node:hover img { transform: scale(1.1); animation-play-state:paused; }
.orbit-node:hover::after { content:attr(data-name); position:absolute; left:50%; top:72px; transform:translateX(-50%); white-space:nowrap; background:#151024; border:1px solid var(--line); padding:6px 9px; border-radius:8px; font-size:.72rem; color:var(--text); }
.loom-orbit__nodes { position:absolute; top:0; left:0; width:100%; height:100%; }

.section-heading { text-align:center; max-width:760px; margin:0 auto 34px; }
.section-heading h2 { font: 500 clamp(2rem,5vw,3.8rem)/1 Georgia,serif; margin:12px 0 14px; }
.section-heading p { color:var(--muted); line-height:1.7; margin:0; }
.mode-section { padding: 32px 0 60px; }
.mode-grid { display:grid; grid-template-columns:1fr; gap:16px; }
.mode-card { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.025)); padding:22px; box-shadow:var(--shadow); }
.mode-card::after { content:""; position:absolute; width:200px; height:200px; right:-100px; top:-100px; border-radius:50%; background:var(--mode-glow,var(--pink)); filter:blur(60px); opacity:.1; }
.mode-card h3 { font:500 1.6rem/1.1 Georgia,serif; margin:10px 0 12px; }
.mode-card p { color:var(--muted); line-height:1.6; font-size:.92rem; }
.mode-card ul { list-style:none; padding:0; margin:20px 0; display:grid; gap:8px; color:var(--muted); font-size:.88rem; }
.mode-card li::before { content:"✦"; color:var(--mode-glow,var(--pink)); margin-right:10px; }
.mode-card__meta { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--dim); font-size:.78rem; margin-bottom:14px; }
.mode-card .button { width:100%; }

.contribute-label { display:flex; align-items:flex-start; gap:14px; max-width:620px; margin:24px auto 0; padding:18px 20px; border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.025); color:var(--muted); font-size:.84rem; line-height:1.55; cursor:pointer; transition:border-color .2s ease,background .2s ease; min-height:var(--touch); }
.contribute-label:hover { border-color:var(--line-strong); background:rgba(255,255,255,.04); }
.contribute-label:active { background:rgba(255,255,255,.06); }
.contribute-check { position:absolute; opacity:0; width:0; height:0; }
.contribute-box { flex-shrink:0; width:28px; height:28px; margin-top:1px; border:2px solid var(--line-strong); border-radius:7px; background:rgba(255,255,255,.03); transition:.2s ease; }
.contribute-check:checked + .contribute-box { border-color:var(--pink); background:linear-gradient(135deg,var(--pink),var(--violet)); box-shadow:0 0 16px rgba(255,110,168,.35); }
.contribute-check:checked + .contribute-box::after { content:"✓"; display:grid; place-items:center; width:100%; height:100%; color:#fff; font-size:16px; font-weight:700; }
.contribute-check:focus-visible + .contribute-box { box-shadow:var(--focus); }

.quiz-shell { max-width:880px; margin: 16px auto 50px; }
.quiz-topbar { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:12px; margin-bottom:18px; }
.quiz-progress { height:8px; background:rgba(255,255,255,.06); border:1px solid var(--line); border-radius:999px; overflow:hidden; }
.quiz-progress__fill { width:0; height:100%; background:linear-gradient(90deg,var(--gold),var(--pink),var(--cyan)); transition:width .45s cubic-bezier(.2,.8,.2,1); box-shadow:0 0 22px rgba(255,110,168,.38); }
.quiz-count { color:var(--dim); font-size:.8rem; font-variant-numeric:tabular-nums; grid-column:1/-1; text-align:center; order:-1; }
.quiz-card { position:relative; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(145deg,rgba(25,19,44,.9),rgba(12,9,25,.88)); box-shadow:var(--shadow); padding:20px 16px; overflow:hidden; }
.quiz-card::before { content:""; position:absolute; inset:0; background:radial-gradient(400px 180px at 50% 0,rgba(167,139,250,.1),transparent); pointer-events:none; }
.question-kicker { position:relative; color:var(--gold); font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.16em; text-align:center; }
.question-title { position:relative; font:500 clamp(1.4rem,5.5vw,2.75rem)/1.2 Georgia,serif; text-align:center; max-width:760px; margin:12px auto 24px; color:#e0dcc8; }
.answer-grid { position:relative; display:grid; gap:10px; }
.answer-option { width:100%; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.035); color:var(--text); padding:16px 14px; min-height:64px; display:grid; grid-template-columns:30px 1fr; text-align:left; align-items:center; gap:12px; cursor:pointer; transition:.15s ease; touch-action:manipulation; }
.answer-option:hover { border-color:rgba(255,208,120,.45); background:rgba(255,208,120,.055); transform:translateX(4px); }
.answer-option:active { transform:scale(.97); background:rgba(255,208,120,.08); }
.answer-option[aria-pressed="true"] { border-color:rgba(113,228,255,.62); background:rgba(113,228,255,.08); box-shadow:0 0 24px rgba(113,228,255,.08); }
.answer-option__key { width:28px; height:28px; border-radius:50%; border:1px solid var(--line-strong); display:grid; place-items:center; color:var(--dim); font-size:.72rem; flex-shrink:0; }
.answer-option__label { line-height:1.45; font-size:.95rem; }
.maxdiff-row { display:grid; grid-template-columns:1fr; gap:12px; border:1px solid var(--line); border-radius:14px; padding:14px; background:rgba(255,255,255,.03); }
.maxdiff-row__choices { display:flex; gap:8px; justify-content:flex-end; }
.choice-pill { border:1px solid var(--line); background:transparent; color:var(--muted); border-radius:999px; padding:10px 18px; cursor:pointer; font-size:.82rem; min-height:var(--touch); touch-action:manipulation; }
.choice-pill:active { transform:scale(.94); }
.choice-pill--most[aria-pressed="true"] { color:#06130f; background:var(--success); border-color:var(--success); }
.choice-pill--least[aria-pressed="true"] { color:#21060c; background:var(--danger); border-color:var(--danger); }
.slider-wrap { position:relative; padding:18px 4px 2px; }
.slider-labels { display:flex; justify-content:space-between; gap:16px; color:var(--muted); font-weight:700; font-size:.88rem; }
.range { width:100%; margin:32px 0 12px; appearance:none; -webkit-appearance:none; background:transparent; }
.range::-webkit-slider-runnable-track { height:12px; border-radius:999px; background:linear-gradient(90deg,var(--cyan),rgba(255,255,255,.12) 50%,var(--pink)); border:1px solid var(--line); }
.range::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; width:36px; height:36px; border-radius:50%; background:#fff; border:6px solid #6e5dd8; margin-top:-12px; box-shadow:0 0 26px rgba(167,139,250,.45); }
.range::-moz-range-track { height:12px; border-radius:999px; background:linear-gradient(90deg,var(--cyan),rgba(255,255,255,.12) 50%,var(--pink)); border:1px solid var(--line); }
.range::-moz-range-thumb { width:24px; height:24px; border-radius:50%; background:#fff; border:6px solid #6e5dd8; box-shadow:0 0 26px rgba(167,139,250,.45); }
.slider-value { text-align:center; color:var(--gold); font-size:.85rem; }
.quiz-actions { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:22px; flex-wrap:wrap; }
.quiz-actions .button { flex:1; }
.insight-flash { min-height:340px; display:grid; place-items:center; text-align:center; }
.insight-flash img { width:112px; filter:drop-shadow(0 0 30px color-mix(in srgb, var(--strand), transparent 60%)); }
.insight-flash h3 { font:500 2rem/1.1 Georgia,serif; margin:16px 0 8px; }
.insight-flash p { color:var(--muted); max-width:460px; line-height:1.6; }

.results-shell { max-width:1080px; margin: 16px auto 60px; }
.result-hero { position:relative; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:linear-gradient(145deg,rgba(27,19,47,.96),rgba(9,7,20,.94)); box-shadow:var(--shadow); padding:24px 18px; }
.result-hero::before { content:""; position:absolute; inset:-25%; background:conic-gradient(from 110deg,transparent,rgba(255,110,168,.1),transparent 35%,rgba(113,228,255,.08),transparent 70%); animation:spin 28s linear infinite; }
.result-hero__content { position:relative; display:grid; grid-template-columns:1fr; gap:28px; align-items:center; text-align:center; }
.result-sigil { position:relative; aspect-ratio:1; max-width:260px; width:100%; margin:auto; display:grid; place-items:center; }
.result-sigil__ring { position:absolute; border-radius:50%; border:1px solid var(--line); }
.result-sigil__ring:nth-child(1){inset:2%;}.result-sigil__ring:nth-child(2){inset:16%;border-style:dashed;animation:spin 24s linear infinite}.result-sigil__ring:nth-child(3){inset:30%;}
.result-sigil__icons { position:absolute; inset:0; }
.result-sigil__icon { position:absolute; width:72px; height:72px; transform:translate(-50%,-50%); filter:drop-shadow(0 0 20px color-mix(in srgb,var(--strand),transparent 55%)); }
.result-sigil__icon:nth-child(1){left:50%;top:14%;}.result-sigil__icon:nth-child(2){left:20%;top:70%;width:60px}.result-sigil__icon:nth-child(3){left:80%;top:70%;width:54px}
.result-sigil__center { position:relative; z-index:2; width:88px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; text-align:center; background:rgba(10,7,20,.84); border:1px solid var(--line-strong); box-shadow:0 0 50px rgba(255,255,255,.08); }
.result-sigil__center strong { font:500 1.4rem Georgia,serif; }
.result-sigil__center span { font-size:.6rem;color:var(--dim);letter-spacing:.12em;text-transform:uppercase;display:block;margin-top:3px; }
.result-copy h1 { font:500 clamp(2.2rem,9vw,5.8rem)/.95 Georgia,serif; margin:12px 0 14px; letter-spacing:-.04em; }
.result-copy h1 span { color:var(--strand); text-shadow:0 0 34px color-mix(in srgb,var(--strand),transparent 70%); }
.result-copy__lede { color:var(--muted); font-size:1rem; line-height:1.65; }
.weave-code { display:inline-flex; margin-top:20px; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.04); color:var(--gold); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.76rem; word-break:break-all; max-width:100%; }
.result-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; justify-content:center; }
.result-actions .button { flex:1 1 auto; min-width:130px; }

.result-grid { display:grid; grid-template-columns:1fr; gap:14px; margin-top:14px; }
.panel { border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); box-shadow:0 18px 60px rgba(0,0,0,.22); padding:18px 16px; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); content-visibility:auto; }
.panel__header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.panel__header h2 { font:500 1.4rem/1.1 Georgia,serif; margin:4px 0 0; }
.panel__header p { color:var(--dim); margin:6px 0 0; font-size:.82rem; }
.strand-stack { display:grid; gap:12px; }
.strand-card { --strand:#fff; display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center; border:1px solid color-mix(in srgb,var(--strand),transparent 76%); border-radius:14px; padding:14px; background:linear-gradient(110deg,color-mix(in srgb,var(--strand),transparent 94%),rgba(255,255,255,.025)); }
.strand-card img { width:52px; height:52px; }
.strand-card h3 { margin:0; font:500 1.15rem Georgia,serif; }.strand-card p{margin:4px 0 0;color:var(--muted);font-size:.82rem;line-height:1.5}.strand-card__score{font:500 1.7rem Georgia,serif;color:var(--strand);grid-column:2;text-align:right}
.pair-callout { border-left:3px solid var(--pair-color,var(--violet)); padding-left:16px; }
.pair-callout strong { color:var(--gold); text-transform:uppercase; letter-spacing:.14em; font-size:.66rem; }.pair-callout h3{font:500 1.35rem Georgia,serif;margin:8px 0}.pair-callout p{color:var(--muted);line-height:1.6;margin:0;font-size:.92rem}
.radar { width:100%; min-height:280px; display:block; }
.score-list { display:grid; gap:8px; }
.score-row { display:grid; grid-template-columns:90px 1fr 34px; gap:10px; align-items:center; font-size:.82rem; }
.score-row__track { height:8px; border-radius:999px; background:rgba(255,255,255,.055); overflow:hidden; }
.score-row__fill { height:100%; border-radius:999px; width:var(--score); background:linear-gradient(90deg,color-mix(in srgb,var(--strand),#fff 12%),var(--strand)); box-shadow:0 0 14px color-mix(in srgb,var(--strand),transparent 76%); }
.score-row__value { color:var(--muted); text-align:right; font-variant-numeric:tabular-nums; }
.comparison-card { display:grid; gap:18px; }
.comparison-item { border:1px solid var(--line); border-radius:14px; padding:14px; }
.comparison-item__top { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:10px; }.comparison-item__top strong{font-family:Georgia,serif}.comparison-item__top span{color:var(--gold);font-size:.82rem}
.distribution { display:grid; grid-template-columns:repeat(10,1fr); gap:3px; height:64px; align-items:end; }
.distribution i { display:block; min-height:4px; height:var(--height); background:rgba(255,255,255,.12); border-radius:4px 4px 1px 1px; }.distribution i.active{background:var(--strand);box-shadow:0 0 12px color-mix(in srgb,var(--strand),transparent 65%)}
.comparison-note { color:var(--dim); font-size:.76rem; line-height:1.5; }
.imprint-grid { display:grid; grid-template-columns:1fr; gap:12px; }
.imprint-card { border:1px solid var(--line); border-radius:14px; padding:16px; background:rgba(255,255,255,.025); }.imprint-card small{color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-weight:800}.imprint-card h3{font:500 1.3rem Georgia,serif;margin:8px 0}.imprint-card p{color:var(--muted);line-height:1.55;font-size:.84rem}.imprint-card em{display:block;color:var(--cyan);font-style:normal;margin-top:10px;font-size:.8rem}
.edge-grid { display:grid; grid-template-columns:1fr; gap:12px; }
.edge-card { border:1px solid var(--line); border-radius:14px; padding:16px; background:rgba(255,255,255,.02); }.edge-card h3{margin:0;font:500 1.15rem Georgia,serif}.edge-card p{color:var(--muted);font-size:.82rem;line-height:1.55}.edge-meter{height:6px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden}.edge-meter span{display:block;height:100%;width:var(--score);background:linear-gradient(90deg,#6c5f54,var(--danger))}
.accordion { border-top:1px solid var(--line); }
.accordion summary { list-style:none; cursor:pointer; padding:16px 0; display:flex; justify-content:space-between; gap:14px; align-items:center; min-height:var(--touch); touch-action:manipulation; }.accordion summary::-webkit-details-marker{display:none}.accordion summary::after{content:'+';color:var(--gold);font-size:1.2rem}.accordion[open] summary::after{content:'−'}.accordion__body{padding:0 0 18px;color:var(--muted);line-height:1.65;font-size:.88rem}

.share-card { width:1200px; height:630px; position:fixed; left:-99999px; top:0; background:radial-gradient(circle at 72% 20%,#312050,#090714 55%); padding:72px; color:#fff; overflow:hidden; font-family:Inter,system-ui,sans-serif; }
.share-card::after{content:"";position:absolute;inset:-20%;background:conic-gradient(from 30deg,transparent,rgba(255,110,168,.12),transparent 35%,rgba(113,228,255,.1),transparent 70%)}
.share-card__inner{position:relative;z-index:2;height:100%;display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}.share-card__brand{letter-spacing:.22em;font-weight:900;color:#ffd078;font-size:20px}.share-card h2{font:500 70px/.95 Georgia,serif;margin:18px 0}.share-card p{color:#c8c0d8;font-size:24px;line-height:1.45}.share-card__sigils{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.share-card__sigils div{text-align:center}.share-card__sigils img{width:150px}.share-card__sigils strong{display:block;font:500 24px Georgia,serif}.share-card__code{position:absolute;left:72px;bottom:54px;color:#ffd078;font-family:monospace;font-size:17px}

.site-footer { width:min(calc(100% - 24px),var(--max)); margin:0 auto; border-top:1px solid var(--line); padding:18px 0 calc(var(--safe-bottom) + 24px); display:flex; flex-direction:column; gap:8px; color:var(--dim); font-size:.76rem; line-height:1.5; }
.site-footer p { margin:0; }
.toast { position:fixed; right:16px; bottom:calc(var(--safe-bottom) + 16px); left:16px; max-width:min(380px,calc(100% - 32px)); background:#181126; border:1px solid var(--line-strong); color:var(--text); padding:14px 16px; border-radius:14px; box-shadow:var(--shadow); transform:translateY(20px); opacity:0; pointer-events:none; transition:.25s ease; z-index:100; margin-inline:auto; }
.toast.is-visible { transform:none; opacity:1; }
.noscript { margin:40px auto; padding:20px; max-width:680px; border:1px solid var(--danger); border-radius:16px; background:#241019; color:#fff; }
.loading-orbit { position:relative;width:70px;height:70px}.loading-orbit span{position:absolute;inset:0;border:1px solid var(--line-strong);border-radius:50%;animation:spin 2s linear infinite}.loading-orbit span:nth-child(2){inset:10px;border-color:var(--pink);animation-direction:reverse}.loading-orbit span:nth-child(3){inset:25px;background:var(--gold);box-shadow:0 0 24px var(--gold);border:0}
.empty-state { padding:60px 20px;text-align:center;color:var(--muted) }

@keyframes screen-in { from{opacity:0;transform:translateY(18px);filter:blur(6px)} to{opacity:1;transform:none;filter:none} }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes aurora { to{transform:translate3d(6vw,4vw,0) scale(1.12)} }
@keyframes float-node { 50%{transform:translate(-50%,-55%)} }
@keyframes core-pulse { 0%,100%{transform:scale(1);filter:brightness(1)} 50%{transform:scale(1.05);filter:brightness(1.15)} }
@keyframes orbit-rotate { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes img-bob { 50%{transform:translateY(-8%)} }
@keyframes node-glow { 0%,100%{filter:drop-shadow(0 0 14px color-mix(in srgb, var(--strand), transparent 70%))} 50%{filter:drop-shadow(0 0 24px color-mix(in srgb, var(--strand), transparent 50%))} }

@media (min-width: 480px) {
  .site-header { width:min(calc(100% - 32px),var(--max)); min-height:76px; gap:16px; }
  .brand { width:200px; }
  .site-header__actions { gap:14px; }
  .app-shell { width:min(calc(100% - 32px),var(--max)); }
  .hero { padding:32px 0 56px; }
  .hero h1 { font-size:clamp(3rem,14vw,5rem); }
  .quiz-card { padding:28px 22px; }
  .answer-option { padding:18px 18px; }
  .result-hero { padding:32px 24px; }
  .result-sigil { max-width:320px; }
  .panel { padding:24px 20px; }
  .strand-card { grid-template-columns:auto 1fr auto; }.strand-card__score{grid-column:auto;text-align:right}
}

@media (min-width: 640px) {
  .text-link { display:inline; }
  .brand { width:230px; }
  .hero h1 { font-size:clamp(3.4rem,10vw,6rem); }
  .loom-orbit { width:min(100%,420px); }
  .orbit-node { width:58px; height:58px; }
  .mode-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .mode-card { padding:28px; }
  .mode-card h3 { font:500 1.8rem/1.1 Georgia,serif; }
  .mode-card .button { width:auto; }
  .quiz-topbar { grid-template-columns:auto 1fr auto; gap:16px; }
  .quiz-count { grid-column:auto; text-align:right; order:0; }
  .quiz-card { padding:clamp(28px,5vw,54px); border-radius:var(--radius-lg); }
  .question-title { font-size:clamp(1.7rem,4vw,2.75rem); }
  .answer-option { padding:18px 20px; min-height:68px; grid-template-columns:34px 1fr; }
  .maxdiff-row { grid-template-columns:1fr auto; gap:16px; }
  .quiz-actions { flex-wrap:nowrap; }.quiz-actions .button { flex:initial; }
  .result-hero { border-radius:28px; padding:clamp(32px,5vw,56px); }
  .result-sigil { max-width:360px; }
  .result-sigil__icon { width:96px; height:96px; }.result-sigil__icon:nth-child(2){width:80px}.result-sigil__icon:nth-child(3){width:72px}
  .result-sigil__center { width:104px; }.result-sigil__center strong { font:500 1.6rem Georgia,serif; }
  .result-copy__lede { font-size:1.08rem; }
  .panel { padding:clamp(24px,4vw,34px); }
  .panel__header h2 { font:500 1.6rem/1.1 Georgia,serif; }
  .strand-card img { width:58px; height:58px; }
  .strand-card h3 { font:500 1.25rem Georgia,serif; }
  .score-row { grid-template-columns:110px 1fr 42px; gap:12px; font-size:.84rem; }
  .imprint-grid { grid-template-columns:1fr 1fr; }
  .edge-grid { grid-template-columns:1fr 1fr; }
  .radar { min-height:360px; }
  .site-footer { flex-direction:row; justify-content:space-between; gap:24px; }
}

@media (min-width: 768px) {
  .site-header { min-height:88px; gap:24px; }
  .brand { width:240px; }
  .site-header__actions { gap:16px; }
  .hero { grid-template-columns:1.05fr .95fr; text-align:left; gap:clamp(36px,7vw,90px); padding:48px 0 76px; min-height:68vh; }
  .hero__copy { order:0; }.loom-orbit { order:0; }
  .hero__lede { margin:0; }
  .hero__actions,.hero__meta { justify-content:flex-start; }
  .hero h1 { font-size:clamp(3.15rem,7.5vw,6.9rem); line-height:.91; letter-spacing:-.055em; }
  .hero__eyebrow,.eyebrow { font-size:.72rem; }
  .loom-orbit { width:min(100%,520px); }
  .orbit-node { width:66px; height:66px; filter:drop-shadow(0 0 18px color-mix(in srgb,var(--strand),transparent 70%)); }
  .mode-section { padding:44px 0 90px; }
  .mode-card { padding:30px; border-radius:var(--radius-lg); }
  .mode-card::after { width:260px; height:260px; right:-130px; top:-130px; filter:blur(80px); opacity:.12; }
  .mode-card h3 { font:500 2rem/1.1 Georgia,serif; }
  .mode-card p { font-size:inherit; }
  .section-heading h2 { font:500 clamp(2rem,5vw,3.8rem)/1 Georgia,serif; }
  .quiz-shell { margin:28px auto 70px; }
  .quiz-card { border-radius:var(--radius-lg); }
  .results-shell { margin:28px auto 90px; }
  .result-hero { border-radius:36px; }
  .result-hero__content { grid-template-columns:.9fr 1.1fr; gap:48px; text-align:left; }
  .result-copy__lede { max-width:none; }
  .result-actions { justify-content:flex-start; }
  .result-grid { grid-template-columns:repeat(12,minmax(0,1fr)); gap:18px; }
  .panel--7 { grid-column:span 7; }.panel--5 { grid-column:span 5; }.panel--6 { grid-column:span 6; }
  .panel { backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
  .panel__header h2 { font:500 1.75rem/1.1 Georgia,serif; }
  .strand-card { grid-template-columns:auto 1fr auto; gap:16px; padding:15px; border-radius:16px; }
  .strand-card img { width:62px; height:62px; }
  .strand-card h3 { font:500 1.3rem Georgia,serif; }.strand-card p{font-size:.85rem}
  .strand-card__score { font:500 2rem Georgia,serif; grid-column:auto; }
  .pair-callout h3 { font:500 1.55rem Georgia,serif; }
  .pair-callout p { font-size:inherit; }
  .contribute-label { margin:28px auto 0; padding:18px 22px; }
}

@media (min-width: 768px) and (orientation: landscape) and (max-height: 500px) {
  .hero { min-height:auto; padding:20px 0 32px; }
  .loom-orbit { width:min(100%,280px); }
}

@media (min-width: 900px) {
  .result-copy h1 { font:500 clamp(2.8rem,7vw,5.8rem)/.95 Georgia,serif; letter-spacing:-.045em; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  .ambient__stars { display:none; }
  .ambient__aurora { animation:none; }
  .screen { animation:none; }
}
body[data-motion="reduced"] *, body[data-motion="reduced"] *::before, body[data-motion="reduced"] *::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
body[data-motion="reduced"] .ambient__stars { display:none; }
body[data-motion="reduced"] .ambient__aurora { animation:none; }
body[data-motion="reduced"] .screen { animation:none; }

@media (hover: none) and (pointer: coarse) {
  .answer-option:hover { transform:none; }
  .button:hover { transform:none; }
  .icon-button:hover { transform:none; }
  .orbit-node:hover::after { display:none; }
  .contribute-label:hover { background:rgba(255,255,255,.025); }
}

@media (prefers-contrast: more) {
  :root { --line:rgba(224,213,255,.3); --line-strong:rgba(224,213,255,.5); --muted:#d4cde4; --dim:#a89ec0; }
  .panel { border-width:2px; }
  .answer-option { border-width:2px; }
  .button { border-width:2px; }
}
