/* =========================================================
   NOISE. the tone test  test.css
   Extends the NOISE. sales-page design system (STATIC PURPLE).
   Rules honored:
     no drop shadows (only 1px inset rings as hairlines)
     no em dashes in any copy
     accent is precious: aplats, hairlines, big numerals, the point, CTAs
     display line-height stays 0.94 to 1.0
   ========================================================= */

:root{
  --canvas:#08020E;
  --ink:#F5F0F7;
  --muted:#A99BB0;
  --surface-1:#160921;
  --surface-2:#2F1737;
  --accent:#B44BFF;
  --accent-soft:rgba(180,75,255,0.14);
  --on-accent:#08020E;
  --hairline:rgba(245,240,247,0.10);
  --hairline-strong:rgba(245,240,247,0.16);

  --maxw:940px;
  --gutter:clamp(20px,5vw,40px);
  --r-input:4px; --r-btn:8px; --r-card:12px; --r-pill:20px;
  --step:clamp(40px,6vw,64px);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--canvas);
  color:var(--ink);
  font-family:"Space Grotesk",system-ui,sans-serif;
  font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  min-height:100vh;
  display:flex; flex-direction:column;
}
img{max-width:100%;display:block}
::selection{background:var(--accent);color:var(--on-accent)}

/* grain: the "noise" of the concept */
.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); width:100%}

.display{
  font-family:"Saira Extra Condensed",sans-serif;
  font-weight:700; line-height:.96; letter-spacing:-.015em;
  text-transform:uppercase;
}
.dot{width:7px; height:7px; border-radius:50%; background:currentColor; display:inline-block; flex:0 0 auto}
.eyebrow{
  font-size:.78rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); display:inline-flex; align-items:center; gap:.6em;
}
.eyebrow .dot{background:var(--accent)}
.badge{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); display:inline-flex; align-items:center; gap:.6em}
.badge .dot{background:var(--accent)}

/* ---- buttons ---- */
.btn{
  font-family:inherit; font-size:.95rem; font-weight:500; letter-spacing:.01em;
  padding:14px 22px; border-radius:var(--r-btn); border:0; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:.6em; text-decoration:none;
  transition:transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.btn-primary{background:var(--accent); color:var(--on-accent)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-ghost{background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--hairline-strong)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--accent)}
.btn:disabled{opacity:.4; cursor:not-allowed}
.btn:disabled:hover{transform:none; box-shadow:inset 0 0 0 1px var(--hairline-strong)}
.btn:focus-visible{outline:2px solid var(--accent); outline-offset:3px}
a:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:2px}

/* ---- top bar ---- */
.topbar{position:sticky; top:0; z-index:20; background:rgba(8,2,14,.72); backdrop-filter:blur(12px); box-shadow:inset 0 -1px 0 var(--hairline)}
.topbar-inner{display:flex; align-items:center; justify-content:space-between; height:60px}
.logo{font-family:"Saira Extra Condensed",sans-serif; font-weight:800; font-size:1.5rem; letter-spacing:.02em; text-transform:uppercase; color:var(--ink); text-decoration:none; line-height:1; display:inline-flex; align-items:center; min-height:44px}
.logo b{color:var(--accent); font-weight:800}
.back-link{color:var(--muted); text-decoration:none; font-size:.88rem; font-weight:500; display:inline-flex; align-items:center; gap:.4em; min-height:44px}
.back-link:hover{color:var(--ink)}

/* ---- stage ---- */
.stage{flex:1 0 auto; padding:var(--step) var(--gutter); display:flex; flex-direction:column; justify-content:center}
.screen{width:100%; animation:fade .28s ease both}
@keyframes fade{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}

/* ============ START ============ */
.screen-start{max-width:640px; margin:0 auto; text-align:left}
.start-title{font-size:clamp(3rem,10vw,5.4rem); margin:18px 0 20px; line-height:.94}
.start-sub{color:var(--muted); font-size:1.12rem; max-width:46ch}
.start-meta{margin:26px 0 22px}
.start-actions{display:flex; gap:14px; flex-wrap:wrap}
.start-actions .btn{padding:16px 40px; font-size:1rem}
.fam-list{list-style:none; margin-top:44px; box-shadow:inset 0 1px 0 var(--hairline)}
.fam-list li{display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:16px 2px; box-shadow:inset 0 -1px 0 var(--hairline)}
.fam-name{font-family:"Saira Extra Condensed",sans-serif; font-weight:700; font-size:1.2rem; text-transform:uppercase; letter-spacing:-.01em; color:var(--ink); line-height:1}
.fam-arch{color:var(--muted); font-size:.85rem}

/* ============ QUIZ ============ */
.screen-quiz{max-width:680px; margin:0 auto}
.quiz-head{margin-bottom:28px}
.q-progress{font-family:"Saira Extra Condensed",sans-serif; font-weight:700; font-size:1.15rem; letter-spacing:.02em; color:var(--accent); text-transform:uppercase}
.q-track{margin-top:12px; height:6px; border-radius:var(--r-pill); background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--hairline); overflow:hidden}
.q-bar{height:100%; width:0; background:var(--accent); border-radius:var(--r-pill); transition:width .3s ease}
.quiz-fieldset{border:0; min-inline-size:0}
.q-legend{font-family:"Saira Extra Condensed",sans-serif; font-weight:700; font-size:clamp(1.8rem,5vw,2.8rem); text-transform:uppercase; letter-spacing:-.01em; line-height:.98; margin-bottom:22px; color:var(--ink); display:block; width:100%}
.q-legend:focus{outline:none}
.q-options{display:flex; flex-direction:column; gap:12px}
.option{
  font-family:inherit; font-size:1.02rem; line-height:1.4; color:var(--ink);
  text-align:left; background:var(--surface-1); cursor:pointer;
  border:0; border-radius:var(--r-card);
  box-shadow:inset 0 0 0 1px var(--hairline);
  padding:18px 20px; min-height:56px;
  display:flex; align-items:center; gap:14px;
  transition:background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.option::before{
  content:""; flex:0 0 auto; width:16px; height:16px; border-radius:50%;
  box-shadow:inset 0 0 0 1px var(--hairline-strong); transition:background .16s, box-shadow .16s;
}
.option:hover{background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--accent); transform:translateX(2px)}
.option:hover::before{box-shadow:inset 0 0 0 1px var(--accent)}
.option:focus-visible{outline:2px solid var(--accent); outline-offset:3px}
.option.is-selected{background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--accent)}
.option.is-selected::before{background:var(--accent); box-shadow:inset 0 0 0 5px var(--surface-2), inset 0 0 0 6px var(--accent)}
.quiz-foot{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:26px; flex-wrap:wrap}
.quiz-hint{color:var(--muted); font-size:.85rem}

/* ============ RESULT ============ */
.screen-result{max-width:820px; margin:0 auto}
.r-kicker{color:var(--accent); font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; display:flex; align-items:center; gap:.6em}
.r-kicker .dot{background:var(--accent)}
.r-head{display:flex; align-items:center; gap:20px; margin:14px 0 20px}
.r-emoji{font-size:clamp(2.6rem,8vw,3.6rem); line-height:1; flex:0 0 auto}
.r-name{font-size:clamp(2.6rem,8vw,4.4rem); line-height:.94; margin:0}
.r-family{color:var(--muted); font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; margin-top:6px}
.r-desc{color:var(--ink); font-size:clamp(1.1rem,2.4vw,1.35rem); line-height:1.5; max-width:60ch; margin-bottom:34px}

.r-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.r-card{background:var(--surface-1); border-radius:var(--r-card); box-shadow:inset 0 0 0 1px var(--hairline); padding:clamp(22px,3vw,30px)}
.r-card-title{font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); font-weight:500; margin-bottom:14px}
.r-tips{list-style:none; display:flex; flex-direction:column; gap:14px}
.r-tips li{position:relative; padding-left:22px; color:var(--ink); font-size:.98rem; line-height:1.45}
.r-tips li::before{content:""; position:absolute; left:0; top:.55em; width:7px; height:7px; border-radius:50%; background:var(--accent)}
.r-hook{color:var(--ink); font-size:1.08rem; line-height:1.5; font-style:normal; box-shadow:inset 3px 0 0 var(--accent); padding:4px 0 4px 18px; margin-bottom:26px}
.r-axes-title{margin-top:4px}
.r-axes{display:flex; flex-direction:column; gap:16px}
.axis-scale{display:flex; align-items:center; gap:12px; font-family:"Saira Extra Condensed",sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:-.01em; font-size:1.15rem; line-height:1}
.axis-end{color:var(--muted)}
.axis-end.is-lean{color:var(--ink)}
.axis-arrow{color:var(--accent); font-family:"Space Grotesk",sans-serif; font-weight:700}
.axis-lean{color:var(--muted); font-size:.82rem; margin-top:5px}

.r-cta{background:var(--surface-1); border-radius:var(--r-card); box-shadow:inset 0 0 0 1px var(--hairline); padding:clamp(28px,5vw,44px); text-align:center; margin:22px 0; position:relative; overflow:hidden}
.r-cta::before{content:""; position:absolute; top:-40%; left:50%; transform:translateX(-50%); width:70%; height:120%; background:radial-gradient(circle, var(--accent-soft), transparent 70%); pointer-events:none}
.r-cta-title{font-size:clamp(1.8rem,5vw,3rem); line-height:.96; position:relative; margin-bottom:12px}
.r-cta p{color:var(--muted); max-width:48ch; margin:0 auto 22px; position:relative}
.r-cta .btn{position:relative}
.r-foot{display:flex; gap:14px; flex-wrap:wrap; justify-content:center}

/* ---- footer ---- */
.site-foot{flex:0 0 auto; padding:32px 0 40px; box-shadow:inset 0 1px 0 var(--hairline)}
.site-foot .wrap{display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap}
.foot-logo{font-size:1.8rem; line-height:1}
.foot-logo b{color:var(--accent)}
.foot-note{color:var(--muted); font-size:.8rem; max-width:52ch}

/* ---- responsive ---- */
@media(max-width:720px){
  .r-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  body{font-size:16px}
  .stage{padding-top:28px; padding-bottom:28px}
  .quiz-foot{justify-content:space-between}
  .r-head{gap:14px}
}

@media(prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto}
  .option:hover{transform:none}
}
