@font-face{font-family:"Space Grotesk";src:url(assets/fonts/space-grotesk.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Inter";src:url(assets/fonts/inter.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --bg:#06080c; --bg2:#0b0f16;
  --card:rgba(255,255,255,.035); --card-b:rgba(255,255,255,.08);
  --text:#eef2f7; --muted:#8b95a7; --dim:#5b6475;
  --cyan:#3ff0ff; --gold:#ffc233; --red:#ff5d5d; --green:#3ee08f;
  --r:18px;
  --display:"Space Grotesk",system-ui,sans-serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{font-family:var(--body);color:var(--text);background:var(--bg);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;overflow-x:hidden;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
svg.fill{fill:currentColor;stroke:none}

/* ---------- background ---------- */
.bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-grid{position:absolute;inset:-2px;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 30%,transparent 75%)}
.glow{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5}
.g1{width:520px;height:520px;left:-220px;top:-220px;background:radial-gradient(circle,rgba(63,240,255,.45),transparent 65%);animation:drift 18s ease-in-out infinite alternate}
.g2{width:560px;height:560px;right:-260px;top:120px;background:radial-gradient(circle,rgba(255,194,51,.28),transparent 65%);animation:drift 22s ease-in-out infinite alternate-reverse}
@keyframes drift{to{transform:translate(60px,80px)}}

#app{position:relative;z-index:1;max-width:520px;margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));min-height:100vh;min-height:100dvh}

/* ---------- screens ---------- */
.screen{display:none}
.screen.is-active{display:block;animation:screenIn .5s var(--ease) both}
@keyframes screenIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- brand ---------- */
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#cfd6e2}
.brand img{border-radius:50%;box-shadow:0 0 0 1px rgba(63,240,255,.35),0 0 18px rgba(63,240,255,.25)}
.brand.small{justify-content:center;font-size:11px;margin-bottom:14px}

/* ---------- hero ---------- */
.hero{padding:44px 0 26px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);padding:7px 12px;border:1px solid rgba(63,240,255,.25);border-radius:99px;background:rgba(63,240,255,.06)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}
h1{font-family:var(--display);font-weight:700;font-size:clamp(44px,13vw,64px);line-height:.98;letter-spacing:-.035em;margin:18px 0 16px}
.grad{background:linear-gradient(100deg,var(--cyan) 0%,#9ff7ff 40%,var(--gold) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{font-size:17px;line-height:1.5;color:var(--muted);max-width:30ch}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chips li{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:#c3cad6;padding:8px 12px;border-radius:10px;background:var(--card);border:1px solid var(--card-b)}
.chips svg{width:15px;height:15px;color:var(--gold)}

.pick-title{font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:8px 0 12px}
.tracks{display:grid;gap:12px}
.track{position:relative;display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:18px 18px 18px 16px;border-radius:var(--r);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid var(--card-b);overflow:hidden;transition:transform .2s var(--ease),border-color .2s,background .2s}
.track::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 140% at 0% 50%,var(--tc,rgba(63,240,255,.14)),transparent 55%);opacity:.9;pointer-events:none}
.track:active{transform:scale(.985)}
@media (hover:hover){.track:hover{border-color:rgba(255,255,255,.18);transform:translateY(-2px)}}
.t-ico{position:relative;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08);color:var(--ta,var(--cyan))}
.t-ico svg{width:24px;height:24px;stroke-width:1.8}
.t-body{position:relative;flex:1;min-width:0}
.t-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.t-name{font-family:var(--display);font-size:18px;font-weight:600;letter-spacing:-.01em}
.t-level{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ta,var(--cyan));padding:3px 7px;border-radius:6px;background:rgba(255,255,255,.05)}
.t-blurb{font-size:13.5px;color:var(--muted);line-height:1.4}
.t-go{position:relative;color:var(--dim);transition:transform .2s,color .2s}
.track:hover .t-go{color:var(--text);transform:translateX(3px)}
.bars{display:flex;gap:3px;margin-left:auto}
.bars i{width:4px;height:12px;border-radius:2px;background:rgba(255,255,255,.12)}
.bars i.on{background:var(--ta,var(--cyan))}
.fine{font-size:12.5px;color:var(--dim);text-align:center;margin-top:22px;line-height:1.5}

/* ---------- quiz ---------- */
#screen-quiz.is-active{display:flex;flex-direction:column;min-height:calc(100dvh - 46px)}
.qbar{display:flex;align-items:center;gap:12px}
.icon-btn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--card);border:1px solid var(--card-b);color:var(--muted);transition:color .2s,border-color .2s}
.icon-btn:hover{color:var(--text);border-color:rgba(255,255,255,.2)}
.qmeta{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px}
#q-track{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.qcount{font-family:var(--display);font-size:15px;color:var(--dim);font-variant-numeric:tabular-nums}
.qcount b{color:var(--text);font-weight:600}
.timer{position:relative;width:44px;height:44px;display:grid;place-items:center}
.timer svg{position:absolute;inset:0;width:44px;height:44px;transform:rotate(-90deg)}
.t-bg{stroke:rgba(255,255,255,.08);stroke-width:3}
.t-fg{stroke:var(--cyan);stroke-width:3;stroke-dasharray:119.4;stroke-dashoffset:0;transition:stroke-dashoffset 1s linear,stroke .3s}
#timer-num{font-family:var(--display);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.timer.warn .t-fg{stroke:var(--gold)}
.timer.crit .t-fg{stroke:var(--red)}
.timer.crit #timer-num{color:var(--red);animation:pulse .5s ease-in-out infinite}

.progress{height:4px;border-radius:4px;background:rgba(255,255,255,.07);margin:16px 0 0;overflow:hidden}
.progress-fill{height:100%;width:0;border-radius:4px;background:linear-gradient(90deg,var(--cyan),var(--gold));box-shadow:0 0 12px rgba(63,240,255,.6);transition:width .5s var(--ease)}

.qcard{flex:1;display:flex;flex-direction:column;padding-top:36px}
.qcard.enter{animation:qIn .45s var(--ease) both}
.qcard.leave{animation:qOut .25s ease-in both}
@keyframes qIn{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes qOut{to{opacity:0;transform:translateX(-28px)}}
.qlabel{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:12px}
.qtext{font-family:var(--display);font-size:clamp(23px,6.6vw,30px);font-weight:600;line-height:1.2;letter-spacing:-.02em;margin-bottom:28px;text-wrap:balance}
.answers{display:grid;gap:10px}
.ans{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:15px 16px;min-height:62px;border-radius:16px;background:var(--card);border:1px solid var(--card-b);font-size:15.5px;line-height:1.35;font-weight:500;color:#dfe5ee;transition:transform .15s var(--ease),border-color .2s,background .2s,opacity .25s}
.ans .k{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:var(--display);font-size:13px;font-weight:600;color:var(--muted);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);transition:all .2s}
@media (hover:hover){.ans:hover{border-color:rgba(63,240,255,.4);background:rgba(63,240,255,.05)}}
.ans:active{transform:scale(.985)}
.ans.picked{border-color:var(--cyan);background:linear-gradient(90deg,rgba(63,240,255,.16),rgba(63,240,255,.04));box-shadow:0 0 0 1px var(--cyan) inset,0 0 28px rgba(63,240,255,.18);color:#fff}
.ans.picked .k{background:var(--cyan);border-color:var(--cyan);color:#041014}
.answers.locked .ans:not(.picked){opacity:.38}
.answers.locked{pointer-events:none}
.answers.timeout .ans{opacity:.3}

/* ---------- calculating ---------- */
#screen-calc.is-active{display:grid;place-items:center;min-height:calc(100dvh - 46px)}
.calc{text-align:center}
.calc-orb{position:relative;width:150px;height:150px;margin:0 auto 30px;display:grid;place-items:center}
.calc-orb img{border-radius:50%;box-shadow:0 0 40px rgba(63,240,255,.35)}
.orb-ring{position:absolute;inset:0;border-radius:50%;border:2px solid transparent;border-top-color:var(--cyan);border-right-color:rgba(63,240,255,.3);animation:spin 1.1s linear infinite}
.orb-ring.r2{inset:14px;border-top-color:var(--gold);border-right-color:rgba(255,194,51,.25);animation-duration:1.6s;animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.calc h2{font-family:var(--display);font-size:24px;font-weight:600;letter-spacing:-.02em;margin-bottom:22px}
.calc-steps{list-style:none;display:inline-grid;gap:12px;text-align:left}
.calc-steps li{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--dim);opacity:.4;transition:all .35s}
.calc-steps li::before{content:"";width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.15);flex:none;transition:all .3s}
.calc-steps li.on{opacity:1;color:#cfd6e2}
.calc-steps li.on::before{border-color:var(--cyan);border-top-color:transparent;animation:spin .7s linear infinite}
.calc-steps li.done{opacity:1;color:#cfd6e2}
.calc-steps li.done::before{border-color:var(--green);background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23041014' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center/12px no-repeat;animation:none}

/* ---------- result ---------- */
.result-card{position:relative;border-radius:24px;padding:22px 18px 18px;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.015));border:1px solid var(--card-b);overflow:hidden}
.result-card::before{content:"";position:absolute;inset:-1px;border-radius:24px;padding:1px;background:linear-gradient(140deg,var(--rc1,rgba(63,240,255,.6)),transparent 40%,transparent 60%,var(--rc2,rgba(255,194,51,.5)));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.result-card.low{--rc1:rgba(255,194,51,.55);--rc2:rgba(255,107,74,.45)}
.r-track{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.gauge{position:relative;width:220px;height:220px;margin:8px auto 4px}
.gauge svg{width:220px;height:220px;transform:rotate(-90deg)}
.g-bg{stroke:rgba(255,255,255,.07);stroke-width:12}
.g-fg{stroke:url(#gHigh);stroke-width:12;stroke-dasharray:590.6;stroke-dashoffset:590.6;filter:drop-shadow(0 0 10px rgba(63,240,255,.45))}
.result-card.low .g-fg{stroke:url(#gLow);filter:drop-shadow(0 0 10px rgba(255,150,60,.4))}
.gauge-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.g-label{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.g-num{font-family:var(--display);font-size:78px;font-weight:700;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:2px 0 6px}
.g-tier{font-size:12.5px;font-weight:600;color:var(--gold);padding:5px 11px;border-radius:99px;background:rgba(255,194,51,.1);border:1px solid rgba(255,194,51,.22);max-width:180px}
.result-card:not(.low) .g-tier{color:var(--cyan);background:rgba(63,240,255,.08);border-color:rgba(63,240,255,.25)}
.r-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px;border-top:1px solid var(--card-b);padding-top:14px}
.r-stats div{display:flex;flex-direction:column;gap:3px}
.r-stats div+div{border-left:1px solid var(--card-b)}
.r-stats b{font-family:var(--display);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}
.r-stats span{font-size:11px;color:var(--dim);letter-spacing:.06em;text-transform:uppercase;font-weight:600}

.verdict{text-align:center;padding:26px 6px 20px}
.verdict h2{font-family:var(--display);font-size:clamp(25px,7vw,30px);font-weight:700;letter-spacing:-.025em;line-height:1.12;margin-bottom:10px;text-wrap:balance}
.verdict p{font-size:15.5px;line-height:1.55;color:var(--muted);text-wrap:pretty}

.ctas{display:grid;gap:10px}
.ctas .sec{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn{display:flex;align-items:center;justify-content:center;gap:9px;min-height:54px;padding:0 18px;border-radius:15px;font-weight:600;font-size:15.5px;transition:transform .15s var(--ease),box-shadow .2s,background .2s,border-color .2s;white-space:nowrap}
.btn:active{transform:scale(.98)}
.btn svg{width:19px;height:19px}
.btn.primary{min-height:58px;font-size:16.5px;color:#03131a;background:linear-gradient(100deg,var(--cyan),#a9f8ff);box-shadow:0 10px 30px -8px rgba(63,240,255,.55),0 0 0 1px rgba(255,255,255,.2) inset}
.btn.primary.discord{color:#fff;background:linear-gradient(100deg,#5865f2,#7b85ff);box-shadow:0 10px 30px -8px rgba(88,101,242,.7),0 0 0 1px rgba(255,255,255,.18) inset}
.btn.primary.yt{color:#fff;background:linear-gradient(100deg,#ff2b2b,#ff5a4a);box-shadow:0 10px 30px -8px rgba(255,43,43,.6),0 0 0 1px rgba(255,255,255,.18) inset}
@media (hover:hover){.btn.primary:hover{transform:translateY(-1px)}}
.btn.primary{position:relative;overflow:hidden}
.btn.primary::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);animation:shine 3.6s ease-in-out 1.2s infinite}
@keyframes shine{0%{left:-60%}35%,100%{left:130%}}
.btn.ghost{background:var(--card);border:1px solid var(--card-b);color:#dfe5ee}
@media (hover:hover){.btn.ghost:hover{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.06)}}
.btn .sub{display:block;font-size:11.5px;font-weight:500;opacity:.75}

.share{margin-top:26px;text-align:center}
.share-label{display:block;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.share-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.r-actions{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:22px;font-size:14.5px}
.link-btn{color:var(--cyan);font-weight:600;padding:8px 4px}
.link-btn:hover{text-decoration:underline;text-underline-offset:3px}
.sep{color:var(--dim)}

/* ---------- review ---------- */
.review-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.review-head h2{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-.02em}
.review-head p{font-size:13.5px;color:var(--muted)}
.review-list{list-style:none;display:grid;gap:10px}
.rv{padding:16px;border-radius:16px;background:var(--card);border:1px solid var(--card-b);border-left:3px solid var(--rvc,var(--green))}
.rv.wrong{--rvc:var(--red)}
.rv-q{display:flex;gap:10px;font-weight:600;font-size:15px;line-height:1.35;margin-bottom:10px}
.rv-n{flex:none;font-family:var(--display);font-size:12px;color:var(--dim);padding-top:2px;min-width:18px}
.rv-row{display:flex;gap:8px;font-size:14px;line-height:1.4;margin:5px 0 0 28px}
.rv-row svg{width:16px;height:16px;margin-top:1px}
.rv-row.ok{color:var(--green)}
.rv-row.no{color:#ff8a8a}
.rv-row.no span{text-decoration:line-through;text-decoration-color:rgba(255,138,138,.5)}
.rv-x{font-size:13.5px;line-height:1.5;color:var(--muted);margin:10px 0 0 28px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.08)}
.review-foot{position:sticky;bottom:0;padding:18px 0 4px;background:linear-gradient(transparent,var(--bg) 35%);margin-top:6px}
.review-foot .btn{width:100%}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(26px + env(safe-area-inset-bottom));transform:translate(-50%,20px);padding:12px 18px;border-radius:12px;background:#151b26;border:1px solid var(--card-b);font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:all .3s var(--ease);z-index:10}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- desktop ---------- */
@media (min-width:900px){
  #app{max-width:600px;padding-top:36px}
  .hero{padding-top:64px}
  h1{font-size:76px}
  .lede{font-size:19px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.ctas .btn{width:100%}
.ctas .btn.ghost{min-height:54px}
.x-link{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:500;color:var(--muted);padding:10px 0 0}
.x-link svg{width:14px;height:14px}
.x-link:hover{color:var(--text)}
.qhint{margin-top:auto;padding-top:28px;text-align:center;font-size:12.5px;color:var(--dim)}
@media (min-width:900px){.gauge{transform:scale(1.08)}.result-card{padding-top:26px}}

/* ---------- legal + consent ---------- */
.legal{margin-top:34px;padding-top:18px;border-top:1px solid var(--card-b);text-align:center;font-size:11.5px;line-height:1.55;color:var(--dim)}
.legal p+p{margin-top:6px}
.legal a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.consent{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:20;max-width:520px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:#121823;border:1px solid var(--card-b);box-shadow:0 12px 40px rgba(0,0,0,.5);font-size:12.5px;line-height:1.45;color:var(--muted)}
.consent[hidden]{display:none}
.consent a{color:var(--text);text-decoration:underline}
.consent-btns{display:flex;gap:6px;flex:none}
.consent button{padding:8px 12px;border-radius:9px;font-size:13px;font-weight:600;background:rgba(255,255,255,.06);color:var(--text)}
.consent button.yes{background:var(--cyan);color:#03131a}
