:root{color-scheme:dark;--paper:#e9e4d9;--muted:#c8c5bb;--fire:#ff9a63;--panel:rgba(9,11,12,.38)}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#292e2e;color:var(--paper);font-family:Inter,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
button{font:inherit;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:none}
button:focus-visible{outline:1px solid #fff;outline-offset:4px}
#app,#render-target{position:fixed;inset:0;overflow:hidden}
#render-target canvas{display:block;width:100%;height:100%;touch-action:none}
.hidden{display:none!important}
.film-grain,.edge-vignette,#speed-lines,#impact-flash{position:absolute;inset:0;pointer-events:none}
.film-grain{z-index:2;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.71' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.45' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
.edge-vignette{z-index:2;box-shadow:inset 0 0 120px 25px rgba(7,8,8,.15);background:linear-gradient(180deg,rgba(12,15,15,.19),transparent 25%,transparent 71%,rgba(8,12,11,.24))}
#speed-lines{z-index:1;opacity:0;background:radial-gradient(ellipse at 50% 50%,transparent 38%,rgba(220,211,195,.07) 100%);transition:opacity .4s}
#impact-flash{z-index:8;background:rgba(255,145,82,.7);opacity:0;transition:opacity .17s;mix-blend-mode:screen}
.loading-screen{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1c2525;gap:22px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#bfc4c0}
.loading-mark{font-weight:300;font-size:50px;letter-spacing:-.08em;color:#efe9df}.loading-mark .slash{color:#e08a62}
.loading-rule{height:1px;width:140px;background:#59605f;overflow:hidden}.loading-rule>span{display:block;background:#e6c5a1;width:40%;height:100%;animation:loading 1.6s ease-in-out infinite}@keyframes loading{from{transform:translateX(-120%)}to{transform:translateX(390%)}}
/* Cinematic run layout: the image is the interface. */
.hud{position:absolute;inset:0;z-index:5;pointer-events:none;transition:opacity .35s}
.hud button{pointer-events:auto}
.hud-top{position:absolute;inset:0;pointer-events:none}
.hud-brand{position:absolute;left:32px;top:28px;opacity:.32;pointer-events:none}.logo{font-weight:300;font-size:16px;letter-spacing:-.09em}.logo span{color:#fff}.brand-sub{display:none}
.hud-center{position:absolute;right:37px;bottom:30px;text-align:right;opacity:.69;letter-spacing:.1em}
.eyebrow{display:none}
.big-number{font-size:13px;line-height:1.3;font-variant-numeric:tabular-nums;font-weight:450;letter-spacing:.07em;text-shadow:0 1px 5px #1b1b1a}
.big-number span{font-size:10px;opacity:.8;margin-left:4px}
.hud-side{position:absolute;left:34px;bottom:30px;opacity:.63}
.speed-box{background:none;border:0;padding:0}.speed-box>div{display:flex;align-items:baseline;gap:6px}
.speed-value{font-size:17px;line-height:1.2;font-variant-numeric:tabular-nums;font-weight:400}.speed-unit{font-size:9px;letter-spacing:.1em}
.speed-rail,.ride-info,.run-class{display:none}
.hud-actions{position:absolute;top:20px;right:24px;display:flex;gap:8px;align-items:center;pointer-events:auto}
.icon-button{background:transparent;border:1px solid transparent;padding:10px;color:#f6f0e9;font-size:10px;letter-spacing:.13em;opacity:.0;transition:opacity .25s,background .2s;font-weight:500}
.hud-actions:hover .icon-button,.hud-actions:focus-within .icon-button,.hud.controls-open .icon-button{opacity:.85;background:rgba(7,8,8,.21)}
.icon-button:hover{background:rgba(7,8,8,.55)!important}
#hud-tools-toggle{opacity:.45;border-color:rgba(255,255,255,.1);font-size:16px;letter-spacing:0;padding:1px 9px 5px;line-height:24px}
.hud.cinema-hide .hud-brand,.hud.cinema-hide .hud-center,.hud.cinema-hide .hud-side,.hud.cinema-hide .hud-bottom,.hud.cinema-hide #warning,.hud.cinema-hide #event-pop{display:none!important}
.hud.cinema-hide #hud-tools-toggle{display:block;opacity:.12}.hud.cinema-hide .hud-actions:hover #hud-tools-toggle{opacity:.5}
.warning-panel{position:absolute;left:50%;bottom:82px;transform:translate(-50%,10px);text-align:center;opacity:0;transition:opacity .35s,transform .35s;display:flex;flex-direction:column;align-items:center;gap:7px;text-shadow:0 2px 7px #171918}
.warning-panel.visible{opacity:.65;transform:translate(-50%,0)}
.warning-pulse{display:none}.warning-overline{display:none}.warning-main{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}.warning-panel strong{font-size:9px;font-weight:400;letter-spacing:.1em}
.event-pop{position:absolute;left:50%;bottom:15%;transform:translate(-50%,8px);opacity:0;font-size:12px;letter-spacing:.22em;font-weight:500;white-space:nowrap;text-shadow:0 1px 8px #121413;transition:opacity .3s,transform .3s}
.event-pop.show{opacity:.65;transform:translate(-50%,0)}.event-pop small{font-size:10px;letter-spacing:.13em;margin-left:6px}
.hud-bottom{position:absolute;bottom:0;left:0;width:100%;height:4px}
.collapse-panel{position:absolute;bottom:0;left:0;width:100%;height:4px}
.collapse-label{display:none}.collapse-rail{height:2px;background:transparent}.collapse-rail>div{height:2px;background:linear-gradient(90deg,rgba(217,89,58,.45),rgba(244,139,97,.0));width:0%;opacity:.45;transition:width .4s}
/* Menus only appear when the rider is not in control. */
.screen{position:absolute;inset:0;z-index:15}
.start-screen{background:linear-gradient(90deg,rgba(10,15,15,.54) 0%,rgba(10,15,15,.23) 40%,transparent 72%),linear-gradient(0deg,rgba(12,15,15,.35),transparent 38%)}
.screen-main{position:absolute;left:clamp(28px,6.5vw,110px);bottom:clamp(100px,17vh,185px);max-width:660px}
.overline{font-size:10px;font-weight:500;letter-spacing:.29em;opacity:.78}.status-light{display:inline-block;width:5px;height:5px;background:#d6b49d;border-radius:50%;vertical-align:middle;margin-right:12px}.separator{opacity:.45;margin:0 9px}
.screen h1{font-size:clamp(52px,7.6vw,126px);line-height:.88;letter-spacing:-.067em;font-weight:450;margin:22px 0 20px;text-shadow:0 6px 35px rgba(0,0,0,.22)}
.screen h1 em,.screen h2 em{font-weight:350;color:#d7b49e;font-style:normal}
.screen-main>p{font-weight:400;font-size:clamp(13px,1.06vw,17px);max-width:405px;line-height:1.65;color:#deded7;margin:0 0 30px;text-shadow:0 2px 7px #202423}
.primary-button{display:inline-flex;justify-content:space-between;align-items:center;gap:36px;min-width:165px;background:rgba(20,21,20,.12);border:1px solid rgba(255,255,255,.77);font-size:11px;letter-spacing:.19em;font-weight:500;padding:15px 19px;text-transform:uppercase;transition:background .2s,color .2s,transform .2s}
.primary-button:hover{background:#efebe4;color:#202324;transform:translateY(-1px)}.primary-button span:last-child,.button-arrow{font-size:19px;line-height:14px;font-weight:400}
.start-hint{display:none}.screen-footer{position:absolute;bottom:34px;left:clamp(28px,6.5vw,110px);right:38px;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.13em;color:#d5d7d2;opacity:.53;gap:20px}.screen-footer>div:last-child{display:none}
.control-guide{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.control-guide span{font-size:10px;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:2px;margin-left:8px}
.modal-screen{display:flex;align-items:center;justify-content:center;background:rgba(7,9,9,.58);backdrop-filter:blur(8px);padding:20px}
.modal-card{width:min(540px,100%);text-align:center;padding:30px;background:transparent}
.modal-card h2{font-size:clamp(50px,6vw,90px);font-weight:450;letter-spacing:-.06em;line-height:.96;margin:28px 0 22px}.modal-card p{font-size:14px;line-height:1.7;color:#deddd6;margin:0 0 30px}
.modal-card .primary-button{min-width:185px;margin:auto}
.text-button{border:0;background:none;display:block;padding:20px 0 0;margin:auto;color:#c3c3bd;font-size:10px;letter-spacing:.15em;text-decoration:underline;text-underline-offset:4px}
.final-stats{display:flex;justify-content:center;gap:30px;margin:28px auto 32px}
.final-stats div{display:flex;flex-direction:column;gap:9px}.final-stats span{font-size:9px;letter-spacing:.12em;opacity:.65}.final-stats strong{font-size:22px;font-weight:400;font-variant-numeric:tabular-nums}
.end-buttons{display:flex;flex-direction:column;align-items:center}
/* Touch controls are low-contrast and only appear on touch devices. */
.touch-controls{display:none;position:absolute;inset:auto 13px 26px;z-index:7;justify-content:space-between;align-items:end;pointer-events:none;user-select:none}
.touch-controls button{pointer-events:auto;min-height:55px;min-width:55px;border-radius:55px;background:rgba(0,0,0,.08);border:1px solid rgba(255,255,255,.23);backdrop-filter:blur(4px);font-size:21px;font-weight:400;opacity:.44}
.touch-controls button.pressed{opacity:.85;background:rgba(245,245,243,.16)}
.steer-row,.throttle-row{display:flex;gap:7px}.touch-label{display:none}.touch-actions{display:flex;flex-direction:column;gap:9px;align-items:end}.touch-actions button{font-size:10px;letter-spacing:.06em;min-width:54px}.touch-actions .jump-touch{min-height:45px;min-width:65px}.throttle-row .throttle-touch{background:rgba(0,0,0,.18)}
@media(pointer:coarse){.touch-controls:not(.hidden){display:flex}.hud-actions{top:7px;right:9px}.hud-center{right:18px;bottom:14px}.hud-side{left:18px;bottom:14px}.touch-controls{bottom:52px}}
@media(max-width:720px){.hud-brand{top:16px;left:19px}.logo{font-size:13px}.screen h1{font-size:clamp(48px,10vw,76px)}.screen-main{left:28px;right:28px;bottom:135px}.screen-footer{left:26px;right:26px;bottom:20px}.control-guide{font-size:8px;gap:5px}.control-guide span{font-size:8px;margin-left:3px}.warning-panel{bottom:90px}.final-stats{gap:15px}.final-stats strong{font-size:18px}}
@media(max-height:570px){.screen-main{bottom:80px}.screen h1{font-size:clamp(43px,8vh,75px);margin:14px 0}.screen-main>p{margin-bottom:13px}.screen-footer{bottom:12px}.touch-controls{bottom:22px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.film-grain{display:none}}

.invisible-metrics{display:none!important}
