@import url('https://fonts.googleapis.com/css2?family=DotGothic16&family=Noto+Sans+JP:wght@500;700;800;900&family=Space+Mono:wght@400;700&display=swap');
@font-face{font-family:ResultPixel;src:url('./assets/fonts/DotGothic16-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--ink:#fff0d6;--pink:#ff9ba9;--mono:'Space Mono',monospace;--pixel:'DotGothic16',monospace;--sans:'Noto Sans JP',sans-serif;--app-height:100dvh;--edge:24px;--glass:#252c40cc}
*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none}html,body{position:fixed;inset:0;margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:#30364d;color:var(--ink);font:14px var(--sans);-webkit-font-smoothing:antialiased}::selection{background:transparent}button{font:inherit;cursor:pointer;color:inherit;touch-action:none}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:3px solid #ffe7ae;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.game-shell{position:relative;width:100vw;height:var(--app-height);overflow:hidden}#game-screen{position:absolute;inset:0;background:linear-gradient(#58577e,#b88a9e 55%,#30364d)}#game-screen canvas{display:block;width:100%!important;height:100%!important;image-rendering:pixelated;image-rendering:crisp-edges}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#171e3540,transparent 27%,transparent 63%,#171e3580)}
.topbar{position:absolute;top:max(15px,env(safe-area-inset-top));left:max(var(--edge),env(safe-area-inset-left));right:max(var(--edge),env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:start;z-index:5;pointer-events:none}.brand{font:700 16px/1.2 var(--mono);text-shadow:2px 2px #303449;letter-spacing:-.6px}.brand>span{font:700 10px var(--mono);background:#ff9ba9;color:#393048;padding:3px 5px;margin-left:7px;vertical-align:middle;text-shadow:none}.brand>small{display:block;font:9px var(--sans);letter-spacing:.4px;color:#e5c2c2;margin-top:5px}.top-actions{display:flex;gap:7px;pointer-events:auto}.icon-button{border:1px solid #a99dad55;background:#252b42b8;min-width:35px;height:33px;font:700 18px var(--mono);padding:3px 8px;box-shadow:2px 2px #181e3030}.icon-button:hover{background:#5a4b66}#sound-button{display:flex;align-items:center;gap:5px}#sound-label{font:7px var(--mono);color:#e8bdc2}#pause-button{font-size:16px}
.telemetry{position:absolute;left:max(var(--edge),env(safe-area-inset-left));top:83px;display:flex;gap:24px;pointer-events:none;text-shadow:2px 2px #303449}.telemetry>div>span{display:block;font:8px var(--mono);letter-spacing:1px;color:#f2d5c5;margin-bottom:2px}.telemetry strong{display:block;font:700 25px/1.2 var(--mono);font-variant-numeric:tabular-nums}.telemetry em{font:9px var(--mono);margin-left:5px}.telemetry b{font-weight:700}#time{color:#ffe8ae}#time>span{font-size:14px}.speed-stat strong{font-size:31px}.score-stat strong,.distance-stat strong{font-size:18px;margin-top:7px}#time.urgent{color:#ff9aab}
.driver-panel{position:absolute;top:65px;right:max(var(--edge),env(safe-area-inset-right));width:164px;background:#7d7569;border:2px solid #ead3c866;box-shadow:5px 5px #17203944;pointer-events:none;overflow:hidden;z-index:3}.camera-label{position:absolute;inset:0 0 auto;height:22px;display:flex;align-items:center;justify-content:space-between;background:#2a2d43d4;padding:0 7px;font:7px var(--mono);letter-spacing:.4px;z-index:1}.camera-label i{display:inline-block;width:4px;height:4px;background:#ff9baa;margin-right:3px}.camera-label>span:last-child{color:#ff9baa;font-size:6px}.driver-panel canvas{display:block;width:100%;aspect-ratio:128/144;height:auto;image-rendering:pixelated}.driver-caption{background:#f5e3ce;color:#473948;text-align:center;padding:5px 3px 6px;border-top:2px solid #44364d}.driver-caption>span{font-size:6px;color:#a06b78}.driver-caption p{font:12px/1.4 var(--pixel);white-space:nowrap;margin:3px 0 0}
.condition-hud{position:absolute;left:max(var(--edge),env(safe-area-inset-left));top:151px;display:flex;align-items:center;gap:15px;background:#252b405e;padding:8px 11px;pointer-events:none;border-left:2px solid #f1a4ac;max-width:420px}.tipsy-stat{width:105px}.tipsy-stat>span{font-size:8px;color:#e8c1c8}.tipsy-stat b{font-weight:500;color:#ffb2b9;margin-left:7px}.meter-track{height:4px;background:#1d253a;margin-top:7px;overflow:hidden}.meter-track i{display:block;width:24%;height:100%;background:#ffa3ad}.auto-drink-stat{display:flex;align-items:center;gap:6px}.auto-drink-stat strong,.delay-stat strong{font:700 16px var(--mono)}.auto-drink-stat em,.delay-stat em{font:7px var(--sans);margin-left:3px}.auto-drink-stat small{font:7px var(--sans);color:#d3b9c5}.auto-drink-stat.drinking{color:#ffe59d}.delay-stat{display:flex;align-items:center;gap:6px}.delay-stat>span{font-size:7px;color:#d3b9c5}.delay-stat strong{color:#ffc899}
.controls-dock{position:absolute;bottom:max(10px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(700px,calc(100% - 40px));z-index:5}.instructor-strip{display:grid;grid-template-columns:40px minmax(0,1fr) 200px;align-items:center;gap:10px;padding:8px 12px;background:#202b42d9;border-top:1px solid #e5c6bc66;margin-bottom:6px;min-height:48px}.coach-badge{font:700 7px var(--mono);color:#ffa5b4}.coach-badge span{display:block;font:700 10px var(--sans);margin-top:2px;color:#f3d7c5}.instructor-strip>p{font:16px var(--pixel);margin:0;color:#ffecd2}.response-box{font-size:8px;color:#b8d8d8}.instructor-strip.waiting .response-box{color:#ffc18f}.instructor-strip.braking .response-box{color:#b6f0cc}.command-controls{display:grid;grid-template-columns:1fr 1fr 1.17fr;gap:8px}.command-controls button{min-width:0;min-height:65px;display:flex;align-items:center;justify-content:center;gap:12px;background:#26324bd9;border:1px solid #d7bfc06e;border-bottom:3px solid #a594ab;font-size:13px;font-weight:800;box-shadow:3px 3px #19213955}.command-controls button small{display:block;font:8px var(--mono);margin-top:4px;letter-spacing:.5px;color:#c6bbc7}.control-arrow{font:700 30px var(--mono)}.command-controls .brake-control{color:#fff0d8;background:#a35f78db;border-color:#dba2ac;border-bottom-color:#f2b5b6}.brake-symbol{border:2px solid #ffd0cb;width:27px;height:27px;border-radius:50%;font:700 22px/23px var(--mono)}.command-controls button.active{background:#e897a7;color:#332b44;border-color:#ffe4cf;transform:translateY(2px)}.command-controls button.active small{color:#643c54}.under-game{display:flex;justify-content:space-between;align-items:center;margin-top:5px;font-size:7px;color:#dbbec9;text-shadow:1px 1px #232b42}.under-game button{border:0;background:none;font-size:8px;padding:0;color:#f3d6c8}.countdown{position:absolute;inset:0;display:grid;place-items:center;font:700 clamp(50px,9vw,108px) var(--mono);color:#ffe9be;text-shadow:5px 5px #79516b;pointer-events:none;z-index:6}.countdown.long{font-family:var(--pixel);font-size:32px}
.screen-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#2023395e;z-index:6;padding:20px;pointer-events:none}.screen-overlay button{pointer-events:auto}.start-copy{text-align:center;transform:translateY(-10px);text-shadow:3px 3px #353348}.mini-label{font:8px var(--mono);letter-spacing:1.8px;color:#f0c1bd}.start-copy h1{font:900 clamp(32px,5vw,68px)/1.15 var(--sans);letter-spacing:-3px;margin:15px 0 13px}.start-copy h1>span{color:#ffa5b4}.start-copy h1 i{display:inline-block;font:700 italic .52em var(--mono);vertical-align:top;background:#ffe1b4;padding:4px 8px;color:#4a3550;margin:6px 0 0 9px;transform:rotate(8deg);text-shadow:none}.start-copy>p{font:12px/1.9 var(--sans);color:#ffdfd3;margin:0 0 20px}.primary-button{display:flex;align-items:center;justify-content:center;gap:24px;margin:0 auto;min-height:48px;min-width:250px;padding:10px 20px;color:#382a43;background:#ffabb6;border:1px solid #ffe4d0;border-bottom:4px solid #bb748c;font-weight:800;font-size:12px;box-shadow:5px 5px #25254166;text-shadow:none}.primary-button:hover{background:#ffd0d0}.primary-button>span{font-size:19px}.start-copy>small{display:block;font:8px/1.8 var(--sans);margin-top:16px;color:#e8c4c9}.menu-card{pointer-events:auto;padding:28px 32px;text-align:center;background:#232b42eb;border:1px solid #a094ad;box-shadow:8px 8px #131e3150;width:min(460px,100%)}.menu-card h2{font-size:23px;margin:14px 0}.menu-card>p{font-size:10px;line-height:1.8;color:#e1bdc6;margin-bottom:20px}.light-button{border:0;background:none;color:#e7c1ca;text-decoration:underline;font-size:10px;margin-top:18px}.result-stats{display:flex;justify-content:space-evenly;gap:18px;margin:22px 0}.result-stats small{font-size:8px;color:#cbb6c9}.result-stats strong{display:block;font:700 24px var(--mono);margin-top:5px}.result-stats em{font:9px var(--sans);margin-left:3px}#best-line{display:block;font:8px var(--mono);color:#bcb9ce;margin-top:18px}
/* Menus stay inside the fixed viewport; instructions never occupy the road. */
dialog{width:min(540px,calc(100% - 28px));max-height:calc(var(--app-height) - 28px);overflow:hidden;background:#293047;color:#ffead3;border:1px solid #a39ab1;padding:28px;box-shadow:8px 8px #17203655}dialog::backdrop{background:#161f34bb}.dialog-close{position:absolute;right:14px;top:8px;border:0;background:none;font-size:25px;color:#ddc3ce}dialog h2{font-size:20px;margin:15px 0}dialog>p{font-size:11px;line-height:1.9;color:#dac3ce}.how-rows{margin:20px 0}.how-rows p{display:flex;justify-content:space-between;font-size:10px;border-bottom:1px solid #6f637c;padding-bottom:12px}.how-rows b{font-weight:500}.how-tip{font-size:10px!important;background:#1f283d;padding:14px}.how-tip+.primary-button{margin-top:22px;width:100%;min-width:0}
@media(min-width:1400px){.driver-panel{width:192px}.telemetry{gap:30px}.controls-dock{width:740px}.command-controls button{min-height:70px}}
@media(max-width:700px){:root{--edge:12px}.topbar{top:max(10px,env(safe-area-inset-top))}.brand{font-size:12px}.brand>span{font-size:8px;margin-left:5px;padding:2px 4px}.brand>small{font-size:7px;margin-top:4px}.top-actions{gap:5px}.icon-button{min-width:28px;height:28px;padding:3px 6px;font-size:15px}#sound-button{gap:3px}#sound-label{font-size:6px}.telemetry{top:64px;gap:13px;flex-wrap:wrap;max-width:calc(100% - 132px);row-gap:9px}.telemetry>div>span{font-size:6px;letter-spacing:.5px}.telemetry strong{font-size:20px}.speed-stat strong{font-size:26px}.telemetry em{font-size:7px;margin-left:3px}#time>span{font-size:11px}.distance-stat strong,.score-stat strong{font-size:14px;margin-top:2px}.driver-panel{top:54px;width:108px;border-width:1px}.camera-label{height:17px;font-size:5px;padding:0 5px}.camera-label>span:last-child{font-size:5px}.driver-caption{padding:3px 2px 5px;border-top-width:1px}.driver-caption p{font-size:9px;margin-top:2px}.driver-caption>span{font-size:5px}.condition-hud{top:160px;max-width:calc(100% - 140px);padding:6px 8px;gap:6px 9px;flex-wrap:wrap}.tipsy-stat{width:100%}.tipsy-stat>span{font-size:7px}.meter-track{height:3px;margin-top:5px}.auto-drink-stat{gap:5px}.auto-drink-stat strong,.delay-stat strong{font-size:13px}.auto-drink-stat small,.delay-stat>span{font-size:6px}.auto-drink-stat em,.delay-stat em{font-size:6px}.delay-stat{gap:4px}.controls-dock{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom))}.instructor-strip{grid-template-columns:29px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 6px;padding:7px 9px;min-height:51px;margin-bottom:5px}.coach-badge{grid-row:1/3;font-size:6px}.coach-badge span{font-size:9px}.instructor-strip>p{font-size:13px}.response-box{display:flex;align-items:center;gap:8px;font-size:7px;grid-column:2}.command-controls{gap:6px}.command-controls button{min-height:62px;font-size:11px;gap:7px}.command-controls button small{font-size:6px;margin-top:3px;letter-spacing:0}.control-arrow{font-size:24px}.brake-symbol{width:23px;height:23px;font-size:18px;line-height:19px}.under-game{font-size:6px;margin-top:4px}.under-game button{font-size:7px}.start-copy{transform:translateY(10px)}.start-copy h1{font-size:43px;letter-spacing:-2px;margin:13px 0}.start-copy>p{font-size:10px;margin-bottom:17px}.mini-label{font-size:6px;letter-spacing:1px}.primary-button{font-size:11px;min-height:45px;min-width:230px}.start-copy>small{font-size:7px;margin-top:12px}.menu-card{padding:24px 18px}.menu-card h2{font-size:20px}.result-stats{gap:12px}.result-stats strong{font-size:21px}dialog{padding:23px 20px}dialog h2{font-size:17px}dialog>p{font-size:10px}.how-tip{font-size:9px!important}.how-rows p{font-size:9px}}
@media(max-width:370px){.brand>small{font-size:6px}.top-actions{gap:3px}.icon-button{min-width:25px;padding:3px 5px}#sound-label{display:none}.driver-panel{width:94px}.telemetry{max-width:calc(100% - 117px);gap:11px;row-gap:8px}.condition-hud{max-width:calc(100% - 123px)}.command-controls button{font-size:10px;gap:4px}.brake-symbol{display:none}.start-copy h1{font-size:37px}.start-copy>small{font-size:6px}}
@media(max-height:600px) and (orientation:portrait){.condition-hud{top:145px}.driver-panel{width:92px}.telemetry{top:60px}.start-copy{transform:translateY(20px)}.start-copy h1{font-size:32px;margin:8px 0}.start-copy>p{font-size:9px;line-height:1.5;margin-bottom:11px}.start-copy>small{display:none}.start-copy .primary-button{min-height:38px}.start-copy .mini-label{display:none}.command-controls button{min-height:52px}.instructor-strip{min-height:46px}.menu-card{padding:18px 12px}.menu-card h2{margin:10px 0}.result-stats{margin:14px 0}}
@media(max-height:540px) and (orientation:landscape){:root{--edge:14px}.topbar{top:max(8px,env(safe-area-inset-top))}.brand{font-size:12px}.brand>small{display:none}.icon-button{height:27px;min-width:29px;font-size:15px}.telemetry{top:52px;gap:15px;max-width:none}.telemetry>div>span{font-size:6px}.telemetry strong{font-size:20px}.speed-stat strong{font-size:25px}.score-stat strong,.distance-stat strong{font-size:15px;margin-top:5px}.driver-panel{width:90px;top:45px}.camera-label{height:15px;font-size:5px}.driver-caption{padding:3px}.driver-caption>span{display:none}.driver-caption p{font-size:8px}.condition-hud{top:107px;gap:9px;padding:5px 8px;max-width:350px;flex-wrap:nowrap}.tipsy-stat{width:90px}.auto-drink-stat strong,.delay-stat strong{font-size:13px}.auto-drink-stat small,.delay-stat>span{font-size:6px}.controls-dock{width:min(580px,calc(100% - 30px));bottom:max(6px,env(safe-area-inset-bottom))}.instructor-strip{grid-template-columns:34px minmax(0,1fr) 155px;grid-template-rows:1fr;min-height:33px;padding:5px 8px;gap:6px;margin-bottom:4px}.instructor-strip>p{font-size:12px}.coach-badge{grid-row:auto}.response-box{grid-column:auto;display:block;font-size:6px}.command-controls button{min-height:44px;font-size:11px;gap:8px}.command-controls button small{font-size:6px;margin-top:1px}.control-arrow{font-size:23px}.under-game{margin-top:3px;font-size:6px}.under-game button{font-size:6px}.start-copy{transform:translateY(-5px)}.start-copy h1{font-size:34px;margin:7px 0}.start-copy h1 br{display:none}.start-copy>p{font-size:9px;line-height:1.5;margin-bottom:10px}.start-copy>small{display:none}.primary-button{min-height:35px;font-size:10px}.mini-label{font-size:6px}.menu-card{padding:15px 22px;width:420px}.menu-card h2{font-size:18px;margin:8px 0}.menu-card>p{font-size:9px;margin-bottom:10px}.result-stats{margin:12px 0}.result-stats strong{font-size:19px}#best-line{margin-top:10px;font-size:7px}.light-button{margin-top:12px}dialog{padding:16px 20px}dialog h2{font-size:16px;margin:8px 0}dialog>p{font-size:9px;line-height:1.5;margin:8px 0}.how-rows{margin:10px 0}.how-rows p{font-size:8px;padding-bottom:6px;margin:6px 0}.how-tip{font-size:8px!important;padding:9px}.how-tip+.primary-button{margin-top:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.game-shell[data-stage=road] .command-controls{grid-template-columns:1fr 1fr;max-width:460px;margin:0 auto}
/* Keep only the drive, the face and the controls in normal play. */
.minimal-ui .brand{font:800 17px/1.4 var(--sans);letter-spacing:-.6px}.minimal-ui .telemetry{top:70px;display:block}.minimal-ui .speed-stat strong{font-size:30px}.mini-counts{display:flex;gap:16px;margin-top:9px;font-size:13px}.mini-counts b{font:700 14px var(--mono)}.minimal-ui .auto-drink-stat{display:inline-flex;gap:6px}.minimal-ui .camera-label{height:20px;background:transparent;justify-content:end;color:#ff9dac}.minimal-ui .driver-caption{padding:8px 3px}.minimal-ui .driver-caption p{margin:0}.minimal-ui .driver-panel{transition:width .18s,border-color .18s}.minimal-ui[data-drinking=true] .driver-panel{width:210px;border-color:#ffd799;box-shadow:0 0 0 2px #ffd79950,5px 5px #17203944}.minimal-ui .instructor-strip{grid-template-columns:32px minmax(0,1fr) 160px;min-height:40px}.minimal-ui .coach-badge{font:9px var(--sans)}.minimal-ui .response-box{font-size:9px}.minimal-ui .command-controls .control-arrow{font-size:34px}.minimal-ui .command-controls button{min-height:62px}.minimal-ui[data-phase=ready] .instructor-strip,.minimal-ui[data-phase=intro] .instructor-strip,.minimal-ui[data-phase=result] .instructor-strip{visibility:hidden}.minimal-ui .finale-warning{width:min(380px,calc(100% - 28px));padding:9px 13px}.minimal-ui .result-stats{gap:30px;margin:28px 0}.minimal-ui .result-stats strong{font-size:30px}.minimal-ui .result-stats small{font-size:11px}.minimal-ui .start-copy h1{letter-spacing:-2px}
@media(max-width:700px){.minimal-ui .brand{font-size:14px}.minimal-ui .telemetry{top:60px;max-width:none}.minimal-ui .speed-stat strong{font-size:25px}.mini-counts{font-size:11px;gap:12px;margin-top:6px}.mini-counts b{font-size:12px}.minimal-ui[data-drinking=true] .driver-panel{width:140px}.minimal-ui .driver-caption{padding:6px 2px}.minimal-ui .instructor-strip{grid-template-columns:26px minmax(0,1fr);min-height:45px}.minimal-ui .response-box{font-size:7px}.minimal-ui .command-controls button{min-height:60px}.minimal-ui .finale-warning{top:217px;padding:8px 11px}.minimal-ui .result-stats strong{font-size:27px}.minimal-ui .result-stats small{font-size:10px}}
@media(max-width:370px){.minimal-ui .brand{font-size:12px}.minimal-ui .top-actions{gap:3px}.minimal-ui .icon-button{min-width:25px}.minimal-ui[data-drinking=true] .driver-panel{width:125px}}
@media(max-height:640px) and (orientation:portrait){.minimal-ui .finale-warning{top:183px}.minimal-ui .command-controls button{min-height:50px}.minimal-ui[data-drinking=true] .driver-panel{width:115px}}
@media(max-height:540px) and (orientation:landscape){.minimal-ui .brand{font-size:12px}.minimal-ui .telemetry{top:49px}.minimal-ui .speed-stat strong{font-size:22px}.minimal-ui[data-drinking=true] .driver-panel{width:115px}.minimal-ui .instructor-strip{grid-template-columns:28px minmax(0,1fr) 130px;min-height:31px}.minimal-ui .response-box{font-size:7px}.minimal-ui .command-controls button{min-height:43px}.minimal-ui .finale-warning{top:93px;width:min(320px,calc(100% - 200px));padding:7px 10px}.minimal-ui .result-stats{margin:18px 0}.minimal-ui .result-stats strong{font-size:25px}}

/* Secondary camera stays clear and appears only after a brake instruction. */
.minimal-ui .finale-warning{position:absolute;z-index:4;left:50%;top:18%;transform:translateX(-50%);width:max-content;max-width:90%;padding:12px 18px;border:2px solid #ffc77c;background:#33243aeb;color:#ffe1a4;font:16px var(--pixel);pointer-events:none;box-shadow:4px 4px #181f3655}
.side-view{position:absolute;z-index:3;left:50%;top:53px;transform:translateX(-50%);width:min(760px,calc(100% - 440px));height:clamp(170px,30vh,290px);border:2px solid #b9e6df;box-shadow:5px 5px #14213680;pointer-events:none;overflow:hidden;background:transparent}
.side-caption{height:30px;display:flex;justify-content:center;align-items:center;gap:10px;background:#172b3ff2;color:#d7fff0;font:700 15px var(--mono)}
#side-viewport{height:calc(100% - 30px);width:100%}.side-view[data-outcome=hit]{border-color:#ffc17e}.side-view[data-outcome=hit] .side-caption{color:#ffd39d}
.minimal-ui[data-side-view=true] #result-overlay{background:transparent;align-items:flex-end;padding-bottom:24px}.minimal-ui[data-side-view=true] #result-overlay .menu-card{padding:16px 24px}.minimal-ui[data-side-view=true] .result-stats{margin:15px 0}.minimal-ui[data-phase=result] .controls-dock{display:none}
@media(max-width:1000px){.side-view{top:auto;bottom:145px;width:calc(100% - 32px);height:clamp(165px,26vh,250px)}.minimal-ui[data-phase=result] .side-view{bottom:270px}.minimal-ui[data-side-view=true] #result-overlay{padding-bottom:20px}}
@media(max-width:700px){.side-view{bottom:140px;height:clamp(165px,26vh,240px)}.side-caption{font-size:14px}.minimal-ui .finale-warning{top:30%;font-size:14px}.minimal-ui[data-phase=result] .side-view{bottom:260px}}
@media(max-height:640px) and (orientation:portrait){.side-view{bottom:125px;height:145px}.minimal-ui[data-phase=result] .side-view{bottom:220px}.minimal-ui[data-side-view=true] #result-overlay .menu-card{padding:8px 14px}.minimal-ui[data-side-view=true] .result-stats{margin:10px 0}.minimal-ui[data-side-view=true] #result-overlay{padding-bottom:12px}}
@media(max-height:540px) and (orientation:landscape){.side-view{left:auto;right:12px;transform:none;top:50px;bottom:auto;width:46%;height:calc(100% - 150px)}.minimal-ui[data-side-view=true] .driver-panel{right:50%;width:90px}.minimal-ui[data-side-view=true] #result-overlay{justify-content:flex-start;padding:50px 14px 14px}.minimal-ui[data-side-view=true] #result-overlay .menu-card{width:46%;padding:10px}.minimal-ui[data-phase=result] .side-view{bottom:auto;height:calc(100% - 75px)}.minimal-ui[data-phase=result] .driver-panel{display:none}.minimal-ui .finale-warning{top:24%;font-size:13px}.side-caption{height:26px;font-size:12px}#side-viewport{height:calc(100% - 26px)}}

#game-screen canvas{image-rendering:auto}
.minimal-ui[data-side-view=true] .vignette{display:none}

/* A quiet approach, then one large central brake instruction. */
.minimal-ui[data-stage=finale] .controls-dock{top:50%;bottom:auto;width:min(480px,calc(100% - 48px));transform:translate(-50%,-50%)}
.minimal-ui[data-stage=finale] .command-controls{grid-template-columns:1fr}
.minimal-ui[data-stage=finale] .brake-control{min-height:118px;font:900 clamp(27px,5vw,40px) var(--sans);border:3px solid #ffe2be;border-bottom:8px solid #ac536b;background:#ec8193;box-shadow:8px 8px #202236a0;text-shadow:2px 2px #af5369}
.minimal-ui[data-stage=finale] .brake-control.active{background:#ffd0c6;color:#562f44;text-shadow:none}
.minimal-ui[data-stage=finale] .instructor-strip{position:absolute;top:calc(100% + 12px);left:0;right:0;margin:0}
.minimal-ui[data-stage=finale][data-side-view=true] .controls-dock{top:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%)}
.minimal-ui[data-stage=finale][data-side-view=true] .instructor-strip{position:static;margin-bottom:6px}
.minimal-ui[data-stage=finale][data-side-view=true] .brake-control{min-height:72px;font-size:27px;border-bottom-width:5px}
.minimal-ui[data-phase=ending] .controls-dock{display:none}
@media(max-height:540px) and (orientation:landscape){.minimal-ui[data-stage=finale] .controls-dock{width:min(380px,60vw);top:58%}.minimal-ui[data-stage=finale] .brake-control{min-height:84px;font-size:30px}.minimal-ui[data-stage=finale] .instructor-strip{top:calc(100% + 6px)}.minimal-ui[data-stage=finale][data-side-view=true] .controls-dock{top:auto;bottom:8px;width:min(480px,calc(100% - 30px))}.minimal-ui[data-stage=finale][data-side-view=true] .brake-control{min-height:54px;font-size:24px}}

/* The post-impact driver camera replays the expression and foreground wipers. */
.minimal-ui[data-phase=result][data-outcome=hit] .driver-panel{width:220px;top:62px;right:18px;border-color:#e9c8a4}
.minimal-ui[data-phase=result][data-outcome=hit] .driver-caption p{font-size:13px}
@media(max-width:1000px){.minimal-ui[data-phase=result][data-outcome=hit] .driver-panel{width:145px;top:52px;right:16px}.minimal-ui[data-phase=result][data-outcome=hit] .driver-caption p{font-size:10px}}
@media(max-height:640px) and (orientation:portrait){.minimal-ui[data-phase=result][data-outcome=hit] .driver-panel{width:108px;top:49px;right:12px}.minimal-ui[data-phase=result][data-outcome=hit] .driver-caption p{font-size:8px}}
@media(max-height:540px) and (orientation:landscape){.minimal-ui[data-phase=result][data-outcome=hit] .driver-panel{display:block;top:48px;left:17px;right:auto;width:110px}.minimal-ui[data-phase=result][data-outcome=hit] #result-overlay{padding-left:140px}.minimal-ui[data-phase=result][data-outcome=hit] #result-overlay .menu-card{width:calc(50vw - 157px);min-width:180px;padding:8px}.minimal-ui[data-phase=result][data-outcome=hit] .menu-card h2{font-size:15px}.minimal-ui[data-phase=result][data-outcome=hit] .result-stats{gap:8px}.minimal-ui[data-phase=result][data-outcome=hit] .result-stats strong{font-size:19px}.minimal-ui[data-phase=result][data-outcome=hit] .result-stats small{font-size:8px}.minimal-ui[data-phase=result][data-outcome=hit] .menu-card .primary-button{min-width:0;width:100%;padding:7px;font-size:9px}}
@media(min-width:1001px){.minimal-ui[data-phase=result][data-outcome=hit] .side-view{width:min(760px,calc(100% - 500px))}}
@media(max-width:700px) and (max-height:540px) and (orientation:landscape){.minimal-ui[data-phase=result][data-outcome=hit] .driver-panel{left:12px;width:90px}.minimal-ui[data-phase=result][data-outcome=hit] #result-overlay{padding-left:116px}.minimal-ui[data-phase=result][data-outcome=hit] #result-overlay .menu-card{width:calc(50vw - 133px);min-width:0}.minimal-ui[data-phase=result][data-outcome=hit] .menu-card h2{font-size:12px}.minimal-ui[data-phase=result][data-outcome=hit] .result-stats{flex-direction:column;gap:5px;margin:8px 0}.minimal-ui[data-phase=result][data-outcome=hit] .result-stats strong{font-size:15px;margin-top:2px}.minimal-ui[data-phase=result][data-outcome=hit] .driver-caption p{font-size:8px}}

/* Result actions open a new run or the X composer directly. */
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.result-actions .primary-button{width:100%;min-width:0;padding:10px 12px;gap:0}.result-actions .share-button{background:#f4eddf;color:#202337;border-bottom-color:#a8a4b4}
@media(max-height:540px) and (orientation:landscape){.minimal-ui[data-phase=result][data-outcome=hit] .result-actions{grid-template-columns:1fr;gap:5px}}

/* One press commits the brake. Keep the now-unneeded control out of the view. */
.minimal-ui[data-braked=true] .controls-dock{display:none}
.minimal-ui[data-stage=finale][data-side-view=true] .side-view{height:clamp(210px,38vh,360px)}
@media(max-width:1000px) and (orientation:portrait){.minimal-ui[data-stage=finale][data-side-view=true] .side-view{bottom:24px;height:42vh}.minimal-ui[data-phase=result][data-side-view=true] .side-view{bottom:260px;height:clamp(145px,27vh,250px)}}
@media(max-height:640px) and (orientation:portrait){.minimal-ui[data-phase=result][data-side-view=true] .side-view{bottom:220px;height:145px}}
@media(max-height:540px) and (orientation:landscape){.minimal-ui[data-stage=finale][data-side-view=true] .side-view{height:calc(100% - 75px)}}

/* A compact animated portrait leaves the road and player car in view. */
.minimal-ui[data-phase=ready] .telemetry,.minimal-ui[data-phase=ready] .controls-dock,.minimal-ui[data-phase=ready] .brand,.minimal-ui[data-phase=ready] .camera-label{display:none}
.minimal-ui[data-phase=ready] #ready-overlay{background:linear-gradient(90deg,#22284085,transparent 55%,#252d4120)}
.minimal-ui[data-phase=ready] .start-copy{position:absolute;left:8%;top:50%;width:40%;text-align:left;transform:translateY(-50%)}
.minimal-ui[data-phase=ready] .start-copy h1{font:900 clamp(44px,5.6vw,84px)/1.2 var(--sans);letter-spacing:-3px;text-shadow:5px 5px #28283e;margin:0 0 22px}
.minimal-ui[data-phase=ready] .start-copy>p{font:15px var(--pixel);margin-bottom:30px}
.minimal-ui[data-phase=ready] .start-copy .primary-button{margin:0;min-width:270px;min-height:56px;font-size:16px}
.minimal-ui[data-phase=ready] .driver-panel{top:42%;right:8%;width:min(240px,23vw,33vh);transform:translateY(-50%);z-index:7;border:3px solid #f6dabf;box-shadow:6px 6px #25223b88;transition:none}
.minimal-ui[data-phase=ready] .driver-caption{padding:8px 4px;background:#f5e3ce;border-top:3px solid #44364d}
.minimal-ui[data-phase=ready] .driver-caption p{font-size:clamp(12px,1.2vw,16px);line-height:1.4;min-height:2.8em;display:grid;align-items:center;overflow-wrap:anywhere}
@media(max-width:700px) and (orientation:portrait){
 .minimal-ui[data-phase=ready] .start-copy{position:static;width:auto;transform:none;text-align:center}
 .minimal-ui[data-phase=ready] .start-copy h1{position:absolute;top:9%;left:0;right:0;font-size:clamp(32px,10.5vw,48px);line-height:1.12;margin:0}
 .minimal-ui[data-phase=ready] .start-copy>p{display:none}
 .minimal-ui[data-phase=ready] .driver-panel{top:27%;left:50%;right:auto;width:min(190px,46vw,22vh);transform:translateX(-50%);border-width:2px;box-shadow:4px 4px #25223b88}
 .minimal-ui[data-phase=ready] .driver-caption{padding:6px 3px;border-top-width:2px}.minimal-ui[data-phase=ready] .driver-caption p{font-size:13px}
 .minimal-ui[data-phase=ready] .start-copy .primary-button{position:absolute;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translateX(-50%);width:calc(100% - 48px);max-width:340px;min-width:0;min-height:54px;font-size:16px}
}
@media(max-height:640px) and (orientation:portrait){.minimal-ui[data-phase=ready] .start-copy h1{top:8%;font-size:32px}.minimal-ui[data-phase=ready] .driver-panel{top:25%;width:min(150px,43vw,21vh)}.minimal-ui[data-phase=ready] .driver-caption p{font-size:11px}.minimal-ui[data-phase=ready] .start-copy .primary-button{bottom:20px;min-height:46px}}
@media(max-height:540px) and (orientation:landscape){.minimal-ui[data-phase=ready] .start-copy{left:8%;width:45%}.minimal-ui[data-phase=ready] .start-copy h1{font-size:clamp(30px,7vh,42px);margin-bottom:14px}.minimal-ui[data-phase=ready] .start-copy h1 br{display:block}.minimal-ui[data-phase=ready] .start-copy>p{font-size:11px;margin-bottom:18px}.minimal-ui[data-phase=ready] .start-copy .primary-button{min-width:220px;min-height:43px;font-size:13px}.minimal-ui[data-phase=ready] .driver-panel{top:42%;right:8%;width:min(180px,24vw,34vh)}.minimal-ui[data-phase=ready] .driver-caption{padding:5px}.minimal-ui[data-phase=ready] .driver-caption p{font-size:11px}}
