/* The Stacks — game screen. Scoped to .game; uses the site's theme tokens. */
.game{--g-enemy-bar:#d9d5c8;--g-common:#9aa3a6;--g-rare:#6fb3ff;--g-epic:#c08cff;--g-legendary:#ffbf47;--g-hp:#ff7a6b;--g-energy:#6fd6ff;--g-xp:var(--accent);--g-enemy:#ff9a5c;--g-good:#a8e07a;--g-bad:#ff8f80;--g-radius:16px;max-width:1120px}
[data-theme=light] .game{--g-enemy-bar:#4a504c;--g-common:#6b7478;--g-rare:#1f6fd1;--g-epic:#8a3fd6;--g-legendary:#b07800;--g-hp:#d4483a;--g-energy:#1186b5;--g-xp:#6f9a12;--g-enemy:#c4621f;--g-good:#3f7d1c;--g-bad:#c23b2c}
.game .g-title{margin-bottom:20px}.g-title-row{display:flex;align-items:center;gap:16px;margin:12px 0 14px}.g-title-row h1{margin:0}.g-emblem{width:58px;height:58px;flex:none;border-radius:14px}.game .g-title p{max-width:620px;color:var(--muted)}
.game h2{font-size:21px;line-height:1.25;margin:4px 0 8px;font-weight:650;letter-spacing:-.3px}.game h3{font-size:12px;margin:18px 0 9px;color:var(--muted);font-weight:600;letter-spacing:.2px}
.game p{margin:0 0 10px}.game .g-small{font-size:12px;color:var(--muted)}
.g-eyebrow{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.4px;color:var(--muted);text-transform:uppercase}
.g-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--g-radius);padding:20px;margin-bottom:14px;min-width:0}
.g-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.g-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}.g-columns>.g-card{margin-bottom:14px}

/* buttons */
.g-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 15px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);font-size:13px;font-weight:600;line-height:1.2;text-align:center;transition:border-color .15s,background .15s,transform .1s}
.g-btn:hover:not(:disabled){border-color:var(--accent)}.g-btn:active:not(:disabled){transform:translateY(1px)}
.g-btn:focus-visible,.g-tab:focus-visible,.g-class:focus-visible,.game a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.g-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}.g-btn.primary:hover:not(:disabled){filter:brightness(1.06)}
.g-btn small{font-weight:500;opacity:.75;font-size:11px}.g-btn kbd{font:10px ui-monospace,monospace;padding:1px 5px;border:1px solid currentColor;border-radius:4px;opacity:.5}
.g-btn:disabled{opacity:.45;cursor:not-allowed}
.g-btn.glow{box-shadow:0 0 0 0 var(--accent);animation:g-glow 2.2s ease-out infinite}
@keyframes g-glow{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
.g-btn.g-boss{border-color:color-mix(in srgb,var(--g-enemy) 60%,var(--line));color:var(--g-enemy)}
.g-btn.g-path{flex-direction:column;gap:2px}.g-btn.g-path small{font-size:10px}

/* hud */
.g-hud{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,2fr) auto;gap:22px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--g-radius);padding:16px 20px;margin-bottom:12px}
.g-id{display:flex;gap:12px;align-items:center;min-width:0}.g-id>div:last-child{min-width:0}.g-id b{display:block;font-size:15px;overflow:hidden;text-overflow:ellipsis}.g-id span{display:block;font-size:12px;color:var(--muted)}
.g-avatar{flex:0 0 44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--ink);font-weight:800;font-size:20px}
.g-meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.g-meter{min-width:0}.g-meter-head{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin-bottom:5px;white-space:nowrap}.g-meter-head b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:650;overflow:hidden;text-overflow:ellipsis}.g-meter-head i{font-style:normal;color:var(--muted);font-weight:500}.g-meter-head em{font-style:normal;color:var(--muted);font-weight:500;margin-left:6px}
.g-bar{height:8px;border-radius:99px;background:var(--panel2);overflow:hidden;border:1px solid var(--line)}.g-bar i{display:block;height:100%;border-radius:inherit;background:var(--g-xp);transition:width .35s ease}
.g-meter-hp .g-bar i{background:var(--g-hp)}.g-meter-energy .g-bar i{background:var(--g-energy)}.g-meter-enemy .g-bar i{background:var(--g-enemy-bar)}.g-meter-quest .g-bar i{background:var(--accent)}
.g-stats{display:grid;grid-template-columns:repeat(2,auto);gap:6px 18px;margin:0}.g-stats div{min-width:0}.g-stats dt{font:11px ui-monospace,monospace;letter-spacing:1px;color:var(--muted);text-transform:uppercase}.g-stats dd{margin:0;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.g-stats small{font-weight:500;color:var(--muted);font-size:11px}

/* tabs */
.g-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 14px;padding:2px}.g-tabs::-webkit-scrollbar{display:none}
.g-tab{position:relative;display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:99px;border:1px solid var(--line);background:none;color:var(--muted);font-size:13px;font-weight:600;white-space:nowrap}
.g-tab[aria-selected=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.g-tab small{font-size:10px;opacity:.7;font-variant-numeric:tabular-nums}
.g-dot{min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--accent);color:var(--ink);font-size:10px;font-weight:800;display:inline-grid;place-items:center}

/* play */
.g-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
.g-place p{max-width:720px}
.g-exits{border-top:1px dashed var(--line);margin-top:16px}
.g-fight{border-color:color-mix(in srgb,var(--g-enemy) 45%,var(--line))}.g-fight.is-boss{background:linear-gradient(160deg,color-mix(in srgb,var(--g-enemy) 10%,var(--panel)),var(--panel) 60%)}
.g-fight .g-meter{margin:10px 0}.g-lvl{font:11px ui-monospace,monospace;color:var(--muted);vertical-align:middle;margin-left:6px}
.g-quiz{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.g-quiz blockquote{margin:6px 0 12px;padding:12px 14px;border-left:3px solid var(--accent);background:var(--panel2);border-radius:0 10px 10px 0;font-size:13px}
.g-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.g-option{justify-content:space-between;text-align:left;min-height:48px}
.g-answer.is-right{border-color:color-mix(in srgb,var(--g-good) 55%,var(--line))}.g-answer.is-wrong{border-color:color-mix(in srgb,var(--g-bad) 55%,var(--line))}
.g-answer.is-right .g-eyebrow{color:var(--g-good)}.g-answer.is-wrong .g-eyebrow{color:var(--g-bad)}
.g-log ol,.g-feed ul{list-style:none;margin:10px 0 0;padding:0}
.g-log li{padding:9px 0;border-top:1px solid var(--line);opacity:.62}.g-log li:first-child{border-top:0}.g-log li.is-latest{opacity:1}
.g-log p{margin:0 0 3px;font-size:13px;line-height:1.45;padding-left:14px;position:relative}.g-log p::before{content:'';position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--muted)}
.g-m-good::before{background:var(--g-good)!important}.g-m-bad::before{background:var(--g-bad)!important}.g-m-crit::before,.g-m-level::before{background:var(--accent)!important}.g-m-loot::before{background:var(--g-legendary)!important}.g-m-badge::before{background:var(--g-epic)!important}
.g-m-level,.g-m-crit{font-weight:650}
.g-feed li{font-size:12.5px;padding:7px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.g-feed li:first-child{border-top:0}.g-feed time{color:var(--muted);font-size:11px;white-space:nowrap}
.g-hint{font-size:11px;color:var(--muted)}.g-hint kbd{font:10px ui-monospace,monospace;border:1px solid var(--line);border-radius:4px;padding:1px 5px}

/* quests */
.g-streak{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:12px 0}
.g-streak li{border:1px solid var(--line);border-radius:10px;padding:8px 4px;text-align:center;background:var(--panel2)}.g-streak span{display:block;font-size:10px;color:var(--muted)}.g-streak b{font-size:13px}
.g-streak li.is-done{background:color-mix(in srgb,var(--accent) 22%,var(--panel2));border-color:var(--accent)}.g-streak li.is-chest{border-style:dashed}
.g-quests{list-style:none;padding:0;margin:10px 0}.g-quest{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line)}.g-quest:first-child{border-top:0}
.g-quest>div{flex:1;min-width:0}.g-quest .g-meter{margin:7px 0 4px}.g-quest .g-meter-head{display:none}.g-quest.is-claimed{opacity:.6}
.g-claimed{font-size:12px;color:var(--g-good);font-weight:600;white-space:nowrap}.g-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:6px}.g-locked{font-size:12px;color:var(--muted);white-space:nowrap}.g-shop li.is-locked b{color:var(--muted)}

/* bag & shop */
.g-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.g-slot{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2);display:flex;flex-direction:column;gap:3px;min-width:0}
.g-slot>span{font:11px ui-monospace,monospace;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}.g-slot b{font-size:14px}.g-slot em{font-style:normal;font-size:12px;color:var(--muted)}.g-slot .g-btn{margin-top:8px;min-height:36px;font-size:12px}
.g-list{list-style:none;padding:0;margin:6px 0 0}.g-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.g-list li:first-child{border-top:0}
.g-list li>span{min-width:0}.g-list em{display:block;font-style:normal;font-size:12px;color:var(--muted)}.g-list .g-btn{flex:0 0 auto;min-height:36px;font-size:12px}
.g-shop li.is-owned{opacity:.6}

/* relics */
.g-rarities{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.g-rarity{display:inline-block;font:10px ui-monospace,monospace;letter-spacing:.8px;text-transform:uppercase;padding:3px 8px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}
.r-common{color:var(--g-common)}.r-rare{color:var(--g-rare)}.r-epic{color:var(--g-epic)}.r-legendary{color:var(--g-legendary)}
.g-zones{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.g-relics{list-style:none;padding:0;margin:0}.g-relic{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.g-relic:first-child{border-top:0}
.g-relic b{display:block;font-size:13.5px;color:var(--text)}.g-relic em{font-style:normal;font-size:12px;color:var(--muted)}.g-relic a{font-size:12px;color:var(--muted);white-space:nowrap}.g-relic a:hover{color:var(--text)}
.g-relic.r-legendary b{color:var(--g-legendary)}

/* badges */
.g-badges{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.g-badge{display:flex;gap:11px;padding:12px;border:1px dashed var(--line);border-radius:12px;opacity:.6}.g-badge.is-earned{opacity:1;border-style:solid;background:var(--panel2)}
.g-badge-mark{font-size:20px;line-height:1;color:var(--muted)}.g-badge.is-earned .g-badge-mark{color:var(--g-legendary)}
.g-badge b{display:block;font-size:13px}.g-badge em{display:block;font-style:normal;font-size:12px;color:var(--muted)}.g-badge time{display:block;font-size:11px;color:var(--g-good);margin-top:3px}

/* ranking */
.g-toggle{margin:4px 0 12px}
.g-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.g-table th{font:11px ui-monospace,monospace;letter-spacing:1px;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:500;padding:8px 6px;border-bottom:1px solid var(--line)}
.g-table td{padding:9px 6px;border-bottom:1px solid var(--line);vertical-align:top}.g-table td small{display:block;color:var(--muted);font-size:11px}.g-table tr.is-you td{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.g-table td b{overflow-wrap:anywhere}

/* intro */
.g-intro .g-row{margin-bottom:12px}.g-intro .g-features{list-style:none;padding:0;margin:14px 0 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.g-features li{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);font-size:13px;color:var(--muted)}.g-features b{display:block;color:var(--text);margin-bottom:3px}
.g-classes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.g-class{display:flex;flex-direction:column;gap:6px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);color:var(--text);min-height:120px}
.g-class:hover:not(:disabled){border-color:var(--accent)}.g-class b{font-size:15px}.g-class span{font-size:12.5px;color:var(--muted)}

/* feedback & celebrations */
.g-feedback{padding:11px 15px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);font-size:13px;margin-bottom:12px}.g-error{border-color:color-mix(in srgb,var(--g-bad) 55%,var(--line));color:var(--g-bad)}
.g-pops{position:fixed;z-index:60;right:22px;bottom:22px;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:min(360px,calc(100vw - 32px))}
.g-pop{pointer-events:auto;padding:13px 16px;border-radius:14px;background:var(--panel);border:1px solid var(--accent);box-shadow:var(--shadow);animation:g-pop .35s cubic-bezier(.2,.9,.3,1.3)}
.g-pop b{display:block;font-size:15px}.g-pop span{display:block;font-size:12.5px;color:var(--muted)}
.g-pop-level{background:var(--accent);color:var(--ink)}.g-pop-level span{color:var(--ink);opacity:.8}
.g-pop-badge{border-color:var(--g-epic)}.g-pop-epic{border-color:var(--g-epic)}.g-pop-epic b{color:var(--g-epic)}.g-pop-legendary{border-color:var(--g-legendary)}.g-pop-legendary b{color:var(--g-legendary)}.g-pop-streak{border-color:var(--g-energy)}
@keyframes g-pop{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}

/* responsive */
@media(max-width:1100px){.g-hud{grid-template-columns:1fr auto}.g-meters{grid-column:1/-1;grid-row:2}.g-classes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.g-columns{grid-template-columns:1fr}.g-slots{grid-template-columns:1fr}.g-intro .g-features{grid-template-columns:1fr}}
@media(max-width:620px){
 .g-card{padding:16px;border-radius:14px}.game h2{font-size:19px}.g-emblem{width:44px;height:44px;border-radius:11px}.g-title-row{gap:12px}
 .g-hud{grid-template-columns:1fr;gap:12px;padding:14px}
 .g-meters{grid-row:auto;grid-template-columns:1fr;gap:8px}.g-stats{grid-template-columns:repeat(4,auto);justify-content:space-between;gap:4px 10px}.g-stats dd{font-size:13px}.g-stats dt{font-size:10px}
 .g-options{grid-template-columns:1fr}.g-actions .g-btn{flex:1 1 calc(50% - 8px)}.g-actions .g-btn.primary{flex-basis:100%}
 .g-classes{grid-template-columns:1fr}.g-class{min-height:0}
 .g-streak{gap:3px}.g-streak li{padding:6px 2px}.g-streak span{font-size:11px}.g-streak b{font-size:11px}
 .g-relic{grid-template-columns:minmax(0,1fr) auto}.g-relic>.g-rarity{grid-column:1/-1;justify-self:start}
 .g-table th:nth-child(4),.g-table td:nth-child(4){display:none}
 .g-hint{display:none}.g-btn kbd{display:none}
 .g-pops{left:16px;right:16px;bottom:16px;max-width:none}
}
@media(max-width:620px){
 .game .g-title{margin-bottom:12px}.game .g-title p{display:none}.g-title-row{margin:8px 0 4px}
 .g-hud{gap:10px;padding:12px}.g-id span{font-size:12px}
 .g-meters{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.g-meter-head{flex-wrap:wrap;gap:0 4px;font-size:11px;white-space:normal}
 .g-tabs{flex-wrap:wrap;overflow:visible;gap:6px}.g-tab{padding:7px 11px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.g-btn.glow,.g-pop{animation:none}.g-bar i{transition:none}}
