:root{font-family:Arial,sans-serif;color:#14263c;--pink: #df1256;--ink: #14263c;--muted: #81878b}*{box-sizing:border-box}html,body,main{width:100%;height:100%;margin:0;overflow:hidden;background:#fff}[hidden]{display:none!important}canvas{display:block;width:100%;height:100%;touch-action:none}button{cursor:pointer;font:inherit}button:focus-visible{outline:3px solid #df1256;outline-offset:3px}.race-header{position:fixed;inset:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;padding:24px 30px;gap:20px;pointer-events:none}.brand{display:flex;align-items:center;gap:12px}.bib{display:grid;place-items:center;width:40px;height:52px;background:var(--pink);color:#fff;font:28px Impact,Arial Narrow,sans-serif;transform:skew(-7deg)}.brand h1{font:35px/.95 Impact,Arial Narrow,sans-serif;letter-spacing:-.025em;margin:0 0 6px}.eyebrow{font:10px Consolas,monospace;letter-spacing:.13em;margin:0;color:#697580}.clock{text-align:center}.clock strong{font:700 38px/1.1 Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.06em;display:block}.clock .eyebrow{margin-top:7px;color:var(--pink)}.record{justify-self:end;text-align:right;font:11px Consolas,monospace}.record p{margin:0 0 7px;color:#697580}.record strong{color:var(--ink)}.text-button{border:0;background:transparent;padding:5px 0;font:11px Consolas,monospace;text-decoration:underline;text-underline-offset:4px;color:#697580;pointer-events:auto}.course-meter{position:fixed;right:30px;top:43%;display:flex;align-items:center;gap:10px}.meter-track{width:4px;height:140px;background:#14263c15;position:relative}.meter-track i{position:absolute;bottom:0;width:100%;background:var(--pink);transition:height .2s}.meter-copy{text-align:right;display:flex;flex-direction:column;gap:6px;font:11px Consolas,monospace}.meter-copy span{color:#7c8287;font-size:9px}#status{position:fixed;bottom:108px;left:50%;transform:translate(-50%);color:#81878b;font:11px Consolas,monospace;margin:0;pointer-events:none}.panel{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:10px 12px;border:1px solid #14263c12;border-radius:12px;background:#ffffffed}.movement,.actions{display:flex;gap:6px}.panel button{min-height:43px;padding:7px 13px;color:var(--ink);border:1px solid #e4e6e8;border-radius:6px;background:#fafbfc;font-size:12px;touch-action:none;-webkit-user-select:none;user-select:none}.movement button{font-size:22px;width:42px;padding:0}.panel button.pressed,.panel button:active{background:#14263c;color:#fff;border-color:#14263c}kbd{display:block;font:9px Consolas,monospace;color:#899198;margin-top:3px}.ready-card,.finish-card{position:fixed;top:155px;left:30px;width:248px;background:#fffffff0;padding:22px;border-left:3px solid var(--pink);box-shadow:0 12px 40px #14263c08}.ready-card h2,.finish-card h2{margin:10px 0 14px;font:36px/1 Impact,Arial Narrow,sans-serif;letter-spacing:-.01em}.ready-card p{font-size:12px;line-height:1.7;color:#65717c}.legend{display:flex;flex-direction:column;gap:9px;font:11px Consolas,monospace;padding:6px 0 17px}.legend i{display:inline-block;width:9px;height:9px;margin-right:9px}.primary{border:0;width:100%;background:var(--pink);padding:12px;color:#fff;text-align:left;font-weight:700;font-size:12px}.primary span{float:right}.ready-card small{display:block;font-size:10px;color:#899198;margin-top:11px}#countdown{position:fixed;top:37%;left:50%;transform:translate(-50%,-50%);font:130px/1 Impact,sans-serif;color:var(--pink);pointer-events:none;text-shadow:0 2px 0 white}#notice{position:fixed;top:110px;left:50%;transform:translate(-50%);margin:0;padding:9px 18px;background:var(--ink);color:#fff;font:11px Consolas,monospace;pointer-events:none}.finish-card{top:30%;left:50%;transform:translate(-50%);width:310px;text-align:center;border-left:0;border-top:4px solid #e7b83d}.finish-card h2{font-size:42px}#result-time{display:block;font:700 38px Consolas,monospace;letter-spacing:-.06em}#result-detail{font:11px Consolas,monospace;color:#697580;margin-bottom:20px}.hint{position:fixed;left:30px;bottom:26px;color:#7b8289;font:10px/1.8 Consolas,monospace;max-width:180px}@media(max-width:760px){.race-header{padding:18px;gap:8px}.brand h1{font-size:25px}.bib{width:28px;height:38px;font-size:22px}.brand{gap:8px}.eyebrow{font-size:8px}.clock strong{font-size:27px}.record{font-size:9px}.ready-card{top:125px;left:18px;width:210px;padding:16px}.ready-card h2{font-size:30px}.course-meter{right:18px}.hint{display:none}.panel{gap:7px;bottom:15px;padding:7px}.panel button{padding:6px 8px;font-size:11px}.movement button{width:34px;font-size:20px}kbd{font-size:8px}#status{bottom:90px}}@media(prefers-reduced-motion:reduce){.meter-track i{transition:none}}@media(max-width:760px){.race-header{grid-template-columns:1fr auto}.clock{grid-column:2;grid-row:1}.record{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left}.record p{margin:0}}body:not([data-screen=game]):not([data-screen=coop]) :is(.race-header,.course-meter,.ready-card,.panel,#status,.hint,#countdown,#notice,.finish-card){display:none!important}#opening-loading{position:fixed;inset:0;display:grid;place-items:center;margin:0;color:#81878b;font:11px Consolas,monospace;letter-spacing:.16em;pointer-events:none}#skip-opening{position:fixed;top:26px;right:30px;z-index:12;border:0;border-bottom:1px solid #b8b9ba;padding:6px 0;background:transparent;color:#697580;font:11px Consolas,monospace}#opening-mark{position:fixed;left:30px;top:26px;margin:0;color:#14263c;font:24px Impact,Arial Narrow,sans-serif;pointer-events:none}#intro-wipe{position:fixed;inset:0;z-index:20;background:#fafaf8;transform:translateY(100%);pointer-events:none}#home-screen{position:fixed;inset:0;z-index:11;pointer-events:none}.home-content{width:65%;height:100%;padding:8vh 5vw 5vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:#fafaf8bf;pointer-events:auto}.home-overline{font:10px Consolas,monospace;letter-spacing:.18em;color:#df1256;margin:0 0 28px}.home-title{font:900 clamp(75px,9.2vw,142px)/.86 Impact,"Arial Narrow",sans-serif-condensed,sans-serif;letter-spacing:-.035em;margin:0 0 30px;color:#14263c}.home-title span{color:#df1256}.home-description{font:14px/1.7 Arial,sans-serif;max-width:260px;color:#74808b;margin:0 0 32px}#home-select-mode{width:250px;max-width:100%;border:0;background:#df1256;color:#fff;padding:17px 20px;text-align:left;font:700 13px Arial,sans-serif}#home-select-mode span{float:right;font-size:17px}#home-select-mode:disabled{opacity:.75;cursor:default}.home-mode{color:#8c949a;font:9px Consolas,monospace;letter-spacing:.12em;margin:13px 0 32px}#how-to-play{border:0;border-bottom:1px solid #c5c9cc;background:transparent;color:#697580;padding:5px 0;font:11px Consolas,monospace}.home-controls{margin-top:auto;padding-top:24px;color:#90979c;font:9px/1.8 Consolas,monospace;letter-spacing:.04em}body[data-screen=home] .home-content{animation:home-enter .45s ease-out both}@keyframes home-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:650px){.home-content{width:65%;padding:8vh 22px 4vh;background:#fafaf8bf}.home-overline{font-size:8px;margin-bottom:23px}.home-title{font-size:clamp(66px,16vw,100px);margin-bottom:23px}.home-description{font-size:12px}#home-select-mode{padding:14px}#skip-opening{right:20px;top:20px}#opening-mark{left:20px;top:20px}}@media(prefers-reduced-motion:reduce){body[data-screen=home] .home-content{animation:none}}.howto-dialog{width:min(450px,calc(100% - 32px));max-height:calc(100% - 40px);border:0;border-radius:12px;padding:30px;background:#fafaf8;color:#14263c;box-shadow:0 20px 90px #14263c20}.howto-dialog::backdrop{background:#14263c55}.howto-dialog h2{font:34px/1 Impact,Arial Narrow,sans-serif;margin:0 0 18px}.howto-dialog .home-overline{margin-bottom:14px}.howto-dialog p,.howto-dialog li{font:13px/1.7 Arial,sans-serif}.howto-dialog ul{padding-left:18px;margin:18px 0}.howto-dialog li{margin-bottom:10px}.howto-dialog kbd{display:inline-block;color:#14263c;font:11px Consolas,monospace;margin:0 2px;padding:2px 5px;border:1px solid #dfe3e6;border-radius:3px;background:#fff}.howto-close{position:absolute;top:12px;right:15px;border:0;background:none;color:#697580;font-size:25px}.howto-dialog .howto-note{font-size:11px;color:#81878b;margin-bottom:22px}#home-menu{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.mode-option{display:block;width:100%;border:1px solid #dde2e5;border-radius:7px;background:#fff;color:#14263c;padding:19px;margin-top:12px;text-align:left}.mode-option:hover{border-color:#df1256}.mode-option strong{display:block;font-size:16px}.mode-option strong span{float:right;color:#df1256;font:17px Impact,sans-serif}.mode-option small{display:block;margin-top:8px;font-size:12px;line-height:1.6;color:#74808b}#coop-room{width:min(100%,390px)}.coop-title{font:clamp(46px,5vw,76px)/.9 Impact,"Arial Narrow",sans-serif;letter-spacing:-.02em;margin:18px 0 25px}.coop-description{font:13px/1.7 Arial,sans-serif;color:#74808b;margin-bottom:28px}.coop-or,.coop-code-label{font:9px Consolas,monospace;letter-spacing:.1em;color:#879199;margin:20px 0 11px}.coop-join-row{display:flex;gap:8px}.coop-join-row input{flex:1;min-width:0;width:0;border:1px solid #dfe3e5;background:#fff;padding:12px;font:16px Consolas,monospace;text-transform:uppercase;letter-spacing:.1em;color:#14263c}.coop-join-button{border:0;background:#14263c;color:#fff;padding:12px 18px}.coop-code-row{display:flex;align-items:center;gap:20px;margin-bottom:24px}#coop-code{font:700 30px Consolas,monospace;letter-spacing:.08em}.coop-player{font:12px Consolas,monospace;color:#697580;margin:13px 0}#coop-ready{margin-top:10px}#coop-ready:disabled,#coop-create:disabled{opacity:.55;cursor:default}.coop-footnote,.coop-connection{font:11px/1.7 Arial,sans-serif;color:#879199}.coop-connection{min-height:20px;margin-top:16px}.coop-toolbar{position:fixed;z-index:15;right:30px;top:105px;display:flex;gap:10px;align-items:center;padding:10px 12px;background:#fffffff2;border:1px solid #14263c15;border-radius:8px;font:10px Consolas,monospace;color:#697580}.coop-toolbar strong{color:#14263c;letter-spacing:.05em}.coop-toolbar button{border:1px solid #dfe3e5;border-radius:4px;padding:7px 9px;background:#fff;color:#14263c;font-size:10px}.coop-toolbar [data-enabled=true]{background:#dff5e9;border-color:#8bcba6}.coop-toolbar button:disabled{opacity:.5;cursor:default}@media(max-width:650px){.coop-toolbar{top:110px;right:12px;left:12px;flex-wrap:wrap;gap:7px;padding:8px}#coop-room{padding-top:55px}.coop-title{font-size:43px}#coop-code{font-size:23px}.coop-code-row{gap:9px}}@media(pointer:coarse)and (max-width:960px){.panel{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));transform:none;justify-content:space-between;align-items:flex-end;padding:0;border:0;background:none;pointer-events:none}.panel button{pointer-events:auto;min-height:50px;background:#fffffff2;font-size:11px;padding:4px}.movement{gap:8px}.movement button{width:54px;height:54px;font-size:24px}.actions{display:grid;grid-template-columns:repeat(3,50px);grid-auto-rows:50px;gap:6px}.actions [data-move=run]{grid-column:1;grid-row:1}.actions [data-move=crouch]{grid-column:2;grid-row:1}.actions #reset{grid-column:1;grid-row:2}.actions [data-move=push]{grid-column:2;grid-row:2;background:#df1256;color:#fff}.actions [data-move=jump]{grid-column:3;grid-row:2;background:#14263c;color:#fff}.panel kbd{display:none}#status{bottom:138px;font-size:10px;white-space:nowrap}body[data-screen=coop-lobby] .home-content{overflow-y:auto;overscroll-behavior:contain;justify-content:flex-start}#coop-room{padding-bottom:20px}.coop-toolbar{font-size:9px}}#fullscreen-toggle{position:fixed;z-index:19;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:flex;align-items:center;gap:7px;min-height:40px;padding:9px 12px;border:1px solid #14263c20;border-radius:6px;background:#fffffff0;color:#14263c;font:11px Arial,sans-serif;touch-action:manipulation}body[data-screen=intro] #fullscreen-toggle{top:auto;bottom:max(12px,env(safe-area-inset-bottom))}body:is([data-screen=game],[data-screen=coop]) #fullscreen-toggle{top:auto;bottom:max(12px,env(safe-area-inset-bottom));left:50%;right:auto;transform:translate(-50%)}@media(pointer:fine){body:is([data-screen=game],[data-screen=coop]) #fullscreen-toggle{left:auto;right:20px;transform:none}}@media(pointer:coarse){.home-controls{font-size:0}.home-controls:after{content:"TOUCH CONTROLS IN GAME";font-size:9px}.home-content{padding-left:max(22px,env(safe-area-inset-left))}}@media(max-height:600px){.home-content{padding:max(16px,env(safe-area-inset-top)) 4vw max(16px,env(safe-area-inset-bottom))}#home-menu{min-height:0;justify-content:center}#home-menu>*{flex-shrink:0}.home-overline{font-size:8px;margin-bottom:10px}.home-title{font-size:clamp(42px,15dvh,78px);margin-bottom:12px}.home-description{font-size:11px;line-height:1.45;margin-bottom:14px}#home-select-mode{width:240px;min-height:40px;padding:11px 16px;font-size:12px}.home-mode{font-size:8px;margin:9px 0 10px;letter-spacing:.05em}#how-to-play{font-size:10px}.home-controls{margin:12px 0 0;padding:0;font-size:8px}.coop-title{font-size:36px;margin:12px 0}.coop-description{font-size:11px;margin:0 0 12px}#coop-room{padding-top:0}.coop-or,.coop-code-label{margin:10px 0}.coop-code-row{margin-bottom:10px}.coop-player{margin:9px 0}.howto-dialog{max-height:calc(100dvh - 24px);padding:22px}}@media(max-height:360px)and (orientation:landscape){#home-menu{display:grid;grid-template-columns:minmax(110px,.85fr) minmax(160px,1fr);grid-template-rows:auto auto auto auto auto;column-gap:20px;align-content:center;align-items:start}.home-overline{grid-column:1;grid-row:1}.home-title{grid-column:1;grid-row:2 / 6;font-size:clamp(42px,21dvh,65px);margin:0}.home-description{grid-column:2;grid-row:1 / 3}#home-select-mode{grid-column:2;grid-row:3;width:100%}.home-mode{grid-column:2;grid-row:4;font-size:7px}#how-to-play{grid-column:2;grid-row:5;justify-self:start}.home-controls{grid-column:1 / -1;grid-row:6}}#rotate-device{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:32px;border:0;background:#fafaf8;color:#14263c;text-align:center}#rotate-device[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}#rotate-device::backdrop{background:#fafaf8}#rotate-device h2{font:800 26px/1.2 Arial,sans-serif;margin:0}#rotate-device p{font:14px/1.7 Arial,sans-serif;color:#74808b;margin:0}.rotate-phone{width:86px;height:48px;border:3px solid #df1256;border-radius:10px;font:36px/42px Arial,sans-serif;color:#df1256}@media(pointer:coarse)and (orientation:landscape){button,.text-button{touch-action:manipulation}#fullscreen-toggle{width:44px;height:44px;justify-content:center;padding:0;font-size:23px}#fullscreen-toggle span{display:none}body:is([data-screen=game],[data-screen=coop]) #fullscreen-toggle{top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));bottom:auto;left:auto;transform:none}.home-content{padding:20px max(24px,env(safe-area-inset-left))}#home-menu{display:grid;grid-template-columns:minmax(100px,.85fr) minmax(160px,1fr);grid-template-rows:auto auto auto auto auto;column-gap:24px;align-content:center;align-items:start}.home-overline{grid-column:1;grid-row:1}.home-title{grid-column:1;grid-row:2 / 6;font-size:clamp(42px,19dvh,90px);margin:0}.home-description{grid-column:2;grid-row:1 / 3;font-size:12px;margin:0 0 16px}#home-select-mode{grid-column:2;grid-row:3;width:100%;min-height:48px}.home-mode{grid-column:2;grid-row:4;font-size:8px;margin:10px 0 2px}#how-to-play{grid-column:2;grid-row:5;justify-self:start;min-height:44px;padding:10px 0}.home-controls{grid-column:1 / -1;grid-row:6;margin:16px 0 0;font-size:0}.race-header{padding:10px 70px 0 max(12px,env(safe-area-inset-left));grid-template-columns:1fr auto 1fr;gap:8px}.brand h1{font-size:23px;font-weight:900}.bib{width:26px;height:36px;font-size:22px}.brand{gap:8px}.eyebrow{font-size:8px}.clock{grid-column:2;grid-row:1}.clock strong{font-size:27px}.record{grid-column:3;grid-row:1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0 12px;font-size:9px}.record p{margin:0}.record .text-button{min-width:44px;min-height:44px;padding:8px}.hint{display:none}.panel{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));transform:none;justify-content:space-between;align-items:flex-end;padding:0;border:0;background:none;pointer-events:none}.panel button{pointer-events:auto;touch-action:none;min-height:48px;padding:4px;background:#fffffff2}.panel kbd{display:none}.movement{gap:12px}.movement button{width:64px;height:64px;font-size:26px}.actions{display:grid;grid-template-columns:50px 50px 70px;grid-template-rows:44px 64px;gap:8px}.actions [data-move=run]{grid-column:1;grid-row:1;min-height:44px}.actions [data-move=crouch]{grid-column:2;grid-row:1;min-height:44px}.actions #reset{grid-column:3;grid-row:1;min-height:44px}.actions [data-move=push]{grid-column:2;grid-row:2;background:#df1256;color:#fff}.actions [data-move=jump]{grid-column:3;grid-row:2;background:#14263c;color:#fff;font-size:14px}#status{bottom:16px;max-width:32vw;white-space:normal;text-align:center;font-size:9px}.course-meter{top:92px;right:16px}.meter-track{height:50px}.meter-copy{font-size:10px}.meter-copy span{font-size:8px}#notice{top:76px;max-width:42vw;text-align:center}.coop-toolbar{top:78px;left:12px;right:auto;max-width:52vw;flex-wrap:wrap;gap:6px;padding:4px 8px}.coop-toolbar button{min-height:44px}body[data-screen=coop-lobby] .coop-toolbar{top:70px;left:67%;right:12px;max-width:none}#coop-room{padding:0;width:100%}.coop-title{font-size:32px;margin:10px 0}.coop-title br{display:inline}.coop-title br:after{content:" "}.coop-description{margin:0 0 12px;font-size:11px}#coop-room button{min-height:44px}.coop-connection{margin:6px 0}.coop-code-row{margin-bottom:4px}.coop-footnote{margin:4px 0}.howto-dialog{max-height:calc(100dvh - 24px);padding:20px}.howto-close{width:44px;height:44px;top:4px;right:4px}#mode-picker{width:min(700px,calc(100% - 32px))}#mode-picker[open]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}#mode-picker>form,#mode-picker>p,#mode-picker>h2{grid-column:1 / -1;margin:0}#mode-picker>form{height:0}.mode-option{margin:0;padding:16px;height:100%}.mode-option strong{font-size:14px}.mode-option small{font-size:11px}.finish-card{top:50%;transform:translate(-50%,-50%);max-height:calc(100dvh - 24px);overflow-y:auto;padding:16px}.finish-card h2{font-size:30px;margin:10px 0}.finish-card .primary{min-height:44px}}
