@font-face{font-family:Bungee;src:url('./assets/bungee.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Nunito;src:url('./assets/nunito-regular.ttf') format('truetype');font-display:swap;font-weight:400 600}
@font-face{font-family:Nunito;src:url('./assets/nunito-bold.ttf') format('truetype');font-display:swap;font-weight:700 1000}
:root{font-family:Nunito,sans-serif;color:#fff9e9;background:#159298;--navy:#103b48;--cream:#fff9e9;--yellow:#ffdc57;--aqua:#59f1e3;--coral:#f48163}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}[hidden]{display:none!important}button:disabled{opacity:.55;cursor:wait}button{border:0}
#game,#world,#shade,#speed-lines{position:fixed;inset:0;width:100%;height:100%}#world{display:block;touch-action:none;outline:none}#shade{pointer-events:none;background:linear-gradient(90deg,#042f4015,transparent 50%),linear-gradient(0deg,#053e5022,transparent 30%);transition:opacity .3s}body.racing #shade{opacity:0}
.topbar{position:fixed;top:20px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;z-index:6}.home-link{font-size:14px;font-weight:950;background:#123e4bbb;padding:9px 14px;border-radius:8px}.tools{display:flex;gap:8px}.small-button{background:#123e4be0;color:var(--cream);border-radius:8px;min-height:38px;padding:8px 13px;font-size:14px;font-weight:850}.small-button:hover{background:#24626b}
.title-lockup{position:absolute;top:13%;left:4.5%;z-index:3;transform:skew(-4deg)}.eyebrow{font-family:Bungee,sans-serif;color:var(--yellow);font-size:22px;margin:0 0 1px;letter-spacing:.01em;text-shadow:2px 3px 0 #103b48,-1px -1px 0 #103b48}h1{font-family:Bungee,sans-serif;font-size:clamp(35px,4.1vw,64px);line-height:1.06;margin:0;letter-spacing:-.025em;font-weight:400;text-shadow:2px 3px 3px #103b48bb,-1px -1px 0 #103b48,1px -1px 0 #103b48,-1px 1px 0 #103b48}h1 br{display:none}.subtitle{font-size:15px;font-weight:900;margin:12px 0 0;text-shadow:0 2px 6px #103b48}
.start-actions{position:absolute;left:4.5%;bottom:6%;z-index:3;max-width:380px}.start-actions>p:first-child{font-size:18px;font-weight:950;margin:0 0 15px;text-shadow:0 2px 8px #052a33}.primary{background:var(--yellow);color:var(--navy);padding:15px 28px;border-radius:9px;font-size:18px;font-weight:1000;box-shadow:0 5px 15px #09384855;transition:transform .15s,background .15s;min-width:180px}.primary:hover{background:#ffe993;transform:translateY(-2px)}.primary:active{transform:translateY(2px)}.text-button{display:block;margin:15px 0 0;background:none;color:var(--cream);font-weight:900;font-size:14px;padding:6px 0;text-shadow:0 2px 7px #103b48}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.start-actions>.text-button{display:inline-block;margin:0 0 0 14px}
.key-guide{display:flex;gap:13px;flex-wrap:wrap;margin-top:25px;max-width:380px}.key-guide>span{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:950;text-shadow:0 2px 5px #123d4b}kbd{font:900 11px Nunito,sans-serif;background:var(--cream);color:var(--navy);border-radius:3px;padding:2px 5px;display:inline-block;text-shadow:none}.help{font-size:12px;font-weight:800;line-height:1.6;margin:12px 0;color:#e7f2e3;text-shadow:0 2px 7px #103b48}.best{font-size:13px;font-weight:950;color:var(--yellow);text-shadow:0 2px 5px #123d4b}
#hud{position:fixed;inset:0;pointer-events:none}.race-heading{position:absolute;top:80px;left:30px;background:#103b48c7;padding:10px 14px;border-radius:9px}.race-heading .eyebrow{font-size:15px}.race-heading h2{font-family:Bungee,sans-serif;font-size:21px;font-weight:400;margin:0 0 4px;line-height:1.2;transform:skew(-4deg)}.race-heading>span{font-size:12px;font-weight:950;color:#d3e7dc}.race-clock{position:absolute;top:78px;right:30px;text-align:right;padding:7px 13px;border-radius:9px;background:#103b48cc}.race-clock span{display:block}#timer{font-family:Bungee,sans-serif;font-size:37px;line-height:1.2;font-variant-numeric:tabular-nums}#gold-target{color:var(--yellow);font-size:11px;font-weight:950;margin-top:5px}.course-map{position:absolute;right:28px;top:33%;display:flex;flex-direction:column;align-items:center;font-size:12px;font-weight:950;text-shadow:0 2px 4px #123e4b}.course-map svg{width:72px;height:150px;overflow:visible;filter:drop-shadow(0 2px 2px #123e4b)}#map-route{fill:none;stroke:var(--cream);stroke-width:3.8;stroke-linecap:round;stroke-linejoin:round}#map-branches{fill:none;stroke:var(--yellow);stroke-width:2}#map-dot{fill:var(--coral);stroke:var(--cream);stroke-width:1.5}#map-flag{fill:none;stroke:var(--yellow);stroke-width:2}
.bottom-hud{position:absolute;left:32px;right:235px;bottom:25px;display:flex;gap:24px;align-items:flex-end;text-shadow:0 2px 6px #123e4b}.position{display:flex;flex-direction:column;align-items:center}.position>strong{font-family:Bungee,sans-serif;font-weight:400;font-size:52px;line-height:1;transform:skew(-5deg)}.position>strong span{font-family:Nunito,sans-serif;font-size:24px}.position>span{font-size:10px;font-weight:1000;letter-spacing:.08em;margin-top:4px}.active-items{display:flex;flex:1;justify-content:center;gap:7px;flex-wrap:wrap}.active-items>span{font-size:11px;font-weight:950;background:#103b48df;padding:7px 10px;border-radius:7px}#floatie-status{color:#ffa8bc}#spf-status{color:var(--yellow)}.speed{display:flex;align-items:baseline;gap:5px}.speed strong{font-family:Bungee;font-weight:400;font-size:38px;font-variant-numeric:tabular-nums}.speed>span{font-size:10px;font-weight:1000}
.boost-control{position:absolute;right:24px;bottom:17px;width:190px;height:135px;filter:drop-shadow(0 2px 2px #143e49)}.boost-control svg{width:190px;height:120px;fill:none}.gauge-track{stroke:#103b48;stroke-width:18}#boost-fill{stroke:var(--aqua);stroke-width:12;stroke-dasharray:100;stroke-dashoffset:45;stroke-linecap:butt}.cup{stroke:var(--cream);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.boost-control>div{position:absolute;bottom:0;width:100%;display:flex;justify-content:center;align-items:center;gap:9px;font-size:14px;font-style:italic}.boost-control strong{font-weight:1000}
.nina-caption{position:absolute;left:50%;bottom:133px;transform:translateX(-50%);display:flex;align-items:baseline;gap:9px;width:max-content;max-width:60%;padding:9px 15px;background:#103b48dc;border-radius:8px;transition:opacity .3s}.nina-caption>span{font-size:10px;color:#ffa294;font-weight:1000;letter-spacing:.07em}.nina-caption p{margin:0;font-size:14px;line-height:1.4;font-weight:900}.combo{position:absolute;left:34px;top:42%;font-family:Bungee;font-size:20px;transform:skew(-5deg);color:var(--yellow);text-shadow:2px 3px 0 #103b48,-1px -1px 0 #103b48}.combo small{display:block;font-family:Nunito;font-size:11px;color:var(--cream);font-weight:950}#demo-note{position:absolute;top:25px;left:50%;transform:translateX(-50%);font-size:12px;font-weight:1000;background:#103b48e8;padding:8px 12px;border-radius:7px;pointer-events:auto}#take-wheel{background:var(--yellow);color:var(--navy);font-weight:950;border-radius:4px;padding:5px 8px;margin-left:9px}
#countdown{position:fixed;top:28%;width:100%;text-align:center;font-family:Bungee;font-size:95px;color:var(--yellow);text-shadow:4px 6px 0 #143e49;pointer-events:none;z-index:8}#flash{position:fixed;inset:0;pointer-events:none;opacity:0;border:10px solid var(--coral);transition:opacity .2s;z-index:4}#speed-lines{opacity:0;pointer-events:none;z-index:2;background:repeating-conic-gradient(from 10deg at 50% 43%,transparent 0deg 13.8deg,#e9ffff60 14deg 14.16deg,transparent 14.3deg 22deg);mask-image:radial-gradient(ellipse at 50% 43%,transparent 38%,#0008 88%,#000);transition:opacity .2s}
.center-panel,.finish-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:30px;background:#103b48ed;border:1px solid #c9ede124;border-radius:14px;width:390px;max-width:calc(100vw - 32px);text-align:center;z-index:10;box-shadow:0 15px 60px #052a4438}.center-panel h2,.finish-panel h2{font-family:Bungee;font-size:27px;font-weight:400;line-height:1.2;margin:0 0 13px}.center-panel p,.finish-panel p{font-size:15px;line-height:1.5;margin:0 0 20px}.center-panel .text-button,.finish-panel .text-button{margin:14px auto 0}.finish-panel{left:3%;transform:translateY(-50%);width:330px;padding:26px}.finish-panel h2{font-size:25px}.medal{display:inline-block;color:var(--navy);background:var(--yellow);border-radius:22px;padding:8px 16px;font-size:12px;font-weight:1000;margin-bottom:18px}.medal[data-medal=SILVER]{background:#d8e9e7}.medal[data-medal=BRONZE]{background:#e6b389}#final-time{font-family:Bungee;font-size:43px;font-variant-numeric:tabular-nums;margin:3px 0}#finish-best{color:var(--yellow);font-size:12px;font-weight:950;margin-bottom:12px}.race-stats{display:flex;justify-content:center;gap:22px;font-size:11px;margin:14px 0 24px;color:#c7e4dd}.race-stats strong{display:block;font-size:23px;color:var(--cream)}#performance{position:fixed;bottom:4px;left:40%;background:#000c;color:white;font:11px monospace;padding:4px;z-index:20;pointer-events:none}
@media(max-height:740px){.title-lockup{top:14%}h1{font-size:42px}.start-actions{bottom:5%}.start-actions>p:first-child{font-size:16px}.key-guide{margin-top:18px}.best{margin-bottom:0}.nina-caption{bottom:115px}.race-stats{margin:10px 0 18px}.finish-panel{padding:22px}}
@media(max-width:1000px){h1 br{display:block}.title-lockup{top:12%}h1{font-size:42px}.start-actions{max-width:340px}.key-guide{gap:10px}.race-heading h2{font-size:18px}.finish-panel{width:295px}.bottom-hud{right:200px}.boost-control{right:10px;transform:scale(.88);transform-origin:bottom right}.nina-caption{max-width:65%}}
@media(max-width:760px){.topbar{top:14px;left:16px;right:16px}.small-button span{display:none}.title-lockup{left:7%;top:15%}h1{font-size:38px}.eyebrow{font-size:20px}.subtitle{font-size:13px}.start-actions{left:7%;bottom:7%;right:5%;max-width:340px}.start-actions>.text-button{margin-left:8px}.primary{font-size:16px;min-width:160px;padding:13px 22px}.race-heading{left:15px;top:72px}.race-clock{right:15px;top:72px}#timer{font-size:26px}.race-heading h2{font-size:14px}.race-heading .eyebrow{font-size:12px}.bottom-hud{left:20px;right:170px;gap:15px}.position>strong{font-size:38px}.speed{display:none}.boost-control{transform:scale(.75)}.nina-caption{max-width:90%;bottom:130px}.active-items{position:absolute;left:0;bottom:75px;justify-content:flex-start;min-width:200px}.course-map{right:15px;top:35%}.finish-panel{left:50%;transform:translate(-50%,-50%);width:330px}.combo{left:20px;font-size:16px}#demo-note{top:60px;white-space:nowrap}}

@media(prefers-reduced-motion:reduce){*{transition:none!important}#speed-lines{display:none}.primary:hover{transform:none}}

.small-button{display:inline-flex;align-items:center;gap:7px}.small-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:600px){.title-lockup{top:9%}.subtitle{font-size:12px}}
#performance{left:8px;bottom:8px;max-width:calc(100vw - 16px);white-space:pre-wrap;line-height:1.5}

/* Thumb controls share the arcade instruments, while the course stays open. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--touch-edge:16px;--touch-height:154px}
html,body{height:100%;overscroll-behavior:none}body{position:fixed;width:100%}::selection{background:var(--yellow);color:var(--navy)}
.topbar{top:max(20px,var(--safe-top));left:max(30px,var(--safe-left));right:max(30px,var(--safe-right))}.home-link,.small-button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
.touch-guide,.touch-tip{display:none}.game-settings{display:flex;gap:12px;margin-top:14px}.game-settings label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:950;text-shadow:0 1px 5px var(--navy)}.game-settings select{font:900 13px Nunito,sans-serif;background:#103b48ed;color:var(--cream);border:1px solid #ffffff50;border-radius:6px;padding:8px 28px 8px 10px;min-height:44px;min-width:120px;cursor:pointer;color-scheme:dark}.game-settings select:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.center-panel .game-settings{justify-content:center}.center-panel,.finish-panel{max-height:calc(100dvh - max(16px,var(--safe-top)) - max(16px,var(--safe-bottom)));overflow-y:auto;overscroll-behavior:contain;scrollbar-color:var(--aqua) var(--navy);scrollbar-width:thin}.center-panel .text-button,.finish-panel .text-button,.start-actions>.text-button{min-height:44px}
.touch-mode .key-guide,.touch-mode .keyboard-help{display:none}.touch-mode .touch-guide{display:block;font-size:14px;font-weight:900;line-height:1.5;text-shadow:0 2px 5px var(--navy);margin:12px 0}.touch-mode .touch-tip{display:block;font-size:11px;font-weight:900;text-shadow:0 2px 5px var(--navy);margin:10px 0 0}.touch-mode .start-actions{bottom:max(20px,var(--safe-bottom))}.touch-mode .center-panel .touch-guide{font-size:14px;margin:14px 0}.touch-mode .best{margin:12px 0}
#touch-controls{position:fixed;inset:0;z-index:5;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.steer-control{position:absolute;bottom:calc(var(--safe-bottom) + var(--touch-edge));left:calc(var(--safe-left) + var(--touch-edge));width:144px;height:140px;text-align:center}.steer-pad{position:relative;width:144px;height:120px;border-radius:50%;background:#103b4899;border:2px solid #fff9e955;pointer-events:auto;touch-action:none}.steer-directions{position:absolute;inset:0;width:100%;height:100%;stroke:var(--cream);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;fill:none}.steer-stick{position:absolute;top:50%;left:50%;margin:-25px;width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:var(--cream);color:var(--navy);transform:translate(var(--stick-x,0px),var(--stick-y,0px));box-shadow:0 3px 10px #082f4755}.steer-stick svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}.steer-pad.is-held{border-color:var(--aqua)}.steer-pad.is-braking{border-color:var(--yellow)}.steer-pad.is-braking .steer-stick{background:var(--yellow)}.steer-label{display:flex;justify-content:space-between;font-size:11px;font-weight:1000;margin:6px 8px;text-shadow:0 2px 4px var(--navy)}.steer-label>span{color:var(--yellow)}
.touch-actions{position:absolute;right:calc(var(--safe-right) + var(--touch-edge));bottom:calc(var(--safe-bottom) + var(--touch-edge));width:164px;display:grid;grid-template-columns:1fr 1fr;gap:10px;pointer-events:auto}.touch-action{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-height:64px;border-radius:16px;background:#103b48ed;color:var(--cream);font-size:11px;font-weight:1000;touch-action:none;overflow:hidden;padding:10px 8px}.touch-action>svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.touch-brake,.touch-fire{flex-direction:column;gap:3px}.touch-action.is-held{background:var(--cream);color:var(--navy)}.touch-action.is-cooling{color:#d0e1df;background:#103b48cb}.touch-boost{grid-column:1/-1;min-height:72px;padding-bottom:17px;background:var(--yellow);color:var(--navy);gap:10px}.touch-boost>svg{width:28px;height:32px}.touch-boost strong{font-size:15px;display:block}.touch-boost small{font-size:11px;font-weight:1000;display:block;margin-top:2px}.touch-boost.is-held,.touch-boost.is-boosting{background:var(--aqua);color:var(--navy)}.touch-boost.is-empty{background:#e6e6c8}.touch-fuel{position:absolute;left:10px;right:10px;bottom:7px;height:5px;border-radius:3px;background:#103b4840;overflow:hidden}.touch-fuel>span{display:block;width:100%;height:100%;background:var(--navy);transform-origin:left;transform:scaleX(.55)}
.touch-mode .boost-control,.touch-mode #fire-status{display:none}.touch-mode .bottom-hud{left:calc(var(--safe-left) + var(--touch-edge) + 6px);right:calc(var(--safe-right) + var(--touch-edge) + 6px);bottom:calc(var(--safe-bottom) + var(--touch-height) + 32px);align-items:baseline;gap:12px}.touch-mode .position{flex-direction:row;align-items:baseline;gap:7px}.touch-mode .position>strong{font-size:30px}.touch-mode .position>strong span{font-size:15px}.touch-mode .position>span{font-size:11px;letter-spacing:0}.touch-mode .speed{display:flex;margin-left:auto}.touch-mode .speed strong{font-size:27px}.touch-mode .active-items{position:absolute;left:0;right:0;bottom:37px;min-width:0;justify-content:flex-start}.touch-mode .active-items>span{font-size:11px;padding:5px 8px}.touch-mode .nina-caption{bottom:calc(var(--safe-bottom) + var(--touch-height) + 105px);max-width:calc(100% - 32px);width:max-content;padding:7px 10px}.touch-mode .nina-caption p{font-size:12px}.touch-mode .course-map{right:calc(var(--safe-right) + 14px);top:165px}.touch-mode .course-map svg{width:40px;height:90px}.touch-mode .combo{top:35%;left:calc(var(--safe-left) + 18px);font-size:16px}.touch-mode #demo-note{top:auto;bottom:calc(var(--safe-bottom) + 22px);white-space:nowrap;min-height:44px;display:flex;align-items:center}.touch-mode #take-wheel{min-height:44px}.touch-mode #countdown{top:28%}
@media(max-width:600px){
 :root{--touch-edge:12px}.topbar{top:max(12px,var(--safe-top));left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px)}.home-link{font-size:12px;padding:8px 10px}.touch-mode .title-lockup{left:6%;top:calc(var(--safe-top) + 74px)}.touch-mode h1{font-size:36px}.touch-mode .eyebrow{font-size:18px}.touch-mode .start-actions{left:6%;right:6%;max-width:none}.game-settings{gap:10px}.game-settings select{min-width:112px}.touch-mode .race-heading{left:calc(var(--safe-left) + 12px);top:calc(var(--safe-top) + 66px);padding:8px 10px;max-width:calc(100% - 150px)}.touch-mode .race-heading .eyebrow{display:none}.touch-mode .race-heading h2{font-size:13px}.touch-mode .race-heading>span{font-size:11px}.touch-mode .race-clock{right:calc(var(--safe-right) + 12px);top:calc(var(--safe-top) + 66px);padding:7px 10px}.touch-mode #timer{font-size:25px}.touch-mode #gold-target{font-size:11px}.touch-mode .course-map{top:calc(var(--safe-top) + 143px)}
}
@media(max-width:360px){
 .touch-mode h1{font-size:31px}.touch-mode .start-actions>p:first-child{font-size:15px;margin-bottom:7px}.touch-mode .touch-guide{font-size:12px;margin:8px 0}.touch-mode .touch-tip{font-size:11px}.touch-mode .best{font-size:11px;margin:8px 0}.touch-mode .start-actions>.text-button{font-size:12px;margin-left:5px}.touch-mode .primary{min-width:140px;padding:13px 15px}.touch-actions{width:144px}.steer-control,.steer-pad{width:130px}.touch-boost strong{font-size:13px}.touch-mode .position>span{display:none}
}
@media(orientation:landscape) and (max-height:520px){
 :root{--touch-height:120px;--touch-edge:12px}.touch-mode .topbar{top:max(8px,var(--safe-top));left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px)}.touch-mode .title-lockup{top:65px;left:calc(var(--safe-left) + 26px)}.touch-mode h1{font-size:32px}.touch-mode .title-lockup .eyebrow{font-size:18px}.touch-mode .subtitle{font-size:12px}.touch-mode .start-actions{left:auto;right:calc(var(--safe-right) + 22px);top:64px;bottom:auto;width:235px}.touch-mode .start-actions>p:first-child,.touch-mode .start-actions .best,.touch-mode .touch-tip{display:none}.touch-mode .start-actions>.primary{width:100%}.touch-mode .start-actions>.text-button{margin:4px 0 0;min-height:44px}.touch-mode .touch-guide{font-size:12px;margin:7px 0}.touch-mode .game-settings{margin-top:8px}.touch-mode .game-settings select{min-width:105px}.touch-mode .race-heading{top:60px;left:calc(var(--safe-left) + 12px);padding:6px 9px}.touch-mode .race-heading .eyebrow{display:none}.touch-mode .race-heading h2{font-size:13px}.touch-mode .race-heading>span{font-size:11px}.touch-mode .race-clock{top:60px;right:calc(var(--safe-right) + 12px);padding:6px 9px}.touch-mode #timer{font-size:24px}.touch-mode #gold-target{font-size:11px;margin-top:0}.touch-mode .course-map{top:65px;right:50%;transform:translateX(50%)}.touch-mode .course-map svg{display:none}.touch-mode .nina-caption{bottom:calc(var(--safe-bottom) + 16px);max-width:calc(100% - 355px);align-items:flex-start;gap:6px}.touch-mode .nina-caption p{font-size:11px}.touch-mode .nina-caption>span{display:none}.touch-mode .combo{top:100px;left:50%;transform:translateX(-50%);font-size:14px}.touch-mode .bottom-hud{bottom:calc(var(--safe-bottom) + 146px)}.touch-mode .position>strong{font-size:26px}.touch-mode .speed strong{font-size:24px}.touch-mode .active-items{left:160px;right:160px;bottom:0;justify-content:center}.touch-mode .position>span{display:none}.steer-control{height:120px}.steer-pad{height:100px}.touch-actions{gap:8px;width:150px}.touch-action{min-height:52px;padding:6px;flex-direction:row;gap:4px;border-radius:13px}.touch-action>svg{width:21px;height:21px}.touch-boost{min-height:60px;padding-bottom:15px}.touch-boost strong{font-size:13px}.touch-boost small{font-size:11px}.touch-mode #countdown{font-size:72px;top:29%}.touch-mode #demo-note{bottom:12px}.touch-mode .center-panel,.touch-mode .finish-panel{padding:18px 24px}.touch-mode .center-panel h2,.touch-mode .finish-panel h2{font-size:23px;margin-bottom:8px}.touch-mode .center-panel p,.touch-mode .finish-panel p{margin-bottom:10px}.touch-mode .medal{margin-bottom:8px}.touch-mode #final-time{font-size:32px}.touch-mode .race-stats{margin:8px 0 10px}.touch-mode .finish-panel .text-button,.touch-mode .center-panel .text-button{margin-top:5px}
}
@media(hover:hover){.touch-action:hover{filter:brightness(1.08)}}

.touch-mode.demo-mode .nina-caption{bottom:calc(var(--safe-bottom) + 82px)}
@media(max-width:600px) and (max-height:700px) and (orientation:portrait){.touch-mode .subtitle{display:none}}
@media(orientation:landscape) and (max-height:520px){
 .touch-mode .finish-panel{width:340px;padding:14px 22px}.touch-mode .finish-panel h2{font-size:22px;margin-bottom:4px}.touch-mode .finish-panel .medal{padding:6px 14px;margin-bottom:4px}.touch-mode #finish-copy{font-size:13px;line-height:1.3;margin-bottom:6px}.touch-mode #final-time{line-height:1.1}.touch-mode #finish-best{margin-bottom:6px}.touch-mode .race-stats{margin:8px 0}.touch-mode .race-stats strong{display:inline;font-size:16px;margin-right:4px}.touch-mode .finish-panel .primary{min-height:44px;padding:10px 22px;font-size:16px}
}

.touch-mode .nina-caption>span{font-size:11px}

/* Water blaster stays readable while held; the thin bar shows its short refill. */
.touch-fire.is-held,.touch-fire.is-firing{background:var(--aqua);color:var(--navy)}.shot-reload{position:absolute;left:10px;right:10px;bottom:6px;height:3px;background:currentColor;transform-origin:left;transform:scaleX(var(--reload,1));opacity:.55}#fire-status.is-firing{background:var(--aqua);color:var(--navy)}

/* The desktop entry leaves the city visible above the title and brings the
   actions beside the couple, matching the waterfront's visual hierarchy. */
@media(min-width:1100px) and (min-height:760px){
 .title-lockup{top:20.7%}h1{font-size:clamp(48px,4.2vw,68px)}
 .subtitle{font-size:19px}.start-actions{bottom:12%;max-width:450px}
 .start-actions>p:first-child{font-size:22px;margin-bottom:20px}
 .start-actions>.primary{font-size:22px;min-width:215px;padding:18px 28px}
 .start-actions>.text-button{font-size:18px;margin-left:20px}
 .key-guide{max-width:380px;gap:15px;margin-top:32px}.key-guide>span{font-size:14px}kbd{font-size:13px}
 .help{font-size:13px}.best{font-size:15px}.game-settings{gap:24px}.game-settings label{font-size:13px}
 .game-settings select{font-size:15px;min-width:130px}
}
