*{box-sizing:border-box}html,body,#root,main{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;background:#9aafbf}main{touch-action:none;-webkit-user-select:none;user-select:none;position:relative}canvas{outline:none;display:block}.vignette{pointer-events:none;background:radial-gradient(at 50% 44%,#0000 45%,#223b5d1e 100%);position:absolute;inset:0}.touch-controls{pointer-events:none;display:none;position:absolute;inset:0}.stick{left:max(26px, env(safe-area-inset-left));bottom:max(32px, env(safe-area-inset-bottom));pointer-events:auto;background:#29476a26;border:1px solid #fff0d43d;border-radius:50%;place-items:center;width:112px;height:112px;display:grid;position:absolute}.stick>div{background:#eee4cc70;border:1px solid #fff4da55;border-radius:50%;width:46px;height:46px}.buttons{right:max(22px, env(safe-area-inset-right));bottom:max(28px, env(safe-area-inset-bottom));width:164px;height:146px;position:absolute}.buttons button{color:#fff1d4;pointer-events:auto;touch-action:none;background:#29476a47;border:1px solid #fff3d654;border-radius:50%;place-items:center;width:52px;height:52px;padding:12px;display:grid;position:absolute}.buttons button:active{background:#ed713ccc;transform:scale(.94)}.buttons svg{width:100%;height:100%}.buttons .jump{background:#ed713caa;bottom:0;left:55px}.buttons .grind{top:40px;right:0}.buttons .trick{top:0;left:55px}.buttons .manual{bottom:-10px;left:0}.buttons .brake{top:40px;left:0}@media (pointer:coarse),(width<=700px){.touch-controls{display:block}}@media (height<=450px){.stick{width:92px;height:92px;bottom:18px}.buttons{transform-origin:100% 100%;bottom:18px;transform:scale(.85)}}.options-cog{top:max(20px, env(safe-area-inset-top));right:max(22px, env(safe-area-inset-right));color:#eee9dd;cursor:pointer;background:#1c2c40b8;border:1px solid #e2eaf23b;border-radius:50%;place-items:center;width:44px;height:44px;padding:10px;display:grid;position:absolute}.options-cog svg,.options-close svg{width:100%;height:100%}.options-cog:hover{background:#344b66}.options-cog:focus-visible,.options-panel :focus-visible{outline-offset:4px;outline:2px solid #f3a26e}.options-panel{color:#edece5;-webkit-user-select:none;user-select:none;touch-action:pan-y;background:#203047;border:1px solid #6d819785;border-radius:5px;width:min(390px,100vw - 32px);max-height:calc(100dvh - 32px);padding:27px;font:15px/1.4 Trebuchet MS,Avenir Next,sans-serif;overflow:auto;box-shadow:0 20px 70px #0d172c66}.options-panel::backdrop{background:#0e1c3048}.options-panel header{justify-content:space-between;align-items:center;margin-bottom:23px;display:flex}.options-panel h1{letter-spacing:-.8px;margin:0;font-size:25px;font-weight:700}.options-panel button{font:inherit;cursor:pointer;color:inherit}.options-close{opacity:.65;background:0 0;border:0;width:32px;height:32px;padding:6px}.options-close:hover{opacity:1}.option-row{text-align:left;background:0 0;border:0;border-top:1px solid #8192aa3a;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:58px;padding:12px 2px;display:flex}button.option-row:hover{color:#ffbb87}.option-value{color:#b7c8d9;align-items:center;gap:16px;font-size:14px;display:flex}.option-value>span{text-align:center;color:#f3a26e;width:28px;font-size:19px}.switch-mark{background:#5c6d83;border-radius:20px;width:28px;height:15px;display:block;position:relative}.switch-mark:after{content:"";background:#e4e9ed;border-radius:50%;width:9px;height:9px;transition:transform .1s;position:absolute;top:3px;left:3px}.switch-mark[data-on=true]{background:#d87c48}.switch-mark[data-on=true]:after{transform:translate(13px)}.volume-control{align-items:center;gap:13px;display:flex}.volume-control input{accent-color:#ec985e;cursor:pointer;width:110px}.volume-control output{text-align:right;color:#b7c8d9;font-variant-numeric:tabular-nums;width:35px;font-size:12px}.volume-row.muted{opacity:.45}.controller-note{color:#a7b8cc;border-top:1px solid #8192aa3a;align-items:center;gap:8px;padding-top:16px;font-size:12px;display:flex}.controller-note p{margin:0}.controller-dot{background:#8192aa;border-radius:50%;flex-shrink:0;width:6px;height:6px}.controller-dot.connected{background:#77c8ac}.controller-mapping{color:#a7b8cc;margin:8px 0 0 14px;font-size:12px}.resume-button{background:#e69157;border:0;border-radius:2px;justify-content:space-between;width:100%;margin-top:26px;padding:12px 14px;display:flex;color:#1c2939!important;font-weight:700!important}.resume-button:hover{background:#f2ac77}@media (prefers-reduced-motion:reduce){.switch-mark:after{transition:none}}.park-challenges{top:max(19px, env(safe-area-inset-top));left:max(22px, env(safe-area-inset-left));color:#f0eee3;pointer-events:none;background:linear-gradient(100deg,#1c2d40dc 0%,#1c2d40bc 70%,#1c2d4000 100%);padding:12px 34px 16px 14px;font:500 13px/1.4 Avenir Next,Trebuchet MS,sans-serif;position:absolute}.challenge-heading{color:#f1a56f;letter-spacing:1.9px;text-transform:uppercase;margin:0 0 9px 1px;font-size:10px;font-weight:800}.park-challenges ul{margin:0;padding:0;list-style:none}.park-challenges li{align-items:center;gap:8px;min-height:26px;display:flex}.park-challenges svg{fill:none;stroke:#b2c5cd;stroke-width:1px;flex:none;width:17px;height:17px}.park-challenges li[data-complete=true]{color:#a0c8bc;animation:1s ease-out goal-complete}.park-challenges li[data-complete=true] svg{stroke:#8dd9b7}.park-challenges path{stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}@keyframes goal-complete{0%{color:#ffce83;transform:translate(5px)}to{transform:translate(0)}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=600px),(height<=500px){.park-challenges{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));padding:9px 24px 10px 10px;font-size:11px}.park-challenges li{gap:6px;min-height:21px}.challenge-heading{margin-bottom:5px;font-size:9px}.park-challenges svg{width:14px;height:14px}}@media (prefers-reduced-motion:reduce){.park-challenges li[data-complete=true]{animation:none}}.landed-move{z-index:3;bottom:max(58px, calc(env(safe-area-inset-bottom) + 30px));pointer-events:none;color:#ffe1b7;letter-spacing:.07em;text-align:center;text-transform:uppercase;text-shadow:0 2px 3px #122238,0 0 14px #122238b0;width:max-content;max-width:70%;font-size:clamp(18px,2.2vw,28px);font-style:italic;font-weight:850;line-height:1.2;animation:2.2s both landed-move;position:absolute;left:50%;transform:translate(-50%)}@keyframes landed-move{0%{opacity:0;transform:translate(-50%,8px)}9%,72%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}@media (width<=600px),(height<=500px){.landed-move{bottom:max(140px, calc(env(safe-area-inset-bottom) + 120px))}}@media (prefers-reduced-motion:reduce){.landed-move{animation:none}}.options-panel button:disabled{opacity:.4;cursor:default}.help-icon{right:calc(max(22px, env(safe-area-inset-right)) + 54px)}.help-panel{width:min(560px,100vw - 32px)}.help-panel header{margin-bottom:10px}.help-intro,.help-return{color:#afc1cf;margin:0 0 18px;font-size:13px}.help-controls{border-collapse:collapse;text-align:left;width:100%}.help-controls th,.help-controls td{border-bottom:1px solid #8192aa30;padding:7px 0}.help-controls th{font-weight:500}.help-controls thead th{color:#f3a26e;text-transform:uppercase;letter-spacing:1.2px;padding-bottom:9px;font-size:11px}.help-controls tbody th{width:43%;font-size:13px}.help-controls td{font-size:12px}.help-controls kbd,.help-return kbd{font:inherit;color:#d6e0e5}.help-tips{color:#afc1cf;margin-top:18px;font-size:12px}.help-tips p{margin:10px 0}.help-tips strong{color:#e7e6df;font-weight:600}.help-return{margin:15px 0 0;font-size:12px}.help-panel .resume-button{margin-top:18px}@media (width<=600px){.park-challenges{max-width:calc(100vw - 124px)}.help-panel{padding:20px}.help-controls tbody th{width:43%;font-size:12px}.help-controls td{padding-left:6px;font-size:11px}}.help-panel h1:focus{outline:none}
