@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Roboto+Condensed:wght@400;500;600;700&display=swap');
:root{--bg:#151718;--panel:#1e2122;--paper:#eee9dc;--dim:#939891;--orange:#ff6b35;--line:#363a39;--green:#c2d681}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--paper);font-family:'Roboto Condensed','Arial Narrow',Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0}button:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:5px}button:disabled{cursor:default;opacity:.48}[hidden]{display:none!important}header{height:90px;max-width:1600px;margin:auto;padding:0 4%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--paper);font-family:Oswald,Impact,sans-serif;font-size:28px;font-weight:700;letter-spacing:-1px}.brand span{font-size:13px;letter-spacing:1.5px;vertical-align:middle;margin-left:12px}.brand i{color:var(--orange);font-size:23px;font-style:normal;margin-left:18px}.head-right{display:flex;gap:28px;align-items:center}.edition{font-size:10px;color:var(--dim);letter-spacing:1.5px}.small{background:transparent;border:1px solid #484c48;padding:11px 14px;font-size:11px;letter-spacing:1px}.small:hover{border-color:var(--orange)}main{max-width:1600px;margin:auto;padding:30px 4% 0}.hero{display:grid;grid-template-columns:1.3fr 1fr;min-height:600px;border:1px solid var(--line)}.hero-art{min-height:600px;position:relative;overflow:hidden;border-right:1px solid var(--line);background:#4b4343}.hero-art canvas{width:100%;height:100%;position:absolute;object-fit:cover;object-position:55% center}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,15,17,.45),transparent 60%,rgba(10,15,17,.3));pointer-events:none}.grain{position:absolute;inset:0;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h150v150H0z'/%3E%3C/svg%3E");z-index:3;pointer-events:none}.hero-caption{position:relative;z-index:2;padding:42px 38px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600}.eyebrow b{display:inline-block;width:7px;height:7px;background:var(--orange);margin-right:8px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Oswald,Impact,'Arial Narrow',sans-serif;font-weight:600}h1{font-size:clamp(48px,5.2vw,82px);line-height:1.05;letter-spacing:-2px;margin-top:22px;text-shadow:3px 4px #202423}em{font-style:normal;color:var(--orange)}.hero-caption p{font-size:15px;line-height:1.6;margin-top:22px;color:#e2ded2}.location{font-size:10px;letter-spacing:2px;margin-top:24px;color:#c8c5ba}.art-tag{position:absolute;bottom:25px;left:30px;z-index:3;background:var(--orange);color:#171b1b;padding:10px 15px;font-weight:700;letter-spacing:2px;font-size:11px;transform:rotate(-3deg)}.garage-panel{padding:32px;background:#1d2021}.section-label{font-size:10px;color:var(--dim);letter-spacing:1.4px;display:flex;justify-content:space-between}.section-label span:last-child{color:var(--orange);letter-spacing:5px}.garage-panel h2{font-size:clamp(32px,3.3vw,48px);line-height:1.1;margin-top:25px}.muted{color:var(--dim);font-size:14px;margin-top:12px}.car-options{display:grid;gap:10px;margin:25px 0}.car-card{text-align:left;position:relative;background:#232627;border:1px solid #454945;width:100%;display:flex;gap:13px;align-items:center;padding:12px 30px 12px 10px;min-height:106px}.car-card:hover{background:#2b2e2c}.car-card.selected{border-color:var(--orange);box-shadow:inset 3px 0 var(--orange);background:#302822}.car-thumb{width:130px;flex-shrink:0}.car-thumb img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;filter:drop-shadow(0 7px 4px #0006)}.car-number{color:#858b82;font-size:9px;letter-spacing:1px}.car-card h3{font-size:20px;line-height:1.2;margin:3px 0}.car-card p{font-size:11px;color:#a8aba2}.car-perk{display:block;font-size:9px;letter-spacing:1px;color:var(--orange);margin-top:8px}.radio{position:absolute;right:14px;top:17px;width:10px;height:10px;border:1px solid #7a7d71}.selected .radio{background:var(--orange);border-color:var(--orange)}.primary{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--orange);color:#171b1b;padding:17px 22px;font-weight:700;letter-spacing:1.4px;font-size:14px;box-shadow:3px 3px 0 #080b0b}.primary:hover{background:#ff8558}.primary span{font-size:24px;line-height:20px}.under-button{text-align:center;color:var(--dim);font-size:9px;letter-spacing:1.3px;margin-top:15px}.mission-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-top:0}.mission-strip>div{padding:24px 20px;display:flex;gap:17px;align-items:center}.mission-strip>div+div{border-left:1px solid var(--line)}.step{font-family:Oswald,Impact,sans-serif;font-size:32px;color:#61655e}.mission-strip h3{font-size:15px;letter-spacing:.5px}.mission-strip p{font-size:12px;color:var(--dim);margin-top:5px}.crew{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:28px;padding:36px 0;align-items:center}.crew h2{font-size:26px;margin-top:8px}.crew .eyebrow{color:var(--orange);font-size:9px}.crew article{display:flex;align-items:center;gap:13px}.crew-icon{width:44px;height:44px;flex-shrink:0;background:#254451;display:grid;place-items:center;font-family:Oswald;font-size:25px;border:1px solid #526973}.silver{background:#454943;border-color:#74786e}.crew h3{font-size:14px;letter-spacing:.3px}.crew p{font-size:12px;color:var(--dim);line-height:1.5;margin-top:5px}.key{border:1px solid #4c524a;color:var(--dim);padding:4px 7px;font-size:11px;margin-left:auto}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;font-size:9px;color:#777f74;letter-spacing:1.2px}#play{max-width:1160px;margin:0 auto;padding:24px 30px}.game-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.game-top h2{font-size:24px;margin-top:7px}.game-top .eyebrow{color:var(--orange);font-size:9px}.game-top-actions{display:flex;gap:8px}.game-frame{position:relative;border:1px solid #4b5148;overflow:hidden;background:#20282a}.game-frame>canvas{width:100%;display:block;aspect-ratio:16/10;touch-action:none}#hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:16px 24px;background:linear-gradient(#101a1def,transparent);pointer-events:none}#hud span{display:block;font-size:9px;letter-spacing:2px;color:#c0c3b3}#hud strong{font-family:Oswald;font-size:32px;line-height:1.4}.pressure-block{text-align:center;min-width:130px;padding-top:6px}.meter{height:6px;width:140px;background:#343a36;margin-top:12px}.meter i{display:block;background:var(--orange);height:100%;width:20%}#toast{position:absolute;top:95px;left:50%;transform:translateX(-50%);background:#101a1def;border-left:3px solid var(--orange);padding:10px 18px;font-size:13px;text-align:center;opacity:0;transition:opacity .2s;pointer-events:none;width:max-content;max-width:90%}#toast.visible{opacity:1}#overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#10191bd9;padding:30px;backdrop-filter:blur(5px);z-index:5}#overlay .eyebrow{color:var(--orange)}#overlay h2{font-size:clamp(35px,5vw,66px);line-height:1.1;margin:20px 0}#overlay p{max-width:440px;line-height:1.7;color:#c9cbbb;font-size:15px;white-space:pre-line}#overlay .primary{max-width:320px;margin-top:26px;justify-content:center}.game-controls{display:flex;gap:12px;margin-top:12px}.steering{display:flex;gap:8px}.steering button{background:#30362f;border:1px solid #65705b;width:58px;font-size:28px;touch-action:none;user-select:none}.powers{display:flex;gap:8px;flex:1}.powers button{flex:1;background:#252a25;border:1px solid #57614f;text-align:left;padding:12px 15px;min-width:0}.powers button:last-child{border-color:#b8653e;background:#392e24}.powers span{display:block;font-size:12px;font-weight:700}.powers small{display:block;font-size:9px;letter-spacing:.7px;color:#a9ad9a;margin-top:5px}.control-hint{font-size:11px;color:var(--dim);margin:13px 0;text-align:center}#credits{position:absolute;inset:0;background:#101716b8;display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 20px;z-index:4;backdrop-filter:blur(2px)}#credits h2{font-size:clamp(35px,6vw,68px);line-height:1.05;margin:15px 0}#credits .eyebrow{font-size:10px;color:var(--green)}.credits-window{overflow:hidden;flex:1;max-width:520px;width:100%;min-height:40px;mask-image:linear-gradient(transparent,black 14%,black 85%,transparent)}#greeting{font-size:18px;line-height:1.8;white-space:pre-line;animation:roll 90s linear forwards;padding-top:150px}#credits .primary{max-width:280px;font-size:12px;justify-content:center;margin-top:15px}@keyframes roll{to{transform:translateY(calc(-100% + 100px))}}@media(min-width:1600px){h1{font-size:82px}}@media(max-width:1000px){.edition{display:none}.hero{grid-template-columns:1fr 1fr}.hero-caption{padding:30px 25px}.garage-panel{padding:25px 20px}.car-thumb{width:90px}.car-card{gap:8px}.car-card h3{font-size:17px}.crew{grid-template-columns:1fr 1fr}.crew>div{grid-column:1/-1}.mission-strip>div{padding:20px 12px;gap:10px}.mission-strip h3{font-size:13px}.mission-strip p{font-size:11px}}@media(max-width:680px){header{height:70px;padding:0 20px}.brand{font-size:23px}.brand span{font-size:9px;letter-spacing:1px;margin-left:5px}.brand i{display:none}.small{padding:9px;font-size:9px}main{padding:16px 16px 0}.hero{grid-template-columns:1fr}.hero-art{min-height:470px;border-right:0;border-bottom:1px solid var(--line)}.hero-art canvas{object-position:57% center}.hero-caption{padding:30px 25px}h1{font-size:58px}.garage-panel{padding:25px}.garage-panel h2{font-size:36px}.garage-panel h2 br{display:none}.car-thumb{width:125px}.car-card{min-height:105px}.car-card h3{font-size:20px}.mission-strip{grid-template-columns:1fr}.mission-strip>div+div{border-left:0;border-top:1px solid var(--line)}.mission-strip>div{padding:17px 22px;gap:18px}.mission-strip h3{font-size:15px}.mission-strip p{font-size:12px}.step{font-size:26px}.crew{grid-template-columns:1fr;gap:24px;padding:30px 5px}.crew>div{grid-column:auto}footer{gap:20px;font-size:8px;line-height:1.7}footer span:last-child{text-align:right}#play{padding:16px 10px}.game-top{padding:0 4px;margin-bottom:12px}.game-top h2{font-size:18px}.game-top-actions{gap:4px}.game-frame>canvas{aspect-ratio:480/680;max-height:calc(100dvh - 270px);min-height:340px}.game-controls{gap:6px}.steering{gap:4px}.steering button{width:39px;font-size:24px}.powers{gap:4px}.powers button{padding:10px 6px}.powers span{font-size:9px}.powers small{font-size:8px;letter-spacing:0}.control-hint{font-size:9px;line-height:1.5}#hud{padding:12px 15px}#hud strong{font-size:26px}#hud span{font-size:8px;letter-spacing:1px}.meter{width:100px}.pressure-block{min-width:100px}#overlay{padding:22px}#overlay h2{font-size:39px}#overlay p{font-size:13px;line-height:1.6}#credits{padding:20px 14px}#credits h2{font-size:42px}#greeting{font-size:15px}#credits .primary{padding:12px;font-size:11px}}

.hero-art canvas{object-position:55% bottom}
@media(prefers-reduced-motion:reduce){#greeting{animation:none;padding-top:0}.credits-window{overflow:auto;mask-image:none}}
.game-frame{max-width:calc((100dvh - 290px) * 1.6);margin-inline:auto}@media(max-width:680px){.game-frame{max-width:none}}
/* The chase uses timed close/far states, not accumulated damage. */
#pursuit-state{font-size:15px;line-height:1.6;margin-top:4px;display:block;color:#c6d3b5;font-family:'Roboto Condensed',Arial,sans-serif;white-space:nowrap}
#pursuit-state.urgent{color:#ff8c73}.pressure-block .meter{margin-top:5px;height:4px}
#effects{position:absolute;top:88px;left:16px;right:16px;display:flex;gap:7px;flex-wrap:wrap;pointer-events:none;z-index:2}
.effect{position:relative;display:flex;align-items:center;gap:14px;padding:10px 13px;background:#12232cee;border:1px solid #5a9cca;box-shadow:0 3px 12px #0005}
.effect strong{font-size:11px;letter-spacing:.4px}.effect>span{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.effect.drunk{background:#4d2e1ff5;border-color:#ef9a59;min-width:190px;color:#ffe0bc;padding-bottom:14px}.effect.sprinter{background:#25351df5;border-color:#b5ca74;color:#e2ecc4}.effect.misha{color:#bde2ff}.effect-meter{position:absolute;bottom:0;left:0;right:0;height:3px;background:#1b211d}.effect-meter i{display:block;height:100%;background:#ffb36b}
#toast{top:auto;bottom:45px;padding:11px 18px;max-width:90%;z-index:3;font-size:15px;box-shadow:0 3px 12px #0008}
.powers button.active,.powers button.active:disabled{opacity:1;border-color:#84c9ff;background:#1c4155;box-shadow:inset 0 -4px #82bbdb}.powers #sprinter.active{background:#354625;border-color:#c3da8b;box-shadow:inset 0 -4px #bbd481}.powers #power.active{background:#6c4126;border-color:#ffb17e;box-shadow:inset 0 -4px #ffac72}.powers button.active small{color:#eef7de}.powers small{line-height:1.35}
.game-frame{max-width:min(100%,calc((100dvh - 300px) * 1.6))}.game-frame>canvas{height:auto;aspect-ratio:16/10}
@media(max-width:680px){#effects{top:86px;left:8px;right:8px;gap:5px}.effect{padding:8px;gap:8px}.effect strong{font-size:9px}.effect>span{font-size:12px}.effect.drunk{min-width:165px;padding-bottom:12px}#pursuit-state{font-size:11px}#toast{font-size:13px;bottom:40px;padding:9px 12px}.powers small{font-size:8px}.game-frame{max-width:none}.game-frame>canvas{aspect-ratio:480/680;height:auto;max-height:calc(100dvh - 270px);min-height:340px}.hero-caption p{max-width:280px}}

#overlay{overflow:auto}@media(max-width:680px){#overlay{padding:18px}#overlay h2{font-size:32px;margin:12px 0}#overlay p{font-size:12px;line-height:1.45}#overlay .primary{margin-top:15px;padding:13px}#overlay .eyebrow{font-size:9px}}
#hud #pursuit-state{font-size:15px;font-family:'Roboto Condensed',Arial,sans-serif}#toast{bottom:10px}
@media(max-width:680px){#hud #pursuit-state{font-size:11px}}

#speed{display:block;color:#f2b184;font-size:10px;letter-spacing:1.2px;line-height:1.2}#play.pursuit-near .game-frame{border-color:#ff776a;box-shadow:0 0 24px #b3324c55}

#play.cinematic #hud,#play.cinematic #effects,#play.cinematic #toast,#play.cinematic .game-controls,#play.cinematic #hint{display:none}

#debug-panel{position:fixed;z-index:200;bottom:12px;left:12px;width:310px;max-height:65dvh;overflow:auto;padding:14px;background:#111c20f5;border:1px solid #849782;box-shadow:0 5px 25px #0009;font:12px 'Roboto Condensed',Arial,sans-serif;color:#f1eedf}#debug-panel .debug-heading{display:flex;justify-content:space-between;align-items:center;letter-spacing:1px}#debug-close{background:none;font-size:24px;padding:0 5px}#debug-readout{font:11px monospace;white-space:pre-line;line-height:1.5;color:#d1dfae}#debug-panel label{display:flex;gap:7px;align-items:center;margin:9px 0}#debug-panel select{margin-left:auto;max-width:160px;background:#263639;color:#eee;padding:4px;border:1px solid #687a72}.debug-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0}.debug-buttons button{background:#304348;border:1px solid #697d76;padding:8px 5px;font-size:10px}.debug-buttons button:hover{border-color:#ffad68}#debug-panel summary{padding:9px 0;cursor:pointer}.debug-help{font-size:11px;line-height:1.4;color:#aeb9ae}#debug-note{color:#ffd497}#debug-freeze{border-color:#d89456}.head-right{gap:12px}@media(max-width:680px){#debug-panel{left:6px;bottom:6px;width:min(310px,calc(100vw - 12px));max-height:55dvh}.head-right #debug-toggle{padding:9px 6px;font-size:9px}}

#incident-create{grid-column:1/-1;background:#68442a;border-color:#d9a269}dialog[id^="incident-"]{width:min(760px,calc(100vw - 28px));max-height:90dvh;overflow:auto;border:1px solid #79897a;padding:22px;background:#182226;color:#eee9dc;font:14px 'Roboto Condensed',Arial,sans-serif}dialog[id^="incident-"]::backdrop{background:#050a0de0}.incident-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.incident-top h2{font:600 27px Oswald,Arial,sans-serif;margin:0 0 10px}.incident-top button{background:none;font-size:30px;padding:0 5px}#incident-meta{font:12px monospace;color:#c5d4a5}#incident-previews{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}#incident-previews figure{margin:0;flex:1;min-width:140px;max-width:330px}#incident-previews img{width:100%;max-height:190px;object-fit:contain;background:#080f13;border:1px solid #506261}#incident-previews figcaption{font-size:12px;margin-top:4px;color:#c1cabb}#incident-dialog textarea{display:block;box-sizing:border-box;width:100%;margin:8px 0 15px;padding:12px;background:#0e181d;color:#f1ecdf;border:1px solid #647972;font:14px Arial,sans-serif;resize:vertical}.incident-upload{display:block;padding:10px;background:#28373b;border:1px dashed #849782;cursor:pointer}.incident-upload input{display:block;margin-top:8px;max-width:100%}.incident-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.incident-actions button{padding:12px;background:#334b4f;font-size:12px}.incident-actions .primary{background:#e16c3d;color:#161a17;margin:0}#incident-status,#incident-library-status{color:#ffcf9d;white-space:pre-line}.incident-help,#incident-storage-note{font-size:12px;line-height:1.5;color:#b5c1b9}#incident-records article{border-top:1px solid #435551;padding:12px 0;display:flex;gap:12px;align-items:center}#incident-records article div{flex:1;min-width:0}#incident-records strong{font:12px monospace}#incident-records p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0;color:#c1cec7}#incident-records button{background:#334b4f;padding:9px;font-size:12px}#incident-file-list{font-size:12px;line-height:1.8;padding-left:18px}@media(max-width:680px){dialog[id^="incident-"]{padding:15px}.incident-top h2{font-size:23px}.incident-actions{flex-direction:column}.incident-actions button{width:100%}}

/* Keep the birthday greeting inside the cover at every screen width. */
.hero-caption h1{font-size:clamp(32px,4.2vw,64px)}
@media(max-width:680px){.hero-caption h1{font-size:clamp(32px,8.3vw,56px)}}

#credits h2{font-size:clamp(20px,3.8vw,42px);white-space:nowrap;line-height:1.2;margin:10px 0 18px;letter-spacing:-.5px;flex-shrink:0}
.game-frame>canvas#finale-fireworks{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;pointer-events:none;z-index:5}
#credits .credits-window,#credits .primary{position:relative;z-index:6}

#play.finale .game-top-actions{display:none}
