@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--paper:#101917;--ink:#f0f0e5;--lime:#ddf45b;--muted:#a8b3a4;--red:#ff634b;--line:#ffffff26;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#23423755,transparent 65%),#101917}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.55;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button{border-radius:0}[hidden]{display:none!important}
.race-header{height:76px;padding:0 3vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.race-brand{display:flex;align-items:center;gap:12px;font-size:10px;line-height:1.2;letter-spacing:.14em;font-weight:700}.brand-mark{font:900 28px 'Barlow Condensed',sans-serif;letter-spacing:-.05em}.brand-mark span{color:var(--lime)}.header-middle,.portfolio-link{font-size:10px;letter-spacing:.15em;font-weight:700}.live-dot{display:inline-block;background:var(--lime);width:6px;height:6px;border-radius:50%;margin-right:8px;box-shadow:0 0 12px #ddf45b70}.portfolio-link span{color:var(--lime);font-size:22px;vertical-align:-2px;margin-left:16px}.portfolio-link:hover{color:var(--lime)}
.game-shell{margin:22px auto 0;width:calc(100% - 6vw);max-width:1800px;border:1px solid #8290754d;background:#17201c;box-shadow:0 24px 90px #0005}.race-topline{position:relative;height:45px;display:flex;align-items:center;gap:20px;padding:0 20px;background:#17201c}.race-topline>span:first-child{font:800 21px 'Barlow Condensed',sans-serif;letter-spacing:.015em}.race-topline b{color:var(--lime)}#camera-label{margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--muted)}#pause{background:transparent;border:0;font-size:12px;padding:8px;color:var(--lime)}#pause span{font-size:9px;margin-left:4px}
.race-stage{height:clamp(430px,calc(100svh - 210px),850px);min-height:0;position:relative;overflow:hidden;background:#7e8a57}#race-canvas{display:block;width:100%;height:100%;touch-action:none}.game-shell[data-phase="ready"] .race-stage{min-height:640px}.scene-panel{position:absolute;inset:0;z-index:8}.ready-panel{isolation:isolate;background:linear-gradient(90deg,#0b1715 0%,#10201be8 36%,#11211b20 100%)}.intro-art{position:absolute;inset:0;background:linear-gradient(90deg,#0c1917 0%,#0d1917eb 26%,#15201b40 63%,#0d191730),url('/assets/prospect-park-sprint-hero.png') 72% center/cover;filter:saturate(.85);z-index:-1}.intro-copy{position:relative;padding:clamp(32px,4.5vw,70px);padding-bottom:70px;max-width:790px}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:700;color:var(--lime);margin:0 0 22px}.intro-copy h1{font:900 clamp(62px,7.6vw,132px)/.82 'Barlow Condensed',Impact,sans-serif;letter-spacing:-.035em;margin:0 0 25px;transform:skew(-4deg);transform-origin:left}em{font-style:normal;color:var(--lime)}.intro-lead{font-size:clamp(14px,1.25vw,18px);line-height:1.6;color:#d0d6ca}.grid-ticket{display:flex;align-items:center;gap:18px;margin:26px 0 24px;width:fit-content;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0}.grid-ticket>span{font-size:8px;font-weight:700;letter-spacing:.1em;max-width:35px;line-height:1.5;color:var(--muted)}.grid-ticket strong{font:800 37px/.9 'Barlow Condensed',sans-serif;color:var(--lime)}.grid-ticket i{font-style:normal;color:#7b8a7d;font-size:19px}.grid-ticket b,.grid-ticket small{display:block}.grid-ticket b{font-size:10px;letter-spacing:.1em}.grid-ticket small{font-size:10px;color:var(--muted);margin-top:5px}.ready-actions,.result-actions{display:flex;gap:12px;flex-wrap:wrap}.primary,.secondary{font-size:10px;font-weight:800;letter-spacing:.09em;padding:18px 22px;border:1px solid var(--lime);transition:background .18s,transform .18s}.primary{background:var(--lime);color:#14201a}.primary:hover{background:#ecff83;transform:translateY(-2px)}.primary span{margin-left:25px;font-size:18px;line-height:0}.secondary{background:#0c191780;border-color:#8e9c7570;color:#e7ecd7}.secondary:hover{background:#374132}.ready-tip{font-size:11px;line-height:1.7;color:var(--muted);margin-top:18px}.route-ribbon{position:absolute;bottom:0;left:0;right:0;display:flex;gap:14px;align-items:center;padding:19px 4.5vw;background:#0a1619a8;border-top:1px solid #ffffff17;font-size:9px;font-weight:700;letter-spacing:.1em}.route-ribbon b{color:var(--lime);margin-right:7px}.route-ribbon i{width:40px;border-top:1px solid #87967180}
.control-strip{display:flex;align-items:center;gap:24px;padding:16px 20px;flex-wrap:wrap;font-size:9px;font-weight:700;color:#b4bdab;letter-spacing:.08em}.control-strip>span{white-space:nowrap}kbd{font:600 10px 'DM Sans',sans-serif;display:inline-block;background:#2a342d;border:1px solid #54614f;border-bottom-width:2px;min-width:22px;line-height:22px;text-align:center;padding:0 5px;margin-right:4px;color:var(--ink)}.control-note{margin-left:auto;font-size:8px;color:#798877}.race-footer{padding:17px 3vw 24px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:8px;letter-spacing:.09em;color:#97a38b}
.hud-top{position:absolute;inset:22px 22px auto;display:flex;align-items:flex-start;gap:12px;pointer-events:none}.hud-top>div{padding:12px 18px;background:linear-gradient(135deg,#21352ff5,#101b18eb);box-shadow:4px 4px 0 #0002;border:1px solid #b0c69740;border-left:3px solid var(--lime);backdrop-filter:blur(8px);min-width:116px;transform:skew(-3deg)}.hud-top small,.sprint-budget small{font-size:9px;font-weight:800;letter-spacing:.09em;color:#b9c3b2}.hud-top strong{display:block;font:800 40px/1.05 'Barlow Condensed',sans-serif;white-space:nowrap}.hud-top i{font-style:normal;font-size:16px;color:#94a38d;margin-left:5px}.hud-top>div>span{display:block;font-size:8px;margin-top:4px;max-width:180px;color:var(--lime)}.hud-distance{margin-left:auto}.hud-top .hud-speed{border-color:#7ab2bd}.hud-bottom{position:absolute;left:22px;right:22px;bottom:22px;display:flex;align-items:center;gap:12px;background:transparent;pointer-events:none;align-items:flex-end}.meter{flex:1;max-width:235px;background:#101e1bf2;border:1px solid #a6bc8050;padding:15px 16px;box-shadow:4px 4px 0 #0002;backdrop-filter:blur(8px)}.meter>div:first-child{display:flex;justify-content:space-between;gap:15px;font-size:9px;font-weight:800;letter-spacing:.08em}.meter b{color:var(--lime);font-size:9px}.meter-track{height:9px;margin-top:8px;background:#58604b;overflow:hidden;position:relative}.meter-track>i{position:absolute;inset:0 auto 0 0;background:var(--lime);width:100%;transition:width .1s linear}.meter small{display:block;font-size:8px;color:#b5bea8;margin-top:6px}.redline-track{background:linear-gradient(90deg,#465747 78%,#994335 78%)}.redline-track>i{background:#e9b74e;width:0}.redline-track>span{position:absolute;left:78%;height:100%;width:2px;background:#e6e4cb}.meter-heat.is-hot b{color:#ff785d}.meter-heat.is-hot .meter-track i{background:#ff634b}.sprint-budget{margin-left:auto;width:290px;max-width:36%;background:linear-gradient(125deg,#263e27f5,#13231cf2);border:1px solid #cced6260;padding:13px 16px;box-shadow:4px 4px 0 #0002;backdrop-filter:blur(8px)}.boost-heading,.boost-readout{display:flex;align-items:center;justify-content:space-between;gap:12px}.boost-heading b{font-size:8px;letter-spacing:.08em;color:var(--lime)}.sprint-budget strong{display:block;font:800 33px/1 'Barlow Condensed',sans-serif;color:var(--lime)}.sprint-budget i{font-style:normal;font-size:13px;color:#c5ceba}.boost-readout{margin:8px 0}.boost-readout>span{font-size:7px;color:#b1c1a3}.boost-readout kbd{font-size:8px;min-width:32px;line-height:18px;padding:0 3px}.boost-track{position:relative;height:10px;background:#45513a;overflow:hidden}.boost-track>i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#a7ce51,#edff87);box-shadow:0 0 12px #ddf45b80;transition:width .1s linear}.boost-track::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(12.5% - 3px),#15251d calc(12.5% - 3px) 12.5%)}#boost-tip{font-size:8px;font-weight:400;letter-spacing:0;display:block;margin-top:7px;color:#c0d0af}.game-shell[data-boost="charging"] .boost-track>i{background:linear-gradient(90deg,#6bc8b3,#b1ffe1)}.game-shell[data-boost="charging"] #boost-status{color:#9df7d6}.game-shell[data-boost="active"] .sprint-budget{border-color:var(--lime);box-shadow:0 0 24px #dbf75524}.game-shell[data-boost="overheated"] .sprint-budget{border-color:var(--red)}.game-shell[data-boost="overheated"] #boost-status{color:var(--red)}.race-topline::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:var(--race-progress,0%);background:var(--lime);box-shadow:0 0 9px #ddf45880;transition:width .15s linear}.game-shell[data-camera="first-person"] .race-topline::after{background:#f2c859}
.race-callout{position:absolute;left:0;right:0;top:29%;text-align:center;pointer-events:none;z-index:5;color:var(--lime);font:900 clamp(28px,4vw,62px)/1 'Barlow Condensed',sans-serif;text-shadow:3px 3px #17211c,0 0 25px #000;transform:skew(-6deg)}
.center-panel{display:flex;align-items:flex-start;overflow-y:auto;background:#071311bb;backdrop-filter:blur(7px);padding:24px}.dialog-card{margin:auto;flex-shrink:0;width:min(550px,100%);background:linear-gradient(145deg,#213c30f5,#10221cf5);border:1px solid #99ae6266;padding:35px;box-shadow:10px 10px 0 #0003}.dialog-card h2{font:900 clamp(40px,5vw,75px)/.84 'Barlow Condensed',sans-serif;margin:0 0 22px;letter-spacing:-.025em}.dialog-card>p:not(.eyebrow){font-size:13px;color:#b2c0ac;line-height:1.5}.dialog-card>.primary,.dialog-card>.secondary{margin:8px 8px 0 0}.result-stats{display:flex;gap:32px;margin:24px 0}.result-stats small{font-size:9px;letter-spacing:.08em;color:#a8b4a2}.result-stats strong{display:block;font:800 38px/1 'Barlow Condensed',sans-serif;margin-top:5px}#result-place{color:var(--lime)}.best-note{border-top:1px solid var(--line);padding-top:12px}.text-button{font-size:9px;letter-spacing:.06em;font-weight:700;background:none;border:0;border-bottom:1px solid #5d725a;padding:8px 0;margin:15px 18px 0 0;display:inline-block}.countdown{position:absolute;inset:0;display:grid;place-items:center;background:#111c1a55;font:900 180px 'Barlow Condensed',sans-serif;color:var(--lime);text-shadow:6px 6px #101d18;pointer-events:none;z-index:10}.game-error,.no-script{background:#602b25;padding:16px;margin:0;color:#fff;font-size:13px}.touch-controls{display:none;gap:7px;padding:10px;background:#17201c;touch-action:none;user-select:none}.touch-controls button{min-height:52px;border:1px solid #6a7b5560;background:#2c3b2a;font-size:10px;font-weight:800;flex:1;touch-action:none;user-select:none}.touch-controls .sprint-control{background:var(--lime);color:#18231c}.touch-controls .brake-control{background:#412b23}.touch-controls button.is-pressed{background:#8aa758;color:#101b16;transform:translateY(2px)}.steer-controls{display:flex;gap:5px;flex:1.8}.steer-controls button{font-size:24px}.race-page:has([data-phase="racing"]) .race-header{user-select:none}
@media(max-width:1050px){.control-strip{gap:12px}.control-note{display:none}.intro-copy{padding-top:40px}.intro-copy h1{font-size:90px}.race-stage{height:clamp(440px,calc(100svh - 210px),610px)}.header-middle{display:none}}
@media(pointer:coarse),(max-width:900px){.touch-controls:not([hidden]){display:flex}.game-shell:not([data-phase="ready"]) .control-strip{display:none}}
@media(max-width:650px){.race-header{height:62px;padding:0 18px}.race-brand{font-size:8px;gap:8px}.brand-mark{font-size:25px}.portfolio-link{font-size:8px;letter-spacing:.06em}.portfolio-link span{margin-left:5px}.game-shell{width:calc(100% - 20px);margin-top:10px}.race-topline{padding:0 12px;gap:6px;height:42px}.race-topline>span:first-child{font-size:17px}#camera-label{font-size:7px;letter-spacing:0;max-width:105px;text-align:right}#pause span{display:none}.race-stage{height:min(660px,calc(100svh - 196px));min-height:450px}.game-shell[data-phase="ready"] .race-stage{height:650px;min-height:650px}.intro-copy{padding:40px 24px 70px}.intro-copy h1{font-size:clamp(60px,16vw,92px);margin-bottom:20px}.intro-lead{font-size:14px}.intro-art{background-position:78% center;opacity:.7}.eyebrow{font-size:8px;letter-spacing:.12em}.grid-ticket{margin:25px 0}.ready-actions{flex-direction:column;align-items:stretch;max-width:300px}.primary,.secondary{padding:16px 18px;font-size:9px}.route-ribbon{padding:15px 14px;gap:7px;font-size:7px}.route-ribbon i{width:10px}.route-ribbon b{margin-right:3px}.control-strip{padding:12px;gap:9px;font-size:8px}.race-footer{font-size:7px;padding:12px 14px 20px;gap:7px;line-height:1.5}.hud-top{inset:12px 12px auto;gap:5px}.hud-top>div{min-width:0;padding:8px 10px;flex:1}.hud-top strong{font-size:30px}.hud-top small{font-size:7px}.hud-top i{font-size:11px}.hud-top>div>span{font-size:6px;line-height:1.4}.hud-bottom{left:10px;right:10px;bottom:12px;padding:0;gap:7px;flex-wrap:wrap}.meter{flex:1;min-width:40%;padding:9px 10px}.meter>div:first-child{font-size:7px}.meter small{font-size:7px;min-height:18px}.sprint-budget{width:100%;max-width:none;padding:9px 10px;display:block}.boost-readout{margin:5px 0}.boost-readout>span{font-size:7px}.boost-track{height:8px}#boost-tip{font-size:7px;margin-top:5px}.sprint-budget strong{font-size:23px}.sprint-budget small{font-size:7px}.boost-heading b{font-size:7px}.dialog-card{padding:24px}.result-stats{gap:25px}.result-stats strong{font-size:31px}.result-actions{flex-direction:column}.result-card h2{font-size:54px}.center-panel{padding:15px}.race-callout{top:28%;font-size:36px}.result-card .eyebrow{margin-bottom:14px}.result-card .text-button{font-size:8px;margin-top:7px}.result-stats{margin:18px 0}.touch-controls{gap:5px;padding:8px}.touch-controls button{font-size:8px}.steer-controls button{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.draw-status{font-size:9px;letter-spacing:.14em;font-weight:800;color:var(--lime);margin:0 0 12px}.draw-note{font-size:9px;line-height:1.5;color:var(--muted);margin:12px 0}.ready-actions .secondary{display:flex;align-items:center;justify-content:center}.ready-actions .primary:disabled{cursor:default;opacity:.45}.intro-copy{padding-bottom:85px}
.difficulty-control{margin:18px 0 0;max-width:340px}.difficulty-control label{display:block;color:var(--lime);font-size:8px;letter-spacing:.13em;font-weight:800;margin-bottom:7px}.difficulty-control select{appearance:auto;background:#193229;color:#e9eedb;border:1px solid #91a26b77;border-radius:0;font:600 13px 'DM Sans',sans-serif;padding:12px;width:100%;cursor:pointer}.difficulty-control select:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.difficulty-control p{font-size:10px;line-height:1.5;color:#adbfa9;margin:7px 0}.grid-ticket{margin:18px 0}.intro-copy{padding-top:35px}.intro-copy h1{font-size:clamp(62px,6.5vw,110px);margin-bottom:18px}.intro-lead{margin:0}.intro-copy .eyebrow{margin-bottom:17px}.game-shell[data-phase="ready"] .race-stage{min-height:740px}.ready-tip{margin-top:10px}@media(max-width:650px){.game-shell[data-phase="ready"] .race-stage{height:760px;min-height:760px}.intro-copy{padding-top:30px}.intro-copy h1{font-size:clamp(56px,15vw,86px)}.difficulty-control{max-width:300px}.difficulty-control select{font-size:12px}.grid-ticket{margin:16px 0}.ready-tip{font-size:10px}.draw-note{font-size:8px}}
