:root{
  --bg:#0f0d0a; --bg2:#15110c; --card:#1a1510; --card2:#211a13;
  --line:#2d261d; --line2:#3b3225;
  --ink:#efe6d2; --muted:#a6997e; --faint:#6f6552;
  --gold:#d2a44d; --gold-hi:#ecc87e; --gold-deep:#8a6a2a;
  --good:#8db578; --good-bg:rgba(125,165,100,.13);
  --bad:#cf7f65; --bad-bg:rgba(195,105,80,.13);
  --fs:'Fraunces',serif; --fb:'Instrument Sans',sans-serif; --fm:'STIX Two Text',serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px}
body{background:var(--bg);color:var(--ink);font-family:var(--fb);min-height:100vh;
  background-image:radial-gradient(rgba(210,164,77,.045) 1px,transparent 1.3px);
  background-size:28px 28px;overflow-x:hidden;touch-action:manipulation}
button{font-family:var(--fb)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
h1{font-family:var(--fs);font-weight:600;font-size:clamp(1.8rem,4vw,2.6rem)}
h2{font-family:var(--fs);font-weight:600;font-size:1.3rem;color:var(--gold);margin-bottom:1rem;letter-spacing:.03em}
.eyebrow{font-size:.78rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;font-weight:600}
.muted{color:var(--muted)}
.mth{font-family:var(--fm)}
.screen{display:none;min-height:100vh;padding:clamp(1.2rem,3vw,2.4rem) clamp(1rem,4vw,3rem)}
.screen.on{display:block}
.wrap{max-width:1080px;margin:0 auto}
.wrap-wide{max-width:1380px;margin:0 auto}
.panel.narrow{max-width:520px;margin:8vh auto 0;background:var(--card);border:1px solid var(--line2);
  border-radius:18px;padding:clamp(1.6rem,4vw,2.8rem);text-align:center}
.row{display:flex;gap:1rem;margin-top:1.6rem;flex-wrap:wrap}
.row.center{justify-content:center}
.btn{font-weight:600;border-radius:12px;border:1px solid transparent;cursor:pointer;font-size:1rem;
  padding:.8rem 1.6rem;transition:background .18s,border-color .18s,color .18s,transform .08s;letter-spacing:.02em;color:var(--ink)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--gold);color:#1c1408}
.btn.primary:hover{background:var(--gold-hi)}
.btn.ghost{background:transparent;border-color:var(--line2)}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold-hi)}
.btn.big{font-size:1.1rem;padding:1rem 2.2rem;min-height:58px}
.btn.small{padding:.5rem 1rem;font-size:.9rem;min-height:42px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.pill{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:13px;
  background:var(--card2);border:1px solid var(--line2);font-size:.8rem;margin-left:.4rem}
.card{background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:1.4rem 1.5rem}
.card.method{border-color:var(--gold-deep)}
.chip{background:var(--card);border:1px solid var(--line2);border-radius:99px;padding:.42rem .95rem;
  font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:600}
.chip.plain{color:var(--muted)}
.note{margin-top:1.1rem;border-left:3px solid var(--gold);background:rgba(210,164,77,.07);padding:.8rem 1rem;
  border-radius:0 10px 10px 0;font-size:.9rem;color:var(--muted);line-height:1.55}
.note b{color:var(--gold-hi)}

/* splash */
#scr-splash.on{display:flex;align-items:center;justify-content:center;text-align:center}
.splash-inner{display:flex;flex-direction:column;align-items:center;gap:1.4rem}
.logo-word{font-family:var(--fs);font-weight:600;font-size:clamp(100px,21vw,210px);letter-spacing:.14em;
  text-indent:.14em;line-height:1;color:var(--ink)}
.logo-word span{color:var(--gold)}
.logo-tag{margin-top:1rem;font-size:clamp(.72rem,1.8vw,.95rem);letter-spacing:.55em;text-indent:.55em;
  color:var(--muted);text-transform:uppercase;font-weight:600}
.logo-rule{position:relative;width:180px;height:2px;background:var(--gold-deep);margin-top:1.4rem}
.logo-rule .dm{position:absolute;left:50%;top:50%;width:10px;height:10px;background:var(--gold);
  transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 0 4px var(--bg)}
.splash-sub{font-size:.9rem;color:var(--faint)}
.splash-contact{font-size:.92rem;color:var(--gold-hi);letter-spacing:.12em;font-weight:600}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.splash-inner>*{animation:rise .8s ease both}
.splash-inner>*:nth-child(2){animation-delay:.15s}
.splash-inner>*:nth-child(3){animation-delay:.3s}
.splash-inner>*:nth-child(4){animation-delay:.45s}
.splash-inner>*:nth-child(5){animation-delay:.6s}
.big-input{width:100%;margin-top:1.4rem;background:var(--bg2);border:1px solid var(--line2);border-radius:12px;
  color:var(--ink);font-family:var(--fs);font-size:1.5rem;padding:1rem 1.2rem;text-align:center}
.big-input:focus{border-color:var(--gold);outline:none}
@keyframes shake{0%,100%{transform:none}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.shake{animation:shake .35s}

/* hub */
.hub-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.8rem;flex-wrap:wrap}
.lrow{display:flex;align-items:center;gap:clamp(.9rem,2.5vw,1.8rem);padding:1.3rem .4rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.lrow:first-child{border-top:1px solid var(--line)}
.lrow.locked .lnum{color:var(--faint)}
.lnum{font-family:var(--fs);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--gold);width:70px;text-align:center;flex:none}
.linfo{flex:1;min-width:240px}
.linfo h3{font-family:var(--fs);font-size:clamp(1.05rem,2.2vw,1.35rem);margin-bottom:.25rem}
.linfo p{color:var(--muted);font-size:.93rem}
.lmeta{margin-top:.45rem;font-size:.82rem;color:var(--gold-hi);letter-spacing:.04em}
.lmeta.lockline{color:var(--faint)}
.lchips{display:flex;flex-direction:column;gap:8px;min-width:235px;flex:none}
.mchip{text-align:left;background:var(--bg2);border:1.5px solid var(--line2);border-radius:12px;padding:8px 12px;cursor:pointer;color:var(--ink)}
.mchip b{display:block;font-size:.88rem}
.mchip span{font-size:.74rem;color:var(--gold-hi)}
.mchip em{display:block;font-style:normal;font-size:.68rem;color:var(--faint);margin-top:2px}
.mchip:hover:not(:disabled){border-color:var(--gold)}
.mchip:disabled{opacity:.4;cursor:not-allowed}
.hub-progress{margin-top:1.6rem;padding:1rem 1.3rem;background:var(--card);border:1px solid var(--line2);
  border-radius:14px;font-size:.9rem;color:var(--muted);line-height:2}
.hub-progress b{color:var(--gold-hi);font-family:var(--fm)}
.rev-pill{display:inline-flex;align-items:center;gap:.45rem;background:rgba(195,105,80,.12);border:1px solid rgba(195,105,80,.5);
  color:var(--bad);border-radius:99px;padding:.42rem .95rem;font-size:.82rem;font-weight:600;cursor:pointer;margin-top:.6rem}
.rev-pill:hover{background:rgba(195,105,80,.22)}

/* intro */
.btn-back{margin-bottom:1.3rem}
.intro-head{margin-bottom:1.6rem}
.intro-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:1.2rem;margin-bottom:1.3rem}
.intro-grid2{display:grid;grid-template-columns:minmax(0,1fr) 470px;gap:1.3rem;align-items:start}
@media(max-width:1080px){.intro-grid,.intro-grid2{grid-template-columns:1fr}}
.skill-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.skill-list li{padding-left:1.4rem;position:relative;line-height:1.5}
.skill-list li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}
#methodList{list-style:none;counter-reset:m;display:flex;flex-direction:column;gap:.75rem}
#methodList li{counter-increment:m;position:relative;padding-left:2.5rem;line-height:1.55}
#methodList li::before{content:counter(m);position:absolute;left:0;top:.1em;width:30px;height:30px;border-radius:9px;
  background:var(--gold);color:#1c1408;font-family:var(--fs);font-weight:700;display:grid;place-items:center}
.worked-q{font-size:1.05rem;margin-bottom:1rem;color:var(--muted)}
.worked-q .wq{font-family:var(--fm);font-size:1.35rem;color:var(--ink)}
.steps{display:flex;flex-direction:column;gap:.7rem}
.step{display:flex;gap:.9rem;align-items:flex-start;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem}
.step-n{flex:none;width:30px;height:30px;border-radius:9px;background:var(--gold-deep);color:var(--gold-hi);
  font-family:var(--fs);font-weight:700;display:grid;place-items:center;font-size:.95rem}
.step-body{line-height:1.6;font-size:.97rem}
.step-body b{color:var(--gold-hi)}
.step-body .mth{font-size:1.07rem}
.method-actions{margin-top:1.1rem}

/* quiz */
.quiz-layout{display:grid;grid-template-columns:minmax(0,1fr) 480px;gap:1.2rem;max-width:1440px;margin:0 auto;align-items:start}
.calc-side{position:sticky;top:14px;min-width:0}
@media(max-width:1100px){.quiz-layout{grid-template-columns:1fr}.calc-side{position:static}}
.q-meta{display:flex;align-items:center;gap:.7rem;margin-bottom:1.1rem;flex-wrap:wrap}
.q-progress{flex:1;min-width:160px;height:12px;border-radius:6px;background:var(--card);border:1px solid var(--line)}
.q-progress-fill{height:100%;width:0%;border-radius:5px;background:var(--gold);transition:width .4s}
.q-card{background:var(--card);border:1px solid var(--line2);border-radius:18px;padding:clamp(1.3rem,3.5vw,2.3rem)}
.q-prompt{font-size:.85rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
.q-eqs{font-family:var(--fm);text-align:center;padding:.4rem 0 1.2rem}
.qeq{font-size:clamp(1.55rem,3.8vw,2.25rem);color:var(--ink);line-height:1.55}
.q-options{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:640px){.q-options{grid-template-columns:1fr}}
.opt{display:flex;align-items:center;gap:1rem;background:var(--bg2);border:1.5px solid var(--line2);border-radius:14px;
  padding:1rem 1.2rem;min-height:78px;cursor:pointer;font-family:var(--fm);font-size:clamp(1.3rem,3.2vw,1.7rem);
  text-align:left;color:var(--ink);transition:border-color .15s,background .15s}
.opt .key{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;
  font-family:var(--fb);font-size:1rem;color:var(--muted);font-weight:600}
.opt:hover:not(:disabled){border-color:var(--gold)}
.opt:disabled{cursor:default}
.opt.dim{opacity:.55}
.opt.correct{border-color:var(--good);background:var(--good-bg)}
.opt.correct .key{border-color:var(--good);color:var(--good)}
.opt.wrong{border-color:var(--bad);background:var(--bad-bg)}
.opt.wrong .key{border-color:var(--bad);color:var(--bad)}
.q-actions{display:flex;gap:1rem;margin-top:1.4rem;flex-wrap:wrap}
.hint-box{margin-top:1.3rem;border:1px dashed var(--gold-deep);background:rgba(210,164,77,.06);border-radius:12px;
  padding:1rem 1.2rem;display:flex;gap:.9rem;align-items:flex-start}
.hint-box .hstep{color:var(--gold-hi);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;flex:none;margin-top:.2rem}
.hint-box .htxt{line-height:1.7}
.feedback{margin-top:1.5rem;border-radius:16px;padding:1.3rem 1.4rem;border:1px solid var(--line2)}
.feedback.good{background:var(--good-bg);border-color:rgba(141,181,120,.45)}
.feedback.bad{background:var(--bad-bg);border-color:rgba(195,105,80,.45)}
.fb-head{display:flex;align-items:center;gap:.8rem;font-family:var(--fs);font-size:1.45rem;font-weight:600}
.feedback.good .fb-head{color:var(--good)}
.feedback.bad .fb-head{color:var(--bad)}
.fb-head svg{width:26px;height:26px}
.fb-sub{margin-top:.5rem;line-height:1.5}
.fb-sub .mth{font-size:1.1rem}
.fb-proof{margin-top:.4rem;color:var(--gold-hi);font-size:.92rem;line-height:1.5}
.fb-note{margin-top:.7rem;border-left:3px solid var(--bad);background:rgba(195,105,80,.1);padding:.6rem .9rem;
  border-radius:0 8px 8px 0;font-size:.88rem;color:var(--bad);line-height:1.5}
.feedback .steps{margin-top:1.1rem}
.feedback .btn{margin-top:1.2rem}
.wch-table{display:flex;flex-direction:column;gap:.45rem;margin-top:.6rem}
.wch{display:flex;align-items:center;gap:.9rem;padding:.5rem .9rem;border-radius:10px;border:1px solid var(--line);
  background:var(--card);flex-wrap:wrap}
.wch .t{font-family:var(--fm);font-size:1.1rem;min-width:110px}
.wch .v{font-family:var(--fm);color:var(--muted)}
.wch .verdict{margin-left:auto;font-weight:600;font-size:.85rem}
.wch.ok{border-color:rgba(141,181,120,.5)}
.wch.ok .verdict{color:var(--good)}
.wch.no .verdict{color:var(--bad)}

/* ===== GRAPH LAB calculator ===== */
.gl{background:var(--card);border:1px solid var(--line2);border-radius:16px;overflow:hidden}
.gl-head{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid var(--line)}
.gl-brand{font-family:var(--fs);font-weight:700;letter-spacing:.2em;font-size:1rem}
.gl-brand span{color:var(--gold)}
.gl-mode{font-size:.6rem;letter-spacing:.18em;color:var(--muted);font-weight:600}
.gl-exprs{background:#fff;max-height:216px;overflow-y:auto;border-bottom:1px solid #e2e0d8}
.gl-exprs.locked{opacity:.85}
.gl-row{display:flex;align-items:center;gap:8px;padding:4px 8px 2px;border-bottom:1px solid #f1efe7;flex-wrap:wrap}
.gl-dot{width:11px;height:11px;border-radius:50%;flex:none}
.gl-inp{flex:1;min-width:110px;border:1px solid transparent;background:#fff;color:#111;
  font-family:'STIX Two Text',serif;font-size:15.5px;padding:6px 8px;border-radius:8px;outline:none}
.gl-inp:focus{border-color:#2e6fb8}
.gl-del{border:none;background:none;color:#bab7ac;font-size:17px;cursor:pointer;padding:2px 6px;border-radius:6px;line-height:1}
.gl-del:hover{color:#c74440;background:#f6f4ee}
.gl-note{width:100%;font-size:11.5px;color:#8a877c;padding:0 8px 4px 26px;font-family:'Instrument Sans'}
.gl-row.err .gl-note{color:#c74440;font-weight:600}
.gl-cvwrap{position:relative;background:#fbfbf6}
.gl-cvwrap canvas{display:block;cursor:crosshair;touch-action:none}
.gl-tools{position:absolute;top:8px;right:8px;display:flex;gap:6px;z-index:3}
.gl-tools button{width:32px;height:32px;border-radius:8px;border:1px solid #d5d2c8;background:rgba(255,255,255,.93);
  color:#555;cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center}
.gl-tools button:hover{border-color:#2e6fb8;color:#2e6fb8}

/* coach bar */
#coachBar{margin-top:10px;background:var(--card);border:1px solid var(--gold-deep);border-radius:12px;padding:10px 13px;font-size:13px}
#coachBar:empty{display:none}
.cb-title{font-size:.66rem;letter-spacing:.28em;color:var(--gold);font-weight:700;margin-bottom:6px}
.cb-step{display:flex;gap:8px;align-items:baseline;padding:3px 0;color:var(--muted)}
.cb-step.ok{color:var(--good)}
.cb-ic{width:16px;flex:none;font-weight:700}
.cb-msg{margin-top:6px;border-top:1px dashed var(--line);padding-top:6px;color:var(--gold-hi);min-height:1.2em;line-height:1.5}
.cb-msg.warn{color:var(--bad)}

/* results */
.res-head{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}
.medal{width:110px;height:120px;flex:none}
.res-stats{display:flex;background:var(--card);border:1px solid var(--line2);border-radius:16px;overflow:hidden;margin-bottom:1.1rem;flex-wrap:wrap}
.stat{flex:1;min-width:130px;padding:1.2rem 1rem;text-align:center;border-right:1px solid var(--line)}
.stat:last-child{border-right:none}
.stat .v{font-family:var(--fs);font-size:2rem;font-weight:600;color:var(--gold-hi)}
.stat .l{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.perfect{border:1px solid var(--good);background:var(--good-bg);border-radius:14px;padding:1rem 1.4rem;
  margin-bottom:1.2rem;color:var(--good);font-family:var(--fs);font-size:1.2rem;font-weight:600;text-align:center}
.mtag{font-size:.64rem;letter-spacing:.1em;color:var(--bg);background:var(--gold);border-radius:6px;padding:2px 8px;
  text-transform:uppercase;font-weight:600;flex:none}
.mrow{display:flex;align-items:baseline;gap:1rem;padding:.85rem .2rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.mrow:last-child{border-bottom:none}
.mnum{font-size:.72rem;color:var(--faint);width:36px;flex:none}
.mq{flex:1;min-width:170px;line-height:1.45}
.mans{font-family:var(--fm)}
.mans.you{color:var(--bad)}
.mans.ok{color:var(--good)}
.mtime{font-family:var(--fm);font-size:.76rem;color:var(--faint);border:1px solid var(--line);border-radius:8px;padding:2px 9px;flex:none}
.lrow2{display:flex;align-items:center;gap:1rem;padding:.72rem .6rem;border-bottom:1px solid var(--line);font-size:.97rem}
.lrow2:last-child{border:none}
.lpos{width:32px;font-family:var(--fs);font-weight:700;color:var(--muted)}
.lname{flex:1}
.lstat{font-family:var(--fm);color:var(--muted)}
.lrow2.me{background:rgba(210,164,77,.1);border-radius:10px;border:1px solid var(--gold-deep)}
.lrow2.me .lname,.lrow2.me .lpos{color:var(--gold-hi)}

/* certificate */
.cert-outer{display:flex;justify-content:center;margin:1.8rem 0}
.cert{background:#f3ecd8;color:#241c10;width:100%;max-width:840px;padding:14px;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.cert-border{border:3px double #a5843f;padding:clamp(1.4rem,4vw,2.4rem) clamp(1.2rem,4vw,2.8rem);text-align:center}
.cert-brand{font-family:var(--fs);font-weight:700;letter-spacing:.3em;font-size:.95rem;color:#8a6a2a;margin-bottom:1.4rem}
.cert-brand span{color:#b03030}
.cert h3{font-family:var(--fs);font-size:clamp(1.5rem,4.5vw,2.3rem);font-weight:600;color:#241c10;margin-bottom:1.4rem}
.cert-p{color:#5c4d33;font-size:.93rem;letter-spacing:.06em}
.cert-name{font-family:var(--fs);font-size:clamp(1.7rem,6vw,2.8rem);font-weight:600;color:#7c5b1c;
  margin:.6rem 0 1.2rem;border-bottom:1px solid #c9b06a;display:inline-block;padding:0 2.5rem .4rem}
.cert-lesson{font-family:var(--fm);font-style:italic;font-size:clamp(1.1rem,3vw,1.4rem);color:#3a2f1c;margin:.4rem 0 1.2rem}
.cert-stats{font-family:var(--fm);color:#5c4d33;margin-bottom:1.8rem}
.cert-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:1rem;flex-wrap:wrap}
.sig-line{width:150px;border-top:1px solid #7a6640;margin-top:6px}
.sig{font-family:'Tangerine',cursive;font-size:2.1rem;color:#40331e;line-height:1}
.sig-role{font-size:.7rem;letter-spacing:.2em;color:#8a7a5c;text-transform:uppercase;margin-top:5px}
.cert-seal{width:108px;height:108px;flex:none}

#printOnly{display:none}
@media print{
  body>*{display:none!important}
  #printOnly{display:flex!important;justify-content:center;padding:0}
  #printOnly .cert{box-shadow:none}
}
#toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,80px);background:var(--card2);
  border:1px solid var(--gold-deep);color:var(--ink);padding:.9rem 1.5rem;border-radius:12px;z-index:90;
  opacity:0;transition:.35s;font-size:.95rem;pointer-events:none;max-width:90vw;text-align:center}
#toast.on{opacity:1;transform:translate(-50%,0)}
/* ============================================================
   v2 ADDITIONS — tables, regression, data tables, exam
   ============================================================ */
.gl-acts{display:flex;gap:6px}
.gl-add{border:1px solid var(--line2);background:var(--bg2);color:var(--gold-hi);
  font-size:.72rem;font-weight:600;letter-spacing:.05em;border-radius:8px;padding:5px 10px;cursor:pointer}
.gl-add:hover{border-color:var(--gold)}
.gl-trow{display:block;border-bottom:1px solid #f1efe7;padding:6px 8px;background:#fff}
.gl-trow .gl-table{width:100%}
.gl-thead{display:grid;grid-template-columns:18px 1fr 1fr;gap:6px;align-items:center;margin-bottom:4px}
.gl-thead span{font-family:'STIX Two Text',serif;font-size:14px;color:#333;font-style:italic}
.gl-tr{display:grid;grid-template-columns:1fr 1fr 22px;gap:6px;margin-bottom:4px;align-items:center}
.gl-cell{border:1px solid #e2e0d8;border-radius:7px;padding:5px 8px;font-family:'STIX Two Text',serif;
  font-size:14.5px;color:#111;background:#fff;outline:none;min-width:0;width:100%}
.gl-cell:focus{border-color:#2e6fb8}
.gl-cell.bad{border-color:#c74440}
.gl-trdel{border:none;background:none;color:#c9c6bb;cursor:pointer;font-size:14px;padding:0;line-height:1}
.gl-trdel:hover{color:#c74440}
.gl-note.gl-reg{color:#1d6b2e;font-weight:600}
.gl-note.gl-wait{color:#8a6a2a;font-weight:600}
.q-data{display:flex;justify-content:center;padding:.2rem 0 1.1rem}
.q-data table{border-collapse:collapse;background:var(--bg2);border:1px solid var(--line2);border-radius:10px;overflow:hidden}
.q-data th{font-family:var(--fm);font-style:italic;color:var(--gold-hi);font-weight:600;
  padding:.42rem 1.4rem;border-bottom:1px solid var(--line2);font-size:1.05rem}
.q-data td{font-family:var(--fm);text-align:center;padding:.38rem 1.4rem;color:var(--ink);
  border-bottom:1px solid var(--line);font-size:1.05rem}
.q-data tr:last-child td{border-bottom:none}
.opt .opttxt{font-family:var(--fb);font-size:.95rem;line-height:1.5}
/* ===== v3 ADDITIONS ===== */
#waFloat{position:fixed;left:14px;bottom:14px;z-index:70;width:52px;height:52px;border-radius:50%;
  background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.45);
  transition:transform .15s;text-decoration:none}
#waFloat:hover{transform:scale(1.1)}
#waFloat svg{width:30px;height:30px;display:block}
.cb-next{margin-top:8px;background:rgba(210,164,77,.12);border:1px dashed var(--gold-deep);
  border-radius:10px;padding:8px 10px;color:var(--gold-hi);line-height:1.5}
.cb-next .mth{font-family:var(--fm)}
.fb-note.pick{border-left-color:var(--gold);background:rgba(210,164,77,.08);color:var(--gold-hi)}
/* ===== v4 ADDITIONS — sliders, resume modal, statistics ===== */
.gl-note-wrap{width:100%}
.gl-sliders{width:100%}
.gl-sl{display:flex;align-items:center;gap:10px;padding:4px 8px 6px 26px}
.gl-sl-name{font-family:'STIX Two Text',serif;font-style:italic;font-size:15px;color:#1a4f8a;min-width:18px}
.gl-sl input[type=range]{flex:1;accent-color:#2e6fb8;height:22px;min-width:80px}
.gl-sl-val{font-family:'STIX Two Text',serif;font-size:14px;color:#111;min-width:42px;text-align:right}
.gl-sl-del{border:none;background:none;color:#c9c6bb;cursor:pointer;font-size:15px;padding:0 4px;line-height:1}
.gl-sl-del:hover{color:#c74440}
.gl-sl-add{display:inline-block;margin:2px 8px 6px 26px;border:1px dashed #2e6fb8;background:#f0f5fc;
  color:#1a4f8a;font-size:11.5px;font-weight:600;border-radius:8px;padding:4px 10px;cursor:pointer}
.gl-sl-add:hover{background:#e2ecf9}
.stop-back{position:fixed;inset:0;background:rgba(8,6,4,.84);z-index:85;display:none;place-items:center;padding:1rem}
.stop-back.on{display:grid}
.stop-card{background:var(--card);border:1px solid var(--gold-deep);border-radius:18px;
  padding:1.8rem 1.6rem;max-width:500px;width:100%;text-align:center}
.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1.2rem 0}
.mini{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:.8rem .3rem;text-align:center}
.mini .v{font-family:var(--fm);font-size:1.5rem;color:var(--gold-hi);font-weight:600}
.mini .l{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.25rem}
.st-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:1.2rem}
@media(max-width:820px){.st-hero{grid-template-columns:repeat(2,1fr)}}
.st-big{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:1.15rem .5rem;text-align:center}
.st-big .v{font-family:var(--fs);font-size:1.95rem;font-weight:600;color:var(--gold-hi);line-height:1.1}
.st-big .l{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:.35rem}
.st-row{display:flex;align-items:center;gap:1rem;padding:.9rem .4rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.st-row:last-child{border-bottom:none}
.st-num{width:38px;font-family:var(--fs);font-weight:700;color:var(--muted);font-size:1.05rem;flex:none;text-align:center}
.st-info{flex:1;min-width:200px}
.st-info b{display:block;font-size:.98rem}
.st-info small{display:block;color:var(--muted);font-size:.78rem;margin-top:.15rem}
.st-bar{width:100%;height:8px;border-radius:4px;background:var(--bg2);border:1px solid var(--line);overflow:hidden;margin-top:.5rem}
.st-bar i{display:block;height:100%;background:var(--gold)}
.st-score{font-family:var(--fm);color:var(--gold-hi);font-size:1.05rem;min-width:80px;text-align:center;flex:none}
.st-score small{display:block;color:var(--faint);font-psize:.64rem;letter-spacing:.14em;text-transform:uppercase}
/* ===== v5 — Bluebook palette, access codes, signature ===== */
#palette{display:none;margin-top:1rem;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:12px 14px}
#palette.on{display:block}
.pal-title{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:8px}
.pal-grid{display:flex;flex-wrap:wrap;gap:6px}
.pal-btn{width:38px;height:34px;border-radius:8px;border:1.5px solid var(--line2);background:var(--bg2);
  color:var(--muted);font-weight:600;font-size:.85rem;cursor:pointer;position:relative}
.pal-btn:hover{border-color:var(--gold)}
.pal-btn.done{background:rgba(210,164,77,.18);border-color:var(--gold-deep);color:var(--gold-hi)}
.pal-btn.cur{outline:2px solid var(--gold);outline-offset:1px}
.pal-btn.flag::after{content:'';position:absolute;top:3px;right:3px;width:8px;height:8px;border-radius:50%;background:#cf7f65}
.pal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;flex-wrap:wrap;gap:8px}
.opt.sel{border-color:var(--gold);background:rgba(210,164,77,.14)}
.opt.sel .key{border-color:var(--gold);color:var(--gold-hi)}
#qTimer.low{color:var(--bad);border-color:rgba(195,105,80,.6)}
#btnFlag.flagged{border-color:#cf7f65;color:#cf7f65}
.gm-inp2{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:10px;color:var(--ink);
  font-family:var(--fs);font-size:1.05rem;padding:.7rem 1rem;text-align:center;letter-spacing:.15em;
  text-transform:uppercase;margin-top:1rem}
.gm-inp2:focus{border-color:var(--gold);outline:none}
.sigwrap{display:inline-block;transform:rotate(-2deg)}
.sigwrap .sig{font-size:2.5rem}
.sig-flourish{width:150px;height:24px;display:block;margin:-2px 0 0 8px}
/* ===== v6 — access visibility + 20-question matches ===== */
#btnAccessTop{min-height:42px;font-weight:700}
.access-line{margin-top:.55rem;font-size:.85rem;color:var(--gold-hi);font-weight:600;letter-spacing:.02em;line-height:1.5}
.access-line b{color:var(--gold)}
.mchip.unlock{border-color:var(--gold-deep);background:rgba(210,164,77,.1);cursor:pointer;padding:10px 12px}
.mchip.unlock b{color:var(--gold-hi);font-size:.92rem}
.mchip.unlock span{color:var(--gold)}
.mchip.unlock em{color:var(--faint)}
.mchip.unlock:hover{border-color:var(--gold);background:rgba(210,164,77,.18)}
/* ===== v7 — ghost online, grid-in, diagnostic, full mock ===== */
.gridin-box{margin-top:.4rem;display:flex;flex-direction:column;gap:.5rem;align-items:center}
.gridin-lbl{font-size:.85rem;color:var(--muted);text-align:center}
.gridin-inp{background:var(--bg2);border:1.5px solid var(--gold-deep);border-radius:14px;color:var(--ink);
  font-family:var(--fm);font-size:1.6rem;text-align:center;padding:.85rem;width:100%;max-width:340px}
.gridin-inp:focus{border-color:var(--gold);outline:none}
.gh-lobby{max-width:660px;margin:0 auto}
.gh-card{background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:1.4rem 1.5rem;margin-bottom:1.1rem}
.gh-code{font-family:var(--fs);font-size:2.6rem;letter-spacing:.3em;text-indent:.3em;text-align:center;
  color:var(--gold-hi);background:var(--bg2);border:1.5px dashed var(--gold-deep);border-radius:14px;padding:1rem;margin:1rem 0}
.gh-status{text-align:center;color:var(--muted);min-height:1.4em;margin-top:.6rem;font-size:.9rem}
.gh-inp{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:12px;color:var(--ink);
  font-family:var(--fs);font-size:1.6rem;padding:.8rem;text-align:center;letter-spacing:.25em;text-transform:uppercase}
.gh-inp:focus{border-color:var(--gold);outline:none}
.duel-wrap{max-width:1240px;margin:0 auto}
.duel-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.dp{flex:1;min-width:140px;background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:.6rem 1rem;text-align:center}
.dp b{display:block;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dp .sc{font-family:var(--fm);font-size:1.8rem;color:var(--gold-hi);font-weight:600}
.dp.me{border-color:var(--gold-deep)}
.duel-mid{flex:none;text-align:center;min-width:160px}
.duel-mid .qn{font-size:.78rem;letter-spacing:.15em;color:var(--muted);text-transform:uppercase;font-weight:700}
.duel-timer{height:8px;border-radius:4px;background:var(--card);border:1px solid var(--line);overflow:hidden;margin-top:6px}
.duel-timer i{display:block;height:100%;background:var(--gold);width:100%}
.duel-grid{display:grid;grid-template-columns:minmax(0,1fr) 480px;gap:1.2rem;align-items:start}
@media(max-width:1100px){.duel-grid{grid-template-columns:1fr}}
.duel-q{background:var(--card);border:1px solid var(--line2);border-radius:18px;padding:clamp(1.1rem,3vw,2rem)}
.dbtn{display:flex;align-items:center;gap:1rem;background:var(--bg2);border:1.5px solid var(--line2);border-radius:14px;
  padding:.85rem 1.1rem;min-height:62px;cursor:pointer;font-family:var(--fm);font-size:clamp(1.2rem,3vw,1.55rem);
  text-align:left;color:var(--ink);width:100%;margin-bottom:.7rem}
.dbtn .key{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line2);display:grid;
  place-items:center;font-family:var(--fb);font-size:.95rem;color:var(--muted);font-weight:600}
.dbtn:hover:not(:disabled){border-color:var(--gold)}
.dbtn:disabled{cursor:default}
.dbtn.correct{border-color:var(--good);background:var(--good-bg)}
.dbtn.wrong{border-color:var(--bad);background:var(--bad-bg)}
.dbtn.dim{opacity:.5}
.d-stat{text-align:center;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-hi);
  font-weight:700;min-height:1.5em;margin-top:.8rem}
.gh-res{text-align:center;padding:1.6rem 1rem}
.gh-res h1{font-size:2.1rem}
.mk-row{display:flex;align-items:center;gap:1rem;padding:.7rem 0;flex-wrap:wrap}
.mk-row b{min-width:135px}
.mk-row .st-bar{flex:1;min-width:150px}
.mk-row span{font-family:var(--fm);color:var(--gold-hi)}
.mk-cmp{font-size:1.02rem;padding:1rem 1.2rem;background:var(--bg2);border-radius:12px;margin-top:.8rem;line-height:1.7}
.up{color:var(--good);font-weight:700}
.down{color:var(--bad);font-weight:700}
.diag-rec .row{margin-top:.8rem}