@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,Arial,sans-serif;color:#f6fafc;background:#101929;font-synthesis:none}*{box-sizing:border-box}html,body,#app,#scene{margin:0;width:100%;height:100%;overflow:hidden}#app{position:relative;touch-action:none}#scene canvas{display:block}.speed-streaks{position:absolute;inset:0;pointer-events:none;opacity:0;background:repeating-linear-gradient(112deg,transparent 0 40px,#e7ffff75 42px 44px,transparent 46px 105px);-webkit-mask-image:linear-gradient(90deg,#000 0%,transparent 21%,transparent 79%,#000 100%);mask-image:linear-gradient(90deg,#000 0%,transparent 21%,transparent 79%,#000 100%);background-size:180px 180px;animation:rush .3s linear infinite}@keyframes rush{0%{background-position:0 0}to{background-position:0 180px}}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:25px 34px;pointer-events:none;text-shadow:0 2px 12px #0d1b2799}.brand{font-family:Barlow Condensed,Impact,sans-serif;font-size:23px;font-weight:800;letter-spacing:2px}.brand strong{color:#ffe07c}.brand-icon{color:#ffe07c;margin-right:8px}.section{font-family:Barlow Condensed,Impact,sans-serif;letter-spacing:2px;font-size:17px;background:#132435bd;border:1px solid #e4f7ff5c;border-radius:4px;padding:8px 13px}.distance-panel{position:absolute;top:79px;left:34px;width:270px;padding:11px 16px 13px;background:#102535c9;border:1px solid #e3f4f749;border-radius:6px;box-shadow:0 8px 25px #11273538}.distance-panel.caution{border-color:#f7d578;box-shadow:0 0 13px #ffd96f33,0 8px 25px #11273538}.distance-panel.danger{border-color:#ff756b;box-shadow:0 0 20px #ff514645,0 8px 25px #11273538}.distance-title{display:flex;justify-content:space-between;font-family:Barlow Condensed,Impact,sans-serif;letter-spacing:1.5px;color:#c1d8de;font-size:13px;font-weight:700}.distance-title span:nth-child(2){color:#ffe07c}.distance-line{display:flex;align-items:center;gap:8px;height:27px}.cat-symbol{font-size:18px;line-height:1}.distance-track{position:relative;height:5px;flex:1;background:repeating-linear-gradient(90deg,#9bc1c7 0 9px,transparent 9px 14px)}.chaser-marker{position:absolute;left:91%;top:50%;font-size:20px;line-height:1;transform:translate(-50%,-50%);filter:drop-shadow(0 0 4px #ffc46c);transition:left .2s linear}.distance-panel.danger .chaser-marker{filter:drop-shadow(0 0 7px #ff6a60)}.distance-panel.danger .distance-title span:nth-child(2){color:#ff958d}.distance-panel.caution .distance-title span:nth-child(2){color:#ffe39a}.risk-row{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #d8edf23b;padding-top:6px;margin-top:3px;font:800 15px Barlow Condensed,Impact,sans-serif;letter-spacing:1px;white-space:nowrap}.risk-row strong{color:#a9f1d5}.distance-panel.caution .risk-row strong{color:#ffe39a}.distance-panel.danger .risk-row strong,.risk-warning{color:#ffaaa2}.risk-warning{font-size:12px;letter-spacing:.3px}.danger-flash{position:absolute;top:calc(100% + 6px);left:0;width:100%;display:flex;align-items:center;justify-content:space-between;gap:5px;padding:7px 10px;border:1px solid #ff8a7d;border-radius:4px;background:#3b171ae8;box-shadow:0 5px 18px #230b0b80;font:800 13px Barlow Condensed,Impact,sans-serif;letter-spacing:.7px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-5px);transition:opacity .12s,transform .12s,visibility .12s;white-space:nowrap}.danger-flash strong{color:#fff1b0;font-size:18px}.danger-flash.show{opacity:1;visibility:visible;transform:translateY(0)}.progress{position:absolute;left:50%;bottom:40px;transform:translate(-50%);width:min(510px,66vw);height:6px;background:#173445ba;border:1px solid #ffffff7a;border-radius:6px;overflow:hidden}#progress-fill{width:0;height:100%;background:linear-gradient(90deg,#5fe2df,#ffe07c);box-shadow:0 0 10px #75eae4}.progress-label{position:absolute;left:50%;bottom:16px;transform:translate(-50%);width:min(510px,66vw);display:flex;justify-content:space-between;font-family:Barlow Condensed,Impact,sans-serif;font-size:13px;letter-spacing:1.4px;font-weight:700;text-shadow:0 2px 7px #1d2b35}.progress-label span:last-child{color:#ffe07c}.hint{position:absolute;bottom:77px;left:50%;transform:translate(-50%);padding:8px 16px;white-space:nowrap;font-family:Barlow Condensed,Impact,sans-serif;font-size:16px;font-weight:700;letter-spacing:1.3px;background:#122738ab;border:1px solid #dbf5f95c;border-radius:4px;opacity:1;transition:opacity .4s}.hint span{color:#ffe07c;padding:0 8px}.hint.hidden{opacity:0}.touch-controls,.mobile-controls-copy{display:none}.callout{position:absolute;top:23%;left:50%;transform:translate(-50%,13px) scale(.9);font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(58px,9vw,110px);line-height:1;font-weight:900;font-style:italic;letter-spacing:5px;text-shadow:5px 6px 0 #173143,0 0 30px #12334d70;color:#ffe276;opacity:0;pointer-events:none;transition:opacity .16s,transform .22s;white-space:nowrap}.callout.show{opacity:1;transform:translate(-50%) scale(1)}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(100deg,#0b1b2ccb,#10233178 52%,#0b1b2ca3);transition:opacity .2s}.overlay.hidden{opacity:0;pointer-events:none}.opening-splash{position:absolute;inset:0;overflow:hidden;cursor:pointer;background:#102332}.opening-splash[hidden],.intro-card[hidden],.result-card[hidden],button[hidden]{display:none}.opening-splash>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 43%}.opening-splash:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#091a2dc7 0%,#091a2d2b 56%,transparent 85%),linear-gradient(0deg,#091a2dba 0%,transparent 50%)}.splash-copy{position:absolute;z-index:1;left:clamp(24px,6vw,90px);bottom:clamp(30px,8vh,84px);text-align:left;text-shadow:0 3px 12px #061321c9}.splash-copy .eyebrow{color:#fff0ad}.splash-copy h1{font-size:clamp(72px,9vw,132px);margin:11px 0 24px;color:#fff}.splash-copy h1 em{color:#ffe07c}.splash-copy button{width:min(330px,76vw);box-shadow:0 8px 32px #0b1c2aad}.intro-card,.result-card{width:min(560px,calc(100vw - 32px));padding:41px 42px 36px;background:#122838ed;border:1px solid #91cbd1a1;border-top:5px solid #ffe07c;box-shadow:0 25px 80px #071b2c96;text-align:center}.intro-card{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 24px);padding:0;overflow-y:auto}.intro-content{padding:32px 35px 30px}.intro-card h1{font-size:clamp(54px,7vw,72px);margin:9px 0 4px}.intro-card .controls{padding:10px 0;margin-bottom:14px}.eyebrow{color:#6de1df;font-family:Barlow Condensed,Impact,sans-serif;font-weight:800;letter-spacing:3.4px;font-size:15px}h1,h2{margin:15px 0 9px;font-family:Barlow Condensed,Impact,sans-serif;font-weight:900;letter-spacing:2px;line-height:.82}h1{font-size:clamp(69px,8vw,99px)}h1 em{color:#ffe07c;font-style:italic}h2{color:#ffe07c;font-size:clamp(80px,10vw,120px);margin:23px 0;font-style:italic}.intro-card p,.result-card p{color:#e0eff3;font-size:15px;margin:19px 0 27px}.intro-card p{margin:10px 0 14px}.controls{display:flex;justify-content:center;gap:17px;flex-wrap:wrap;border-top:1px solid #ffffff35;border-bottom:1px solid #ffffff35;padding:17px 0;margin-bottom:26px;font-size:13px;font-weight:700}.controls span{display:inline-flex;align-items:center;gap:4px}kbd{font:700 13px DM Sans,Arial,sans-serif;padding:5px 7px;color:#122838;background:#d9eef0;border-radius:3px}button{width:100%;border:0;padding:15px 20px;background:#ffe07c;color:#132532;cursor:pointer;font:900 24px Barlow Condensed,Impact,sans-serif;letter-spacing:2px;display:flex;justify-content:center;gap:20px;transition:background .15s,transform .15s}button:hover{background:#fff0b1;transform:translateY(-2px)}button:focus-visible{outline:3px solid #6de1df;outline-offset:3px}.intro-card small{display:block;margin-top:15px;color:#a9c5cc;font-size:11px}.intro-card small{margin-top:10px}.rank{color:#6de1df;font:800 26px Barlow Condensed,Impact,sans-serif;letter-spacing:2px}.mode-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 16px}.mode-option{min-width:0;padding:8px 5px;display:flex;flex-direction:column;align-items:center;gap:1px;border:1px solid #a8cbd37a;border-radius:4px;background:#0d2434;color:#d9edf0;font-size:17px;line-height:1.1;letter-spacing:1px}.mode-option span{font:700 11px DM Sans,Arial,sans-serif;letter-spacing:0}.mode-option:hover{background:#173b4b;transform:none}.mode-option.selected,.mode-option.selected:hover{background:#ffe07c;border-color:#ffe07c;color:#132532}.mode-option:disabled,.mode-option:disabled:hover{background:#142634;color:#7b979f;border-color:#52717a;cursor:not-allowed;transform:none;opacity:.76}.secondary-action{margin-top:9px;background:#163848;color:#d6f3f3;border:1px solid #86cbd1;font-size:17px;padding:10px}.secondary-action:hover{background:#245565}.intro-card{width:min(600px,calc(100vw - 28px))}.intro-card h1{font-size:48px}.intro-content{padding:22px 30px}.course-picker{text-align:left;margin:16px 0 20px}.course-heading{display:flex;justify-content:space-between;color:#7fe3df;font-size:12px;font-weight:800;letter-spacing:2px;margin-bottom:7px}.course-heading span{color:#aecbd0}.course-title{padding:10px 12px;color:#ffdf7c;background:#0b202e;border:1px solid #7dc3c9;border-radius:4px;font:800 22px Barlow Condensed,Arial,sans-serif}.course-location{color:#b8d1da;font-size:12px;margin:8px 0 0}.course-profile{display:block;width:100%;height:62px;margin:4px 0}.course-profile path{stroke:#517783;fill:none}.course-profile polyline{stroke:#70ded9;stroke-width:2.5;fill:none;stroke-linejoin:round}.course-picker .course-summary{margin:6px 0 9px;font-size:14px;line-height:1.5;color:#e3edef}.course-dna{display:flex;gap:6px;flex-wrap:wrap}.course-dna span{background:#244553;color:#d3f4f2;padding:4px 7px;border-radius:3px;font-size:12px}.course-note{color:#a4bdc4;font-size:11px;margin-top:8px}.hud-course{display:block;color:#a2e2e4;font-size:11px;letter-spacing:1px;margin-bottom:4px}.result-card{max-height:calc(100dvh - 24px);overflow-y:auto}.result-card .course-profile,.result-card .course-summary,.result-card .course-dna,.result-card .course-note{display:none}.result-card .completed-course{margin:12px 0}.result-card .unlock-note{margin:12px 0;color:#ffe07c;font-weight:900;letter-spacing:1px}.result-card .streak-note{margin:12px 0;line-height:1.5}.result-card.ending{position:relative;width:min(920px,calc(100vw - 24px));padding:0;overflow:hidden;background:#102636}.ending-art img{display:block;width:100%;max-height:52dvh;object-fit:cover;object-position:center}.result-card.ending .result-content{padding:16px 24px 22px}.result-card.ending h2{font-size:clamp(54px,7vw,86px);margin:10px 0}.result-card.ending p{margin:8px 0 15px}@media(max-width:640px){.intro-card h1{font-size:41px}.intro-content{padding:18px}.course-picker{margin:12px 0 15px}.course-picker select{font-size:17px}.intro-card .mobile-controls-copy{margin:10px 0 14px}.hud-course{font-size:9px;letter-spacing:.4px}.section{max-width:44vw;text-align:right}}@media(max-width:640px){.topbar{padding:14px}.brand{font-size:18px}.section{font-size:12px}.distance-panel{top:57px;left:14px;width:230px;padding-left:11px;padding-right:11px}.risk-row{font-size:14px}.risk-warning{font-size:11px}.danger-flash{font-size:12px}.intro-card{padding:0}.intro-content{padding:24px 20px}.result-card{padding:30px 20px}.controls{gap:8px}.hint{font-size:12px;bottom:69px}}@media(max-width:640px){.opening-splash{display:flex;flex-direction:column;justify-content:center}.opening-splash>img{width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover;flex:none}.opening-splash:after{background:linear-gradient(0deg,#102332 0%,#102332 28%,transparent 66%)}.splash-copy{position:relative;left:auto;right:auto;bottom:auto;margin:24px 20px 0;text-align:center}.splash-copy h1{font-size:clamp(61px,16vw,86px);margin:9px 0 24px}.splash-copy button{width:100%}}@media(pointer:coarse),(max-width:640px){.touch-controls{position:absolute;z-index:5;left:0;right:0;bottom:calc(13px + env(safe-area-inset-bottom));display:flex;align-items:end;justify-content:space-between;padding:0 16px;pointer-events:none;opacity:1;transition:opacity .18s}.touch-controls.hidden{opacity:0;visibility:hidden}.touch-directions{display:flex;gap:10px}.touch-button{width:68px;height:68px;padding:0;display:grid;place-items:center;border:1px solid #b8f4f0ba;border-bottom:4px solid #39bcbf;border-radius:15px;background:#102b3dda;color:#efffff;box-shadow:0 8px 22px #071b2c72;font:900 28px Barlow Condensed,Impact,sans-serif;letter-spacing:0;touch-action:none;user-select:none;-webkit-user-select:none;pointer-events:auto}.touch-button:hover{background:#102b3dda;transform:none}.touch-button.touch-jump{width:84px;border-color:#ffeba8;border-bottom-color:#d5a22b;background:#5a3e21e8;color:#fff1ad;font-size:21px;letter-spacing:1px}.touch-button.touch-jump:hover{background:#5a3e21e8}.touch-button:active,.touch-button.pressed{background:#27868bf0;transform:translateY(3px);border-bottom-width:1px}.touch-button.touch-jump:active,.touch-button.touch-jump.pressed{background:#a76c29f0}.progress{bottom:calc(112px + env(safe-area-inset-bottom));width:min(430px,78vw)}.progress-label{bottom:calc(88px + env(safe-area-inset-bottom));width:min(430px,78vw)}.hint,.controls{display:none}.mobile-controls-copy{display:block;margin:18px 0 24px;font-size:13px;font-weight:700;color:#d9eef0}.callout{max-width:96vw;font-size:clamp(34px,10vw,50px);letter-spacing:1px;text-align:center;white-space:normal}}@media(max-width:360px){.brand{font-size:16px;letter-spacing:1px;white-space:nowrap}.section{font-size:11px;letter-spacing:1px;padding:6px 8px;white-space:nowrap}}@media(max-width:360px)and (max-height:650px){.intro-content{padding:9px 14px 12px}.intro-card .eyebrow{font-size:11px;letter-spacing:2px}.intro-card h1{font-size:47px;margin:5px 0 3px}.intro-card p{font-size:11px;margin:6px 0}.intro-card .mobile-controls-copy{font-size:11px;margin:8px 0 10px}.intro-card .mode-picker{gap:5px;margin-bottom:8px}.intro-card .mode-option{padding:5px 2px;font-size:14px}.intro-card #action{padding:9px;font-size:20px}.intro-card small{margin-top:6px;font-size:10px}.splash-copy{margin-top:18px}.splash-copy h1{font-size:56px;margin-bottom:16px}}@media(max-height:560px)and (max-width:900px){.touch-button{width:56px;height:56px;font-size:23px}.touch-button.touch-jump{width:72px;font-size:18px}.progress{bottom:calc(100px + env(safe-area-inset-bottom))}.progress-label{bottom:calc(76px + env(safe-area-inset-bottom))}.intro-card,.result-card{max-height:calc(100dvh - 20px);overflow-y:auto}.intro-card{padding:0}.intro-content{padding:10px 22px 14px}.result-card{padding:14px 22px}h1{font-size:clamp(42px,8vh,64px);margin:8px 0}h2{font-size:clamp(56px,12vh,80px);margin:10px 0}.intro-card p,.result-card p{font-size:12px;margin:8px 0}.mobile-controls-copy{margin:8px 0 12px}.intro-card small{margin-top:8px}.intro-card button,.result-card button{padding:10px}.mode-picker .mode-option{padding:6px 3px;font-size:15px}}@media(max-height:560px)and (orientation:landscape){.progress,.progress-label{display:none}}@media(max-width:640px){.mode-picker{grid-template-columns:repeat(2,1fr)}.result-card h2{font-size:clamp(48px,16vw,80px)}.result-card .rank{font-size:clamp(18px,5vw,26px);overflow-wrap:anywhere}}.intro-content{padding:18px 25px}.intro-card h1{font-size:34px;margin:8px 0}.intro-card .eyebrow{font-size:12px;letter-spacing:2px}.intro-card p{margin:8px 0;font-size:13px}.intro-card .course-summary{font-size:14px}.intro-card .course-picker{margin:12px 0}.intro-card .course-profile{height:42px}.intro-card .controls{margin-bottom:12px;padding:8px 0}.intro-card .mobile-controls-copy{margin:10px 0 12px}.intro-card #action{padding:11px}@media(max-width:640px){.intro-content{padding:16px}.course-dna{gap:4px}.course-dna span{font-size:11px;padding:4px 5px}.topbar .section{white-space:normal;line-height:1.2}}
