.game-page{--game-bg:#f3f6f5;--game-ink:#293e49;--game-accent:#a7482c;--game-accent-text:#8d3a23;--game-highlight:#426575;--game-line:#c3d1d4;--game-panel:#e0e9ec;--game-muted:#426575;--game-accent-ink:#ffffff;margin:0;background:var(--game-bg);color:var(--game-ink);font-family:'Source Sans 3',sans-serif;color-scheme:light}.game-page *{box-sizing:border-box}.game-page button,.game-page a{-webkit-tap-highlight-color:transparent}.game-page button{font:inherit;cursor:pointer}.game-page a{color:inherit;text-decoration:none}.game-page button:focus-visible,.game-page a:focus-visible,.game-page canvas:focus-visible{outline:3px solid var(--game-highlight);outline-offset:4px}.game-page button:disabled{opacity:.4;cursor:default}.game-page ::selection{background:var(--game-accent);color:var(--game-accent-ink)}.game-shell{max-width:1120px;margin:0 auto;padding:0 36px}.game-nav{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--game-line);gap:24px}.game-brand{display:flex;gap:10px;align-items:center}.game-brand img{object-fit:contain}.game-brand>span{font:700 22px/.9 'Archivo',sans-serif;letter-spacing:-1px}.game-brand>span>span{display:block}.game-back{font:11px 'IBM Plex Mono',monospace;display:flex;gap:12px;align-items:center}.game-back:hover{color:var(--game-accent)}.game-heading{display:flex;justify-content:space-between;gap:22px;align-items:end;padding:29px 0 23px}.game-eyebrow,.overlay-kicker{font:500 10px/1.5 'IBM Plex Mono',monospace;letter-spacing:1.7px;color:var(--game-highlight);margin:0}.game-live-dot{display:inline-block;width:6px;height:6px;background:var(--game-accent);border-radius:50%;margin-right:8px;vertical-align:1px}.game-heading h1{font:500 clamp(26px,3.1vw,39px)/1.14 'Archivo',sans-serif;letter-spacing:-1.7px;margin:9px 0 0}.game-heading h1>span{color:var(--game-accent)}.game-heading>p{margin:0 0 2px;flex-shrink:0;font-size:12px;line-height:1.7}.game-heading>p>span{color:var(--game-muted)}.game-route{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0;padding:0 0 17px;gap:10px}.game-route li{display:flex;align-items:center;gap:9px;font:11px 'IBM Plex Mono',monospace;color:var(--game-muted);position:relative}.game-route li:after{content:'';height:1px;background:var(--game-line);flex:1;margin-left:3px}.game-route li:last-child:after{display:none}.route-number{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--game-line);border-radius:50%;flex-shrink:0;font-size:9px}.game-route li.active{color:var(--game-ink)}.game-route li.active .route-number{background:var(--game-accent);border-color:var(--game-accent-text);color:var(--game-accent-ink)}.game-route li.complete .route-number{background:var(--game-highlight);border-color:var(--game-highlight);color:var(--game-accent-ink)}.runner-game{border:1px solid #c3d1d4;border-radius:12px;overflow:hidden;background:#e0e9ec;box-shadow:0 12px 42px #293e4918}.runner-game:focus{outline:none}.game-hud{display:flex;gap:25px;align-items:center;padding:14px 22px;background:var(--game-panel);font:11px 'IBM Plex Mono',monospace;min-height:67px}.game-hud-route{flex:1;max-width:410px;margin-right:auto}.game-hud-route>span{display:block;margin-bottom:9px}.game-hud progress{display:block;width:100%;height:3px;border:0;appearance:none;background:#c3d1d4;color:var(--game-accent)}.game-hud progress::-webkit-progress-bar{background:#c3d1d4;border-radius:5px}.game-hud progress::-webkit-progress-value{background:var(--game-accent);border-radius:5px}.game-hud progress::-moz-progress-bar{background:var(--game-accent)}.game-hud-time,.game-hud-pace,.game-hud-split{display:flex;flex-direction:column;gap:7px}.hud-label{font-size:8px;letter-spacing:1px;color:var(--game-muted)}#game-time{color:var(--game-accent-text);letter-spacing:2px;white-space:nowrap}#game-pace{min-width:62px}#game-route-time{min-width:35px;text-align:right}.game-stage{position:relative;isolation:isolate;background:#e0e9ec}#game-canvas{width:100%;height:auto;aspect-ratio:2/1;display:block;touch-action:manipulation}.game-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(90deg,#f3f6f5cc,#f3f6f580,#f3f6f5bb);text-align:center}.game-overlay[hidden]{display:none}.overlay-card{width:min(460px,100%);padding:27px 30px;background:#f3f6f5f2;border:1px solid #c3d1d4;border-radius:12px;box-shadow:0 15px 40px #293e4918}.overlay-kicker{color:var(--game-accent)}.overlay-card h2{font:500 clamp(28px,3.8vw,44px)/1.07 'Archivo',sans-serif;letter-spacing:-1.5px;margin:12px 0}.overlay-card p:not(.overlay-kicker){font-size:13px;line-height:1.65;color:#293e49;margin:12px 0}.overlay-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:19px}.game-primary,.game-overlay button{border:1px solid var(--game-accent);border-radius:5px;background:var(--game-accent);color:var(--game-accent-ink);font:600 13px 'Source Sans 3',sans-serif;padding:13px 22px;min-height:45px;transition:background .15s,transform .15s}.game-primary:hover,.game-overlay button:hover{background:#8d3a23;transform:translateY(-1px)}.game-overlay .game-secondary{color:var(--game-ink);background:transparent;border-color:var(--game-line)}.game-overlay .game-secondary:hover{background:#e0e9ec}.overlay-card p.overlay-controls{font:9px/1.5 'IBM Plex Mono',monospace;color:#426575;margin:16px 0 0}.game-control-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--game-panel);padding:12px 20px}.game-action-controls,.game-utility-controls{display:flex;gap:9px}.game-action{display:flex;align-items:center;gap:10px;border:1px solid #c3d1d4;background:#f3f6f5;color:var(--game-ink);padding:9px 15px;min-height:43px;border-radius:5px;touch-action:none;user-select:none;-webkit-user-select:none}.game-action>span{font-size:18px;color:var(--game-accent)}.game-action kbd{font:8px 'IBM Plex Mono',monospace;color:var(--game-muted);border:1px solid var(--game-line);border-radius:3px;padding:3px 5px;margin-left:10px}.game-action:active,.game-action.is-held{background:#b4c7d0;transform:translateY(1px)}.game-utility-controls button{font:10px 'IBM Plex Mono',monospace;background:transparent;border:1px solid var(--game-line);color:var(--game-muted);padding:11px 12px;border-radius:5px;min-height:43px}.game-utility-controls button:hover{color:var(--game-ink);border-color:var(--game-highlight)}.game-below{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:14px 2px 0;min-height:51px}.game-below p{margin:0}.game-below #game-status{font-size:12px;color:#426575;line-height:1.5}.game-session-note{font:8px/1.7 'IBM Plex Mono',monospace;letter-spacing:1px;color:var(--game-muted);text-align:right;flex-shrink:0}.game-guide{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;border-top:1px solid var(--game-line);margin-top:27px;padding:28px 0 34px}.game-guide h2{font:500 24px 'Archivo',sans-serif;letter-spacing:-.7px;margin:8px 0 12px}.game-guide p{font-size:12px;line-height:1.75;color:var(--game-muted);margin:0}.game-guide-tips{display:grid;gap:14px}.game-guide-tips p{display:grid;grid-template-columns:160px 1fr;gap:10px}.game-guide-tips strong{font-weight:500;color:var(--game-ink)}.game-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--game-line);padding:21px 0 30px;font:9px/1.6 'IBM Plex Mono',monospace;color:var(--game-muted)}.game-footer>span:last-child{font:11px 'Source Sans 3',sans-serif}.game-noscript{padding:16px;background:var(--game-accent);color:var(--game-accent-ink)}.game-noscript a{text-decoration:underline}.game-skip{position:fixed;z-index:10;left:16px;top:-80px;background:var(--game-accent);color:var(--game-accent-ink)!important;padding:12px 18px}.game-skip:focus{top:16px}
@media(max-width:850px){.game-shell{padding:0 22px}.game-heading{align-items:start;gap:10px}.game-heading h1{max-width:410px;font-size:32px}.game-heading>p{font-size:11px;padding-top:25px}.game-route li{font-size:9px;gap:6px}.game-hud{gap:18px}.game-guide{gap:28px}.game-guide-tips p{grid-template-columns:1fr;gap:2px}}
@media(max-width:600px){.game-shell{padding:0 16px}.game-nav{padding:12px 0}.game-brand img{width:54px;height:36px}.game-brand>span{font-size:19px}.game-back{font-size:9px;gap:6px}.game-heading{display:block;padding:23px 0 19px}.game-heading h1{font-size:31px;max-width:330px;letter-spacing:-1.25px}.game-heading>p{font-size:11px;padding-top:9px;line-height:1.5}.game-heading>p br{display:none}.game-heading>p>span{margin-left:3px}.game-eyebrow{font-size:8px;letter-spacing:1.2px}.game-route{gap:5px;padding-bottom:13px}.game-route li{flex-direction:column;align-items:center;gap:7px;font-size:8px;text-align:center}.game-route li:after{display:none}.route-number{width:24px;height:24px;font-size:8px}.game-hud{padding:12px;gap:12px;flex-wrap:wrap;min-height:61px;font-size:9px}.game-hud-route{min-width:30%;max-width:none}.game-hud-pace{display:none}.game-hud-time,.game-hud-split{gap:5px}.hud-label{font-size:7px}.runner-game{border-radius:9px}.game-overlay{position:relative;padding:0;background:#e0e9ec;border-top:1px solid var(--game-line)}.overlay-card{width:100%;border:0;border-radius:0;box-shadow:none;padding:20px 18px;background:transparent}.overlay-card h2{font-size:29px;margin:8px 0}.overlay-card h2 br{display:none}.overlay-card p:not(.overlay-kicker){font-size:11px;margin:9px 0;line-height:1.5}.overlay-card .overlay-kicker{font-size:8px}.overlay-actions{margin-top:13px}.game-overlay button{font-size:12px;padding:12px 19px}.overlay-card p.overlay-controls{font-size:8px;margin-top:12px}.game-control-bar{padding:11px;gap:8px;flex-wrap:wrap}.game-action-controls{width:100%;gap:9px}.game-action{justify-content:center;flex:1;padding:9px 10px;min-height:49px;font-size:14px;gap:8px}.game-action kbd{display:none}.game-utility-controls{width:100%;gap:9px}.game-utility-controls button{flex:1;min-height:36px;padding:8px;font-size:9px}.game-below{padding-top:11px;min-height:45px;display:block}.game-below #game-status{font-size:11px}.game-session-note{display:none}.game-guide{grid-template-columns:1fr;gap:21px;margin-top:20px;padding-top:23px}.game-guide h2{font-size:24px;margin-top:7px}.game-guide p{font-size:12px}.game-guide-tips{gap:14px}.game-guide-tips p{grid-template-columns:1fr;gap:0}.game-footer{display:block;font-size:8px;padding-bottom:23px}.game-footer>span{display:block}.game-footer>span:last-child{font-size:10px;margin-top:8px}}
@media(prefers-reduced-motion:reduce){.game-page *, .game-page *:before,.game-page *:after{scroll-behavior:auto!important;transition:none!important}}
.game-page .overlay-actions a.game-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 17px;border:1px solid var(--game-line);border-radius:5px;font:600 12px 'Source Sans 3',sans-serif;text-decoration:none}.game-page .overlay-actions a.game-secondary:hover{background:#e0e9ec}
/* Compact the desktop frame and keep engine-generated key hints readable. */
.game-shell{max-width:1000px}
.overlay-controls{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:9px 16px;margin:14px 0;font:10px/1.6 'IBM Plex Mono',monospace;color:var(--game-muted)}
.overlay-controls>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.overlay-controls>span:last-child{flex-basis:100%;justify-content:center;font-size:9px}
.overlay-controls kbd{font:inherit;font-size:9px;line-height:1.4;padding:3px 6px;border:1px solid #c3d1d4;border-bottom-width:2px;border-radius:4px;background:#e0e9ec;color:var(--game-ink)}
#game-pace.is-active{color:var(--game-accent-text);font-weight:600}
@media(min-width:601px){.game-heading{padding-top:24px;padding-bottom:20px}.overlay-card{padding-top:23px;padding-bottom:23px}.overlay-card h2{font-size:38px}.overlay-card p:not(.overlay-kicker){font-size:12px;line-height:1.6}}
@media(max-width:600px){.game-hud{row-gap:8px}.game-hud-pace{display:flex;flex-direction:row;flex-basis:100%;align-items:center;gap:9px;order:4;border-top:1px solid var(--game-line);padding-top:7px}.game-hud-pace .hud-label{font-size:7px}.game-hud-pace #game-pace{font-size:9px}.overlay-controls{gap:8px 12px;margin:12px 0;font-size:9px}.overlay-controls>span:last-child{font-size:8px}.overlay-controls kbd{font-size:8px}}

/* A running stopwatch, route split and short-lived pace boost. */
.game-hud-route{max-width:360px;min-width:0}.game-hud-time,.game-hud-split,.game-hud-pace{flex-shrink:0}
#game-time{font-size:19px;font-weight:600;line-height:1;letter-spacing:-.7px;font-variant-numeric:tabular-nums;color:var(--game-accent)}
#game-route-time{font-size:12px;text-align:left;font-variant-numeric:tabular-nums;min-width:57px}
#game-pace{font-size:11px;min-width:101px;font-variant-numeric:tabular-nums;color:var(--game-muted)}
#game-pace.is-active{color:#27604e}#game-pace.is-slow{color:var(--game-accent)}
.overlay-card .overlay-result{display:flex;flex-direction:column;gap:3px;margin:16px 0 10px}
.overlay-result>span,.race-checkpoint span{font:9px/1.5 'IBM Plex Mono',monospace;letter-spacing:1.4px;color:var(--game-muted)}
.overlay-result>strong{font:500 42px/1.1 'Archivo',sans-serif;letter-spacing:-1.8px;color:var(--game-accent-text);font-variant-numeric:tabular-nums}
.race-checkpoint{display:flex;justify-content:center;gap:36px;border-top:1px solid var(--game-line);border-bottom:1px solid var(--game-line);margin:16px 0;padding:8px 0}
.overlay-card .race-checkpoint p{display:flex;flex-direction:column;gap:4px;margin:0}
.race-checkpoint strong{font:500 27px/1.25 'Archivo',sans-serif;color:var(--game-accent-text);font-variant-numeric:tabular-nums}
.race-splits{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:12px 0;margin:12px 0;border-top:1px solid var(--game-line);border-bottom:1px solid var(--game-line)}
.race-splits li{display:flex;flex-direction:column;gap:5px}.race-splits span{font:7px 'IBM Plex Mono',monospace;letter-spacing:.5px;color:var(--game-muted)}.race-splits strong{font:500 11px 'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums}
@media(max-width:850px){.game-hud{gap:16px}#game-time{font-size:17px}#game-pace{min-width:91px;font-size:10px}}
@media(max-width:600px){.game-hud{column-gap:15px;row-gap:9px}.game-hud-route{flex-basis:100%;max-width:none;order:0}.game-hud-time{order:1;flex:1}.game-hud-split{order:2;flex:1}.game-hud-pace{order:3;flex:1;flex-basis:auto;flex-direction:column;align-items:flex-start;border:0;padding:0;gap:5px}#game-time{font-size:19px}#game-route-time{font-size:11px}.game-hud-pace #game-pace{font-size:10px;min-width:0}.overlay-result>strong{font-size:36px}.race-splits{gap:3px}.race-splits strong{font-size:10px}.race-checkpoint{margin:12px 0}.race-checkpoint strong{font-size:25px}}

/* The ceremony gets its own space, with the result and replay controls below. */
.runner-game[data-mode="victory"] #game-canvas{display:none}
.runner-game[data-mode="victory"] .game-overlay{position:relative;inset:auto;padding:24px;background:#e0e9ec}
.runner-game[data-mode="victory"] .overlay-card{width:min(640px,100%)}
.game-ceremony{display:block;width:min(430px,100%);height:auto;margin:4px auto 0;border-radius:10px}
@media(max-width:600px){.runner-game[data-mode="victory"] .game-overlay{padding:0}.game-ceremony{margin-top:10px}}

/* A floating invitation, compact and safe-area-aware on smaller screens. */
.game-corner{position:fixed;right:24px;bottom:18px;z-index:20;display:flex;align-items:center;width:320px;max-width:calc(100vw - 32px);padding:12px 20px 30px;color:var(--accent-ink,#ffffff);box-sizing:border-box;isolation:isolate}
.game-corner-bubble{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none;filter:drop-shadow(0 8px 14px #28394733)}
.game-corner-bubble path{fill:var(--accent,#a7482c);stroke:var(--highlight,#3b5f72);stroke-width:5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.game-corner[hidden]{display:none}
.game-corner-link{display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding:9px 6px;text-decoration:none;color:inherit!important;border-radius:28px}
.game-corner-mark{display:block;width:46px;height:38px;flex-shrink:0;object-fit:contain}
.game-corner-link small{display:block;font:8px/1.6 'IBM Plex Mono',monospace;letter-spacing:.7px;color:var(--accent-ink,#ffffff)}
.game-corner-link strong{display:block;font:700 20px/1.35 'Archivo',sans-serif;letter-spacing:-.5px}
.game-corner-arrow{display:inline-block;width:16px;height:16px;margin-left:6px;vertical-align:-1px}
.game-corner-link:hover{background:#ffffff14}
.game-corner-close{width:44px;min-height:44px;flex-shrink:0;align-self:center;border:0;border-radius:50%;background:transparent;color:var(--accent-ink,#ffffff);font:22px Arial;cursor:pointer}
.game-corner-close:hover{background:#ffffff22;color:var(--ink,#283947)}
.game-corner a:focus-visible,.game-corner button:focus-visible{outline:3px solid var(--ink,#283947);outline-offset:2px}
@media(max-width:760px){.game-corner{right:max(12px,env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));width:248px;max-width:calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right));padding:8px 12px 20px}.game-corner-link{gap:8px;min-height:44px;padding:6px}.game-corner-link small{display:none}.game-corner-link strong{font-size:17px;white-space:nowrap}.game-corner-mark{width:32px;height:28px}.game-corner-arrow{width:13px;height:13px;margin-left:3px}}

/* Edge-to-edge phone play, with a closer portrait camera and generous controls. */
.game-mobile-hint{display:none}
.game-action>.game-duck-label{font:inherit;color:inherit}
@media(max-width:850px),(max-width:1100px) and (max-height:500px) and (orientation:landscape){
 .game-shell{padding-left:0;padding-right:0}
 .game-nav,.game-heading,.game-route,.game-below,.game-guide,.game-footer,.game-mobile-hint{margin-left:max(16px,env(safe-area-inset-left));margin-right:max(16px,env(safe-area-inset-right))}
 .runner-game{width:100%;border-left:0;border-right:0;border-radius:0;scroll-margin-top:0;box-shadow:none}
 #game-canvas{touch-action:none;user-select:none;-webkit-user-select:none}
 .game-control-bar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(12px,env(safe-area-inset-bottom))}
 .game-mobile-hint{display:block;font:11px/1.7 'Source Sans 3',sans-serif;color:#293e49;margin-top:0;margin-bottom:14px}
 .game-mobile-hint span{display:block;color:var(--game-muted)}
 .game-action{min-height:56px;font-size:15px}
 .game-utility-controls button{min-height:44px;font-size:11px}
 .game-action.is-held{background:#b4c7d0;border-color:#426575}
 .runner-game[data-mode="paused"] .game-overlay{position:absolute;inset:0;overflow:auto;background:#f3f6f5f2;padding:12px}
 .runner-game[data-mode="paused"] .overlay-card{margin:auto;padding:12px}
}
@media(max-width:600px){
 .game-hud{padding:10px 16px;row-gap:7px}
 .game-hud-route>span{font-size:11px;margin-bottom:6px}
 .game-hud-pace{display:flex}
 .game-control-bar{gap:8px}
 .game-action-controls{gap:10px}
 .game-action{font-size:16px;min-height:58px}
 .game-utility-controls{gap:10px}
 .game-route{padding-bottom:12px}
 .game-heading{padding-top:20px;padding-bottom:16px}
 .game-nav{gap:14px}
 .game-guide{margin-top:24px}
}
@media(max-width:850px) and (orientation:landscape){
 .game-control-bar{flex-wrap:nowrap}
 .game-action-controls{flex:1;width:auto}
 .game-utility-controls{width:auto}
 .game-action{min-height:48px;flex:1;justify-content:center}
 .game-action kbd{display:none}
 .game-hud{min-height:48px;padding-top:8px;padding-bottom:8px}
 .game-mobile-hint span{display:none}
}

@media(max-width:850px) and (max-height:500px) and (orientation:landscape){
 .game-control-bar{padding-top:6px;padding-bottom:max(6px,env(safe-area-inset-bottom));gap:12px}
 .game-action,.game-utility-controls button{min-height:44px;padding-top:7px;padding-bottom:7px}
 .game-hud{min-height:48px}
 .runner-game[data-mode="paused"] .game-overlay{padding:8px}
 .runner-game[data-mode="paused"] .overlay-card{padding:8px}
 .runner-game[data-mode="paused"] .overlay-card h2{font-size:26px;margin:5px 0}
 .runner-game[data-mode="paused"] .overlay-card p{margin:6px 0;font-size:11px}
 .runner-game[data-mode="paused"] .overlay-result>strong{font-size:26px}
 .runner-game[data-mode="paused"] .overlay-actions{margin-top:8px}
 .runner-game[data-mode="paused"] .overlay-result{margin:6px 0}
}

/* Latent Pace speech bubbles and a clear, immediately visible route handover. */
.overlay-brand-mark{display:block;object-fit:contain;margin:0 auto 10px;width:54px;height:36px}
.overlay-card{position:relative;border:2px solid var(--game-highlight);border-radius:28px;background:#f3f6f5}
.overlay-card:after{content:'';position:absolute;right:16%;bottom:-24px;width:36px;height:28px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2236%22%20height%3D%2228%22%20viewBox%3D%220%200%2036%2028%22%3E%3Cpath%20d%3D%22M0%200H36V5H33L29%2026L3%205H0Z%22%20fill%3D%22%23f3f6f5%22%2F%3E%3Cpath%20d%3D%22M3%205L29%2026L33%205%22%20fill%3D%22none%22%20stroke%3D%22%23426575%22%20stroke-width%3D%222%22%20stroke-linejoin%3D%22round%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;pointer-events:none}
.runner-game[data-mode="levelComplete"] #game-canvas,.runner-game[data-mode="levelComplete"] .game-hud,.runner-game[data-mode="levelComplete"] .game-control-bar{display:none}
.runner-game[data-mode="levelComplete"] .game-overlay{position:relative;inset:auto;padding:24px 20px 36px;background:#e0e9ec}
.runner-game[data-mode="levelComplete"] .overlay-card{width:min(560px,100%)}
.runner-game[data-mode="levelComplete"] .overlay-actions{margin-top:16px}
.runner-game[data-mode="levelComplete"] .game-primary{min-height:48px}
@media(max-width:850px){
 .game-overlay{padding:18px 16px 30px}
 .overlay-card{padding:20px;border:2px solid var(--game-highlight);border-radius:26px}
 .runner-game[data-mode="levelComplete"] .game-overlay{padding:18px 16px 30px}
 .runner-game[data-mode="levelComplete"] .overlay-card h2{font-size:30px}
 .runner-game[data-mode="levelComplete"] .overlay-card p:not(.overlay-kicker){font-size:13px}
 .runner-game[data-mode="levelComplete"] .overlay-kicker{font-size:10px}
 .runner-game[data-mode="levelComplete"] .game-primary{width:100%;font-size:15px}
 .runner-game[data-mode="victory"] .game-hud,.runner-game[data-mode="victory"] .game-control-bar{display:none}
 .runner-game[data-mode="victory"] .game-overlay{padding:18px 16px 30px}
 .runner-game[data-mode="paused"] .overlay-brand-mark{display:none}
}
@media(max-width:850px) and (max-height:500px) and (orientation:landscape){
 .runner-game[data-mode="levelComplete"] .game-overlay{padding:10px 18px 22px}
 .runner-game[data-mode="levelComplete"] .overlay-card{width:min(720px,100%);padding:14px 22px}
 .runner-game[data-mode="levelComplete"] .overlay-brand-mark{position:absolute;top:12px;left:18px;width:42px;height:28px}
 .runner-game[data-mode="levelComplete"] .overlay-card h2{font-size:26px;margin:8px 0}
 .runner-game[data-mode="levelComplete"] .overlay-card p:not(.overlay-kicker){margin:6px 0;font-size:12px}
 .runner-game[data-mode="levelComplete"] .race-checkpoint{margin:8px 0;padding:4px 0}
 .runner-game[data-mode="levelComplete"] .race-checkpoint strong{font-size:24px}
 .runner-game[data-mode="levelComplete"] .overlay-actions{margin-top:10px}
 .runner-game[data-mode="levelComplete"] .game-primary{width:auto;min-width:260px}
}
.runner-game[data-mode="ready"] .overlay-brand-mark,.runner-game[data-mode="paused"] .overlay-brand-mark{display:none}

/* The welcome screen is a complete page panel, not a bubble over an idle game. */
.runner-game[data-mode="ready"] #game-canvas,
.runner-game[data-mode="ready"] .game-hud,
.runner-game[data-mode="ready"] .game-control-bar{display:none}
.runner-game[data-mode="ready"] .game-overlay{position:relative;inset:auto;padding:30px 20px;background:#e0e9ec;border:0}
.runner-game[data-mode="ready"] .overlay-card{width:min(570px,100%);padding:8px 12px;border:0;border-radius:0;background:transparent;box-shadow:none}
.runner-game[data-mode="ready"] .overlay-card:after{display:none}
.runner-game[data-mode="ready"] .overlay-brand-mark{display:block;width:66px;height:44px;margin-bottom:16px}
.runner-game[data-mode="ready"] .overlay-card h2{font-size:38px;margin:12px 0}
.runner-game[data-mode="ready"] .overlay-card p:not(.overlay-kicker){font-size:14px;line-height:1.65}
.runner-game[data-mode="ready"] .overlay-card .overlay-best{font-size:12px;color:var(--game-muted)}
.runner-game[data-mode="ready"] .game-primary{min-height:48px;font-size:15px;padding:13px 24px}
.welcome-controls{margin:16px 0;color:var(--game-muted)}
.welcome-controls kbd{font:inherit;color:var(--game-ink)}
.welcome-touch{display:none}
@media(max-width:850px),(pointer:coarse){.welcome-keyboard{display:none}.welcome-touch{display:block}}
@media(max-width:600px){
 .runner-game[data-mode="ready"] .game-overlay{padding:24px 16px}
 .runner-game[data-mode="ready"] .overlay-card{padding:0}
 .runner-game[data-mode="ready"] .overlay-card h2{font-size:32px}
 .runner-game[data-mode="ready"] .overlay-card p:not(.overlay-kicker){font-size:13px}
 .runner-game[data-mode="ready"] .overlay-card .overlay-best{font-size:11px}
 .runner-game[data-mode="ready"] .game-primary{width:100%;max-width:310px}
}
@media(max-width:850px) and (max-height:500px) and (orientation:landscape){
 .runner-game[data-mode="ready"] .game-overlay{padding:16px}
 .runner-game[data-mode="ready"] .overlay-brand-mark{display:none}
 .runner-game[data-mode="ready"] .overlay-card h2{font-size:30px;margin:8px 0}
 .runner-game[data-mode="ready"] .overlay-card p:not(.overlay-kicker){margin:8px 0;font-size:12px}
 .runner-game[data-mode="ready"] .overlay-actions,.welcome-controls{margin-top:10px}
}

/* Align the tips with the main briefing heading, beneath its eyebrow label. */
@media(min-width:601px){
 .game-guide{align-items:start}
 .game-guide-intro>.game-eyebrow{display:block;line-height:15px}
 .game-guide-tips{padding-top:23px}
}

/* Leave the completed course behind the results, frozen on the finish scene.
   The summary sets the frame height so every action stays reachable on phones. */
.runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .game-stage{--finish-frame-height:420px;min-height:var(--finish-frame-height)}
.runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) #game-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .game-hud{display:none}
.runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .game-overlay{position:relative;inset:auto;z-index:1;min-height:var(--finish-frame-height);padding:28px 24px 48px;border:0;background:#293e4924}
.runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .overlay-card{margin:auto;background:#f3f6f5;box-shadow:0 12px 36px #293e4933}
.runner-game[data-mode="levelComplete"] .overlay-card h2{font-size:32px}
@media(max-width:600px){
 .runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .game-stage{--finish-frame-height:440px}
 .runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .game-overlay{padding:26px 24px 44px}
 .runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .overlay-card{padding:22px 20px}
 .runner-game[data-mode="levelComplete"] .overlay-card h2{font-size:26px}
}
@media(max-width:850px) and (max-height:500px) and (orientation:landscape){
 .runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .game-stage{--finish-frame-height:300px}
 .runner-game:is([data-mode="levelComplete"],[data-mode="victory"]) .game-overlay{padding:14px 18px 32px}
 .runner-game[data-mode="levelComplete"] .overlay-card{padding:12px 22px}
 .runner-game[data-mode="levelComplete"] .overlay-card h2{font-size:26px}
}

/* Coastal game interface: controls and commentary have their own space. */
.game-coach{display:flex;align-items:center;gap:8px;padding:6px 20px;background:var(--game-bg);border-top:1px solid var(--game-line);min-height:48px}
.game-coach-head{display:block;flex:0 0 42px;width:42px;height:35px}
.game-coach-message{flex:1;min-width:0}
.game-coach #game-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.game-coach p{margin:0;color:var(--game-muted);font-size:14px;line-height:1.5}
#game-coach-cue{display:block}
.game-control-bar{border-top:1px solid var(--game-line)}
.runner-game:is([data-mode="levelComplete"],[data-mode="victory"],[data-mode="ready"]) .game-coach{display:none}
.runner-game[data-help="true"] .game-overlay{position:relative;inset:auto;overflow:visible;padding:24px 20px 36px;background:var(--game-panel)}
.runner-game[data-help="true"] #game-canvas{display:none}
.runner-game[data-help="true"] .overlay-card{margin:auto;width:min(570px,100%)}
.runner-game[data-help="true"] .overlay-card p{text-align:left;font-size:15px;line-height:1.55}
.runner-game .overlay-brand-mark{display:block}
@media(max-width:850px),(max-width:1100px) and (max-height:500px) and (orientation:landscape){
 .game-shell{max-width:none}
 .game-action kbd,.welcome-keyboard{display:none}
 .welcome-touch{display:block}
 .game-hud{min-height:64px;padding:10px max(16px,env(safe-area-inset-left));flex-wrap:nowrap;gap:16px}
 .game-hud-route{flex:1;flex-basis:auto;order:0}
 .game-hud-time{flex:0;order:1}
 .game-hud-split,.game-hud-pace{display:none}
 .game-hud-route>span{font-size:12px;margin-bottom:8px}
 .hud-label{font-size:9px}
 #game-time{font-size:22px}
 .game-coach{padding:6px max(16px,env(safe-area-inset-left));min-height:48px}
 #game-coach-cue{display:block;font-size:15px}
 .game-control-bar{position:static;display:flex;flex-wrap:wrap;gap:10px;padding:12px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .game-action-controls{position:static!important;width:100%;display:flex;gap:10px}
 .game-action{flex:1;min-height:58px;font-size:17px}
 .game-utility-controls button{flex:1;min-height:44px;white-space:nowrap;font:12px 'Source Sans 3',sans-serif}
 .runner-game[data-mode="paused"] .game-overlay{position:relative;inset:auto;padding:20px 16px 32px;overflow:visible}
 .runner-game[data-mode="paused"] #game-canvas{display:none}
 .runner-game[data-mode="paused"] .overlay-card{padding:18px}
 .runner-game[data-mode="paused"] .overlay-card p{font-size:14px}
 .runner-game[data-mode="paused"] .overlay-card h2{font-size:30px}
 .runner-game[data-mode="paused"] .overlay-card:after{display:none}
}
@media(max-width:1100px) and (max-height:500px) and (orientation:landscape){
 .game-hud{min-height:48px;padding-top:6px;padding-bottom:6px}
 .game-control-bar{flex-wrap:nowrap;padding-top:8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}
 .game-action-controls{flex:1;width:auto}.game-utility-controls{width:auto}
 .game-action,.game-utility-controls button{min-height:44px;font-size:13px}
 .game-coach{display:none}
}

/* Fit the unchanged landscape camera inside short screens, with side letterboxing. */
@media(max-width:1100px) and (max-height:500px) and (orientation:landscape){
 .runner-game[data-mode="playing"] #game-canvas{max-height:calc(100dvh - 124px - env(safe-area-inset-top) - env(safe-area-inset-bottom));object-fit:contain}
}

/* Route breadcrumbs share the panel header with the stopwatch and progress. */
.game-panel-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-rows:auto auto;align-items:center;column-gap:22px;row-gap:7px;padding:12px 22px;background:var(--game-panel)}
.game-panel-header .game-hud{display:contents}
.game-panel-header .game-route{grid-column:1;grid-row:1;grid-template-columns:repeat(5,max-content);justify-content:space-between;gap:8px;margin:0;padding:0}
.game-panel-header .game-route li{flex-direction:row;align-items:center;gap:5px;font-size:10px;text-align:left;white-space:nowrap}
.game-panel-header .game-route li:after{display:none}
.game-panel-header .route-number{width:20px;height:20px;font-size:8px}
.game-panel-header .game-hud-route{grid-column:1;grid-row:2;max-width:none;min-width:0;margin:0}
.game-panel-header .game-hud-route>span{display:none}
.game-panel-header .game-hud-time{grid-column:2;grid-row:1 / span 2}
.game-panel-header .game-hud-split{grid-column:3;grid-row:1 / span 2}
.game-panel-header .game-hud-pace{grid-column:4;grid-row:1 / span 2}
.runner-game:is([data-mode="ready"],[data-mode="levelComplete"],[data-mode="victory"]) .game-panel-header{grid-template-columns:minmax(0,1fr);grid-template-rows:auto}
.runner-game:is([data-mode="ready"],[data-mode="levelComplete"],[data-mode="victory"]) .game-panel-header .game-hud{display:none}
@media(max-width:850px),(max-width:1100px) and (max-height:500px) and (orientation:landscape){
 .game-panel-header{grid-template-columns:minmax(0,1fr) auto;column-gap:18px;row-gap:5px;padding:8px max(16px,env(safe-area-inset-left))}
 .game-panel-header .game-route{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
 .game-panel-header .game-route li{justify-content:flex-start}
 .game-panel-header .game-route li>span:last-child{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .game-panel-header .route-number{width:18px;height:18px;font-size:8px}
 .game-panel-header .game-hud-route>span{display:block;font:11px 'IBM Plex Mono',monospace;margin:0 0 5px}
 .game-panel-header .game-hud-time{gap:5px}
 .game-panel-header .game-hud-split,.game-panel-header .game-hud-pace{display:none}
}
@media(max-width:1100px) and (max-height:500px) and (orientation:landscape){
 .game-panel-header{padding-top:6px;padding-bottom:6px;row-gap:4px}
 .runner-game[data-mode="playing"] #game-canvas{max-height:calc(100dvh - 132px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
}

/* Static runner selection: native controls, no editor animation or profile storage. */
.avatar-picker{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px 12px;text-align:left;margin:14px 0 8px}
.avatar-picker-preview{grid-column:1;grid-row:1 / span 2;width:90px;align-self:start;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:var(--game-bg);border-radius:10px;padding:3px}
#avatar-preview{display:block;width:84px;height:98px;max-width:100%;object-fit:contain}
.avatar-picker fieldset{margin:0;padding:0;border:0;min-width:0}
.avatar-picker legend{font-weight:600;font-size:15px;margin-bottom:8px}
.avatar-picker-options{display:contents}
.avatar-presets{grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.avatar-presets label{display:flex;gap:7px;align-items:center;min-height:44px;font-size:14px;cursor:pointer}
.avatar-presets input{accent-color:var(--game-accent);width:18px;height:18px;flex-shrink:0}
.avatar-custom{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.avatar-custom[hidden]{display:none}
.avatar-custom label{display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:0}
.avatar-custom select,.avatar-custom input{width:100%;min-height:44px;min-width:0;border:1px solid var(--game-line);border-radius:4px;background:var(--game-bg);color:var(--game-ink);font:inherit;padding:4px}
.avatar-picker input:focus-visible,.avatar-picker select:focus-visible{outline:3px solid var(--game-highlight);outline-offset:2px}
.avatar-picker .avatar-picker-note{grid-column:2;grid-row:2;font-size:12px!important;margin:3px 0 0!important;text-align:left}
@media(max-width:600px){.avatar-picker{grid-template-columns:84px minmax(0,1fr);gap:8px}.avatar-picker-preview{width:84px;padding:2px}#avatar-preview{width:80px;height:94px}.avatar-presets{grid-template-columns:1fr}.avatar-presets label{min-height:44px;font-size:14px}.avatar-picker .avatar-picker-note{font-size:12px!important}}

.game-level-tester{border-top:1px solid var(--game-line);margin-top:18px;padding-top:12px;text-align:left}.game-level-tester p{font-size:13px;line-height:1.4;margin:0 0 8px}.game-level-tester label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}.game-level-tester>div{display:flex;flex-wrap:wrap;gap:8px}.game-level-tester select{min-height:44px;min-width:0;flex:1 1 150px;padding:8px;background:var(--game-bg);color:var(--game-ink);border:1px solid var(--game-line);border-radius:4px;font:inherit}.game-level-tester button{min-height:44px;flex:1 1 130px}.game-level-tester select:focus-visible{outline:3px solid var(--game-highlight);outline-offset:3px}
.runner-game[data-route-testing="true"][data-mode="paused"] .game-overlay{position:relative;inset:auto;overflow:visible;padding:24px 20px 36px;background:var(--game-panel)}.runner-game[data-route-testing="true"][data-mode="paused"] #game-canvas{display:none}.runner-game[data-route-testing="true"][data-mode="paused"] .overlay-card{margin:auto;width:min(570px,100%)}

/* Embedded sizing is intrinsic, never based on the iframe's own viewport height. */
.game-page[data-game-embedded="true"]{overflow:hidden;background:transparent}
.game-page[data-game-embedded="true"] .game-shell{max-width:none;padding:0;margin:0}
.game-page[data-game-embedded="true"] :is(.game-nav,.game-heading,.game-guide,.game-footer,.game-skip){display:none}
.game-page[data-game-embedded="true"] .runner-game{margin:0;box-shadow:none}
.game-page[data-game-embedded="true"] .game-overlay{position:relative;inset:auto;overflow:visible;background:var(--game-panel);padding:20px 16px}
.game-page[data-game-embedded="true"] .overlay-card{margin:auto;width:min(640px,100%);box-shadow:none}
.game-page[data-game-embedded="true"] .runner-game[data-mode="playing"] #game-canvas{width:100%;max-width:100%;max-height:none;height:auto;object-fit:contain}
.game-page[data-game-embedded="true"] .game-stage{height:auto;min-height:0}
.game-page[data-game-embedded="true"] .game-coach{display:flex}
.game-page[data-game-embedded="true"] .overlay-actions a[href="/"]{display:none}

/* Parent viewport is stable while embedded menus change their natural height. */
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] .runner-game[data-mode="playing"] #game-canvas{width:auto;max-width:100%;max-height:calc(var(--embed-viewport-height) - 164px);height:auto;margin-inline:auto;object-fit:contain}
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] .game-coach{display:flex;min-height:32px;padding:2px 10px;gap:6px}
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] .game-coach-head{width:28px;height:24px;flex-basis:28px}
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] #game-coach-cue{font-size:12px;line-height:1.2}
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] .game-panel-header{padding-top:6px;padding-bottom:6px;row-gap:4px}
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] .game-control-bar{flex-wrap:nowrap}
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] .game-utility-controls{width:auto}
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] :is(.game-action,.game-utility-controls button){min-height:44px;font-size:13px;white-space:nowrap}

@media(min-width:300px) and (max-width:600px){.avatar-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-presets label{line-height:1.25}}

/* One concise coach briefing and compact selection on the shared welcome screen. */
.welcome-briefing{display:flex;align-items:center;gap:12px;text-align:left;margin:10px 0 14px}
.welcome-briefing .game-coach-head{flex:0 0 42px}
.overlay-card .welcome-briefing p{margin:0;font-size:15px;line-height:1.4}
.welcome-inputs{display:block;margin-top:5px;color:var(--game-muted);font-size:12px}
.game-page[data-game-embedded="true"] .runner-game[data-mode="ready"] .game-coach{display:none}

.runner-game[data-mode="ready"] .welcome-heading{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 14px}
.runner-game[data-mode="ready"] .welcome-heading .overlay-brand-mark{width:66px;height:44px;margin:0;flex:0 0 66px;object-fit:contain}
.runner-game[data-mode="ready"] .welcome-heading h2{margin:0}
@media(max-width:600px){.runner-game[data-mode="ready"] .welcome-heading{gap:8px}.runner-game[data-mode="ready"] .welcome-heading .overlay-brand-mark{width:54px;height:36px;flex-basis:54px}}


/* One bounded player: the header, scene and coach share the same edges. */
.game-page .runner-game{position:relative;display:grid;container-type:inline-size;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;width:min(100%,960px);max-width:100%;margin-inline:auto;scroll-margin-top:12px;border:1px solid var(--game-line);border-radius:12px;background:var(--game-panel)}
.runner-game>.game-panel-header{grid-column:1;grid-row:1;border-bottom:1px solid var(--game-line)}
.runner-game>.game-stage{grid-column:1;grid-row:2;width:100%;min-width:0}
.runner-game>.game-coach{grid-column:1;grid-row:3;width:100%;margin:0}
.game-page .runner-game:is([data-mode="playing"],[data-mode="finishing"],[data-mode="paused"]):not([data-help="true"]){width:min(100%,var(--game-scene-width,960px))}
.game-page .runner-game:is([data-mode="playing"],[data-mode="finishing"]):not([data-help="true"]) #game-canvas{display:block;width:100%;max-width:100%;height:auto;max-height:none;margin:0;object-fit:contain}
.game-page[data-game-embedded="true"] .runner-game{margin-inline:auto}
/* The action pod occupies the scene's bottom-right safe strip, not another row. */
.runner-game>.game-control-bar{grid-column:1;grid-row:2;align-self:end;justify-self:stretch;position:relative;z-index:2;display:none;width:100%;justify-content:space-between;flex-wrap:nowrap;gap:0;margin:0;padding:0 8px;border:0;background:transparent;pointer-events:none}
.runner-game[data-mode="playing"]:not([data-help="true"])>.game-control-bar{display:flex}
.runner-game .game-action-controls{margin-left:auto;display:flex;flex:0 0 auto;width:auto;gap:12px;padding:0 12px;border:1px solid #a6bdc8;border-radius:44px;background:#d6e1e4ed;box-shadow:0 2px 8px #293e4926,inset 0 2px 3px #293e4910;pointer-events:auto}
.runner-game .game-action{display:flex;align-items:center;justify-content:center;flex:0 0 52px;width:52px;height:52px;min-height:52px;padding:0;border:1px solid #c58072;border-radius:50%;background:#f0b3a5;color:var(--game-ink);font:600 13px 'Source Sans 3',sans-serif;box-shadow:0 3px 0 #c58072;touch-action:none}
.runner-game .game-action:active,.runner-game .game-action[aria-pressed="true"]{background:#e9a290;box-shadow:0 1px 0 #c58072;transform:translateY(2px)}
.runner-game .game-action>.game-duck-label{font:inherit;color:inherit}
.runner-game .game-utility-controls{display:none}
.runner-game[data-mode="playing"]:not([data-help="true"]) .game-utility-controls{position:absolute;z-index:2;top:6px;right:6px;display:flex;flex-direction:row;width:auto;gap:0}
.runner-game .game-utility-controls button{position:relative;display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--game-ink)}
.runner-game .game-utility-controls button::before{content:'';position:absolute;inset:4px;z-index:-1;border:1px solid var(--game-line);border-radius:50%;background:#f8f5edf2;box-shadow:0 1px 3px #293e4918}
.runner-game .game-utility-controls button:hover::before{background:#e0e9ec;border-color:var(--game-highlight)}
.game-utility-controls svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.game-utility-controls .icon-resume,.game-utility-controls .icon-sound-on{display:none}
#game-pause[data-paused="true"] .icon-pause,#game-sound[aria-pressed="true"] .icon-sound-off{display:none}
#game-pause[data-paused="true"] .icon-resume,#game-sound[aria-pressed="true"] .icon-sound-on{display:block}
@media(max-width:600px){.game-page .runner-game{border-radius:8px}.runner-game[data-mode="playing"]:not([data-help="true"]) .game-utility-controls{top:4px;right:0;flex-direction:column}.runner-game .game-utility-controls button::before{inset:5px}.runner-game>.game-control-bar{padding-inline:max(6px,env(safe-area-inset-right))}}
@media(max-width:1100px) and (max-height:500px) and (orientation:landscape){.runner-game[data-mode="playing"]:not([data-help="true"]) .game-utility-controls{top:4px;right:4px;flex-direction:row}}
.game-page[data-game-embed-landscape="true"] .runner-game[data-mode="playing"]:not([data-help="true"]) .game-utility-controls{top:4px;right:4px;flex-direction:row}
/* Expansion is a real browser fullscreen or an explicitly requested page focus. */
.runner-game #game-fullscreen{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;align-self:center;padding:0;border:1px solid var(--game-line);border-radius:50%;background:#f8f5edf2;color:var(--game-ink);box-shadow:0 1px 3px #293e4918;pointer-events:auto}
#game-fullscreen svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.game-page .runner-game[data-game-focused="true"][data-mode]{position:fixed;inset:0;z-index:100;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:auto;align-content:center;justify-items:center;background:#293e49}
.game-page .runner-game[data-mode]:is(:fullscreen,:-webkit-full-screen){width:100%;max-width:none;height:100%;max-height:none;margin:0;border:0;border-radius:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:auto;align-content:center;justify-items:center;background:#293e49}
.runner-game:is(:fullscreen,:-webkit-full-screen,[data-game-focused="true"])>:is(.game-panel-header,.game-stage,.game-coach){width:min(100%,var(--game-scene-width,960px))}
.runner-game:is(:fullscreen,:-webkit-full-screen,[data-game-focused="true"])>.game-control-bar{justify-self:center;width:min(100%,var(--game-scene-width,960px))}
.runner-game:is(:fullscreen,:-webkit-full-screen,[data-game-focused="true"]):is([data-mode="ready"],[data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"],[data-help="true"]){align-content:start}

/* The controller never needs more vertical space than the strip below the feet. */
#game-fullscreen-status{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.runner-game[data-game-control-compact="true"] .game-action-controls{height:44px;gap:10px;padding:0 8px;border:0;background:#d6e1e4ed;box-shadow:none}
.runner-game[data-game-control-compact="true"] .game-action{flex-basis:44px;width:44px;height:44px;min-height:44px;box-shadow:none;font-size:12px}
.runner-game[data-game-control-strip="true"]>.game-control-bar{grid-row:3;align-self:start;min-height:44px;background:var(--game-panel)}
.runner-game[data-game-control-strip="true"]>.game-coach{grid-row:4}
@container(max-width:300px){
 .runner-game .game-action-controls{height:44px;gap:10px;padding:0 8px;border:0;background:#d6e1e4ed;box-shadow:none}
 .runner-game .game-action{flex-basis:44px;width:44px;height:44px;min-height:44px;box-shadow:none;font-size:12px}
 .runner-game>.game-control-bar{margin:0}
}
@container(max-width:270px){
 .runner-game>.game-control-bar{grid-row:3;align-self:start;min-height:44px;background:var(--game-panel)}
 .runner-game>.game-coach{grid-row:4}
}

/* Final embedded scene width overrides the older landscape letterbox rule. */
.game-page[data-game-embedded="true"][data-game-embed-landscape="true"] .runner-game:is([data-mode="playing"],[data-mode="finishing"]):not([data-help="true"]) #game-canvas{width:100%;max-width:100%;height:auto;max-height:none;margin:0}
.game-rotate-hint{grid-column:1;grid-row:5;justify-self:center;width:min(100%,var(--game-scene-width,960px));margin:0;padding:5px 10px;background:var(--game-panel);color:var(--game-ink);font:12px/1.3 'Source Sans 3',sans-serif;text-align:center}
.game-rotate-hint[hidden]{display:none}

/* Touch play leaves one action under each thumb; desktop keeps its paired pod. */
.runner-game[data-game-touch-controls="true"] .game-action-controls{display:flex;justify-content:space-between;gap:0;width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:none}
.runner-game[data-game-touch-controls="true"] .game-action{pointer-events:auto}
.runner-game[data-game-touch-controls="true"] #game-duck{order:1}
.runner-game[data-game-touch-controls="true"] #game-jump{order:0}
.runner-game .game-stage>#game-fullscreen{position:absolute;z-index:2;top:4px;left:2px;display:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:44px;height:54px;min-height:44px;padding:3px 0;border:0;border-radius:8px;background:transparent;color:var(--game-ink);box-shadow:none;font:600 10px/12px 'Source Sans 3',sans-serif}
.runner-game[data-mode="playing"]:not([data-help="true"]) .game-stage>#game-fullscreen{display:flex}
.runner-game .game-stage>#game-fullscreen::before{content:'';position:absolute;inset:0 3px;z-index:-1;border:1px solid var(--game-line);border-radius:8px;background:#f8f5edf2;box-shadow:0 1px 3px #293e4918}
#game-fullscreen .icon-exit{display:none}
#game-fullscreen[aria-pressed="true"] .icon-expand{display:none}
#game-fullscreen[aria-pressed="true"] .icon-exit{display:block}

/* Breaks fit the player rather than adding a second oversized panel. */
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]){width:min(100%,var(--game-scene-width,960px))}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .game-stage{display:block;height:auto;min-height:0}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) #game-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:cover;pointer-events:none}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .game-overlay{position:relative;inset:auto;display:block;height:auto;min-height:0;padding:10px 12px;background:#e0e9eced;overflow:visible}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-card{width:min(640px,100%);height:auto;min-height:0;margin:0 auto;padding:10px 14px;border:0;box-shadow:none}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-brand-mark{display:none}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-card h2{font-size:27px;line-height:1.12;margin:5px 0 8px}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-card p{margin:6px 0;font-size:13px;line-height:1.4}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-actions button{min-height:44px;padding:7px 10px;font-size:13px;line-height:1.25;transform:none}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-result{display:flex;flex-direction:row;align-items:baseline;justify-content:center;gap:10px}
.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-result strong{font-size:27px;line-height:1.2}
.game-page .runner-game[data-mode="levelComplete"] .race-checkpoint{margin:8px 0;padding:5px 0}
.game-page .runner-game[data-mode="levelComplete"] .race-checkpoint strong{font-size:25px}
.game-page .runner-game[data-mode="victory"] .game-ceremony{display:block;width:auto;max-width:100%;height:118px;margin:4px auto;object-fit:contain}
.game-page .runner-game[data-mode="victory"] .race-splits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin:8px 0}
.game-page .runner-game[data-mode="victory"] .race-splits li{padding:4px 0;font-size:11px}
@container(max-width:300px){.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .game-overlay{padding:8px}.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-card{padding:8px}.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-actions{grid-template-columns:minmax(0,1fr)}}

.game-page .runner-game[data-mode]:is(:fullscreen,:-webkit-full-screen,[data-game-focused="true"]){width:100%;max-width:none}

.game-page .runner-game:is([data-mode="paused"],[data-mode="levelComplete"],[data-mode="victory"]):not([data-help="true"]) .overlay-card::after{display:none}

/* Short landscape menus use explicit panels, not a vertically scrolling card. */
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"]){display:grid;grid-template-rows:28px minmax(0,1fr);width:min(100%,var(--game-menu-width,960px));height:var(--game-menu-height);min-height:0;max-height:none;align-content:start;justify-items:center}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"]):is(:fullscreen,:-webkit-full-screen,[data-game-focused="true"]){width:100%;height:var(--game-menu-height)}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"])>.game-panel-header{display:block;grid-row:1;width:min(100%,var(--game-menu-width,960px));height:28px;min-height:0;padding:4px 8px;border:0}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"]) .game-hud{display:none}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"]) .game-route{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;gap:8px}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"]) .route-number{width:18px;height:18px}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"])>.game-stage{grid-row:2;display:block;width:min(100%,var(--game-menu-width,960px));height:100%;min-height:0}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"]) :is(#game-canvas,.game-coach,.game-rotate-hint,.overlay-brand-mark){display:none}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"]) .game-overlay{position:relative;inset:auto;display:block;width:100%;height:100%;min-height:0;padding:0;border:0;background:var(--game-panel);overflow:visible}
.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"]) .overlay-card{display:block;width:100%;max-width:none;height:100%;min-height:0;margin:0;padding:8px;border:0;border-radius:0;background:var(--game-bg);box-shadow:none}
.landscape-menu{display:grid;grid-template-rows:26px minmax(0,1fr) 44px;gap:6px;height:100%;min-height:0;text-align:left}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu h2{margin:0;font:500 23px/26px 'Archivo',sans-serif;letter-spacing:-.5px;white-space:nowrap}
.landscape-menu-body{min-height:0;align-content:center}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body p{margin:5px 0;font-size:14px;line-height:1.3;text-align:left}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body h3{font-size:18px;line-height:1.25;margin:0;font-weight:500}
.menu-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:16px;height:100%;min-height:0}
.menu-time{display:flex;flex-direction:column;gap:4px}.menu-time strong{font:500 27px/1.15 'IBM Plex Mono',monospace}.menu-time span{font-size:13px}
.landscape-menu-actions{display:flex;align-items:stretch;gap:6px;min-width:0;height:44px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-actions button{flex:1;min-width:0;min-height:44px;height:44px;padding:4px 8px;font:600 13px/1.15 'Source Sans 3',sans-serif;transform:none}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-actions button[aria-label]{flex:0 0 44px}
.menu-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.game-page .runner-game[data-game-landscape-menu="true"] .menu-options button{min-height:44px;padding:5px 9px;font-size:13px;line-height:1.2}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;margin:0;height:100%;align-items:center}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker .avatar-picker-preview{grid-column:1;grid-row:1;align-self:center;width:74px;padding:0;background:var(--game-panel)}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker #avatar-preview{width:70px;height:82px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker .avatar-picker-options{display:block;grid-column:2;min-width:0}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker :is(.avatar-presets,.avatar-custom){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;margin:0;padding:0;grid-row:auto;grid-column:auto}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker legend{font-size:13px;line-height:16px;margin:0 0 4px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker .avatar-presets label{min-height:44px;font-size:14px;line-height:1.15}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker .avatar-custom label{font-size:13px;line-height:16px;gap:2px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-picker :is(select,input[type="color"]){min-height:44px;height:44px;padding:3px}
.menu-coach{display:flex;align-items:center;gap:10px}.menu-coach .game-coach-head{flex:0 0 42px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .game-level-tester{margin:0;padding:0;border:0}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .game-level-tester p{margin:0 0 4px;font-size:13px;line-height:1.2}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .game-level-tester label{font-size:13px;margin:0 0 3px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .game-level-tester select{height:44px;min-height:44px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .game-level-tester button{display:none}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .game-ceremony{height:100%;max-height:104px;width:auto;max-width:100%;margin:0 auto;object-fit:contain}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .race-splits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;margin:0;padding:0}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .race-splits li{padding:5px 0;font-size:13px;line-height:16px}

.game-page .runner-game[data-game-landscape-menu="true"][data-mode]:not([data-mode="playing"]):not([data-mode="finishing"])>.game-stage{height:var(--game-menu-stage-height)}
.landscape-menu-heading{display:flex;align-items:center;gap:8px;min-width:0;height:26px}
.landscape-menu-brand{display:block;width:36px;height:24px;flex:0 0 36px;object-fit:contain}

/* Short windows retain full-size controls by reducing repeated menu chrome. */
.game-page .runner-game[data-game-landscape-menu="true"][data-game-menu-tight="true"] .overlay-card{padding:4px}
.game-page .runner-game[data-game-landscape-menu="true"][data-game-menu-tight="true"] .landscape-menu{grid-template-rows:24px minmax(0,1fr) 44px;gap:3px}
.game-page .runner-game[data-game-landscape-menu="true"][data-game-menu-tight="true"] .landscape-menu-heading{height:24px}
.game-page .runner-game[data-game-landscape-menu="true"][data-game-menu-tight="true"] .avatar-presets legend{line-height:14px;margin-bottom:2px}

.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .race-splits li{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .race-splits span{font-size:12px;line-height:16px}
.game-page .runner-game[data-game-landscape-menu="true"] .landscape-menu-body .race-splits strong{font-size:14px;line-height:16px}

/* Completed route times remain readable after rotating back to portrait. */
.game-page .runner-game[data-mode="victory"] .race-splits li{flex-direction:row;align-items:center;justify-content:space-between;gap:6px}
.game-page .runner-game[data-mode="victory"] .race-splits span{font-size:12px;line-height:16px}
.game-page .runner-game[data-mode="victory"] .race-splits strong{font-size:14px;line-height:16px}
