/* ch-079 — حالت‌های بازی: نبرد با غول، پله‌های ریسک، همه‌چیز روی میز، اتاق فرار، شکار در مه و رقابت با شبح.
   «صحنه» (.gm) سطح بازی است: در هر دو تم یک صفحهٔ نیلی تیره از رنگ اصلی تست‌کاو، با چهار رنگ معنادار —
   شما (فیروزه‌ای)، حریف و خطر (مرجانی)، ارزش و سکه (طلایی)، شبح (یاسی). فونت همان راوی؛ عددها پهن و سنگین.
   هر جلوه با کنش شرکت‌کننده اجرا می‌شود (کارت بعد از هر جواب از نو ساخته می‌شود)؛ با «کاهش حرکت» همه خاموش. */

.gm{
  --gm-bg:#171B36; --gm-bg2:#20264A; --gm-bg3:#2A3160; --gm-sunk:#10142A;
  --gm-line:rgba(163,172,216,.2); --gm-line2:rgba(163,172,216,.34);
  --gm-ink:#F2F3FB; --gm-ink2:#BCC2E0; --gm-ink3:#8D95BF;
  --gm-you:#5CE1C6; --gm-you-ink:#05302A; --gm-foe:#FF6B7A; --gm-foe-deep:#C93A55; --gm-gold:#F8C018; --gm-gold-ink:#241A00; --gm-ghost:#B7A6FF;
  --gm-num:"tnum" 1;
  position:relative;isolation:isolate;display:flex;flex-direction:column;gap:16px;padding:20px;border-radius:var(--r-xl);
  color:var(--gm-ink);font-variant-numeric:tabular-nums;
  background:
    radial-gradient(110% 60% at 50% -12%,rgba(104,116,174,.5),transparent 62%),
    radial-gradient(circle at 1px 1px,rgba(255,255,255,.055) 1px,transparent 0) 0 0/18px 18px,
    var(--gm-bg);
  box-shadow:inset 0 0 0 1px var(--gm-line),0 18px 40px -24px rgba(16,20,42,.7);
  overflow:hidden
}
.gm::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3}
.gm b{font-weight:800}
.gm :focus-visible{outline:2px solid var(--gm-you);outline-offset:2px}
.gm .chh-problem{color:var(--ink)}
.gm-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--gm-line);font-size:var(--fs-1);color:var(--gm-ink2)}

/* ---------------------------------------------------------------- دکمه‌ها */
.gm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:0;border-radius:12px;font:inherit;font-size:var(--fs-3);font-weight:800;cursor:pointer;transition:transform .12s var(--ease),filter .12s var(--ease),box-shadow .12s var(--ease)}
.gm-btn:hover:not(:disabled){filter:brightness(1.08)}
.gm-btn:active:not(:disabled){transform:translateY(1px) scale(.985)}
.gm-btn:disabled{opacity:.5;cursor:default}
.gm-btn--start{align-self:center;min-width:240px;min-height:56px;font-size:var(--fs-4);background:var(--gm-you);color:var(--gm-you-ink);box-shadow:0 10px 30px -10px rgba(92,225,198,.7)}
.gm-btn--go{background:var(--gm-you);color:var(--gm-you-ink);min-width:112px}
.gm-btn--safe{background:var(--gm-gold);color:var(--gm-gold-ink)}
.gm-btn--risk{background:var(--gm-foe);color:#2A0710;box-shadow:0 10px 30px -12px rgba(255,107,122,.8)}

/* ---------------------------------------------------------------- سؤال سریع (مشترک) */
.gm-q{display:flex;flex-direction:column;gap:14px;margin:0;padding:18px;border-radius:14px;background:var(--gm-bg2);box-shadow:inset 0 0 0 1px var(--gm-line)}
.gm-q__head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px}
.gm-q__meta{display:flex;flex-wrap:wrap;gap:6px;margin:0;font-size:var(--fs-1);color:var(--gm-ink3)}
.gm-q__meta span{padding:2px 9px;border-radius:99px;background:rgba(255,255,255,.06)}
.gm-q__text{margin:0;font-size:calc(19px*var(--zoom));font-weight:700;line-height:1.85;color:var(--gm-ink)}
.gm-timer{position:relative;flex:none;width:56px;height:56px;display:grid;place-items:center}
.gm-timer svg{position:absolute;inset:0;transform:rotate(-90deg)}
.gm-timer circle{fill:none;stroke-width:5}
.gm-timer__bg{stroke:rgba(255,255,255,.1)}
.gm-timer__fg{stroke:var(--gm-you);stroke-linecap:round;stroke-dasharray:163.4;stroke-dashoffset:calc(163.4 * (1 - var(--f) / 100));transition:stroke-dashoffset .25s linear,stroke .2s}
.gm-timer b{position:relative;font-size:var(--fs-3);font-weight:900}
.gm-timer.is-low .gm-timer__fg{stroke:var(--gm-foe)}
.gm-timer.is-low b{color:var(--gm-foe);animation:gm-tick 1s steps(1) infinite}
.gm-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gm-tile{position:relative;display:flex;align-items:center;gap:12px;min-height:58px;padding:10px 14px;border:0;border-radius:12px;background:var(--gm-bg3);box-shadow:inset 0 0 0 1px var(--gm-line);color:var(--gm-ink);font:inherit;font-size:var(--fs-3);font-weight:600;line-height:1.7;text-align:start;cursor:pointer;transition:box-shadow .12s,transform .12s,background .12s}
.gm-tile kbd{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.08);font:inherit;font-size:var(--fs-1);font-weight:800;color:var(--gm-ink2)}
.gm-tile:hover:not(:disabled){background:#323A70;box-shadow:inset 0 0 0 1.5px var(--gm-you)}
.gm-tile:hover:not(:disabled) kbd{background:var(--gm-you);color:var(--gm-you-ink)}
.gm-tile:active:not(:disabled){transform:scale(.985)}
.gm-tile:disabled{cursor:default;opacity:.6}
.gm-answer{display:flex;gap:10px}
.gm-answer__in{flex:1;min-width:0;height:52px;padding:0 16px;border:0;border-radius:12px;background:var(--gm-sunk);box-shadow:inset 0 0 0 1px var(--gm-line2);color:var(--gm-ink);font:inherit;font-size:calc(20px*var(--zoom));font-weight:700}
.gm-answer__in::placeholder{color:var(--gm-ink3);font-weight:500}
.gm-answer__in:focus{outline:0;box-shadow:inset 0 0 0 2px var(--gm-you)}

/* ---------------------------------------------------------------- مشترک: پایان، معرفی، پیام شناور، نوار خبر، رد سؤال‌ها */
.gm-intro{display:flex;flex-direction:column;gap:18px}
.gm-rules{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.gm-rules li{position:relative;padding:10px 14px 10px 14px;padding-inline-start:38px;border-radius:12px;background:rgba(255,255,255,.045);font-size:var(--fs-2);line-height:1.9;color:var(--gm-ink2)}
.gm-rules li::before{content:"";position:absolute;inset-inline-start:15px;top:20px;width:9px;height:9px;border-radius:3px;background:var(--gm-you);transform:rotate(45deg)}
.gm-rules b{color:var(--gm-ink)}
.gm-end{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;text-align:center}
.gm-end__big{margin:0;font-size:calc(34px*var(--zoom));font-weight:900;line-height:1.3;letter-spacing:-.01em}
.gm-end__sub{margin:0;max-width:52ch;font-size:var(--fs-3);line-height:1.9;color:var(--gm-ink2)}
.gm-end__score{margin:8px 0 0;padding:6px 14px;border-radius:99px;background:rgba(255,255,255,.07);font-size:var(--fs-2);color:var(--gm-ink2)}
.gm-end__score b{color:var(--gm-gold)}
.gm-pop{position:absolute;z-index:4;pointer-events:none;font-size:calc(30px*var(--zoom));font-weight:900;text-shadow:0 4px 18px rgba(0,0,0,.45);animation:gm-pop 1.1s var(--ease) both}
.gm-pop--hit{color:#fff}
.gm-pop--crit{color:var(--gm-gold);font-size:calc(40px*var(--zoom))}
.gm-pop--gain{color:var(--gm-gold)}
.gm-pop--loss{color:var(--gm-foe)}
.gm-banner{align-self:center;margin:0;padding:6px 16px;border-radius:99px;background:var(--gm-foe);color:#2A0710;font-size:var(--fs-2);font-weight:800;animation:gm-banner .5s var(--ease) both}
.gm-banner--gold{background:var(--gm-gold);color:var(--gm-gold-ink)}
.gm-trail{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.gm-trail li{width:22px;height:8px;border-radius:99px;background:var(--gm-you)}
.gm-trail li.is-bad{background:var(--gm-foe)}
.gm-trail li.is-todo{background:transparent;box-shadow:inset 0 0 0 1.5px var(--gm-line2)}
.gm-trail li.is-last.is-todo{box-shadow:inset 0 0 0 1.5px var(--gm-gold)}
.gm-meter{display:block;height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.gm-meter i{display:block;height:100%;width:var(--v);border-radius:inherit;background:var(--gm-you);transition:width .6s var(--ease)}
.gm.fx-miss::after,.gm.fx-timeout::after,.gm.fx-fall::after,.gm.fx-lose::after{animation:gm-hurt .6s var(--ease) both}

/* ---------------------------------------------------------------- نبرد با غول */
.gm-boss__top{display:flex;flex-direction:column;gap:10px}
.gm-boss__name{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.gm-boss__name>b{font-size:var(--fs-4);font-weight:900;color:var(--gm-ink)}
.gm-hp{display:flex;align-items:center;gap:12px}
.gm-hp__bar{position:relative;flex:1;height:18px;border-radius:99px;background:var(--gm-sunk);box-shadow:inset 0 0 0 1px var(--gm-line);overflow:hidden}
.gm-hp__fill,.gm-hp__ghost{position:absolute;inset-block:0;inset-inline-start:0;width:var(--hp);border-radius:inherit}
.gm-hp__fill{z-index:2;background:linear-gradient(90deg,var(--gm-foe-deep),var(--gm-foe));box-shadow:0 0 18px rgba(255,107,122,.55);transition:width .7s var(--ease) .15s}
.gm-hp__ghost{z-index:1;width:var(--hp-was,var(--hp));background:#FFD3D9;opacity:.55;transition:width .9s var(--ease) .55s}
.gm-hp__notch{position:absolute;z-index:3;inset-block:0;inset-inline-start:var(--at);width:2px;background:var(--gm-bg)}
.gm-hp__num{flex:none;font-size:var(--fs-3)}
.gm-hp__num b{font-size:var(--fs-4);font-weight:900}
.gm-hp__num small{color:var(--gm-ink3)}
.gm-arena{position:relative;display:grid;place-items:center;min-height:190px}
.gm-arena::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,107,122,calc(.16 + var(--rage) * .22)),transparent 65%)}
.gm-foe{position:relative;width:200px;height:auto;overflow:visible;filter:drop-shadow(0 14px 22px rgba(0,0,0,.45))}
.gm-foe__c1{stop-color:#5B3A8E}
.gm-foe__c2{stop-color:#241B4A}
.gm-foe__horn{fill:var(--gm-foe-deep)}
.gm-foe__shell{stroke:var(--gm-foe);stroke-width:2;stroke-linejoin:round}
.gm-foe__plate{fill:rgba(255,255,255,.04);stroke:rgba(255,255,255,.12);stroke-width:1.5;stroke-linejoin:round}
.gm-foe__eye ellipse{fill:#FFE9EC}
.gm-foe__pupil{fill:var(--gm-foe-deep);transform-origin:100px 80px;animation:gm-look 5s ease-in-out infinite}
.gm-foe__eye{transform-origin:100px 80px;transform:scaleY(calc(1 - var(--rage) * .45))}
.gm-foe__crack{fill:none;stroke:#FFE9EC;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.gm-foe__crack--1{opacity:clamp(0,calc((75 - var(--hpn, 100)) / 25),1)}
.gm-foe__crack--2{opacity:clamp(0,calc((40 - var(--hpn, 100)) / 25),1)}
.gm-foe__body{transform-origin:100px 90px}
.gm.fx-hit .gm-foe__body{animation:gm-shake .42s var(--ease)}
.gm.fx-crit .gm-foe__body{animation:gm-shake .5s var(--ease),gm-flash .5s var(--ease)}
.gm.fx-miss .gm-foe__body,.gm.fx-timeout .gm-foe__body{animation:gm-lunge .5s var(--ease)}
.gm--boss.is-win .gm-foe{animation:gm-fall .9s var(--ease) forwards}
.gm--boss.is-lose .gm-foe__eye ellipse{fill:var(--gm-foe)}
.gm-pop--hit,.gm-pop--crit{top:18%}
.gm-you{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:12px;background:rgba(92,225,198,.07);box-shadow:inset 0 0 0 1px rgba(92,225,198,.2)}
.gm-hearts{display:inline-flex;gap:6px}
.gm-heart{width:26px;height:26px;fill:var(--gm-foe);filter:drop-shadow(0 0 6px rgba(255,107,122,.5))}
.gm-heart.is-lost{fill:none;stroke:var(--gm-ink3);stroke-width:1.6;filter:none;opacity:.6}
.gm.fx-miss .gm-heart:not(.is-lost)+.gm-heart.is-lost,.gm.fx-timeout .gm-heart:not(.is-lost)+.gm-heart.is-lost{animation:gm-break .6s var(--ease)}
.gm-combo{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-2);color:var(--gm-ink2)}
.gm-combo b{font-size:var(--fs-3);color:var(--gm-ink)}
.gm-combo__pips{display:inline-flex;gap:3px}
.gm-combo__pips i{width:7px;height:16px;border-radius:3px;background:rgba(255,255,255,.12)}
.gm-combo__pips i.is-on{background:var(--gm-you)}
.gm-combo.is-hot b{color:var(--gm-gold)}
.gm-combo.is-hot .gm-combo__pips i.is-on{background:var(--gm-gold);box-shadow:0 0 8px rgba(248,192,24,.6)}

/* ---------------------------------------------------------------- پله‌های ریسک */
.gm-ladder{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:start}
.gm-tower{list-style:none;margin:0;padding:6px;display:flex;flex-direction:column;gap:5px;border-radius:14px;background:var(--gm-sunk);box-shadow:inset 0 0 0 1px var(--gm-line)}
.gm-rung{display:flex;align-items:center;justify-content:space-between;gap:6px;height:36px;padding:0 12px;border-radius:9px;background:rgba(255,255,255,.04);font-size:var(--fs-1);color:var(--gm-ink3)}
.gm-rung b{font-size:var(--fs-3);font-weight:900;color:var(--gm-ink2)}
.gm-rung.is-done{background:rgba(92,225,198,.16);color:var(--gm-ink2)}
.gm-rung.is-done b{color:var(--gm-you)}
.gm-rung.is-next{background:rgba(248,192,24,.14);box-shadow:inset 0 0 0 1.5px var(--gm-gold);color:var(--gm-ink)}
.gm-rung.is-next b{color:var(--gm-gold)}
.gm.fx-up .gm-rung.is-done:last-of-type,.gm.fx-up .gm-rung.is-next{animation:gm-rise .5s var(--ease)}
.gm-ladder__main{display:flex;flex-direction:column;gap:14px;min-width:0}
.gm-purse{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gm-purse>div{position:relative;display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:14px;background:var(--gm-bg2);box-shadow:inset 0 0 0 1px var(--gm-line)}
.gm-purse small{font-size:var(--fs-1);color:var(--gm-ink3)}
.gm-purse b{font-size:calc(34px*var(--zoom));font-weight:900;line-height:1.25}
.gm-purse__pot b{color:var(--gm-gold);text-shadow:0 0 22px rgba(248,192,24,.35)}
.gm-purse__bank b{color:var(--gm-you)}
.gm-purse__bank .gm-meter{margin-top:6px}
.gm-purse .gm-pop{top:4px;inset-inline-end:14px;font-size:calc(24px*var(--zoom))}
.gm.fx-fall .gm-purse__pot b{animation:gm-drop .6s var(--ease)}
.gm.fx-bank .gm-purse__bank b{animation:gm-bump .5s var(--ease)}
.gm-stake{margin:0;font-size:var(--fs-2);color:var(--gm-ink2)}
.gm-stake b{color:var(--gm-gold)}
.gm-decide{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:14px;background:var(--gm-bg2);box-shadow:inset 0 0 0 1px var(--gm-line);animation:gm-banner .35s var(--ease) both}
.gm-decide__q{margin:0;font-size:var(--fs-3);line-height:1.9}
.gm-decide__q b{color:var(--gm-gold)}
.gm-decide__acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.gm-decide__acts .gm-btn{min-height:60px;font-size:var(--fs-h3)}

/* ---------------------------------------------------------------- همه‌چیز روی میز */
.gm-bank{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px}
.gm-coins{position:relative;display:flex;align-items:baseline;gap:8px}
.gm-coin{align-self:center;width:38px;height:38px;fill:var(--gm-gold);filter:drop-shadow(0 0 14px rgba(248,192,24,.45))}
.gm-coin__in{fill:none;stroke:var(--gm-gold-ink);stroke-opacity:.35;stroke-width:2}
.gm-coins b{font-size:calc(44px*var(--zoom));font-weight:900;line-height:1.1;color:var(--gm-gold)}
.gm-coins small{font-size:var(--fs-2);color:var(--gm-ink3)}
.gm-coins .gm-pop{top:-6px;inset-inline-end:-56px;font-size:calc(24px*var(--zoom))}
.gm.fx-win .gm-coins b{animation:gm-bump .5s var(--ease)}
.gm.fx-lose .gm-coins b,.gm.fx-timeout .gm-coins b{animation:gm-drop .6s var(--ease)}
.gm-spark{width:100%;height:72px;overflow:visible;padding:6px 10px;box-sizing:border-box;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid var(--gm-line)}
.gm-spark__start{stroke:var(--gm-ink3);stroke-width:1;stroke-dasharray:3 4;vector-effect:non-scaling-stroke;opacity:.6}
.gm-spark__base{stroke:var(--gm-line);stroke-width:.5;vector-effect:non-scaling-stroke}
.gm-spark__line{fill:none;stroke:var(--gm-gold);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.gm-spark__dot{stroke:var(--gm-gold);stroke-width:9;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px var(--gm-gold))}
.gm--wager.is-final{box-shadow:inset 0 0 0 1.5px var(--gm-gold),0 0 40px -10px rgba(248,192,24,.55)}
.gm-bet{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:12px;background:var(--gm-sunk);box-shadow:inset 0 0 0 1px var(--gm-line)}
.gm-bet__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gm-bet__l{font-size:var(--fs-2);font-weight:800}
.gm-bet__val{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-2);color:var(--gm-ink2)}
.gm-bet__num{width:7rem;height:40px;padding:0 10px;border:0;border-radius:10px;background:var(--gm-bg3);box-shadow:inset 0 0 0 1px var(--gm-line2);color:var(--gm-gold);font:inherit;font-size:var(--fs-h3);font-weight:900;text-align:center}
.gm-bet__range{width:100%;accent-color:var(--gm-gold)}
.gm-chips{display:flex;flex-wrap:wrap;gap:6px}
.gm-chip{display:inline-flex;align-items:baseline;gap:6px;min-height:36px;padding:0 14px;border:0;border-radius:99px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--gm-line);color:var(--gm-ink);font:inherit;font-size:var(--fs-2);font-weight:700;cursor:pointer}
.gm-chip small{color:var(--gm-ink3);font-weight:600}
.gm-chip:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--gm-gold)}
.gm-chip.is-on{background:var(--gm-gold);color:var(--gm-gold-ink)}
.gm-chip.is-on small{color:var(--gm-gold-ink)}
.gm-chip--all{box-shadow:inset 0 0 0 1.5px var(--gm-foe)}
.gm-bet__out{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;font-size:var(--fs-2);color:var(--gm-ink3)}
.gm-bet__out .is-up{color:var(--gm-you)}
.gm-bet__out .is-down{color:var(--gm-foe)}

/* ---------------------------------------------------------------- حرکت */
@keyframes gm-pop{0%{opacity:0;transform:translateY(10px) scale(.7)}18%{opacity:1;transform:translateY(0) scale(1.12)}70%{opacity:1}100%{opacity:0;transform:translateY(-34px) scale(1)}}
@keyframes gm-shake{0%,100%{transform:none}20%{transform:translateX(-7px) rotate(-2deg)}40%{transform:translateX(6px) rotate(2deg)}60%{transform:translateX(-4px)}80%{transform:translateX(2px)}}
@keyframes gm-flash{0%,100%{filter:none}25%{filter:brightness(2.2) saturate(.4)}}
@keyframes gm-lunge{0%,100%{transform:none}35%{transform:translateY(10px) scale(1.08)}}
@keyframes gm-fall{to{transform:translateY(40px) rotate(-8deg);opacity:.25;filter:grayscale(1)}}
@keyframes gm-look{0%,40%,100%{transform:none}50%,60%{transform:translateX(-6px)}70%,80%{transform:translateX(6px)}}
@keyframes gm-hurt{0%{box-shadow:inset 0 0 0 0 rgba(255,107,122,0)}25%{box-shadow:inset 0 0 0 3px rgba(255,107,122,.9),inset 0 0 60px rgba(255,107,122,.35)}100%{box-shadow:inset 0 0 0 0 rgba(255,107,122,0)}}
@keyframes gm-break{0%{transform:none}30%{transform:scale(1.35);fill:var(--gm-foe)}100%{transform:none}}
@keyframes gm-tick{50%{opacity:.45}}
@keyframes gm-banner{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes gm-rise{from{transform:translateY(8px);filter:brightness(1.6)}to{transform:none;filter:none}}
@keyframes gm-drop{0%{transform:none}30%{transform:translateY(6px);color:var(--gm-foe)}100%{transform:none}}
@keyframes gm-bump{0%{transform:none}35%{transform:scale(1.15)}100%{transform:none}}
.gm.is-quiet *,.gm.is-quiet::after{animation:none!important}
.gm.is-quiet .gm-pop,.gm.is-quiet .gm-banner:not(.gm-banner--gold){display:none}
@media (prefers-reduced-motion:reduce){
  .gm *,.gm::after{animation:none!important;transition:none!important}
}

/* ---------------------------------------------------------------- گوشی */
@media (max-width:640px){
  .gm{padding:14px;gap:12px;border-radius:var(--r-lg)}
  .gm-q{padding:14px}
  .gm-q__text{font-size:var(--fs-3)}
  .gm-tiles{grid-template-columns:1fr}
  .gm-answer{flex-direction:column}
  .gm-btn--go{min-height:48px}
  .gm-ladder{grid-template-columns:1fr}
  .gm-tower{flex-direction:row-reverse;overflow-x:auto;padding:5px}
  .gm-rung{flex:none;flex-direction:column;justify-content:center;height:auto;min-width:64px;padding:6px 8px;gap:0}
  .gm-purse b{font-size:calc(26px*var(--zoom))}
  .gm-decide__acts{grid-template-columns:1fr}
  .gm-bank{grid-template-columns:1fr;gap:8px}
  .gm-coins b{font-size:calc(36px*var(--zoom))}
  .gm-end__big{font-size:calc(26px*var(--zoom))}
  .gm-arena{min-height:160px}
  .gm-foe{width:160px}
}
@media (forced-colors:active){.gm{border:1px solid CanvasText}.gm-hp__fill,.gm-meter i,.gm-trail li{background:Highlight}}

/* ---------------------------------------------------------------- اتاق فرار */
.gm-c--blue{--lk:#6EA8FF}.gm-c--red{--lk:#FF6B7A}.gm-c--green{--lk:#6BE59A}.gm-c--gold{--lk:#F8C018}
.gm-c--violet{--lk:#B7A6FF}.gm-c--orange{--lk:#FF9F5A}.gm-c--teal{--lk:#5CE1C6}.gm-c--pink{--lk:#FF8AD8}
.gm-room__top{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}
.gm-clock{display:inline-flex;align-items:center;gap:10px;padding:6px 16px 6px 12px;border-radius:14px;background:var(--gm-sunk);box-shadow:inset 0 0 0 1px var(--gm-line)}
.gm-clock svg{width:26px;height:26px;fill:none;stroke:var(--gm-you);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gm-clock b{font-size:calc(32px*var(--zoom));font-weight:900;letter-spacing:.02em;line-height:1.2}
.gm-clock.is-low svg{stroke:var(--gm-foe)}
.gm-clock.is-low b{color:var(--gm-foe);animation:gm-tick 1s steps(1) infinite}
.gm-code{display:inline-flex;align-items:center;gap:10px;margin-inline-end:auto}
.gm-code__l{font-size:var(--fs-1);color:var(--gm-ink3)}
.gm-code__slots{display:inline-flex;gap:6px;direction:ltr}
.gm-slot{display:grid;place-items:center;width:38px;height:46px;border-radius:9px;background:var(--gm-sunk);box-shadow:inset 0 -3px 0 var(--lk),inset 0 0 0 1px var(--gm-line);font-size:var(--fs-4);font-weight:900;color:var(--gm-ink3)}
.gm-slot.is-on{color:var(--gm-ink);background:color-mix(in srgb,var(--lk) 22%,var(--gm-sunk));box-shadow:inset 0 0 0 1.5px var(--lk),0 0 16px -4px var(--lk)}
.gm-locks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.gm-lock{position:relative;min-width:0;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:14px;background:var(--gm-bg2);box-shadow:inset 0 0 0 1px var(--gm-line),inset 4px 0 0 var(--lk)}
.gm-lock__h{display:flex;align-items:center;gap:10px}
.gm-lock__h h4{display:flex;flex-direction:column;margin:0;font-size:var(--fs-3);font-weight:800;line-height:1.5;margin-inline-end:auto}
.gm-lock__h small{font-size:var(--fs-1);font-weight:600;color:var(--gm-ink3)}
.gm-padlock{flex:none;width:30px;height:30px;fill:none;stroke:var(--lk);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gm-padlock rect{fill:color-mix(in srgb,var(--lk) 18%,transparent)}
.gm-padlock__arc{transform-origin:16px 11px;transition:transform .5s var(--ease)}
.gm-lock.is-open .gm-padlock__arc{transform:translateY(-3px) rotate(28deg)}
.gm-lock.is-just .gm-padlock__arc{animation:gm-unlock .6s var(--ease)}
.gm-lock.is-just{animation:gm-glow 1.2s var(--ease)}
.gm-frag{display:grid;place-items:center;min-width:44px;height:44px;padding:0 8px;border-radius:10px;background:var(--lk);color:#141827;font-size:var(--fs-4);font-weight:900}
.gm-lock.is-open{background:color-mix(in srgb,var(--lk) 10%,var(--gm-bg2))}
.gm-lock.is-chained{opacity:.55;background:repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 10px,transparent 10px 20px),var(--gm-bg2)}
.gm-lock__q{margin:0;font-size:var(--fs-3);line-height:1.9;font-weight:600}
.gm-lock__hint{margin:0;padding:8px 12px;border-radius:10px;background:rgba(248,192,24,.1);box-shadow:inset 0 0 0 1px rgba(248,192,24,.3);font-size:var(--fs-2);line-height:1.85;color:var(--gm-ink2)}
.gm-lock__done,.gm-lock__chain{margin:0;font-size:var(--fs-2);color:var(--gm-ink2)}
.gm-lock__form{margin:0}
.gm-lock .gm-answer__in{height:46px;font-size:var(--fs-h3)}
.gm-lock .gm-btn--go{min-width:88px;min-height:46px}
.gm-tiles--one{grid-template-columns:1fr}
.gm-tiles--one .gm-tile{min-height:46px;font-size:var(--fs-2)}
.gm-lock__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.gm-lock__foot form{margin:0}
.gm-lock__wrong{font-size:var(--fs-1);color:var(--gm-foe)}
.gm-link{padding:4px 0;border:0;background:none;color:var(--gm-gold);font:inherit;font-size:var(--fs-2);font-weight:700;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.gm-exit{display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:14px;background:linear-gradient(180deg,rgba(248,192,24,.12),rgba(248,192,24,.04));box-shadow:inset 0 0 0 1.5px var(--gm-gold);animation:gm-banner .4s var(--ease) both}
.gm-exit h4{margin:0;font-size:var(--fs-h3);font-weight:900;color:var(--gm-gold)}
.gm-exit__q{margin:0;font-size:var(--fs-3);line-height:1.9}
.gm-answer__in--code{letter-spacing:.3em;text-align:center;font-size:calc(26px*var(--zoom))}
.gm-door{width:96px;height:96px;fill:none;stroke:var(--gm-gold);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.gm-door__leaf{fill:rgba(248,192,24,.18);transform-origin:14px 33px;animation:gm-door 1s var(--ease) both}
.gm--escape.fx-wrong .gm-clock{animation:gm-drop .6s var(--ease)}
@keyframes gm-unlock{0%{transform:none}40%{transform:translateY(-5px)}100%{transform:translateY(-3px) rotate(28deg)}}
@keyframes gm-glow{0%{box-shadow:inset 0 0 0 1px var(--gm-line),inset 4px 0 0 var(--lk),0 0 0 0 var(--lk)}30%{box-shadow:inset 0 0 0 1.5px var(--lk),inset 4px 0 0 var(--lk),0 0 30px -4px var(--lk)}100%{box-shadow:inset 0 0 0 1px var(--gm-line),inset 4px 0 0 var(--lk),0 0 0 0 transparent}}
@keyframes gm-door{from{transform:none}to{transform:perspective(200px) rotateY(-55deg)}}

/* ---------------------------------------------------------------- شکار در مه */
.gm-fog__top{display:flex;flex-wrap:wrap;gap:10px}
.gm-stat{display:inline-flex;align-items:baseline;gap:6px;padding:8px 14px;border-radius:12px;background:var(--gm-bg2);box-shadow:inset 0 0 0 1px var(--gm-line)}
.gm-stat small{font-size:var(--fs-1);color:var(--gm-ink3)}
.gm-stat b{font-size:var(--fs-4);font-weight:900}
.gm-stat--you b{color:var(--gm-you)}
.gm-fog__how{margin:0;font-size:var(--fs-2);line-height:1.9;color:var(--gm-ink2)}
.gm-map{display:flex;flex-direction:column;gap:12px;margin:0}
.gm-mode{display:inline-flex;align-self:flex-start;margin:0;padding:4px;border:0;border-radius:12px;background:var(--gm-sunk);box-shadow:inset 0 0 0 1px var(--gm-line)}
.gm-mode__o{position:relative;display:inline-flex;align-items:center;min-height:38px;padding:0 16px;border-radius:9px;font-size:var(--fs-2);font-weight:700;color:var(--gm-ink2);cursor:pointer}
.gm-mode__o input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.gm-mode__o:has(input:checked){background:var(--gm-you);color:var(--gm-you-ink)}
.gm-mode__o--mark:has(input:checked){background:var(--gm-foe);color:#2A0710}
.gm-mode__o:has(input:focus-visible){outline:2px solid var(--gm-you);outline-offset:2px}
.gm-mode__o:has(input:disabled){opacity:.45;cursor:default}
.gm-grid{display:flex;flex-direction:column;gap:3px;direction:ltr;user-select:none}
.gm-grid__row{display:grid;grid-template-columns:22px repeat(var(--cols),minmax(0,1fr));gap:3px}
.gm-grid__row--head span{display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--gm-ink3)}
.gm-grid__y{display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--gm-ink3)}
.gm-cell{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:0;border:0;border-radius:6px;font:inherit;font-size:clamp(9px,1.6vw,13px);font-weight:800;color:var(--gm-ink);cursor:pointer;
  background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.07),transparent 60%),#262C55;box-shadow:inset 0 0 0 1px rgba(163,172,216,.12);transition:transform .1s,box-shadow .1s}
.gm-cell:hover:not(:disabled){box-shadow:inset 0 0 0 2px var(--gm-you);transform:scale(1.04)}
.gm-map:has(input[value=mark]:checked) .gm-cell:hover:not(:disabled){box-shadow:inset 0 0 0 2px var(--gm-foe)}
.gm-cell:disabled{cursor:default}
.gm-cell.is-seen{cursor:default}
.gm-h0{background:#2B3A8C}.gm-h1{background:#2F6E9E}.gm-h2{background:#2E9C8F}.gm-h3{background:#C9A227;color:#1A1400}.gm-h4{background:#F2894A;color:#2A0E00}
.gm-cell svg{width:72%;height:72%;fill:none;stroke-width:2.4;stroke-linecap:round}
.gm-cell.is-found{background:var(--gm-you);color:var(--gm-you-ink)}
.gm-cell.is-found svg{stroke:var(--gm-you-ink)}
.gm-cell.is-found::after{content:"";position:absolute;inset:-2px;border-radius:8px;box-shadow:0 0 0 2px var(--gm-you);animation:gm-ping 1.4s var(--ease) infinite}
.gm-cell.is-target{background:transparent;box-shadow:inset 0 0 0 2px var(--gm-gold)}
.gm-cell.is-target svg{stroke:var(--gm-gold)}
.gm-cell.is-miss svg{position:absolute;stroke:var(--gm-foe)}
.gm-cell.is-miss small{position:relative;opacity:.8}
.gm-cell.is-last{box-shadow:inset 0 0 0 2px #fff}
.gm.fx-probe .gm-cell.is-last{animation:gm-reveal .45s var(--ease)}
.gm-legend{display:flex;align-items:center;gap:10px;font-size:var(--fs-1);color:var(--gm-ink3)}
.gm-legend i{flex:1;max-width:240px;height:8px;border-radius:99px;background:linear-gradient(90deg,#2B3A8C,#2F6E9E,#2E9C8F,#C9A227,#F2894A)}
.gm-end--inline{padding:6px 0}
@keyframes gm-ping{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.6);opacity:0}}
@keyframes gm-reveal{0%{transform:scale(.6);filter:brightness(2)}100%{transform:none;filter:none}}

@media (max-width:640px){
  .gm-locks{grid-template-columns:minmax(0,1fr)}
  .gm-room__top{gap:10px}
  .gm-clock b{font-size:calc(26px*var(--zoom))}
  .gm-slot{width:32px;height:40px;font-size:var(--fs-h3)}
  .gm-grid__row{grid-template-columns:16px repeat(var(--cols),minmax(0,1fr));gap:2px}
  .gm-grid{gap:2px}
  .gm-cell{border-radius:4px}
  .gm-stat{padding:6px 10px}
  .gm-stat b{font-size:var(--fs-h3)}
}
@media (prefers-reduced-motion:reduce){.gm-cell.is-found::after{animation:none}}

/* ---------------------------------------------------------------- رقابت با شبح (نوار بالای صفحهٔ حل) */
.gm-race{--gm-you:#5CE1C6;--gm-ghost:#B7A6FF;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 18px;margin:0 0 var(--gap);padding:10px 16px;border-radius:var(--r-lg);
  color:#F2F3FB;background:radial-gradient(120% 140% at 0% 0%,rgba(183,166,255,.18),transparent 55%),#171B36;box-shadow:inset 0 0 0 1px rgba(163,172,216,.2)}
.gm-race__lanes{display:flex;flex-direction:column;gap:6px;min-width:0}
.gm-lane{display:grid;grid-template-columns:64px minmax(0,1fr) 48px;align-items:center;gap:10px}
.gm-lane__name{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-1);font-weight:800;color:#BCC2E0}
.gm-lane__name .tk-ic{width:16px;height:16px;color:var(--gm-ghost)}
.gm-lane__track{position:relative;height:10px;border-radius:99px;background:rgba(255,255,255,.07)}
.gm-lane__fill{position:absolute;inset-block:0;inset-inline-start:0;width:var(--p);border-radius:inherit;transition:width .8s var(--ease)}
.gm-lane--you .gm-lane__fill{background:linear-gradient(90deg,rgba(92,225,198,.35),var(--gm-you))}
.gm-lane--ghost .gm-lane__fill{background:linear-gradient(90deg,rgba(183,166,255,.18),rgba(183,166,255,.6));transition:width 1s linear}
.gm-runner{position:absolute;top:50%;inset-inline-start:var(--p);width:16px;height:16px;margin-inline-start:-8px;border-radius:50%;transform:translateY(-50%);background:var(--gm-you);box-shadow:0 0 0 3px #171B36,0 0 14px rgba(92,225,198,.8);transition:inset-inline-start .8s var(--ease)}
.gm-runner--ghost{background:var(--gm-ghost);opacity:.85;box-shadow:0 0 0 3px #171B36,0 0 14px rgba(183,166,255,.8);transition:inset-inline-start 1s linear}
.gm-lane__pct{font-size:var(--fs-3);font-weight:900;text-align:end}
.gm-lane--ghost .gm-lane__pct{color:var(--gm-ghost)}
.gm-race__say{margin:0;max-width:22ch;font-size:var(--fs-2);font-weight:700;line-height:1.7;color:#BCC2E0}
.gm-race__say b{color:var(--gm-you)}
.gm-race.is-behind .gm-race__say b{color:var(--gm-ghost)}
.gm-race.is-solo{grid-template-columns:minmax(0,1fr) auto}
@media (max-width:640px){.gm-race{grid-template-columns:1fr;padding:10px 12px}.gm-race__say{max-width:none}.gm-lane{grid-template-columns:52px minmax(0,1fr) 42px}}
@media (prefers-reduced-motion:reduce){.gm-lane__fill,.gm-runner{transition:none}}
/* تکه‌های `کد` در متن سؤال‌ها: رقم لاتین، چپ‌به‌راست */
.gm-tt{font-family:'Ravi',ui-monospace,monospace;display:inline-block;direction:ltr;unicode-bidi:isolate;padding:0 .35em;margin:0 .1em;border-radius:6px;background:rgba(255,255,255,.08);border:1px solid var(--gm-line);font-size:.92em;line-height:1.5;color:var(--gm-ink)}
