: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.9rem,4vw,2.7rem)}
h2{font-family:var(--fs); font-weight:600; font-size:1.35rem; color:var(--gold); margin-bottom:1rem; letter-spacing:.03em}
h3{font-family:var(--fs); font-weight:600}
.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)}
.vx{font-style:italic; padding:0 .04em}

#topbar{position:sticky; top:0; z-index:40; display:flex; justify-content:space-between; align-items:center;
  padding:.7rem clamp(1rem,3vw,2.2rem); background:rgba(15,13,10,.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--line)}
#topbar.hidden{display:none}
.tb-left{display:flex; align-items:center; gap:1rem}
.tb-logo{font-family:var(--fs); font-weight:700; font-size:1.5rem; letter-spacing:.18em}
.tb-logo span{color:var(--gold)}
.tb-emb{width:26px; height:26px; display:inline-block; flex:none}
.tb-emb svg{width:100%; height:100%; display:block}
.tb-lesson{font-size:.85rem; color:var(--muted); letter-spacing:.08em; text-transform:uppercase}
.tb-right{display:flex; align-items:center; gap:.6rem}
.tb-timer{font-family:var(--fm); font-size:1.15rem; color:var(--gold-hi); min-width:74px; text-align:right}
.icon-btn{width:44px;height:44px;border-radius:10px;border:1px solid var(--line2);background:transparent;color:var(--muted);cursor:pointer;display:grid;place-items:center}
.icon-btn:hover{color:var(--gold-hi); border-color:var(--gold-deep)}
.icon-btn svg{width:20px;height:20px}

.screen{display:none; min-height:calc(100vh - 60px); padding:clamp(1.2rem,3vw,2.5rem) clamp(1rem,4vw,3rem)}
.screen.on{display:block}
.wrap{max-width:1080px; margin:0 auto}
.wrap-wide{max-width:1420px; margin:0 auto}
.panel.narrow{max-width:560px; margin:6vh auto 0; background:var(--card); border:1px solid var(--line2); border-radius:18px; padding:clamp(1.6rem,4vw,3rem); 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:.85rem 1.7rem; 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; color:var(--ink); border-color:var(--line2)}
.btn.ghost:hover{border-color:var(--gold); color:var(--gold-hi)}
.btn.big{font-size:1.12rem; padding:1.05rem 2.4rem; min-height:60px}
.btn.small{padding:.5rem 1rem; font-size:.9rem; min-height:44px}
.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}

/* ===== Splash ===== */
#scr-splash{display:none; align-items:center; justify-content:center; text-align:center}
#scr-splash.on{display:flex}
.splash-inner{display:flex; flex-direction:column; align-items:center; gap:1.6rem}
.logo-block{display:flex; flex-direction:column; align-items:center}
.logo-word{font-family:var(--fs); font-weight:600; font-size:clamp(110px,23vw,225px);
  letter-spacing:.14em; text-indent:.14em; line-height:1; color:var(--ink)}
.logo-word span{color:var(--gold)}
.logo-tag{margin-top:1.2rem; font-size:clamp(.7rem,1.8vw,.92rem); 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.5rem}
.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-credit{font-size:1rem; color:var(--muted); letter-spacing:.12em}
.splash-credit b{color:var(--ink); font-family:var(--fs); font-size:1.12rem}
.splash-sub{font-size:.9rem; color:var(--faint)}
@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}

/* ===== Teacher choose ===== */
.tchoose{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.6rem}
@media(max-width:560px){.tchoose{grid-template-columns:1fr}}
.tcard{background:var(--bg2); border:1.5px solid var(--line2); border-radius:16px; padding:1.3rem 1rem;
  cursor:pointer; text-align:center; color:var(--ink); transition:border-color .15s, background .15s}
.tcard:hover{border-color:var(--gold-deep)}
.tcard.sel{border-color:var(--gold); background:rgba(210,164,77,.09)}
.tcard .emb{width:66px; height:66px; margin:0 auto .6rem; display:block}
.tcard .emb svg{width:100%; height:100%; display:block}
.tcard h3{font-size:1.18rem; margin-bottom:.3rem}
.tcard.sel h3{color:var(--gold-hi)}
.tcard .ttag{font-size:.78rem; color:var(--muted); letter-spacing:.06em}
.tcard .tchk{margin-top:.6rem; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--faint); font-weight:700}
.tcard.sel .tchk{color:var(--gold)}
.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}
.emb-xs{display:inline-block; width:26px; height:26px; vertical-align:-6px; margin-right:8px}
.emb-xs svg{width:100%; height:100%; display:block}

/* ===== Hub ===== */
.hub-head{display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:2rem; flex-wrap:wrap}
.lrow{display:flex; align-items:center; gap:clamp(.9rem,3vw,2rem); padding:1.4rem .4rem; border-bottom:1px solid var(--line)}
.lrow:first-child{border-top:1px solid var(--line)}
.lnum{font-family:var(--fs); font-size:clamp(2.2rem,5vw,3.4rem); font-weight:600; color:var(--gold); width:84px; text-align:center; flex:none}
.gemb{width:70px; flex:none; display:grid; place-items:center}
.gemb svg{width:58px; height:58px; display:block}
.linfo{flex:1; min-width:0}
.linfo h3{font-size:clamp(1.1rem,2.4vw,1.45rem); margin-bottom:.25rem}
.linfo p{color:var(--muted); font-size:.95rem}
.lmeta{margin-top:.45rem; font-size:.82rem; color:var(--gold-hi); letter-spacing:.04em}
.lmeta.lockline{color:var(--faint)}
.lact{flex:none}
.lrow.locked .lnum{color:var(--faint)}
.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); display:flex; align-items:center; gap:.8rem}
.hub-progress b{color:var(--gold-hi); font-family:var(--fm); font-size:1.05rem}
.lockic{width:18px;height:18px;color:var(--gold)}

/* ===== Intro ===== */
.btn-back{margin-bottom:1.4rem}
.intro-head{margin-bottom:1.8rem}
.intro-grid{display:grid; grid-template-columns:1fr 1.25fr; gap:1.2rem; margin-bottom:1.4rem}
.intro-grid2{display:grid; grid-template-columns:minmax(0,1fr) 430px; gap:1.4rem; align-items:start}
@media(max-width:1150px){.intro-grid{grid-template-columns:1fr} .intro-grid2{grid-template-columns:1fr}}
.card{background:var(--card); border:1px solid var(--line2); border-radius:16px; padding:1.5rem 1.6rem}
.card.method{border-color:var(--gold-deep)}
#skillList{list-style:none; display:flex; flex-direction:column; gap:.75rem}
#skillList li{padding-left:1.4rem; position:relative; line-height:1.5}
#skillList 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.6rem; 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}
.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)}
.method-actions{margin-top:1.1rem}
.worked-q{font-size:1.1rem; margin-bottom:1.1rem; color:var(--muted)}
.worked-q .wq{font-family:var(--fm); font-size:1.45rem; 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:.98rem}
.step-body b{color:var(--gold-hi)}
.step-body .mth{font-size:1.08rem}
.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.12rem; min-width:90px}
.wch .v{font-family:var(--fm); color:var(--muted)}
.wch .verdict{margin-left:auto; font-weight:600; font-size:.85rem; letter-spacing:.06em}
.wch.ok{border-color:rgba(141,181,120,.5)} .wch.ok .verdict{color:var(--good)}
.wch.no .verdict{color:var(--bad)}

/* ===== Quiz + calculator beside ===== */
.quiz-layout{display:grid; grid-template-columns:minmax(0,1fr) 430px; gap:1.4rem; max-width:1420px; margin:0 auto; align-items:start}
.quiz-main{min-width:0}
@media(max-width:1150px){
  .quiz-layout{grid-template-columns:1fr; max-width:940px}
  .calc-side{position:static !important; max-width:460px; margin:0 auto}
}
.calc-side{position:sticky; top:74px; width:100%; justify-self:end; z-index:5}
.calc-launch{display:none; width:100%; min-height:130px; border:1.5px dashed var(--line2); border-radius:16px;
  background:var(--card); color:var(--muted); cursor:pointer; font-size:1.05rem; flex-direction:column; gap:.6rem; align-items:center; justify-content:center; font-weight:600}
.calc-launch:hover{border-color:var(--gold); color:var(--gold-hi)}
.calc-launch svg{width:34px; height:34px}
.calc-side.closed .calc-launch{display:flex}
.q-meta{display:flex; align-items:center; gap:.8rem; margin-bottom:1.2rem; flex-wrap:wrap}
.chip{background:var(--card); border:1px solid var(--line2); border-radius:99px; padding:.45rem 1rem; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); font-weight:600}
.chip.plain{color:var(--muted)}
.q-progress{flex:1; min-width:180px; height:12px; border-radius:6px; background:var(--card); border:1px solid var(--line); position:relative}
.q-progress-fill{position:absolute; inset:1px; width:0%; border-radius:5px; background:var(--gold); transition:width .4s}
.q-ticks{position:absolute; inset:0}
.q-tick{position:absolute; top:50%; width:10px; height:10px; transform:translate(-50%,-50%) rotate(45deg); background:var(--bg); border:1.5px solid var(--gold); border-radius:2px}
.q-card{background:var(--card); border:1px solid var(--line2); border-radius:18px; padding:clamp(1.4rem,4vw,2.6rem)}
.q-prompt{font-size:.85rem; letter-spacing:.28em; text-transform:uppercase; color:var(--muted); margin-bottom:1rem}
.q-expr{font-family:var(--fm); font-size:clamp(1.9rem,5vw,2.9rem); text-align:center; padding:1.1rem 0 1.9rem; color:var(--ink)}
.q-options{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
@media(max-width:700px){.q-options{grid-template-columns:1fr}}
.opt{display:flex; align-items:center; gap:1.1rem; background:var(--bg2); border:1.5px solid var(--line2); border-radius:14px;
  padding:1rem 1.2rem; min-height:84px; cursor:pointer; font-family:var(--fm); font-size:clamp(1.35rem,3.4vw,1.8rem);
  text-align:left; color:var(--ink); transition:border-color .15s, background .15s; touch-action:manipulation}
.opt .key{flex:none; width:46px; height:46px; 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:hover:not(:disabled) .key{border-color:var(--gold); color:var(--gold-hi)}
.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.6rem; flex-wrap:wrap}
.hint-box{margin-top:1.4rem; 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:.8rem; 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.6rem; border-radius:16px; padding:1.4rem 1.5rem; 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.5rem; font-weight:600}
.feedback.good .fb-head{color:var(--good)}
.feedback.bad .fb-head{color:var(--bad)}
.fb-head svg{width:28px; height:28px}
.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}
.feedback .steps{margin-top:1.2rem}
.feedback .btn{margin-top:1.3rem}

/* ===== Stop modal ===== */
.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}

/* ===== Ghost setup ===== */
#gmNames{display:grid; grid-template-columns:1fr 1fr; gap:.7rem}
@media(max-width:560px){#gmNames{grid-template-columns:1fr}}
.gm-field{margin-top:1.3rem; text-align:left}
.gm-field label{display:block; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); margin-bottom:.5rem; font-weight:600}
.gm-inp{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}
.gm-inp:focus{border-color:var(--gold); outline:none}
.seg{display:flex; gap:.5rem}
.seg button{flex:1; min-height:48px; border:1.5px solid var(--line2); background:var(--bg2); color:var(--ink); border-radius:12px; cursor:pointer; font-weight:600; font-size:1rem; touch-action:manipulation}
.seg button.sel{border-color:var(--gold); color:var(--gold-hi); background:rgba(210,164,77,.1)}

/* ===== GHOST VERTICAL DUEL — نص فوق شقلب ونص تحت معدول، بدون سكرول ===== */
#scr-ghost-duel{padding:.5rem .8rem}
#scr-ghost-duel.on{display:flex; flex-direction:column; height:calc(100vh - 70px); min-height:0; overflow:hidden}
.dv-mid{display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; flex:none; max-width:960px; margin:0 auto; width:100%}
.dv-turn{font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:700; flex:1; text-align:center; min-width:140px}
.dv-timer{flex:none; height:6px; max-width:960px; width:100%; margin:6px auto 8px; background:var(--bg2); border:1px solid var(--line); border-radius:3px; overflow:hidden}
.dv-timer-fill{height:100%; width:100%; background:var(--gold); transition:width .12s linear}
.dv-timer-fill.low{background:var(--bad)}
.duelv{flex:1; display:flex; flex-direction:column; gap:10px; max-width:960px; margin:0 auto; width:100%; min-height:0}
.dv-half{flex:1; display:flex; flex-direction:column; justify-content:center; min-height:0; overflow:hidden;
  border:2px solid var(--line2); border-radius:14px; padding:8px 14px 10px; background:var(--card)}
.dv-half.top{border-color:rgba(210,164,77,.6); transform:rotate(180deg)}
.dv-half.bottom{border-color:rgba(154,134,202,.6)}
.dv-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; flex:none}
.dv-name{font-family:var(--fs); font-size:clamp(1.05rem,2.4vh,1.35rem); font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:75%}
.top .dv-name{color:var(--gold-hi)} .bottom .dv-name{color:#c3b3e0}
.dv-score{font-family:var(--fm); font-size:clamp(1.3rem,3.2vh,1.8rem); font-weight:600; color:var(--gold-hi); flex:none}
.bottom .dv-score{color:#c3b3e0}
.dv-expr{font-family:var(--fm); font-size:clamp(1.15rem,3.6vh,2rem); font-weight:600; text-align:center; color:var(--ink); padding:2px 0 8px; flex:none}
.dv-opts{display:grid; grid-template-columns:repeat(4,1fr); gap:7px; flex:none}
@media(max-width:720px){.dv-opts{grid-template-columns:repeat(2,1fr)}}
.dv-opt{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; background:var(--bg2);
  border:1.5px solid var(--line2); border-radius:10px; padding:6px 4px; min-height:clamp(54px,10vh,84px); cursor:pointer;
  font-family:var(--fm); font-size:clamp(1rem,2.9vh,1.4rem); color:var(--ink); touch-action:manipulation; text-align:center}
.dv-opt .k{font-family:var(--fb); font-size:clamp(.6rem,1.4vh,.72rem); letter-spacing:.16em; color:var(--faint); font-weight:700}
.dv-opt:hover:not(:disabled){border-color:var(--gold)}
.dv-opt:disabled{cursor:default}
.dv-opt.dim{opacity:.5}
.dv-opt.correct{border-color:var(--good); background:var(--good-bg)}
.dv-opt.wrong{border-color:var(--bad); background:var(--bad-bg)}
.dv-stat{text-align:center; font-size:clamp(.7rem,1.6vh,.85rem); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:700; min-height:1.2em; margin-top:5px; flex:none}
.dv-stat.ok{color:var(--good)} .dv-stat.no{color:var(--bad)}
.champ-row{display:flex; align-items:center; gap:1.1rem}
.emb-s{width:44px; height:44px; display:inline-block; flex:none}
.emb-s svg{width:100%; height:100%; display:block}
.champ-name{font-family:var(--fs); font-size:1.7rem; color:var(--gold-hi); font-weight:600}

/* ===== CASIO ===== */
#calcHolder{display:none}
#casio{width:100%; user-select:none; -webkit-user-select:none}
#casio:focus{outline:none}
#casio:focus-visible{outline:3px solid var(--gold); outline-offset:8px; border-radius:26px}
.cz-body{background:linear-gradient(160deg,#45484f 0%,#2c2e33 42%,#232529 100%); border:1px solid #16171a;
  border-radius:22px 22px 13px 13px; padding:15px 15px 17px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15), inset 0 -3px 8px rgba(0,0,0,.5), 0 22px 50px rgba(0,0,0,.5)}
.cz-head{display:flex; justify-content:space-between; align-items:center; padding:0 4px 10px}
.cz-brand{color:#d9d6d0; font-weight:700; letter-spacing:.22em; font-size:1.02rem; font-family:var(--fs)}
.cz-model{display:block; font-family:var(--fb); font-size:.55rem; letter-spacing:.14em; color:#8f939b; margin-top:2px}
.cz-solar{width:86px; height:22px; border-radius:3px; border:1px solid #0d1215;
  background:repeating-linear-gradient(90deg,#1d2a30 0 6px,#12262e 6px 12px); box-shadow:inset 0 0 5px rgba(0,0,0,.85)}
.cz-bezel{background:linear-gradient(150deg,#b9bfc7,#8f959e 60%,#a7adb5); border-radius:9px; padding:9px 10px;
  border:1px solid #6f747c; box-shadow:inset 0 2px 3px rgba(255,255,255,.55), inset 0 -2px 4px rgba(0,0,0,.4)}
.cz-lcd{background:linear-gradient(170deg,#c2cfb4,#b3c2a4 70%,#bcc9ad); border-radius:4px; padding:6px 10px 8px;
  min-height:110px; display:flex; flex-direction:column; box-shadow:inset 0 2px 6px rgba(0,0,0,.35); color:#232b1c; font-family:var(--fm)}
.cz-status{display:flex; gap:1em; font-size:.5rem; font-weight:700; letter-spacing:.13em; color:rgba(35,43,28,.18); font-family:var(--fb); align-items:baseline}
.cz-status span.on{color:#26301d}
.cz-status .cz-comp{margin-left:auto; color:#4a5540}
.cz-line1{font-size:1.25rem; min-height:34px; white-space:nowrap; overflow-x:auto; margin-top:8px; scrollbar-width:none; text-align:left}
.cz-line1::-webkit-scrollbar{display:none}
.cz-line2{font-size:1.7rem; font-weight:600; min-height:44px; text-align:right; white-space:nowrap; overflow-x:auto; scrollbar-width:none}
.cz-line2::-webkit-scrollbar{display:none}
.cz-line2.small{font-size:.92rem; font-weight:400; text-align:left; color:#41503a}
.cz-cursor{display:inline-block; width:2px; height:1.1em; background:#232b1c; vertical-align:-.18em; animation:czblink 1.05s steps(1) infinite}
@keyframes czblink{50%{opacity:0}}
.cz-keys{display:grid; grid-template-columns:repeat(5,1fr); gap:9px; margin-top:14px}
.cz{position:relative; height:58px; border-radius:9px; border:none; cursor:pointer; font-weight:600; color:#e8e6e0; font-size:1.2rem;
  background:linear-gradient(180deg,#4b4f56 0%,#34373d 55%,#2b2e33 100%);
  box-shadow:0 3px 0 #191b1e, 0 5px 8px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.14);
  display:grid; place-items:center; touch-action:manipulation; -webkit-tap-highlight-color:transparent}
.cz:active{transform:translateY(2px); box-shadow:0 1px 0 #191b1e, 0 2px 4px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.08)}
.cz span{pointer-events:none}
.cz.num{background:linear-gradient(180deg,#f4f2ec,#dcd9d0 55%,#cfcbc0); color:#22252a;
  box-shadow:0 3px 0 #a29e93, 0 5px 8px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.7)}
.cz.num:active{box-shadow:0 1px 0 #a29e93, inset 0 1px 0 rgba(255,255,255,.5)}
.cz.k-fn{font-size:.84rem; letter-spacing:.05em}
.cz.k-exp{font-size:.8rem}
.cz.k-op{font-size:1.35rem}
.cz.k-eq{grid-column:span 2; background:linear-gradient(180deg,#5a5e66,#3d4046 60%,#33363c); font-size:1.55rem}
.cz.k-shift{color:#e8c53c; font-size:.8rem; letter-spacing:.12em}
.cz.k-alpha{color:#e05747; font-size:.8rem; letter-spacing:.12em}
.cz.k-ac{color:#e6685a; font-size:.95rem; letter-spacing:.08em}
.cz.k-calc{color:#ecc87e; font-size:.9rem; letter-spacing:.1em}
.cz .fx-main.mth{font-family:var(--fm)}
.cz .fx-top{position:absolute; top:4px; left:0; right:0; text-align:center; font-size:.74rem; font-weight:700; line-height:1}
.cz .fx-top.red{color:#f0776a; font-style:italic; font-family:var(--fm)}
.cz .fx-top.yellow{color:#e8c53c; letter-spacing:.08em; font-family:var(--fb); font-size:.6rem}
.cz.has-top .fx-main{margin-top:10px}
.k-replay{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; height:58px}
.czr-pad{position:relative; width:46px; height:46px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #4b4f56, #2b2e33 72%);
  box-shadow:0 3px 0 #191b1e, inset 0 1px 0 rgba(255,255,255,.16)}
.czr{position:absolute; top:0; width:50%; height:100%; background:none; border:none; color:#cfd2d8; cursor:pointer; font-size:.9rem; display:grid; place-items:center; padding:0; touch-action:manipulation}
.czr-l{left:0; border-radius:23px 0 0 23px}
.czr-r{right:0; border-radius:0 23px 23px 0}
.czr:hover{color:#ecc87e}
.czr-cap{font-size:.48rem; letter-spacing:.3em; color:#8a8d94}
.cz-coach{margin-top:12px; background:var(--card); border:1px solid var(--line2); border-radius:14px; padding:.8rem 1rem; font-size:.78rem; color:var(--muted); line-height:1.7}
.cz-coach b{color:var(--gold-hi)}
.cz-avoid{color:#e08a6f; font-weight:600; border-top:1px dashed var(--line); margin-top:.5rem; padding-top:.5rem}
.cz-avoid b{color:#e08a6f}

/* ===== Game ===== */
.game-head{display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:.6rem; flex-wrap:wrap}
.game-hud{font-family:var(--fm); font-size:1.25rem; color:var(--gold-hi)}
.game-stage{position:relative; background:#131009; border:1px solid var(--line2); border-radius:14px; overflow:hidden;
  max-width:1080px; margin:0 auto; width:100%;}
#gameCv{display:block; width:100%; height:auto; touch-action:none; cursor:crosshair}
.g-overlay{position:absolute; inset:0; background:rgba(12,9,6,.94); display:none; text-align:center;
  padding:1rem; overflow-y:auto; -webkit-overflow-scrolling:touch; z-index:2;
  align-items:center; justify-content:center}
.g-overlay.on{display:flex}
.g-box{max-width:520px; width:100%; margin:auto; padding:.4rem 0}
.g-box h2{font-size:clamp(1.3rem,5vw,2rem); color:var(--ink); font-family:var(--fs); margin-bottom:0}
.g-box p{color:var(--muted); line-height:1.6; margin:.7rem 0 1.1rem; font-size:1rem}
.g-box .btn{min-height:60px; min-width:200px; font-size:1.1rem}
@media(max-width:520px){ .g-box .btn{width:100%; min-width:0} }
#gFloatSkip{position:fixed; right:14px; bottom:14px; z-index:82; min-height:48px; min-width:120px;
  background:rgba(33,26,19,.95); font-size:.9rem}

/* ===== Results ===== */
.res-head{display:flex; align-items:center; gap:1.6rem; margin-bottom:1.6rem; flex-wrap:wrap}
.medal{width:118px; height:128px; flex:none}
.medal.sm{width:36px; height:40px}
#resPraise{margin-top:.4rem; color:var(--muted); font-size:1.02rem}
.res-stats{display:flex; background:var(--card); border:1px solid var(--line2); border-radius:16px; overflow:hidden; margin-bottom:1.2rem; flex-wrap:wrap}
.stat{flex:1; min-width:140px; padding:1.3rem 1rem; text-align:center; border-right:1px solid var(--line)}
.stat:last-child{border-right:none}
.stat .v{font-family:var(--fs); font-size:2.1rem; font-weight:600; color:var(--gold-hi)}
.stat .l{font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); margin-top:.3rem}
.rule-line{font-size:.85rem; color:var(--faint); margin:.9rem 0 1.2rem; padding-left:1.2rem; line-height:1.6}
.rule-line b{color:var(--gold)}
.mtag{font-size:.66rem; letter-spacing:.12em; 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:.9rem .2rem; border-bottom:1px solid var(--line); flex-wrap:wrap}
.mrow:last-child{border-bottom:none}
.mq{font-family:var(--fm); font-size:1.18rem; min-width:210px}
.mnum{font-size:.72rem; color:var(--faint); width:36px; flex:none}
.mans{font-family:var(--fm); font-size:1.1rem}
.mans.you{color:var(--bad)} .mans.ok{color:var(--good)}
.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.25rem; font-weight:600; text-align:center}
.lrow2{display:flex; align-items:center; gap:1rem; padding:.75rem .6rem; border-bottom:1px solid var(--line); font-size:.98rem}
.lrow2:last-child{border:none}
.lpos{width:34px; font-family:var(--fs); font-weight:700; color:var(--muted); font-size:1.1rem}
.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.6rem) clamp(1.2rem,4vw,3rem); text-align:center}
.cert-brand{font-family:var(--fs); font-weight:700; letter-spacing:.35em; font-size:1rem; color:#8a6a2a; margin-bottom:1.6rem}
.cert-brand span{color:#b03030}
.cert h3{font-family:var(--fs); font-size:clamp(1.6rem,4.5vw,2.5rem); font-weight:600; color:#241c10; margin-bottom:1.6rem}
.cert-p{color:#5c4d33; font-size:.95rem; letter-spacing:.06em}
.cert-name{font-family:var(--fs); font-size:clamp(1.8rem,6vw,3rem); font-weight:600; color:#7c5b1c; margin:.6rem 0 1.4rem; 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.15rem,3vw,1.5rem); color:#3a2f1c; margin:.5rem 0 1.3rem}
.cert-stats{font-family:var(--fm); color:#5c4d33; margin-bottom:2rem}
.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.2rem; color:#40331e; line-height:1}
.sig-role{font-size:.72rem; letter-spacing:.2em; color:#8a7a5c; text-transform:uppercase; margin-top:5px}
.cert-seal{width:110px; height:110px; flex:none}
.cert-emb{width:38px; height:38px; display:inline-block}
.cert-emb svg{width:100%; height:100%; display:block}
#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)}
/* ============================================================
   v6 ADDITIONS — Factor or Not Factor
   ============================================================ */

/* ----- Statistics Center ----- */
.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:180px}
.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-size:.64rem; letter-spacing:.14em; text-transform:uppercase}
.st-locked{color:var(--faint); font-style:italic}
.stats-foot{display:flex; gap:1rem; justify-content:center; margin-top:1.4rem; flex-wrap:wrap}

/* ----- Per-question timing (results & mistakes) ----- */
.mtime{font-family:var(--fm); font-size:.78rem; color:var(--faint); border:1px solid var(--line); border-radius:8px; padding:2px 9px; flex:none}
.mtime.slow{color:var(--bad); border-color:rgba(195,105,80,.45)}
.qtime-grid{display:flex; gap:.7rem; flex-wrap:wrap; margin:.2rem 0 .8rem}
.qtime-chip{background:var(--bg2); border:1px solid var(--line); border-radius:10px; padding:.5rem .9rem; font-size:.85rem; color:var(--muted)}
.qtime-chip b{font-family:var(--fm); color:var(--gold-hi); font-size:1rem}

/* ----- Mistake review ----- */
.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; font-family:var(--fb)}
.rev-pill:hover{background:rgba(195,105,80,.22)}
.rev-pill svg{width:15px; height:15px}
.fix-pill{display:inline-flex; align-items:center; gap:.45rem; background:var(--good-bg); border:1px solid rgba(141,181,120,.5); color:var(--good); border-radius:99px; padding:.42rem .95rem; font-size:.82rem; font-weight:600}
/* ===== Contact placements ===== */
.splash-contact{font-size:.92rem; color:var(--gold-hi); letter-spacing:.12em; font-weight:600}
.cert-contact{font-size:.78rem; color:#8a6a2a; letter-spacing:.2em; text-transform:uppercase; font-weight:600; margin:-1.2rem 0 1.5rem}
#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}