:root{color:#fff0c2;font-synthesis:none;text-rendering:geometricprecision;--navy:#18314f;--navy-deep:#101d30;--cream:#fff0c2;--coral:#e96b62;--cherry:#c83e4d;--gold:#f5c45b;--teal:#4e9f9b;--lavender:#9b83c6;--chrome:#ded4c5;background:#13253c;font-family:Avenir Next,Avenir,Trebuchet MS,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px}button{font:inherit}#app{isolation:isolate;background:var(--navy-deep);position:relative}#game-canvas{touch-action:none;outline:none;width:100vw;height:100vh;display:block}#hud{top:max(14px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));left:max(16px, env(safe-area-inset-left));pointer-events:none;color:var(--cream);filter:drop-shadow(0 8px 18px #060d1a73);grid-template-columns:auto auto minmax(90px,1fr) minmax(170px,auto) auto;align-items:center;gap:clamp(8px,1.1vw,16px);display:grid;position:absolute}.score-ticket,.ride-clock{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#fff0c221,#0000 38%),#101d30d1;border:1px solid #fff0c26b;align-items:center;min-height:58px;display:flex;position:relative}.score-ticket{clip-path:polygon(0 8px,8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px));min-width:192px;padding:8px 14px 8px 10px}.metric-icon{width:38px;height:38px;color:var(--gold);background:#f5c45b1f;border:1px solid #fff0c294;border-radius:50%;place-items:center;margin-right:8px;font-size:1.28rem;display:grid}.metric-copy{gap:1px;display:grid}.metric-copy small,.ride-clock small{color:#fff0c2b8;letter-spacing:.13em;text-transform:uppercase;font-size:.61rem;font-weight:750}.metric-copy strong,.ride-clock strong{font-variant-numeric:tabular-nums;letter-spacing:.07em}.ticket-goal{color:#fff0c294;font-variant-numeric:tabular-nums;align-self:flex-end;margin:0 0 4px 5px;font-size:.66rem}.ride-clock{text-align:center;min-width:105px;padding:8px 12px 7px;display:grid}.ride-clock strong{font-size:1.12rem}.bulb-row{justify-content:space-around;display:flex;position:absolute;top:-4px;left:7px;right:7px}.bulb-row i{background:var(--gold);border:1px solid #fff1bc;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px #f5c45bcc}.ride-progress{background:#101d30c2;border:1px solid #fff0c270;border-radius:999px;height:8px;position:relative;overflow:hidden}#progress-fill{width:var(--progress,0%);border-radius:inherit;background:linear-gradient(90deg, var(--teal), var(--gold));height:100%;transition:width .18s ease-out;display:block;box-shadow:0 0 12px #f5c45bb8}#status-line{color:var(--cream);letter-spacing:.045em;text-align:right;text-transform:uppercase;white-space:nowrap;justify-self:end;gap:2px;font-size:clamp(.68rem,.8vw,.79rem);font-weight:760;display:grid}#status-line b{color:var(--gold)}#status-line small{color:#fff0c2a8;letter-spacing:.08em;font-size:.58rem}.hud-actions{pointer-events:auto;gap:7px;display:flex}.icon-button{width:46px;height:46px;color:var(--cream);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#101d30d1;border:1px solid #fff0c27a;border-radius:50%;place-items:center;padding:0;font-size:1.25rem;font-weight:800;transition:transform .12s,background .12s,box-shadow .12s;display:grid;position:relative}#pause-button{grid-template-columns:4px 4px;gap:4px}#pause-button span{background:currentColor;border-radius:2px;width:4px;height:15px}.icon-button:hover,.icon-button:focus-visible{background:#c83e4deb;outline:none;transform:translateY(-2px);box-shadow:0 0 0 3px #fff0c238}.icon-button:active{transform:translateY(1px)scale(.96)}#camera-button[aria-pressed=true]{color:var(--navy-deep);background:var(--gold);box-shadow:0 0 0 3px #f5c45b33,0 0 18px #f5c45b52}#fx-button[aria-pressed=true],#music-button[aria-pressed=true]{color:#fff0c294;background:#101d30f5;box-shadow:inset 0 0 0 2px #c83e4d61}.camera-glyph{font-size:1.25rem;line-height:1}.sound-glyph{font-size:1.08rem;line-height:1}#fx-button .sound-glyph{letter-spacing:.03em;font-size:.61rem}#state-overlay{z-index:10;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));visibility:hidden;opacity:0;pointer-events:none;place-items:center;transition:opacity .18s,visibility 0s linear .18s;display:grid;position:absolute;inset:0}body:not([data-game-state=playing]) #state-overlay{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}.modal-scrim{-webkit-backdrop-filter:blur(7px)saturate(.64);backdrop-filter:blur(7px)saturate(.64);background:radial-gradient(circle,#18314f29,#050911d1),#080d1842;position:absolute;inset:0}.ticket-modal{--state-accent:var(--stage-accent,var(--teal));width:min(520px,100vw - 34px);max-height:calc(100vh - 30px);color:var(--cream);text-align:left;clip-path:polygon(0 9px,9px 0,calc(100% - 9px) 0,100% 9px,100% calc(100% - 9px),calc(100% - 9px) 100%,9px 100%,0 calc(100% - 9px));background:linear-gradient(135deg,#fff0c212,#0000 34%),linear-gradient(#18314ff7,#0b1625fa);border:1px solid #f5c45b85;justify-items:stretch;padding:clamp(22px,3.5vh,32px) clamp(24px,4vw,38px) 22px;display:grid;position:relative;overflow:auto;box-shadow:0 28px 90px #02070fad,inset 0 1px #fff0c224,inset 0 0 0 5px #08111d75}.ticket-modal:before{background:linear-gradient(90deg, transparent, var(--state-accent) 22%, var(--gold) 78%, transparent);content:"";height:3px;position:absolute;top:0;left:9px;right:9px}body[data-game-state=lost] .ticket-modal{--state-accent:var(--coral)}body[data-game-state=welcome] .ticket-modal,body[data-game-state=campaignComplete] .ticket-modal{--state-accent:var(--gold)}body[data-overlay-kind=story] .ticket-modal{grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);column-gap:24px;width:min(1000px,100vw - 34px);padding:18px clamp(20px,3vw,30px) 17px}body[data-overlay-kind=story] .modal-brand{display:none}.modal-brand{border-bottom:1px solid #fff0c229;align-items:center;gap:14px;width:100%;padding-bottom:18px;display:flex}.modal-brand img{object-fit:cover;border:1px solid #f5c45b5c;border-radius:14px;flex:none;width:64px;height:64px;box-shadow:0 7px 18px #02070f57}.modal-kicker{color:var(--cream);letter-spacing:.16em;text-transform:uppercase;font-size:.76rem;font-weight:850;display:block}.modal-context{color:#fff0c28a;letter-spacing:.08em;text-transform:uppercase;margin-top:5px;font-size:.68rem;font-weight:650;display:block}.chapter-meta{color:var(--state-accent);letter-spacing:.11em;text-transform:uppercase;justify-content:space-between;gap:12px;margin-top:18px;font-size:.68rem;font-weight:780;display:flex}.chapter-meta[hidden],#cutscene-frame[hidden],#story-quote[hidden],.modal-actions button[hidden]{display:none!important}.cutscene-frame{aspect-ratio:16/9;background:#070d17;border:2px solid #f5c45b94;border-radius:3px;width:100%;height:auto;margin-top:12px;position:relative;overflow:hidden;box-shadow:0 14px 38px #02070f80,inset 0 0 0 4px #070d17a8}.cutscene-art{object-fit:cover;object-position:center;filter:brightness(1.08)saturate(1.04)contrast(1.02);width:100%;height:100%;position:absolute;inset:0}.cutscene-frame.is-loading .cutscene-art{opacity:0;transition:none}.cutscene-scanlines{pointer-events:none;background:0 0;position:absolute;inset:0;box-shadow:inset 0 0 42px #03070e6b}.story-location{z-index:2;width:fit-content;max-width:calc(100% - 22px);color:var(--cream);letter-spacing:.1em;text-transform:uppercase;background:#050911cc;padding:5px 8px;font-size:.61rem;font-weight:820;line-height:1.2;position:absolute;bottom:10px;left:11px;right:11px;box-shadow:3px 3px #f5c45b80}body[data-overlay-kind=story] .ticket-modal h1{margin:13px 0 3px;font-size:clamp(1.45rem,3vw,2.15rem)}body[data-overlay-kind=story] #modal-copy{max-width:none}body[data-overlay-kind=story] .chapter-meta{grid-column:1/-1}body[data-overlay-kind=story] .cutscene-frame{grid-area:2/1/span 6;align-self:start}body[data-overlay-kind=story] .ticket-modal h1{grid-area:2/2;align-self:end}body[data-overlay-kind=story] #modal-copy{grid-area:3/2}body[data-overlay-kind=story] #story-quote{grid-area:4/2}body[data-overlay-kind=story] .modal-score{grid-area:5/2}body[data-overlay-kind=story] .modal-actions{grid-area:6/2}body[data-overlay-kind=story] .controls-hint{grid-area:7/2}.ticket-modal h1{color:var(--cream);letter-spacing:-.025em;margin:24px 0 6px;font-size:clamp(1.75rem,4.4vw,2.45rem);font-weight:650;line-height:1.06}.ticket-modal p{margin:6px 0}#modal-copy{color:#fff0c2b3;max-width:42ch;font-size:.94rem;line-height:1.45}#story-quote{border-left:2px solid var(--state-accent);color:var(--cream);grid-template-columns:1fr auto;gap:5px 16px;margin:19px 0 0;padding:4px 0 0 17px;display:grid}body[data-overlay-kind=story] #story-quote{margin-top:11px;padding-top:0}body[data-overlay-kind=story] .modal-score{margin:12px 0 11px;padding:8px 0}body[data-overlay-kind=story] .controls-hint{margin-top:9px!important}#story-dialogue{grid-column:1/-1;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.02rem,2vw,1.22rem);line-height:1.45;margin:0!important}#story-speaker{color:var(--state-accent);letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;font-style:normal;font-weight:820}.modal-score{color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:.12em;text-transform:uppercase;border-top:1px solid #fff0c224;border-bottom:1px solid #fff0c224;margin:20px 0 18px;padding:11px 0;font-size:.72rem;font-weight:780}.modal-actions{gap:9px;width:100%;display:flex}.modal-actions button{min-height:44px;color:var(--navy-deep);background:var(--cream);box-shadow:none;letter-spacing:.025em;cursor:pointer;border:1px solid #fff0c25c;border-radius:5px;padding:10px 18px;font-size:.84rem;font-weight:760;transition:transform .12s,background .12s,border-color .12s}.modal-actions button:first-child{flex:1.25}.modal-actions button:last-child{color:#fff0c2c7;background:#fff0c20a;flex:1}.modal-actions button:hover,.modal-actions button:focus-visible{border-color:var(--gold);background:var(--gold);outline-offset:3px;outline:2px solid #f5c45b3d;transform:translateY(-1px)}.modal-actions button:last-child:hover,.modal-actions button:last-child:focus-visible{color:var(--cream);background:#fff0c21a}.modal-actions button:active{transform:translateY(1px)}.controls-hint{color:#fff0c270;letter-spacing:.025em;text-align:center;font-size:.62rem;font-weight:620;margin-top:14px!important}kbd{box-shadow:none;background:#fff0c20f;border:1px solid #fff0c233;border-radius:3px;padding:2px 5px;font-family:inherit}#touch-controls{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));left:max(18px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:flex-end;display:none;position:absolute}#touch-stick{aspect-ratio:1;pointer-events:auto;touch-action:none;background:radial-gradient(circle,#fff0c21a,#101d308a);border:2px solid #fff0c26b;border-radius:50%;width:clamp(104px,22vw,132px);position:relative;box-shadow:inset 0 0 24px #101d3080,0 6px 20px #040a1452}.touch-label{color:#fff0c2bd;letter-spacing:.14em;text-align:center;text-transform:uppercase;width:100%;font-size:.61rem;font-weight:800;position:absolute;top:-20px}#touch-knob{aspect-ratio:1;background:radial-gradient(circle at 35% 30%, #72c3bd, var(--teal));border:2px solid #fff0c2c2;border-radius:50%;width:42%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 24px #4e9f9b80}#dash-button{aspect-ratio:1;border:3px solid var(--cream);width:clamp(80px,17vw,98px);color:var(--navy-deep);background:radial-gradient(circle at 35% 25%, #ffd77d, var(--gold));pointer-events:auto;touch-action:none;text-transform:uppercase;border-radius:50%;place-items:center;font-size:.72rem;font-weight:900;display:grid;box-shadow:0 7px #9b5e22,0 12px 26px #040a1466}#dash-button span{margin-bottom:-14px;font-size:1.45rem;display:block}#dash-button:active{transform:translateY(5px);box-shadow:0 2px #9b5e22}body[data-game-state=paused] #pause-button{background:var(--coral)}body:not([data-game-state=playing]) #touch-controls{opacity:0;pointer-events:none}body[data-game-state=welcome] #hud{opacity:.18}body[data-game-state=welcome] #modal-primary{flex:1}@media (pointer:coarse),(width<=760px){#hud{top:max(9px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));left:max(10px, env(safe-area-inset-left));grid-template-columns:auto auto 1fr auto;gap:7px}.score-ticket{min-width:118px;min-height:50px;padding:6px 7px}.metric-icon{width:31px;height:31px;margin-right:6px;font-size:1rem}.metric-copy strong{font-size:.85rem}.ticket-goal{display:none}.ride-clock{min-width:68px;min-height:50px;padding:7px 6px 5px}.ride-clock strong{font-size:.94rem}.ride-progress{grid-area:2/1/auto/4;height:6px}#status-line{display:none}.hud-actions{grid-area:1/4/3;gap:4px}#restart-button{display:none}.icon-button{width:44px;height:44px}#fx-button,#music-button{align-self:center;width:32px;height:32px}#touch-controls{display:flex}.controls-hint{display:none}}@media (height<=520px) and (pointer:coarse){.ticket-modal{width:min(620px,100vw - 48px);padding:14px 22px}.modal-brand{padding-bottom:10px}.modal-brand img{border-radius:10px;width:48px;height:48px}.ticket-modal h1{margin-top:12px;font-size:1.5rem}#modal-copy{margin:0}.modal-score{margin:10px 0;padding:7px 0}.controls-hint{display:none}body[data-overlay-kind=story] .ticket-modal{width:min(840px,100vw - 32px);padding:10px 16px}body[data-overlay-kind=story] .cutscene-frame{aspect-ratio:16/9;height:auto;margin-top:7px}body[data-overlay-kind=story] #modal-copy,body[data-overlay-kind=story] .controls-hint{display:none}body[data-overlay-kind=story] #story-quote{margin-top:5px}body[data-overlay-kind=story] .modal-score{margin:6px 0;padding:5px 0}}@media (width<=760px){body[data-overlay-kind=story] .ticket-modal{display:block}body[data-overlay-kind=story] .chapter-meta{margin-top:0}body[data-overlay-kind=story] .cutscene-frame{aspect-ratio:16/9;width:100%;height:auto;margin-top:9px}}@media (width<=560px){.ticket-modal{padding:20px}.modal-brand{gap:11px;padding-bottom:14px}.modal-brand img{border-radius:12px;width:56px;height:56px}.modal-context{letter-spacing:.06em;font-size:.6rem}.ticket-modal h1{margin-top:20px;font-size:1.72rem}.chapter-meta{letter-spacing:.07em;margin-top:14px;font-size:.58rem}body[data-overlay-kind=story] .chapter-meta{margin-top:0}body[data-overlay-kind=story] .cutscene-frame{aspect-ratio:16/9;width:100%;height:auto;margin-top:9px}body[data-overlay-kind=story] #modal-copy{font-size:.82rem;line-height:1.3}body[data-overlay-kind=story] #story-dialogue{font-size:.94rem;line-height:1.3}#story-quote{margin-top:14px}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}
