/* Game pages only: a bounded play surface and large, reachable controls.
 * Shared site navigation, tutorials, calculators, and homepage are unaffected.
 */
body.game-page [hidden] { display:none !important; }
.game-nav { display:flex;justify-content:space-between;align-items:center;gap:12px; }
.game-nav a { display:inline-flex;align-items:center;min-height:44px;color:var(--accent);text-underline-offset:4px; }
body.game-page button { touch-action:manipulation; }
body.game-page button:active:not(:disabled) { transform:translateY(2px);filter:brightness(1.18); }
body.game-page button:focus-visible,body.game-page a:focus-visible,body.game-page summary:focus-visible { outline:3px solid #ffd166;outline-offset:3px; }
body.game-page button,body.game-page select { min-height:44px; }
body.game-page .game-guide { margin:20px 0;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--panel); }
.game-guide summary { min-height:44px;cursor:pointer;font-weight:800; }
.game-guide>p { color:var(--muted);line-height:1.6; }
body.game-page .game-guide .game-side,body.game-page .game-guide .lander-side { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));margin-top:16px; }
body.game-page .game-guide .daily-quest-active { position:static;margin:14px 0; }
.game-ready { display:grid;place-content:center;gap:14px;text-align:center;padding:24px;min-height:280px; }
.game-ready h2 { margin:0;font-size:1.5rem; }
.game-ready p { margin:0;color:var(--muted);line-height:1.5; }
.game-ready button { min-height:56px;border:0;border-radius:14px;background:var(--accent);color:#042033;font:inherit;font-weight:850;cursor:pointer; }
body.game-page .game-feedback p { line-height:1.45; }
.pong-thumb-pad { display:block;touch-action:none;user-select:none;-webkit-user-select:none;cursor:ew-resize;width:100%;min-height:54px;border:1px solid rgba(76,201,240,.35);border-radius:12px;background:rgba(76,201,240,.12);color:#dff8ff;font:inherit;font-weight:800; }
.pong-thumb-pad:active { background:rgba(76,201,240,.25); }
body.game-page .pong-thumb-guide { padding:6px 12px; }
@media(min-width:761px) {
 .game-nav { display:none; }
 body.game-page .page-hero,body.game-page .pong-intro,body.game-page .gajian-intro { padding:28px 0 20px; }
 body.game-page .page-hero h1,body.game-page .pong-intro h1,body.game-page .gajian-intro h1 { font-size:clamp(2rem,4vw,3rem);line-height:1.12; }
 body.game-page .game-shell,body.game-page .lander-layout,body.game-page .pong-layout,body.game-page .defense-shell,body.game-page .gajian-layout { grid-template-columns:minmax(0,1fr);max-width:900px;margin:0 auto 24px; }
 body.game-page .lander-game-card,body.game-page .pong-game-card { width:100%;max-width:540px;margin:auto; }
 body.game-page .lander-canvas-wrap canvas { max-height:480px;object-fit:contain; }
 body.game-page .pong-arena-wrap { min-height:0;height:480px; }
}
@media(max-width:760px) {
 body.game-page { --play-height:calc(100svh - 102px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior-y:auto; }
 body.game-page .page-shell { width:calc(100% - 20px);padding:env(safe-area-inset-top) 0 0; }
 body.game-page .site-header { display:none; }
 body.game-page .page-hero,body.game-page .pong-intro,body.game-page .gajian-intro { padding:0 0 8px;margin:0;max-width:none; }
 body.game-page .page-hero h1,body.game-page .pong-intro h1,body.game-page .gajian-intro h1 { margin:0;font-size:1.2rem;line-height:1.25;letter-spacing:-.02em; }
 body.game-page .page-hero .breadcrumb,body.game-page .page-hero .eyebrow,body.game-page .pong-intro .breadcrumb,body.game-page .pong-intro .eyebrow,body.game-page .gajian-intro .breadcrumb,body.game-page .gajian-intro .eyebrow { display:none; }
 body.game-page .game-shell,body.game-page .lander-layout,body.game-page .pong-layout,body.game-page .defense-shell,body.game-page .gajian-layout { display:block;margin:0 0 14px;min-width:0; }
 body.game-page .game-panel,body.game-page .lander-game-card,body.game-page .pong-game-card,body.game-page .gajian-game-card { height:var(--play-height);min-height:430px;max-height:850px;border:1px solid rgba(76,201,240,.25);border-radius:18px;overflow:hidden; }
 body.game-page [id$='play-area'] { display:flex;flex-direction:column;height:100%;min-height:0; }
 body.game-page .game-toolbar,body.game-page .runner-toolbar,body.game-page .lander-toolbar,body.game-page .defense-topbar { flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:7px 8px; }
 body.game-page .game-stats,body.game-page .lander-stats { gap:4px;flex:1; }
 body.game-page .game-stat,body.game-page .lander-stats>span { padding:4px 6px;font-size:.8125rem;white-space:nowrap; }
 body.game-page .game-legend { margin:0;font-size:.8125rem;gap:8px; }
 body.game-page .game-progress,body.game-page .lander-progress { flex:none;height:3px; }
 body.game-page .game-canvas-wrap { display:flex;flex:1 1 0;min-height:130px;max-height:400px;padding:4px; }
 body.game-page .game-canvas-wrap canvas { width:100%;height:100%;aspect-ratio:auto!important;min-height:0;border-radius:10px; }
 body.game-page .game-prompt { padding:6px 10px;flex:none; }
 body.game-page .game-prompt h2 { margin:0 0 3px;font-size:1rem;line-height:1.2; }
 body.game-page .game-prompt p { font-size:.875rem;line-height:1.35; }
 body.game-page .game-actions { position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:auto;padding:8px 8px calc(8px + env(safe-area-inset-bottom));box-shadow:none;flex:none; }
 body.game-page .game-choice { min-height:52px;font-size:.875rem;padding:6px 3px;line-height:1.25; }
 body.game-page .game-feedback { flex:none;margin:6px 8px 8px;padding:10px; }
 body.game-page .game-feedback strong { margin:0 0 4px;font-size:.9375rem; }
 body.game-page .game-feedback p { font-size:.875rem; }
 body.game-page .game-next { display:block;width:100%;min-height:48px;margin-top:8px;font-size:.9375rem; }
 body.game-page [id$='play-area']:has(.game-feedback.is-visible) .game-actions,
 body.game-page [id$='play-area']:has(.game-feedback.is-visible) .game-prompt,
 body.game-page [id$='play-area']:has(.game-feedback.is-visible) :is(.rsi-readout,.boll-readout,.rush-readout) { display:none; }
 body.game-page .game-final,body.game-page .lander-final { display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px;height:100%;padding:16px;overflow:auto; }
 body.game-page .game-final>strong,body.game-page .lander-final-score { font-size:3.5rem;line-height:1; }
 body.game-page .game-final p,body.game-page .lander-final p { margin:4px 0;font-size:.9375rem;line-height:1.4; }
 body.game-page .game-share-actions,body.game-page .lander-final-actions,body.game-page .rush-share-actions { display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 0;width:100%; }
 body.game-page :is(.game-restart,.game-share-button) { min-height:48px;padding:6px 8px;font-size:.9375rem; }
 body.game-page .game-ready { height:100%;min-height:0;align-content:end;padding-bottom:28px; }
 body.game-page .game-ready button { margin-top:20px; }
 body.game-page .rsi-position-wrap { width:auto;gap:6px; }
 body.game-page .rsi-position-pill,body.game-page .rsi-pnl { font-size:.8125rem;padding:3px 5px; }
 body.game-page :is(.rsi-readout,.boll-readout,.rush-readout) { display:flex;flex-wrap:wrap;gap:4px;padding:4px 8px;flex:none; }
 body.game-page :is(.rsi-readout,.boll-readout,.rush-readout)>* { flex:1;padding:4px 6px;font-size:.75rem;white-space:nowrap; }
 body.game-page .rsi-readout span { font-size:.75rem;margin:0; }
 body.game-page :is(.rsi-readout,.boll-readout,.rush-readout) strong { display:inline;font-size:.8125rem;margin:0 0 0 3px; }
 body.game-page .tension-wrap { display:none; }
 body.game-page .rush-clock { display:flex;gap:4px;padding:4px;min-width:0; }
 body.game-page .rush-clock span { font-size:1.2rem; }
 body.game-page .rush-clock small { font-size:.75rem; }
 body.game-page .rush-tags { display:none; }
 body.game-page .rush-start-panel { position:static;margin:0;padding:8px;box-shadow:none; }
 body.game-page .rush-start-panel span { font-size:.8125rem; }
 body.game-page .rush-start-button { min-height:52px; }
 body.game-page #rush-share-card { display:none; }
 body.game-page :is(.rsi-final-metrics,.defense-final-grid,.lander-final-grid) { display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0; }
 body.game-page :is(.rsi-final-metrics,.defense-final-grid,.lander-final-grid)>div { padding:8px; }
 body.game-page :is(.rsi-final-metrics,.defense-final-grid,.lander-final-grid) span { font-size:.8125rem; }
 /* Arcade arenas preserve logical coordinates. object-fit avoids physics distortion. */
 body.game-page .runner-panel { display:flex;flex-direction:column; }
 body.game-page .runner-canvas-wrap { position:relative;flex:1;display:grid;place-items:center;min-height:0;padding:4px; }
 body.game-page .runner-canvas-wrap canvas { display:block!important;width:100%;height:100%;aspect-ratio:auto;object-fit:contain; }
 body.game-page .runner-overlay { position:absolute;inset:4px;min-height:0;padding:14px;place-content:end center; }
 body.game-page .runner-overlay h2 { font-size:1.35rem;line-height:1.2; }
 body.game-page .runner-overlay p { font-size:.875rem;line-height:1.4;margin-bottom:8px; }
 body.game-page .runner-controls { position:static;grid-template-columns:1fr;padding:8px;gap:4px;box-shadow:none; }
 body.game-page .runner-push { min-height:56px; }
 body.game-page .runner-status { font-size:.8125rem;line-height:1.3; }
 body.game-page .runner-hint { display:none; }
 body.game-page .lander-market { padding:3px 5px;font-size:.8125rem; }
 body.game-page .lander-canvas-wrap { flex:1;min-height:0;display:grid;place-items:center;padding:4px; }
 body.game-page .lander-canvas-wrap canvas { width:100%;height:100%;aspect-ratio:auto;object-fit:contain; }
 body.game-page .lander-overlay { inset:4px;padding:10px;place-content:end center; }
 body.game-page .lander-overlay h2 { font-size:1.3rem;margin:3px 0 6px; }
 body.game-page .lander-overlay p { font-size:.875rem;line-height:1.3;margin:0 0 8px; }
 body.game-page .lander-result-grid { grid-template-columns:repeat(3,1fr);gap:4px;margin:0 0 8px; }
 body.game-page .lander-result-grid>div { padding:5px; }
 body.game-page .lander-result-grid span { font-size:.75rem; }
 body.game-page .lander-readout { grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px 8px; }
 body.game-page .lander-readout>div { padding:4px; }
 body.game-page .lander-readout>div:last-child { grid-column:auto; }
 body.game-page .lander-readout span { font-size:.75rem;letter-spacing:0; }
 body.game-page .lander-readout strong { font-size:.9375rem; }
 body.game-page .lander-buy { position:static;min-height:54px;margin:4px 8px;width:calc(100% - 16px);box-shadow:none; }
 body.game-page .lander-control-note { font-size:.8125rem;line-height:1.3;padding:0 8px 8px; }
 body.game-page .lander-power-track { margin:3px 8px;height:5px; }
 /* One bottom thumb strip controls Pong without covering the approaching candle. */
 body.game-page .pong-game-card { display:flex;flex-direction:column; }
 body.game-page .pong-hud { padding:7px 10px; }
 body.game-page .pong-side-score small,body.game-page .pong-rally small { font-size:.75rem;letter-spacing:0; }
 body.game-page .pong-arena-wrap { flex:1;height:auto;min-height:0; }
 body.game-page .pong-overlay { padding:10px;align-items:end; }
 body.game-page .pong-overlay-card { padding:12px; }
 body.game-page .pong-overlay-card h2 { font-size:1.25rem; }
 body.game-page .pong-overlay-card p { font-size:.875rem;line-height:1.3;margin-bottom:8px; }
 body.game-page .pong-controls { grid-template-columns:1.25fr 1fr 1fr;gap:4px;padding:6px; }
 body.game-page .pong-controls label { grid-column:auto;padding:0 4px; }
 body.game-page .pong-controls label>span { display:none; }
 body.game-page .pong-controls select { max-width:none;width:100%; }
 body.game-page .pong-controls button,body.game-page .pong-controls label { font-size:.8125rem; }
 body.game-page .pong-thumb-pad { min-height:50px;font-size:.875rem; }
 /* Turn-based Defense keeps the event, allocations and decisions together. */
 body.game-page .defense-dashboard { display:block;padding:6px;flex:1;min-height:0;overflow:auto; }
 body.game-page .defense-nav-card { padding:8px; }
 body.game-page .defense-nav-card>strong { font-size:1.2rem; }
 body.game-page .defense-nav-card canvas { height:48px;margin-top:4px; }
 body.game-page .defense-label { font-size:.75rem;margin:0;letter-spacing:0; }
 body.game-page .defense-nav-meta { margin-top:2px;font-size:.8125rem; }
 body.game-page .defense-event-card { padding:8px;margin-top:6px; }
 body.game-page .defense-event-head { flex-direction:row;gap:8px; }
 body.game-page .defense-event-card h2 { font-size:1rem;line-height:1.2; }
 body.game-page .defense-event-card>p { font-size:.875rem;line-height:1.3;margin-top:4px; }
 body.game-page .defense-risk-wrap { width:auto;flex-basis:58px; }
 body.game-page .defense-event-tags,body.game-page .defense-regime { display:none; }
 body.game-page .defense-allocation-card { padding:6px;margin:0 6px 6px; }
 body.game-page .defense-section-head { flex-direction:row;gap:6px; }
 body.game-page .defense-section-head h2 { display:none; }
 body.game-page .defense-stack { margin-top:4px;height:7px; }
 body.game-page .defense-assets { grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:4px; }
 body.game-page .defense-asset { padding:4px; }
 body.game-page .defense-asset span { font-size:.6875rem;letter-spacing:0; }
 body.game-page .defense-asset strong { font-size:.9375rem;margin-top:2px; }
 body.game-page .defense-asset small { display:none; }
 body.game-page .defense-decision-card { padding:6px;margin:0 6px 6px; }
 body.game-page .defense-decision-card h2 { font-size:.875rem; }
 body.game-page .defense-actions { position:static;grid-template-columns:1fr 1fr;gap:5px;margin:5px 0 0;padding:0;box-shadow:none;border:0; }
 body.game-page .defense-action { min-height:48px;padding:5px; }
 body.game-page .defense-action b { font-size:.8125rem;margin:0; }
 body.game-page .defense-action small { display:none; }
 body.game-page #defense-play-area:has(.game-feedback.is-visible) :is(.defense-decision-card,.defense-allocation-card) { display:none; }
 body.game-page .defense-outcome { grid-template-columns:repeat(3,1fr);gap:4px;margin-top:5px; }
 body.game-page .defense-outcome span { padding:4px;font-size:.75rem; }
 /* The randomizer's result and replay button retain stable positions. */
 body.game-page .gajian-game-card { display:flex;flex-direction:column;padding:12px; }
 body.game-page .gajian-payday { padding:8px;gap:4px; }
 body.game-page .gajian-payday small { display:none; }
 body.game-page .gajian-reel { flex:1;min-height:0;margin:10px 0;padding:12px;grid-template-columns:1fr;gap:8px;text-align:center;align-content:center; }
 body.game-page .gajian-reel-emoji { font-size:3.5rem; }
 body.game-page .gajian-reel strong { font-size:clamp(1.5rem,7vw,2.5rem);line-height:1.15; }
 body.game-page .gajian-dots { margin-bottom:10px; }
 body.game-page .gajian-shuffle,body.game-page .gajian-share { min-height:52px;padding:5px; }
 body.game-page .gajian-share-status:empty { display:none; }
 body.game-page .daily-quest-active,body.game-page .investor-progress-pill { display:none; }
}
@media(max-width:760px) and (max-height:650px) {
 body.game-page .game-panel,body.game-page .lander-game-card,body.game-page .pong-game-card,body.game-page .gajian-game-card { min-height:0; }
 body.game-page .game-toolbar .game-stat:nth-child(n+3) { display:none; }
 body.game-page .rsi-position-wrap { margin-left:auto; }
 body.game-page .rsi-readout>div:nth-child(n+3),body.game-page .boll-readout>span:nth-child(3),body.game-page .boll-readout>span:nth-child(4) { display:none; }
 body.game-page .game-canvas-wrap { min-height:120px; }
 body.game-page .defense-nav-card canvas { display:none; }
 body.game-page .defense-topbar .game-stat:nth-child(n+3) { display:none; }
 body.game-page .defense-nav-card { display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 6px; }
 body.game-page .defense-nav-card .defense-label { display:none; }
}
@media(orientation:landscape) and (max-height:500px) {
 body.game-page { --play-height:auto; }
 body.game-page .game-panel,body.game-page .lander-game-card,body.game-page .pong-game-card,body.game-page .gajian-game-card { height:auto;min-height:420px;max-height:none; }
 body.game-page .game-canvas-wrap { min-height:180px; }
 body.game-page .runner-canvas-wrap,body.game-page .lander-canvas-wrap,body.game-page .pong-arena-wrap { min-height:260px; }
}
@media(prefers-reduced-motion:reduce) { body.game-page * { scroll-behavior:auto!important;transition:none!important; } }

body.game-page .game-ready button { min-height:56px; }
body.game-page .runner-overlay { position:absolute; }
body.game-page .runner-push,body.game-page .lander-buy { touch-action:none;user-select:none; }
@media(max-width:760px) {
 body.game-page .defense-decision-card>h2,body.game-page .defense-decision-card>.defense-label,body.game-page .defense-allocation-card .defense-section-head { display:none; }
 body.game-page .defense-dashboard { overflow:visible; }
 body.game-page .defense-decision-card,body.game-page .defense-allocation-card { flex:none; }
 body.game-page .game-final h2 { font-size:1.15rem;margin:0;line-height:1.25; }
 body.game-page .game-final { gap:6px; }
 body.game-page #defense-play-area:has(.game-feedback.is-visible) .defense-event-card { display:none; }
 body.game-page .defense-final-grid { width:100%;min-width:0; }
 body.game-page .defense-final-grid b { font-size:.8125rem; }
}
@media(max-width:760px) and (max-height:650px) {
 body.game-page .defense-nav-meta,body.game-page .defense-event-card .defense-label { display:none; }
 body.game-page .defense-nav-card { padding:4px 8px; }
 body.game-page .defense-nav-card>strong { font-size:1rem; }
 body.game-page .defense-event-card { padding:6px; }
}
@media(max-width:760px) {
 body.game-page .runner-canvas-wrap,body.game-page .lander-canvas-wrap { display:block;position:relative; }
 body.game-page .runner-canvas-wrap canvas,body.game-page .lander-canvas-wrap canvas { position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);min-height:0;min-width:0; }
 body.game-page .lander-stats { flex:none;width:100%;flex-wrap:nowrap;justify-content:space-between; }
 body.game-page .lander-market { display:none; }
 body.game-page .lander-control-note { margin:0;font-size:.8125rem; }
 body.game-page .lander-stage-button { width:100%;min-height:48px; }
 body.game-page .lander-canvas-wrap:has(.lander-overlay:not([hidden])) { min-height:230px; }
 body.game-page .lander-canvas-wrap:has(.lander-overlay:not([hidden])) ~ .lander-readout,
 body.game-page .lander-canvas-wrap:has(.lander-overlay:not([hidden])) ~ .lander-buy,
 body.game-page .lander-canvas-wrap:has(.lander-overlay:not([hidden])) ~ .lander-power-track,
 body.game-page .lander-canvas-wrap:has(.lander-overlay:not([hidden])) ~ .lander-control-note { display:none; }
}
@media(max-width:760px) and (max-height:650px) {
 body.game-page .rush-readout>span:nth-child(n+3) { display:none; }
 body.game-page .boll-readout { font-size:.75rem; }
 body.game-page .game-prompt h2 { font-size:.9375rem; }
 body.game-page .game-toolbar .game-stats { display:flex;flex-wrap:nowrap; }
 body.game-page .game-toolbar .game-legend { width:100%;justify-content:center; }
}
@media(max-width:760px) {
 body.game-page .rush-toolbar { display:flex;flex-direction:row;flex-wrap:nowrap; }
 body.game-page .rush-toolbar .game-stats { width:auto;min-width:0;justify-content:flex-start; }
 body.game-page .rush-clock { flex:none;align-self:center; }
 body.game-page .rush-final-meta { margin:4px 0; }
}
/* The game header's redundant LIVE badge must not widen the desktop page. */
body.game-page .site-header .status-pill { display:none; }
