:root{font-family:Arial,Helvetica,sans-serif;color:#182b34;background:#cfe7eb;font-synthesis:none;--red:#e92e35;--ink:#182b34}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #e92e35;outline-offset:5px}button{border:0}button:hover{filter:brightness(.94)}canvas#game{display:block;position:fixed;inset:0;width:100%;height:100%;touch-action:none}#vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 35%,#244d5518 100%);z-index:1}#header{position:fixed;z-index:10;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:34px 42px;pointer-events:none}.wordmark{pointer-events:auto;display:flex;gap:12px;color:var(--ink);text-decoration:none;align-items:center}.wordmark i{display:block;width:26px;height:35px;background:var(--red);clip-path:polygon(40% 0,100% 0,65% 50%,85% 50%,0 100%,28% 42%,10% 42%)}.wordmark span{font-size:15px;font-weight:900;letter-spacing:1.5px}.wordmark small{display:block;font-size:8px;letter-spacing:5.2px;margin-top:5px;font-weight:600}.header-right{display:flex;align-items:center;gap:13px;pointer-events:auto}.sector{font-size:9px;letter-spacing:1.7px;margin-right:15px;font-weight:600}.sector b{font-size:12px;margin-left:6px}.sector em{display:block;font-size:8px;font-style:normal;color:#d72b36;margin-top:8px;text-align:right;letter-spacing:1px}.icon-button{border:1px solid #182b3430;background:#f6ffff63;height:32px;min-width:32px;font-size:9px;font-weight:700;letter-spacing:1px;padding:0 10px;backdrop-filter:blur(8px)}.screen{position:fixed;inset:0;z-index:3}.hidden{display:none!important}#intro{background:linear-gradient(90deg,#f0f9fae0,#f4f9fa95 25%,#fff0 60%)}.intro-copy{position:absolute;left:7.3vw;top:22%;max-width:650px}.eyebrow{font-size:9px;letter-spacing:2.5px;font-weight:700;display:flex;align-items:center;gap:10px}.eyebrow>span:first-child{height:2px;width:25px;background:var(--red)}h1{font-size:clamp(52px,6.3vw,104px);font-weight:900;line-height:.88;letter-spacing:-5px;margin:25px 0 23px}h1 em,h2 em{font-style:normal;color:var(--red)}.intro-copy>p{font-size:16px;line-height:1.65;color:#4a626c;margin:0 0 27px}.mode-switch{display:flex;width:304px;border-bottom:1px solid #182b3433;margin-bottom:18px;gap:22px}.mode-switch button{font-size:9px;letter-spacing:1.5px;font-weight:700;background:none;padding:9px 0 12px;color:#617780;position:relative}.mode-switch button.selected{color:var(--ink)}.mode-switch button.selected:after{content:"";position:absolute;height:3px;background:var(--red);left:0;right:0;bottom:-2px}.primary{background:var(--red);color:#fff;display:flex;justify-content:space-between;align-items:center;width:304px;height:58px;padding:0 22px;font-size:11px;letter-spacing:1.5px;font-weight:700;box-shadow:0 7px 24px #d6272525;transition:transform .2s}.primary:hover{transform:translateY(-2px)}.primary span{font-size:26px;font-weight:400}.start-caption{font-size:9px;color:#617780;margin-top:12px;letter-spacing:.4px}.intro-controls{display:flex;gap:14px;margin-top:29px;flex-wrap:wrap}.intro-controls>span{font-size:9px;color:#4c6570;display:flex;align-items:center;gap:6px}kbd{display:inline-block;font-family:inherit;font-size:8px;font-weight:700;letter-spacing:.5px;border:1px solid #627d8647;border-bottom-width:2px;padding:4px 5px;border-radius:2px;background:#f9ffff60;color:#314b55}.course-card{position:absolute;right:4vw;bottom:14%;width:292px;padding:24px;background:#f3fbfad9;border-top:3px solid var(--red);backdrop-filter:blur(12px);box-shadow:0 20px 70px #33566116}.card-top{display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#66828d}.course-card h2{font-size:34px;line-height:.97;letter-spacing:-1.5px;margin:21px 0 20px;position:relative}.course-card h2>span{position:absolute;right:0;bottom:0;font-size:45px;color:var(--red);font-weight:400}.course-meta{display:flex;justify-content:space-between}.course-meta>span{font-size:21px;font-weight:700}.course-meta small{display:block;font-size:7px;letter-spacing:1px;font-weight:600;color:#647c85;margin-top:6px}.route-diagram{margin:19px -3px 0}.route-diagram svg{width:100%;height:55px;overflow:visible}.route-diagram path{stroke:var(--red);fill:none;stroke-width:2}.route-diagram circle{fill:var(--red)}.course-card>p{font-size:10px;color:#56707b;margin:5px 0 22px}.personal-best{border-top:1px solid #39586122;padding-top:16px;font-size:8px;letter-spacing:1px;display:flex;justify-content:space-between;align-items:center}.personal-best b{font-size:13px;letter-spacing:1px}.intro-footer{position:absolute;bottom:25px;left:42px;right:42px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.7px;color:#526f79}#hud{position:fixed;inset:0;z-index:2;pointer-events:none}.race-clock{position:absolute;top:32px;left:50%;transform:translate(-50%);text-align:center;color:#19303a;text-shadow:0 1px 15px #ffffff90}.race-clock>span{font-size:8px;letter-spacing:3px;font-weight:700;display:block;margin-bottom:5px}.race-clock>b{font-size:34px;letter-spacing:-1px;font-weight:500;font-variant-numeric:tabular-nums}.race-clock>small{display:block;font-size:8px;letter-spacing:1px;margin-top:4px}.race-clock>small span{font-weight:700}#crosshair{position:absolute;left:50%;top:50%;height:10px;width:10px;transform:translate(-50%,-50%);border:1px solid #ffffffb0;border-radius:50%;box-shadow:0 0 3px #182b3470}#crosshair span{display:block;width:2px;height:2px;margin:3px;background:var(--red)}.objective{position:absolute;left:42px;bottom:54px;max-width:330px;padding:15px 20px 14px 16px;border-left:3px solid var(--red);background:linear-gradient(90deg,#f4ffffd9,#f4ffff66);backdrop-filter:blur(8px)}.objective .eyebrow{font-size:7px;letter-spacing:1.8px;color:#58717b}.objective .eyebrow span{height:auto;width:auto;background:none;margin-left:auto;color:var(--red)}.objective h3{font-size:21px;margin:11px 0 6px;letter-spacing:-.6px}.objective p{font-size:10px;line-height:1.5;margin:0;color:#4b626c}.run-status{display:flex;gap:25px;font-size:7px;font-weight:700;letter-spacing:1px;margin-top:17px;color:#3f5c67}.speed{position:absolute;bottom:52px;right:43px;width:186px;text-align:right;color:#19303a;text-shadow:0 1px 10px #ffffffb0}.speed>span{font-size:8px;letter-spacing:3px;font-weight:700}.speed>div{display:flex;align-items:baseline;justify-content:flex-end;gap:8px}.speed b{font-size:65px;font-weight:400;letter-spacing:-4px;font-variant-numeric:tabular-nums;line-height:1.1}.speed small{font-size:9px;font-weight:700}.speed .speed-track{height:3px;background:#173b4420;margin:9px 0 14px;position:relative;display:block}.speed-track i{position:absolute;right:0;top:0;height:3px;background:var(--red);width:0}.speed p{font-size:7px;margin:0;letter-spacing:.3px}.speed kbd{font-size:6px;padding:3px}.hud-tip{position:absolute;bottom:21px;left:42px;font-size:7px;letter-spacing:1px;color:#33505b}.hud-tip kbd{font-size:6px;padding:2px 4px}.route-progress{position:absolute;right:26px;top:38%;display:flex;flex-direction:column;gap:12px}.route-progress i{width:5px;height:5px;border:1px solid #e82e35;transform:rotate(45deg);display:block}.route-progress i.done{background:var(--red)}.route-progress i.next{box-shadow:0 0 0 3px #e92e3525}.action-label{position:absolute;left:50%;top:60%;transform:translate(-50%);font-size:10px;letter-spacing:4px;font-weight:700;color:#fff;text-shadow:0 1px 5px #0008;opacity:0;transition:opacity .15s}.action-label.on{opacity:1}.modal{position:fixed;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;background:#d9ebed7a;backdrop-filter:blur(11px)}.modal-card{width:480px;padding:40px 44px;background:#f5fbf9f2;border-top:4px solid var(--red);box-shadow:0 30px 100px #173b4430;position:relative}.modal-card h2{font-size:47px;line-height:.93;font-weight:900;letter-spacing:-2.5px;margin:25px 0 20px}.modal-card p{font-size:12px;line-height:1.7;color:#526d78}.modal-card .primary{width:100%;margin-top:26px}.text-button{background:none;font-size:9px;font-weight:700;letter-spacing:1.3px;padding:17px 0;color:#344f5b;display:block;width:100%}.modal-card p.quiet{font-size:8px;margin:8px 0 0}.result-time{font-size:44px;letter-spacing:-2px;font-variant-numeric:tabular-nums;margin:15px 0 6px}#result-rank{font-size:8px;letter-spacing:2px;color:var(--red);font-weight:700}.result-grid{display:flex;justify-content:space-between;margin:25px 0;border-top:1px solid #243f4820;padding-top:20px}.result-grid span{font-size:7px;letter-spacing:.7px;color:#637f88}.result-grid b{display:block;font-size:18px;color:#243e48;margin-bottom:8px;font-weight:500;letter-spacing:-.3px}.close{background:none;position:absolute;right:15px;top:10px;font-size:28px;color:#48656e}.help-card{width:520px;max-height:90vh;overflow:auto}.help-card h2{font-size:40px}.control-list{display:grid;grid-template-columns:125px 1fr;font-size:11px;line-height:1.6;gap:10px;margin:20px 0}.control-list dt{font-weight:700}.control-list dd{margin:0;color:#526d78}details{font-size:10px;line-height:1.6;border-top:1px solid #24404b20;padding-top:15px}summary{cursor:pointer}pre{font:9px/1.6 Arial,sans-serif;white-space:pre-wrap;color:#526d78}#toast{position:fixed;left:50%;top:22%;transform:translate(-50%,-10px);background:#f8ffffee;border-left:3px solid var(--red);padding:14px 23px;z-index:14;font-size:10px;font-weight:700;letter-spacing:1.3px;opacity:0;transition:.25s;pointer-events:none;box-shadow:0 6px 28px #173b4415}#toast.show{opacity:1;transform:translate(-50%)}#flash{position:fixed;inset:0;background:#f7ffff;z-index:12;opacity:0;pointer-events:none;transition:opacity .18s}#flash.on{opacity:.92}#loading{position:fixed;inset:0;background:#e8f2f3;z-index:50;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:15px}#loading b{font-size:11px;letter-spacing:3px}#loading small{font-size:9px;color:#5b7680}.loading-mark{height:38px;width:24px;background:var(--red);transform:skew(-25deg);animation:load 1s infinite alternate}@keyframes load{to{opacity:.25;transform:skew(-25deg) translateY(-5px)}}#speed-lines{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:0;background:linear-gradient(11deg,transparent 49.7%,#ffffff50 50%,transparent 50.3%) 0 25%/20% 2px no-repeat,linear-gradient(-11deg,transparent 49.7%,#ffffff50 50%,transparent 50.3%) 100% 73%/20% 2px no-repeat;box-shadow:inset 0 0 90px #ffffff35}.playing .sector{display:none}.clean #header,.clean #hud,.clean #intro,.clean #vignette,.clean #speed-lines{display:none!important}@media(max-height:760px){.intro-copy{top:20%}h1{font-size:clamp(49px,6vw,85px);margin:20px 0}.intro-copy>p{font-size:14px;margin-bottom:15px}.intro-controls{margin-top:20px}.course-card{bottom:12%}}@media(max-width:900px){#header{padding:25px}.intro-copy{left:6%;top:21%}h1{font-size:70px}.course-card{width:230px;right:3%;bottom:12%;padding:20px}.course-card h2{font-size:30px}.intro-controls{max-width:320px;gap:10px}.sector{display:none}.intro-footer{left:25px;right:25px;font-size:6px}.objective{left:25px;bottom:50px;max-width:270px}.hud-tip{left:25px}.speed{right:25px;width:140px}.race-clock{top:100px}}@media(max-width:620px){.course-card{display:none}h1{font-size:64px;letter-spacing:-4px}.intro-copy{top:23%}.wordmark span{font-size:12px}.wordmark small{font-size:7px;letter-spacing:4px}.header-right{gap:7px}.icon-button{font-size:7px;padding:0 6px}.intro-footer span:last-child{display:none}.objective{left:15px;bottom:52px;width:220px;padding:12px}.objective h3{font-size:18px}.objective p{font-size:9px}.speed{right:18px;bottom:53px;width:95px}.speed b{font-size:47px}.speed p{display:none}.speed small{font-size:7px}.modal-card{margin:15px;padding:30px}.modal-card h2{font-size:40px}.control-list{grid-template-columns:110px 1fr;font-size:10px}.race-clock>b{font-size:28px}.hud-tip{left:15px}.route-progress{right:12px}.intro-controls{font-size:8px}.intro-controls kbd{font-size:7px}}
