/* Hamshagerdi Academy — Mini App design system (icy turquoise) */
@font-face{font-family:Vazirmatn;src:url(fonts/vz-ar-400.woff2) format('woff2');font-weight:400;unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(fonts/vz-ar-500.woff2) format('woff2');font-weight:500;unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(fonts/vz-ar-700.woff2) format('woff2');font-weight:700;unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(fonts/vz-ar-800.woff2) format('woff2');font-weight:800;unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200E;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(fonts/vz-la-400.woff2) format('woff2');font-weight:400;unicode-range:U+0000-00FF;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(fonts/vz-la-700.woff2) format('woff2');font-weight:700;unicode-range:U+0000-00FF;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/in-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/in-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/in-700.woff2) format('woff2');font-weight:700;font-display:swap}

:root{
  --ice-50:#effcfc;--ice-100:#d5f7f7;--ice-200:#a9eeef;--ice-300:#74e0e3;--ice-400:#3fcbd1;--ice-500:#1fafb7;--ice-600:#168c94;--ice-700:#136f76;--ice-800:#11555b;
  --brand:var(--ice-400);--brand-strong:var(--ice-600);
  --bg:#f3fbfb;--bg-2:#e8f7f8;--card:#ffffff;--card-2:#f7fdfd;--line:#d9eff0;--text:#0b2a33;--muted:#5b7a82;--soft:#89a6ad;
  --ok:#14b88a;--ok-bg:#e3f8f1;--bad:#e5484d;--bad-bg:#fdecec;--warn:#f0a020;--warn-bg:#fff4e0;--info:#3b82f6;
  --shadow:0 10px 30px -12px rgba(19,111,118,.28),0 2px 6px rgba(19,111,118,.06);
  --shadow-lg:0 24px 60px -20px rgba(19,111,118,.38);
  --r:20px;--r-sm:14px;--nav-h:68px;
  --fs:16px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#06171c;--bg-2:#0a2127;--card:#0d2a31;--card-2:#10323a;--line:#173f47;--text:#e6fbfb;--muted:#9fc2c7;--soft:#6f979d;
  --ok-bg:#0d3a30;--bad-bg:#3b1618;--warn-bg:#3a2a0d;--shadow:0 10px 30px -12px rgba(0,0,0,.6);--shadow-lg:0 24px 60px -20px rgba(0,0,0,.7);color-scheme:dark}}
:root[data-theme="dark"]{--bg:#06171c;--bg-2:#0a2127;--card:#0d2a31;--card-2:#10323a;--line:#173f47;--text:#e6fbfb;--muted:#9fc2c7;--soft:#6f979d;
  --ok-bg:#0d3a30;--bad-bg:#3b1618;--warn-bg:#3a2a0d;--shadow:0 10px 30px -12px rgba(0,0,0,.6);--shadow-lg:0 24px 60px -20px rgba(0,0,0,.7);color-scheme:dark}
:root[data-size="lg"]{--fs:18.5px}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{font-family:Vazirmatn,Inter,system-ui,sans-serif;font-size:var(--fs);line-height:1.75;background:var(--bg);color:var(--text);min-height:100vh;
  background-image:radial-gradient(1200px 500px at 110% -10%,rgba(63,203,209,.18),transparent 60%),radial-gradient(800px 400px at -20% 0%,rgba(169,238,239,.25),transparent 60%);
  background-attachment:fixed;overscroll-behavior-y:none}
.en,[lang=en]{font-family:Inter,Vazirmatn,system-ui,sans-serif;direction:ltr;unicode-bidi:isolate}
svg.i{width:22px;height:22px;flex:none;vertical-align:middle}
svg.i.sm{width:18px;height:18px} svg.i.lg{width:28px;height:28px} svg.i.xl{width:40px;height:40px}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
a{color:var(--brand-strong)}
#app{max-width:640px;margin:0 auto;padding:14px 16px calc(var(--nav-h) + 28px + env(safe-area-inset-bottom))}
#app.player{padding-bottom:calc(120px + env(safe-area-inset-bottom))}

/* top */
.top{display:flex;align-items:center;gap:12px;margin:4px 0 18px}
.top .logo{width:44px;height:44px;border-radius:14px;box-shadow:var(--shadow)}
.top h1{font-size:1.15rem;margin:0;font-weight:800;letter-spacing:-.2px}
.top small{display:block;color:var(--muted);font-size:.8rem;font-weight:500;margin-top:-4px}
.top .sp{flex:1}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-weight:700;font-size:.85rem;box-shadow:var(--shadow)}
.chip.fire{color:#f06a1f}.chip.star{color:#d99a00}
.chip.brand{background:linear-gradient(135deg,var(--ice-100),var(--ice-200));color:var(--ice-800);border-color:transparent}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);margin-bottom:14px;position:relative;overflow:hidden}
.card h2{font-size:1.05rem;margin:0 0 6px;font-weight:800}
.card h3{font-size:.98rem;margin:0 0 4px;font-weight:700}
.card p{margin:4px 0;color:var(--muted)}
.hero{background:linear-gradient(140deg,#0f6e76 0%,#1faeb6 48%,#7fe3e6 100%);color:#fff;border:0;padding:22px;box-shadow:var(--shadow-lg)}
.hero::after{content:"";position:absolute;inset:auto -40px -60px auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 65%)}
.hero p,.hero small{color:rgba(255,255,255,.88)}
.hero .kicker{font-size:.78rem;font-weight:700;letter-spacing:.3px;opacity:.9;display:flex;align-items:center;gap:6px}
.hero h2{font-size:1.3rem;margin:8px 0 4px}
.hero .code{font-family:Inter;font-size:.8rem;background:rgba(255,255,255,.18);padding:2px 8px;border-radius:8px;direction:ltr;display:inline-block}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow);text-align:right;min-height:104px;transition:transform .15s}
.tile:active{transform:scale(.97)}
.tile .ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--ice-100),var(--ice-200));color:var(--ice-700)}
.tile b{font-size:.95rem}.tile small{color:var(--muted);font-size:.78rem;line-height:1.5}
.tile.alt .ic{background:linear-gradient(135deg,#fff1e1,#ffdcae);color:#c46a00}
.tile.vio .ic{background:linear-gradient(135deg,#efeaff,#d9cfff);color:#5b3cc4}
.tile.grn .ic{background:linear-gradient(135deg,#e3f8f1,#bdeedd);color:#0d8a66}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 20px;border-radius:16px;font-weight:800;font-size:1rem;text-decoration:none;transition:transform .12s,box-shadow .2s,background .2s;width:100%}
.btn:active{transform:translateY(1px) scale(.99)}
.btn.primary{background:linear-gradient(180deg,var(--ice-400),var(--ice-500));color:#fff;box-shadow:0 6px 0 var(--ice-700),0 14px 26px -10px rgba(19,111,118,.6)}
.btn.primary:active{box-shadow:0 2px 0 var(--ice-700)}
.btn.primary[disabled]{background:var(--line);color:var(--soft);box-shadow:none}
.btn.ghost{background:var(--card);border:2px solid var(--line);color:var(--text)}
.btn.white{background:#fff;color:var(--ice-700);box-shadow:0 6px 0 rgba(0,0,0,.12)}
.btn.ok{background:var(--ok);color:#fff;box-shadow:0 6px 0 #0b8a66}
.btn.bad{background:var(--bad);color:#fff;box-shadow:0 6px 0 #b1272c}
.btn.sm{min-height:40px;padding:8px 14px;font-size:.88rem;border-radius:12px;width:auto}
.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.row>.btn{flex:1}
.stack>*+*{margin-top:10px}

/* bottom navigation — always pinned to the bottom */
.nav{position:fixed;inset:auto 0 0 0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--card) 88%,transparent);
  backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-top:1px solid var(--line);display:flex;justify-content:space-around;z-index:50}
.nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--soft);font-size:.72rem;font-weight:700;position:relative}
.nav a.on{color:var(--ice-600)}
.nav a.on::before{content:"";position:absolute;top:0;width:34px;height:3px;border-radius:0 0 4px 4px;background:var(--brand)}
.nav a .badge{position:absolute;top:8px;inset-inline-start:calc(50% + 6px);background:var(--bad);color:#fff;font-size:.62rem;border-radius:99px;padding:0 6px;line-height:16px}

/* progress */
.bar{height:10px;border-radius:99px;background:var(--bg-2);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--ice-300),var(--ice-500));transition:width .5s cubic-bezier(.2,.8,.2,1)}
.ring{--p:0;width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--brand) calc(var(--p)*1%),var(--bg-2) 0);display:grid;place-items:center}
.ring>span{width:50px;height:50px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-weight:800;font-size:.85rem}

/* course map */
.sem{margin-bottom:12px}
.sem-h{display:flex;align-items:center;gap:12px;width:100%;text-align:right;padding:14px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
.sem-h .lv{min-width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-family:Inter;font-weight:800;font-size:.85rem;color:#fff;background:linear-gradient(135deg,var(--ice-400),var(--ice-700))}
.sem-h .t{flex:1}.sem-h .t b{display:block;font-size:.95rem;line-height:1.5}.sem-h .t small{color:var(--muted)}
.unit{margin:10px 6px 4px;padding:12px 14px;border-radius:var(--r-sm);background:var(--card-2);border:1px dashed var(--line)}
.unit h4{margin:0 0 8px;font-size:.92rem}.unit h4 span{color:var(--muted);font-weight:500;font-size:.78rem;display:block}
.path{display:flex;flex-wrap:wrap;gap:10px}
.node{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-family:Inter;font-weight:800;font-size:.8rem;position:relative;
  background:var(--bg-2);color:var(--soft);border:3px solid var(--line)}
.node.available,.node.in_progress,.node.remediation{background:linear-gradient(180deg,var(--ice-300),var(--ice-500));color:#fff;border-color:var(--ice-600);box-shadow:0 5px 0 var(--ice-700);animation:pulse 2.2s infinite}
.node.mastered{background:linear-gradient(180deg,#ffd76a,#f0a020);color:#5a3a00;border-color:#d38a00;box-shadow:0 5px 0 #b97500}
.node.exempt{background:var(--ice-100);color:var(--ice-700);border-color:var(--ice-200)}
.node.remediation{background:linear-gradient(180deg,#ffb3a6,#f06a54);border-color:#c94c38;box-shadow:0 5px 0 #a33a28}
.node svg{position:absolute;bottom:-6px;inset-inline-end:-6px;width:20px;height:20px;background:var(--card);border-radius:50%;padding:2px;color:var(--ok)}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}

/* player */
.ptop{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:10px 0 12px;background:linear-gradient(var(--bg) 70%,transparent)}
.ptop .bar{flex:1;height:14px}
.ptop .x{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:var(--muted)}
.method{font-family:Inter;font-weight:800;font-size:.8rem;padding:4px 10px;border-radius:10px;background:var(--ice-100);color:var(--ice-700)}
.phase{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:800;color:var(--ice-600);background:var(--ice-50);border:1px solid var(--ice-100);border-radius:99px;padding:3px 10px;margin-bottom:10px}
.frame{display:inline-block;font-weight:800;color:#c46a00;background:var(--warn-bg);padding:2px 10px;border-radius:99px;font-size:.8rem;margin-bottom:8px}
.q{font-size:1.18rem;font-weight:800;line-height:1.7;margin:4px 0 6px}
.instr{color:var(--muted);font-size:.9rem;margin-bottom:12px}
.body{white-space:pre-line}
.body b{color:var(--ice-700)}
:root[data-theme="dark"] .body b{color:var(--ice-200)}
.opts{display:grid;gap:10px;margin-top:14px}
.opt{display:flex;align-items:center;gap:12px;padding:14px 16px;min-height:58px;border-radius:16px;background:var(--card);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);font-weight:700;text-align:start;font-size:1.02rem;transition:all .12s}
.opt .k{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:Inter;font-size:.8rem;border:2px solid var(--line);color:var(--soft);flex:none}
.opt.sel{border-color:var(--ice-400);background:var(--ice-50);box-shadow:0 4px 0 var(--ice-300)}
.opt.sel .k{border-color:var(--ice-400);color:var(--ice-600)}
.opt.right{border-color:var(--ok);background:var(--ok-bg);box-shadow:0 4px 0 var(--ok)}
.opt.wrong{border-color:var(--bad);background:var(--bad-bg);box-shadow:0 4px 0 var(--bad)}
.opt.gone{opacity:.35;pointer-events:none;text-decoration:line-through}
.opt.emoji{font-size:1.6rem;justify-content:center}
.opts.cols{grid-template-columns:repeat(3,1fr)}
.opts.cols .opt{flex-direction:column;justify-content:center;min-height:92px;font-size:1rem;text-align:center}
.playbig{display:flex;align-items:center;justify-content:center;gap:14px;margin:8px auto 4px}
.pbtn{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,var(--ice-400),var(--ice-600));box-shadow:0 6px 0 var(--ice-700),0 16px 30px -12px rgba(19,111,118,.7)}
.pbtn.slow{width:58px;height:58px;border-radius:18px;background:var(--card);color:var(--ice-600);border:2px solid var(--line);box-shadow:0 4px 0 var(--line)}
.pbtn.playing{animation:pulse 1s infinite}
.audio-line{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--card-2);border:1px solid var(--line);margin-bottom:8px}
.audio-line button{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--ice-100);color:var(--ice-700);flex:none}
.audio-line .sp{font-weight:800;color:var(--ice-600);font-size:.85rem}
.word{text-align:center;padding:26px 18px}
.word .w{font-family:Inter;font-size:2.3rem;font-weight:700;letter-spacing:-.5px;direction:ltr}
.word .ipa{font-family:Inter;color:var(--muted);direction:ltr}
.word .fa{font-size:1.25rem;font-weight:800;margin-top:6px}
.word .ex{margin-top:16px;padding:12px;border-radius:14px;background:var(--card-2);border:1px solid var(--line);text-align:start}
.tokens{display:flex;flex-wrap:wrap;gap:8px;min-height:62px;padding:10px;border-radius:16px;border:2px dashed var(--line);margin:12px 0;direction:ltr}
.tokens.pool{border-style:solid;background:var(--card-2)}
.tok{padding:10px 14px;border-radius:12px;background:var(--card);border:2px solid var(--line);box-shadow:0 3px 0 var(--line);font-family:Inter,Vazirmatn;font-weight:600;font-size:1rem}
.tok.used{visibility:hidden}
.tokens.lines .tok{width:100%;text-align:left}
textarea,input[type=text]{width:100%;font:inherit;font-family:Inter,Vazirmatn;direction:ltr;text-align:left;padding:14px;border-radius:16px;border:2px solid var(--line);background:var(--card);color:var(--text);min-height:56px;resize:vertical}
textarea{min-height:150px}
textarea:focus,input:focus{outline:none;border-color:var(--ice-400);box-shadow:0 0 0 4px rgba(63,203,209,.18)}
.counter{font-size:.8rem;color:var(--muted);text-align:left;margin-top:4px;direction:ltr}

/* sticky check bar */
.dock{position:fixed;inset:auto 0 0 0;z-index:40;padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}
.dock .in{max-width:640px;margin:0 auto}
.dock.ok{background:var(--ok-bg);border-color:transparent}.dock.bad{background:var(--bad-bg);border-color:transparent}
.fb{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.fb .ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;color:#fff}
.dock.ok .fb .ic{background:var(--ok)}.dock.bad .fb .ic{background:var(--bad)}
.fb b{display:block;font-size:1.05rem}.dock.ok .fb b{color:#0b8a66}.dock.bad .fb b{color:#b1272c}
.fb p{margin:2px 0;font-size:.92rem}
.suggest{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--warn-bg);margin-bottom:12px;font-size:.9rem}

/* report / skills */
.skill{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.skill:last-child{border:0}
.skill .nm{font-weight:700;font-size:.92rem}
.pill{font-size:.75rem;font-weight:800;padding:3px 10px;border-radius:99px;white-space:nowrap}
.pill.secure{background:var(--ok-bg);color:#0b8a66}.pill.forming{background:var(--warn-bg);color:#a86500}
.pill.needs_foundation{background:var(--bad-bg);color:#b1272c}.pill.not_assessed,.pill.insufficient{background:var(--bg-2);color:var(--muted)}
.pill.pending_review{background:#e6efff;color:#2f5fcf}
.skill .bar{grid-column:1/-1;height:8px}
.big-num{font-size:2rem;font-weight:800;font-family:Inter;line-height:1}
.list{margin:6px 0;padding:0;list-style:none}.list li{padding:6px 0;display:flex;gap:8px;align-items:flex-start}
.list li svg{color:var(--brand-strong);margin-top:3px}
.empty{text-align:center;padding:40px 10px;color:var(--muted)}
.empty svg{color:var(--ice-400);margin-bottom:8px}
.seg{display:flex;background:var(--bg-2);padding:4px;border-radius:14px;gap:4px}
.seg button{flex:1;padding:9px;border-radius:11px;font-weight:700;font-size:.88rem;color:var(--muted)}
.seg button.on{background:var(--card);color:var(--ice-700);box-shadow:var(--shadow)}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.set-row:last-child{border:0}
.switch{width:52px;height:30px;border-radius:99px;background:var(--line);position:relative;transition:.2s;flex:none}
.switch::after{content:"";position:absolute;top:3px;inset-inline-end:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.switch.on{background:var(--brand)}.switch.on::after{inset-inline-end:25px}
.toast{position:fixed;top:14px;inset-inline:16px;z-index:99;max-width:600px;margin:0 auto;padding:12px 16px;border-radius:14px;background:var(--text);color:var(--bg);font-weight:700;box-shadow:var(--shadow-lg);animation:drop .3s}
@keyframes drop{from{transform:translateY(-20px);opacity:0}}
.skeleton{height:120px;border-radius:var(--r);background:linear-gradient(90deg,var(--bg-2),var(--card),var(--bg-2));background-size:200% 100%;animation:sk 1.2s infinite;margin-bottom:14px}
@keyframes sk{to{background-position:-200% 0}}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:98}
.center{text-align:center}.muted{color:var(--muted)}.mt{margin-top:14px}
.result-hero{text-align:center;padding:28px 18px}
.result-hero .medal{width:96px;height:96px;border-radius:30px;margin:0 auto 12px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#ffd76a,#f0a020);box-shadow:0 8px 0 #b97500}
.result-hero .medal.retry{background:linear-gradient(135deg,var(--ice-300),var(--ice-600));box-shadow:0 8px 0 var(--ice-800)}
.disclaimer{font-size:.78rem;color:var(--muted);border-inline-start:3px solid var(--line);padding-inline-start:10px;margin-top:10px}
.spoiler{filter:blur(6px);transition:filter .3s;cursor:pointer}.spoiler.show{filter:none}

/* landing / installer */
body.landing{display:grid;place-items:center;min-height:100vh;padding:20px}
.land{max-width:520px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:28px;padding:32px 22px;box-shadow:var(--shadow-lg)}
.land h1{margin:12px 0 6px}.land p{color:var(--muted)}.land .btn{margin-top:10px}
.checks{list-style:none;padding:0;text-align:start;margin:18px 0}
.checks li{display:grid;grid-template-columns:28px 1fr;gap:2px 8px;padding:8px 0;border-bottom:1px solid var(--line)}
.checks li span{grid-row:span 2;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800}
.checks li.ok span{background:var(--ok)}.checks li.bad span{background:var(--bad)}
.checks small{color:var(--muted);direction:ltr;text-align:right}
.cron{display:block;direction:ltr;text-align:left;background:var(--bg-2);padding:12px;border-radius:12px;font-size:.78rem;word-break:break-all;margin-bottom:12px}
.note{font-weight:700}

/* registration form */
.reg label{display:flex;flex-direction:column;gap:8px;font-weight:700;margin-bottom:16px}
.reg label em{display:none;color:var(--bad,#d64545);font-style:normal;font-weight:600;font-size:.85rem}
.reg label.err em{display:block}
.reg label.err select,.reg label.err input,.reg label.err .seg{border-color:var(--bad,#d64545);box-shadow:0 0 0 3px rgba(214,69,69,.15)}
.reg select{width:100%;font:inherit;padding:14px;border-radius:16px;border:2px solid var(--line);background:var(--card);color:var(--text);min-height:56px;appearance:auto}
.reg select:focus{outline:none;border-color:var(--ice-400);box-shadow:0 0 0 4px rgba(63,203,209,.18)}
input.rtl{direction:rtl;text-align:right;font-family:Vazirmatn,Inter}
.hide{display:none!important}
.kv{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.kv:last-of-type{border-bottom:0}.kv span{color:var(--muted)}
.reg .lb{display:flex;align-items:center;gap:8px}
.reg{margin-bottom:120px}
/* placement ladder v2 + audio limit */
.pbtn:disabled,.pbtn.spent{opacity:.35;animation:none;box-shadow:none}
.plays{text-align:center;color:var(--muted);font-size:.85rem;margin:6px 0 0}
.ladder{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:14px 0 6px}
.rung{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:12px;font-family:Inter,Vazirmatn;font-weight:700;font-size:.82rem;background:var(--bg-2);color:var(--soft);border:2px solid var(--line)}
.rung.passed{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.rung.now{background:linear-gradient(135deg,var(--ice-400),var(--ice-600));color:#fff;border-color:transparent;box-shadow:0 4px 0 var(--ice-700)}
.rung.stop{background:var(--warn-bg);color:#b97500;border-color:transparent}
.rules{list-style:none;padding:0;margin:10px 0}
.rules li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.rules li:last-child{border-bottom:0}
.rules .big{font-size:1.5rem;line-height:1.3}
.score{display:flex;justify-content:space-between;align-items:center;margin:0 4px 10px;font-size:1.25rem}
.score span{filter:grayscale(1);opacity:.28;transition:all .25s}
.score span.on{filter:none;opacity:1}
.lvl{font-family:Inter,Vazirmatn;font-weight:800;padding:6px 14px;border-radius:12px;background:linear-gradient(135deg,var(--ice-400),var(--ice-600));color:#fff}
.lvbig{font-family:Inter;font-size:3rem;font-weight:800;color:var(--ice-600);line-height:1.1;margin:4px 0 8px}
.opt.big{min-height:64px;font-size:1.08rem}
.center{text-align:center}
.hero.center .medal{width:84px;height:84px;border-radius:26px;margin:0 auto 10px;display:grid;place-items:center;background:rgba(255,255,255,.2)}
.home-big{display:flex;flex-direction:column;gap:12px}
