:root{font-family:Inter,"Segoe UI",sans-serif;color:#d8d8df;background:#242529;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e5a0b5;outline-offset:5px}header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:20px;position:relative;z-index:2}.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;font-size:12px;font-weight:800;letter-spacing:2px}.brand-icon{width:36px;height:36px;border:1px solid #74616c;border-radius:50%;font-size:28px;font-weight:400;line-height:30px;text-align:center;color:#e5a0b5}.header-note{font-size:12px;color:#9999a5}.live{font-size:10px;letter-spacing:1.7px;display:flex;gap:9px;align-items:center}.live i,.dot{display:inline-block;width:6px;height:6px;background:#e2a0b5;border-radius:50%}.live.paused i{background:#858590}main{height:calc(100svh - 166px);position:relative;min-height:450px}#scene{position:absolute;inset:0;touch-action:none}canvas{display:block;width:100%;height:100%}.intro{position:absolute;left:6%;top:6%;z-index:1;pointer-events:none}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;color:#aaaab7}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(46px,5.4vw,80px);letter-spacing:-3px;line-height:1.02;margin:21px 0}h1 em{font-weight:400;color:#ed9db9}.description{font-size:13px;line-height:1.85;color:#9999a5}.lap-card{position:absolute;right:6%;top:11%;width:190px;padding:20px 19px 13px;border:1px solid #48484f;border-radius:16px;background:#303136d9;pointer-events:none}.lap-card .eyebrow{font-size:8px;letter-spacing:1.3px}.lap-card>div{display:flex;align-items:baseline;gap:10px;margin-top:12px}.lap-card strong{font-family:Georgia,serif;font-size:47px;font-weight:400;line-height:1}.lap-card div span{font-size:10px;color:#adadba}.lap-card svg{width:100%;height:27px;margin-top:10px}.lap-card path{fill:none;stroke:#b97c98;stroke-width:1.2}.controls{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:19px;padding:12px 16px;border:1px solid #48484f;border-radius:18px;background:#303136ed;box-shadow:0 10px 36px #00000025;backdrop-filter:blur(14px);white-space:nowrap}.play-button{display:flex;align-items:center;justify-content:center;gap:11px;background:#ce8aa6;color:#242529;border:0;border-radius:11px;padding:14px 18px;font-size:12px;min-width:100px}.play-button:hover{background:#e5a0b5}.play-button:disabled{opacity:.5;cursor:wait}#play-icon{font-size:15px}.divider{height:28px;width:1px;background:#4d4d57}.speed{width:145px}.speed>span{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#adadba}.speed output{font-size:11px;letter-spacing:0;color:#e4b4c7;font-variant-numeric:tabular-nums}input[type=range]{width:100%;height:4px;margin:12px 0 5px;accent-color:#e5a0b5;cursor:pointer}.quiet-button{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:#b5b5c1;font-size:11px;padding:9px 2px}.quiet-button>span:first-child{font-size:22px;color:#e5a0b5}.quiet-button:hover{color:#d8d8df}.scene-label{position:absolute;bottom:115px;left:50%;transform:translateX(-50%);display:flex;gap:8px;align-items:center;font-size:8px;letter-spacing:1.8px;color:#aaaab7;white-space:nowrap}.scene-label .dot{width:4px;height:4px;background:#e5a0b5}footer{height:62px;display:flex;justify-content:space-between;align-items:center;padding:0 5%;font-size:9px;letter-spacing:1.3px;color:#9999a5}footer b{margin:0 12px;font-weight:400}footer>span:last-child{font-size:11px;letter-spacing:0}.heart{font-size:19px;color:#e5a0b5;margin-left:7px}#loading{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);display:flex;gap:12px;align-items:center;font-size:13px;color:#c9c9d2;background:#303136eb;padding:16px 22px;border-radius:50px;box-shadow:0 7px 30px #00000025;white-space:nowrap}#loading[hidden],#error[hidden]{display:none}.spinner{width:17px;height:17px;border:2px solid #4d4d57;border-top-color:#e5a0b5;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:24px;background:#303136;border:1px solid #74616c;border-radius:16px;max-width:440px;line-height:1.6;font-size:13px}
@media(min-width:1500px){.intro{top:12%}.lap-card{top:16%}}@media(max-width:850px){header{height:80px}.header-note{display:none}main{height:calc(100svh - 136px)}.intro{top:1%;left:7%}h1{font-size:52px;letter-spacing:-2px;margin:14px 0}.description{font-size:11px}.lap-card{right:6%;top:4%;width:151px;padding:14px}.lap-card .eyebrow{font-size:7px;letter-spacing:.8px}.lap-card strong{font-size:36px}.lap-card div span{font-size:8px}.controls{gap:12px;padding:11px;bottom:18px}.quiet-button span:last-child{display:none}.speed{width:125px}.scene-label{bottom:107px}footer{height:56px;font-size:7px}footer>span:last-child{font-size:9px}}
@media(max-width:480px){header{padding:0 6%;height:72px}.brand{font-size:10px;letter-spacing:1.3px}.brand-icon{height:30px;width:30px;font-size:24px;line-height:25px}.live{font-size:8px;letter-spacing:1px}.intro{top:0}h1{font-size:43px}.eyebrow{font-size:7px}.description{font-size:10px}.lap-card{top:3%;width:124px;padding:12px}.lap-card .eyebrow{font-size:6px}.lap-card>div{gap:7px}.lap-card svg{height:16px}main{height:calc(100svh - 118px);min-height:480px}.controls{width:90%;justify-content:space-between;gap:10px}.play-button{min-width:85px;padding:13px 12px}.speed{width:100px}.optional{display:none}footer{height:46px}footer>span:last-child{display:none}.scene-label{font-size:6px;letter-spacing:1.2px}}
.scene-label{background:#242529d9;border-radius:20px;padding:7px 12px}

.brand{font-size:18px;letter-spacing:-.5px}.intro h1{font-family:Inter,"Segoe UI",sans-serif;font-weight:850;font-size:clamp(42px,5vw,72px);letter-spacing:-3px;line-height:1.03;max-width:560px}.intro h1 em{font-style:normal;font-weight:850}.lap-card strong{font-family:Inter,"Segoe UI",sans-serif;font-weight:650;font-variant-numeric:tabular-nums}.play-button{font-weight:650}@media(max-width:850px){.intro h1{font-size:48px;max-width:440px}}@media(max-width:480px){.brand{font-size:16px}.intro h1{font-size:36px;letter-spacing:-1.8px;max-width:205px;margin-top:22px}.lap-card{top:4%;width:112px}.lap-card strong{font-size:32px}.lap-card div span{font-size:7px}}
.mountain-entry{position:absolute;transform:translate(-50%,-50%);padding:15px 18px;border:1px solid #f1b2cd;border-radius:12px;background:#de94b4;color:#242529;box-shadow:0 5px 0 #925b76,0 8px 25px #0004;font-size:10px;font-weight:850;letter-spacing:1px;white-space:nowrap;z-index:1}.mountain-entry span{margin-right:8px}.mountain-entry:hover{background:#f0b0ce}.mountain-entry:disabled{opacity:.4;cursor:wait}.mountain-entry[hidden],[hidden]{display:none!important}body.mountain .intro,body.mountain .lap-card,body.mountain .controls,body.mountain .mountain-entry{display:none}body.mountain main{min-height:0}body.mountain footer{visibility:hidden}#mountain-hud{position:absolute;inset:0;pointer-events:none}.run-score{position:absolute;left:5%;top:12px;display:flex;flex-direction:column;gap:9px}.run-score>span{font-size:10px;letter-spacing:2px;color:#b0afbf}.run-score strong{font-size:52px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-2px}.run-score small{font-size:18px;color:#e4a1be}.run-actions{position:absolute;right:5%;top:10px;display:flex;gap:8px;pointer-events:auto}.run-actions button,.dialog-actions>button:not(.play-button){border:1px solid #66616f;background:#303136e8;color:#dedce5;border-radius:9px;padding:10px 13px;font-size:11px}.run-actions button:hover,.dialog-actions>button:not(.play-button):hover{background:#4a414c}.tilt-meter{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);width:150px;height:7px;background:#59515f;border-radius:5px;border:1px solid #8b778a}.tilt-meter:before{content:'';position:absolute;left:50%;height:15px;top:-5px;border-left:1px solid #aaa0af}.tilt-meter span{position:absolute;top:-4px;left:50%;width:12px;height:12px;border-radius:50%;background:#f0a9c9;transform:translateX(-50%)}.game-hint{position:absolute;bottom:15px;left:0;right:0;text-align:center;font-size:11px;color:#d0c2d0;padding:0 15px}.game-overlay{position:absolute;inset:0;z-index:4;background:#17171c88;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:12px}.game-dialog{width:480px;max-width:100%;max-height:100%;overflow:auto;background:#2a2b31f5;border:1px solid #645063;border-radius:22px;padding:28px;box-shadow:0 24px 80px #0006}.game-dialog h2{font-size:48px;letter-spacing:-2px;margin:12px 0;color:#eca5c4;line-height:1}.game-dialog p{font-size:13px;line-height:1.65;color:#bdb8c6}.game-dialog h3{font-size:10px;letter-spacing:2px;margin-top:25px;color:#b6a7b9}.dialog-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.dialog-actions .play-button{font-size:12px}.game-dialog #run-result{font-size:28px;font-weight:750;color:#eee6f0;margin:10px 0}.game-dialog #sensor-status,.game-dialog #storage-note{font-size:10px;color:#a99aaf;margin:12px 0 0}#leaderboard{padding:0;list-style:none;margin-bottom:0;max-height:180px;overflow:auto}#leaderboard li{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #49414e;font-size:12px;color:#c9bfcd;gap:12px}#leaderboard li.current{color:#f0a9c9}#leaderboard li b{font-variant-numeric:tabular-nums}#leaderboard li.empty{color:#a99aaf;font-style:italic}.mountain-entry:focus-visible{outline:3px solid #fff;outline-offset:6px}@media(max-width:600px){.mountain-entry{padding:12px;font-size:8px;letter-spacing:.5px}.run-score{top:4px}.run-score strong{font-size:36px}.run-actions{gap:5px;max-width:200px;flex-wrap:wrap;justify-content:flex-end}.run-actions button{font-size:9px;padding:8px}.game-dialog{padding:20px}.game-dialog h2{font-size:38px}.game-dialog p{font-size:12px}.game-hint{font-size:10px}.run-score>span{font-size:8px}.game-dialog h3{margin-top:18px}}
.mountain-entry{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;box-shadow:none;transform:none;left:0;top:0}.mountain-entry:focus-visible{outline:none}
.run-countdown{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none;background:radial-gradient(ellipse at center,#17131e35 0%,#17131e12 48%,transparent 72%)}.countdown-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:clamp(250px,36vw,460px);height:clamp(250px,36vw,460px);color:#ffd6e8;isolation:isolate}.countdown-card:before,.countdown-card:after{content:'';position:absolute;border-radius:50%;z-index:-1}.countdown-card:before{inset:5%;border:2px solid #eaa1c78c;box-shadow:0 0 65px #e990bd2b,inset 0 0 55px #e990bd16}.countdown-card:after{inset:0;border:1px solid #efaaca30}.countdown-card>span{font-size:clamp(10px,1.2vw,14px);font-weight:750;letter-spacing:5px;text-shadow:0 2px 14px #18111f}.countdown-card strong{font-size:clamp(150px,23vw,300px);line-height:.98;letter-spacing:-.07em;padding-right:.07em;font-weight:900;font-style:italic;color:#f1a4c6;text-shadow:0 5px 0 #7d3f60,0 0 50px #ef96c266,0 15px 38px #17101e88}.countdown-card>span:last-child{font-size:clamp(9px,1vw,11px);letter-spacing:3px;margin-top:17px;color:#d5b8cb}.countdown-hit .countdown-card strong{animation:countdown-pop .85s cubic-bezier(.18,.8,.3,1) both}.countdown-hit .countdown-card:before{animation:countdown-ring .85s ease-out both}.countdown-go .countdown-card strong{font-size:clamp(115px,17vw,220px);color:#ffe5f0}.countdown-go .countdown-card:before{border-color:#ffd5e8c4}@keyframes countdown-pop{0%{transform:scale(1.36);opacity:0}15%{opacity:1}34%{transform:scale(.96)}55%{transform:scale(1.025)}100%{transform:scale(1);opacity:1}}@keyframes countdown-ring{0%{transform:scale(.74);opacity:1}100%{transform:scale(1.12);opacity:.12}}@media(prefers-reduced-motion:reduce){.countdown-hit .countdown-card strong,.countdown-hit .countdown-card:before{animation:none}}
.countdown-launched{background:none}.countdown-launched .countdown-card:before,.countdown-launched .countdown-card:after{display:none}.countdown-launched #countdown-caption{position:absolute;bottom:12%;margin:0;color:#ffe0ef;animation:steer-hint-fade 2.2s linear forwards}@keyframes steer-hint-fade{0%,72%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){.countdown-launched #countdown-caption{animation:none}}
.run-pace{position:absolute;left:5%;top:126px;font-size:9px;letter-spacing:1.3px;color:#b7a9bf}.run-pace b{color:#f2b2cf;font-variant-numeric:tabular-nums}#hazard-warning{position:absolute;top:20%;left:50%;transform:translateX(-50%);border:1px solid #f1a5c7;background:#352a38ed;color:#ffd0e5;padding:13px 20px;border-radius:12px;font-weight:750;font-size:12px;letter-spacing:1.2px;text-align:center;white-space:nowrap;box-shadow:0 0 30px #ef95bd1c}@media(max-width:600px){.run-pace{top:104px;font-size:8px}#hazard-warning{top:23%;font-size:10px;letter-spacing:.5px;padding:11px 12px;max-width:95%;white-space:normal}}
.action-buttons{position:absolute;right:5%;bottom:85px;display:flex;gap:10px;pointer-events:auto}.action-buttons button{min-width:80px;min-height:66px;background:#342d3bec;color:#f8c8df;border:1px solid #bf88a7;border-radius:14px;font-size:22px;padding:8px 14px}.action-buttons button span{font-size:13px;font-weight:700}.action-buttons small{display:block;font-size:8px;letter-spacing:1px;margin-top:5px;color:#bda9c1}.action-buttons button:disabled{opacity:.4;cursor:default}.action-buttons button:active{background:#79546e}@media(max-width:600px){.action-buttons{right:4%;bottom:85px;gap:7px}.action-buttons button{min-width:67px;min-height:61px;padding:7px 10px}.action-buttons small{font-size:6px}}

.route-status{position:absolute;left:5%;top:148px;font-size:9px;color:#deb5da;letter-spacing:1px}.shield-status{position:absolute;left:5%;top:172px;padding:9px 12px;border:1px solid #86dfc9;border-radius:10px;color:#b1ffe7;background:#1b3734dc;font-size:11px;letter-spacing:1px}.shield-status small{display:block;margin-top:4px;font-size:8px;letter-spacing:.2px;color:#a9c8c1}@media(max-width:600px){.route-status{top:123px;font-size:8px}.shield-status{top:143px;font-size:10px;padding:7px 9px}}
