:root{--yellow: #f2cd37;--red: #c91a09;--red-dark: #8f1307;--blue: #0055bf;--ink: #1b2a34;--white: #ffffff;--map-sea: #4fb3a9;--map-land: #f2cd37;--display: "Bowlby One", Impact, "Arial Black", sans-serif;--body: "Rubik", system-ui, sans-serif;--stud: radial-gradient(circle at 45% 40%, rgba(255, 255, 255, .55) 0 30%, rgba(255, 255, 255, .15) 31% 46%, rgba(0, 0, 0, .22) 47% 52%, transparent 53%)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#8cc5f0;color:var(--ink);font-family:var(--body);font-weight:500}#stage,#stage canvas{position:fixed;inset:0;display:block}[hidden]{display:none!important}.screen{position:fixed;inset:0;z-index:10;display:flex}.screen.dim{background:#1b2a348c;align-items:center;justify-content:center}.title{margin:0;font-family:var(--display);font-weight:400;line-height:.86;letter-spacing:.01em;text-transform:uppercase;display:flex;flex-direction:column}.title span:first-child{font-size:clamp(34px,5vw,58px);color:var(--white);-webkit-text-stroke:7px var(--ink);paint-order:stroke fill}.title span:last-child{font-size:clamp(40px,5.6vw,76px);color:var(--yellow);-webkit-text-stroke:9px var(--ink);paint-order:stroke fill;text-shadow:0 7px 0 var(--ink)}#loading{align-items:center;justify-content:center;background:#8cc5f0}.load-box{display:flex;flex-direction:column;align-items:center;gap:22px}.load-bar{width:min(420px,80vw);height:26px;background:var(--white);border:4px solid var(--ink);border-radius:6px;overflow:hidden}.load-fill{height:100%;width:0;background:var(--red);background-image:var(--stud);background-size:26px 18px;background-position:0 1px;transition:width .2s}.load-text{margin:0;font-size:19px;font-weight:700}#menu{align-items:stretch;justify-content:flex-start}.menu-panel{width:min(560px,100%);padding:clamp(18px,4vh,40px) clamp(16px,3vw,40px);display:flex;flex-direction:column;gap:18px;overflow-y:auto;overflow-x:hidden;background:linear-gradient(90deg,rgba(27,42,52,.62) 0%,rgba(27,42,52,.38) 75%,transparent 100%)}.tagline{margin:6px 0 0;color:var(--white);font-size:19px;font-weight:700;max-width:30em;text-shadow:0 2px 0 var(--ink)}.eyebrow{margin:6px 0 0;font-family:var(--body);font-weight:800;font-size:21px;color:var(--yellow);text-shadow:0 2px 0 var(--ink);letter-spacing:.02em}.riders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rider{position:relative;display:grid;grid-template-columns:76px 1fr;align-items:center;gap:10px;padding:10px 12px 10px 8px;border:4px solid var(--ink);border-radius:8px;background:var(--white);color:var(--ink);font:inherit;text-align:left;cursor:pointer;box-shadow:0 5px 0 var(--ink);transition:transform .08s,box-shadow .08s}.rider img{width:76px;height:76px;object-fit:contain}.rider .r-name{display:block;font-weight:800;font-size:18px;line-height:1.1}.rider .r-croc{display:block;font-size:15px;margin-top:3px;color:#3d4b55}.rider:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--ink)}.rider[aria-checked=true]{background:var(--yellow);box-shadow:0 5px 0 var(--ink),0 0 0 4px var(--white)}.rider:focus-visible,button:focus-visible{outline:4px solid var(--blue);outline-offset:3px}.btn-brick{position:relative;margin-top:14px;padding:16px 28px 14px;border:4px solid var(--ink);border-radius:8px;background:var(--red);color:var(--white);font-family:var(--display);font-weight:400;font-size:26px;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;box-shadow:0 6px 0 var(--ink);transition:transform .08s,box-shadow .08s}.btn-brick:before{content:"";position:absolute;left:18px;right:18px;top:-16px;height:14px;background:radial-gradient(ellipse 13px 8px at 50% 70%,var(--red) 0 92%,transparent 100%) 0 0 / 46px 14px repeat-x;filter:drop-shadow(0 -3px 0 var(--ink)) drop-shadow(3px 0 0 var(--ink)) drop-shadow(-3px 0 0 var(--ink))}.btn-brick:hover{transform:translateY(-2px);box-shadow:0 8px 0 var(--ink)}.btn-brick:active{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}.btn-start{align-self:flex-start;font-size:clamp(24px,3vw,32px)}.btn-plain{padding:12px 20px;border:3px solid var(--ink);border-radius:8px;background:var(--white);color:var(--ink);font:inherit;font-weight:700;font-size:18px;cursor:pointer}.btn-plain:hover{background:#e8eef2}.controls{display:flex;flex-direction:column;gap:8px;color:var(--white);font-size:16px;font-weight:700;text-shadow:0 1px 0 var(--ink)}kbd{display:inline-block;min-width:28px;margin-right:3px;padding:2px 7px;border:2px solid var(--ink);border-radius:5px;background:var(--white);color:var(--ink);font:700 14px var(--body);text-align:center;text-shadow:none;box-shadow:0 2px 0 var(--ink)}.credits{position:fixed;right:16px;bottom:12px;margin:0;max-width:min(560px,calc(100% - 32px));padding:6px 10px;border-radius:6px;background:#1b2a34bf;color:var(--white);font-size:13px;line-height:1.4}.credits a{color:var(--yellow)}.card{display:flex;flex-direction:column;gap:12px;min-width:min(340px,92vw);padding:28px 28px 24px;border:5px solid var(--ink);border-radius:10px;background:var(--white);box-shadow:0 9px 0 var(--ink)}.card-wide{width:min(560px,94vw)}.card-title{margin:0 0 4px;font-family:var(--display);font-weight:400;font-size:34px;text-transform:uppercase}.card-actions{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.card-actions .btn-brick{margin-top:18px}.results-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.results-list li{display:grid;grid-template-columns:52px 56px 1fr auto;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:3px solid var(--ink);border-radius:8px;font-size:18px;font-weight:700}.results-list li.me{background:var(--yellow)}.results-list .pos{font-family:var(--display);font-size:28px;text-align:center}.results-list img{width:56px;height:56px;object-fit:contain}.results-list .t{font-variant-numeric:tabular-nums}#sound{position:fixed;left:16px;bottom:14px;z-index:20;display:flex;align-items:center;gap:10px}#sound .vol{display:none}body.ui-open #sound .vol{display:flex}.vol{align-items:center;gap:8px;padding:5px 10px;border:3px solid var(--ink);border-radius:6px;background:var(--white);color:var(--ink);font:700 15px var(--body)}.vol input{width:110px;accent-color:var(--red)}#quality,#fullscreen{display:none}body.ui-open #quality,body.ui-open #fullscreen{display:block}#mute,#quality,#fullscreen{padding:6px 12px;border:3px solid var(--ink);border-radius:6px;background:var(--white);color:var(--ink);font:700 15px var(--body);cursor:pointer}#hud-root{position:fixed;inset:0;pointer-events:none;z-index:5}.hud{position:absolute;inset:0}.hud-rank{position:absolute;left:18px;top:26px;display:flex;align-items:baseline;gap:2px;padding:8px 18px 4px 16px;border:4px solid var(--ink);border-radius:8px;background:var(--yellow);box-shadow:0 6px 0 var(--ink)}.hud-rank:before{content:"";position:absolute;left:12px;right:12px;top:-15px;height:13px;background:radial-gradient(ellipse 12px 7px at 50% 72%,var(--yellow) 0 92%,transparent 100%) 0 0 / 38px 13px repeat-x;filter:drop-shadow(0 -3px 0 var(--ink)) drop-shadow(3px 0 0 var(--ink)) drop-shadow(-3px 0 0 var(--ink))}.rank-num{font-family:var(--display);font-size:64px;line-height:1}.rank-of{font-family:var(--display);font-size:28px}.hud-strip{position:absolute;left:18px;top:128px;display:flex;flex-direction:column;gap:2px;padding:8px 14px;border-radius:8px;background:#1b2a34d1;color:var(--white);font-size:20px;min-width:170px}.hud-strip b{font-weight:800;font-variant-numeric:tabular-nums}.hud-strip .label{display:inline-block;width:42px;color:var(--yellow);font-weight:700}.hud-item{position:absolute;right:22px;top:26px;display:flex;flex-direction:column;align-items:center;gap:4px}.item-slot{width:108px;height:108px;display:grid;place-items:center;border:4px solid var(--ink);border-radius:10px;background:#ffffffd1;box-shadow:0 6px 0 var(--ink),inset 0 -8px #1b2a341f}.has-item .item-slot{background:var(--white)}.item-slot img{width:96px;height:96px;object-fit:contain}.item-name{margin-top:6px;padding:2px 10px;border-radius:6px;background:#1b2a34d1;color:var(--white);font-weight:800;font-size:17px}.has-item .item-name{background:var(--red)}.item-key{color:var(--ink);background:var(--white);border:2px solid var(--ink);border-radius:5px;padding:0 6px;font-size:13px;font-weight:700}.hud-item:not(.has-item) .item-key{display:none}.pop .item-slot{animation:pop .35s ease-out}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}.hud-msg{position:absolute;left:50%;top:18%;transform:translate(-50%,-10px);padding:8px 22px 6px;border:4px solid var(--ink);border-radius:8px;background:var(--white);font-family:var(--display);font-size:clamp(22px,3vw,34px);white-space:nowrap;opacity:0;transition:opacity .2s,transform .2s;box-shadow:0 6px 0 var(--ink)}.hud-msg.show{opacity:1;transform:translate(-50%)}.hud-msg.bad{background:var(--red);color:var(--white)}.hud-msg.good{background:var(--yellow)}.hud-count{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%);font-family:var(--display);font-size:clamp(90px,16vw,200px);color:var(--yellow);-webkit-text-stroke:12px var(--ink);paint-order:stroke fill;text-shadow:0 10px 0 var(--ink)}.hud-count.tick{animation:tick .9s ease-out forwards}@keyframes tick{0%{transform:translate(-50%,-50%) scale(1.6);opacity:0}15%{transform:translate(-50%,-50%) scale(1);opacity:1}80%{opacity:1}to{opacity:0}}.gps-mount{position:absolute;right:26px;bottom:26px;perspective:700px}.gps-mount{visibility:hidden}.gps-tile{width:clamp(170px,20vw,240px);aspect-ratio:1;padding:7px;border-radius:9px;background:#f4f4f4;border:3px solid var(--ink);transform:rotateX(24deg);transform-origin:50% 100%;box-shadow:0 10px #9da3a7,0 13px 0 var(--ink)}.gps-tile canvas{width:100%;height:100%;display:block;border-radius:4px;border-bottom:3px solid rgba(27,42,52,.35)}.gps-hinge{width:46%;height:18px;margin:6px auto 0;border:3px solid var(--ink);border-radius:0 0 6px 6px;background:#6c6e68}@media(max-width:700px){.riders{grid-template-columns:1fr}.rank-num{font-size:46px}.hud-strip{top:104px;font-size:17px;min-width:140px}.item-slot{width:84px;height:84px}.item-slot img{width:74px;height:74px}.credits{position:static;margin:0 16px 16px}}@media(prefers-reduced-motion:reduce){.hud-count.tick,.pop .item-slot{animation:none}.hud-msg{transition:none}}#error-report{position:fixed;left:16px;right:16px;top:16px;z-index:50;margin:0;padding:10px 14px;border:3px solid var(--ink);border-radius:8px;background:var(--red);color:var(--white);font:700 15px/1.4 var(--body);white-space:pre-wrap}.controls-touch,body.is-touch .controls{display:none}body.is-touch .controls-touch{display:flex}body.is-touch,body.is-touch #stage{touch-action:none;user-select:none;-webkit-user-select:none}body.is-touch .gps-mount{display:none}.touch{position:fixed;inset:0;z-index:6;pointer-events:none}.touch-stick-zone{position:absolute;left:0;bottom:0;width:45%;height:70%;pointer-events:auto;touch-action:none}.touch-stick{position:absolute;width:160px;height:160px;margin:-80px 0 0 -80px;border:4px solid rgba(27,42,52,.75);border-radius:50%;background:#ffffff38;display:none}.touch-stick.active{display:block}.touch-knob{position:absolute;left:50%;top:50%;width:60px;height:60px;margin:-30px 0 0 -30px;border:4px solid var(--ink);border-radius:50%;background:var(--yellow);box-shadow:0 4px 0 var(--ink)}.touch-btn{position:absolute;pointer-events:auto;touch-action:none;border:4px solid var(--ink);border-radius:50%;color:var(--white);font:800 18px var(--body);box-shadow:0 5px 0 var(--ink)}.touch-btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--ink)}.touch-fire{right:calc(22px + env(safe-area-inset-right));bottom:26px;width:104px;height:104px;background:var(--red)}.touch-reset{right:calc(140px + env(safe-area-inset-right));bottom:30px;width:58px;height:58px;background:var(--blue);font-size:26px}.touch-pause{left:50%;top:12px;transform:translate(-50%);width:50px;height:50px;background:var(--ink);border-color:var(--white);font-size:17px}.touch-pause:active{transform:translate(-50%) translateY(3px)}.touch-fs{left:calc(50% + 34px);top:12px;width:50px;height:50px;background:var(--ink);border-color:var(--white);font-size:22px}.card-text{margin:0;max-width:34em;font-size:17px;line-height:1.45}@media(max-height:500px){.hud-rank{top:20px;padding:4px 12px 2px}.rank-num{font-size:40px}.rank-of{font-size:20px}.hud-strip{top:86px;font-size:15px;min-width:120px;padding:5px 10px}.hud-item{top:14px;right:16px}.item-slot{width:76px;height:76px}.item-slot img{width:66px;height:66px}.item-name{font-size:14px}.hud-count{font-size:110px}.menu-panel{gap:10px;padding:14px 16px}.title span:first-child{font-size:30px}.title span:last-child{font-size:44px}.tagline,.eyebrow{font-size:15px}.rider{grid-template-columns:52px 1fr;padding:6px 8px}.rider img{width:52px;height:52px}.btn-start{font-size:20px;padding:10px 18px}.riders{grid-template-columns:repeat(2,minmax(0,1fr))}.controls{font-size:13px;gap:4px}#sound{inset:10px 10px auto auto;flex-direction:column;align-items:flex-end;gap:6px}#sound .vol,#mute,#quality,#fullscreen{font-size:13px;padding:4px 8px;border-width:2px}.vol input{width:80px}.credits{max-width:calc(100% - 600px);min-width:200px;font-size:11px}body:not(.ui-open) #sound{top:18px;right:auto;left:calc(50% + 96px)}}body.is-touch .item-key{display:none}#rotate{display:none;z-index:40;align-items:center;justify-content:center;background:#237841;padding:24px;text-align:center}body.portrait-block #rotate{display:flex}.rotate-box{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--white)}.rotate-box .card-title{color:var(--yellow);-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;font-size:30px}.rotate-box .card-text{color:var(--white);font-weight:700;text-shadow:0 2px 0 var(--ink)}.rotate-btn{margin-top:16px}.rotate-phone{width:70px;height:120px;border:6px solid var(--ink);border-radius:14px;background:var(--yellow);box-shadow:0 6px 0 var(--ink);animation:rotate-phone 2.4s ease-in-out infinite}@keyframes rotate-phone{0%,25%{transform:rotate(0)}50%,85%{transform:rotate(-90deg)}to{transform:rotate(0)}}@media(prefers-reduced-motion:reduce){.rotate-phone{animation:none;transform:rotate(-90deg)}}body.is-touch .menu-panel{scrollbar-width:none}body.is-touch .menu-panel::-webkit-scrollbar{display:none}@media(max-height:500px){.menu-panel{width:min(620px,66vw);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"title   eyebrow" "tagline riders" "start   riders" "hints   riders";grid-template-rows:auto auto auto 1fr;column-gap:16px;row-gap:8px;align-content:start;overflow:hidden;padding:12px 14px}.menu-panel .title{grid-area:title}.menu-panel .tagline{grid-area:tagline;margin:0;font-size:14px}.menu-panel .eyebrow{grid-area:eyebrow;align-self:end;margin:0;font-size:16px}.menu-panel .riders{grid-area:riders;align-self:start;grid-template-columns:minmax(0,1fr);gap:6px}.menu-panel .btn-start{grid-area:start;justify-self:start;margin-top:16px;font-size:18px;padding:8px 14px 6px}.menu-panel .controls,.menu-panel .controls-touch{grid-area:hints;font-size:12px;gap:2px;line-height:1.3}.rider{grid-template-columns:40px 1fr;padding:3px 8px 3px 4px;box-shadow:0 3px 0 var(--ink);border-width:3px}.rider img{width:40px;height:40px}.rider .r-name{font-size:15px}.rider .r-croc{font-size:12px;margin-top:1px}.credits{font-size:10px;padding:4px 8px;bottom:8px;right:10px;max-width:calc(100% - min(620px,66vw) - 30px)}.card{padding:14px 18px 12px;gap:8px}.card-title{font-size:24px}.results-list{gap:4px}.results-list li{grid-template-columns:34px 38px 1fr auto;padding:2px 10px 2px 4px;font-size:15px}.results-list .pos{font-size:20px}.results-list img{width:38px;height:38px}.card-actions .btn-brick{margin-top:12px;font-size:18px;padding:8px 14px 6px}.btn-plain{padding:8px 14px;font-size:15px}}@media(max-height:500px){body:not(.menu-open) #sound .vol,body:not(.menu-open) #quality,body:not(.menu-open) #fullscreen{display:none}.menu-panel .btn-start{white-space:nowrap;font-size:16px}}.credits-short{display:none}@media(max-height:500px){.credits-long{display:none}.credits-short{display:inline}}body.is-touch #sound .vol{display:none!important}@media(max-height:500px){.menu-panel{width:100%;grid-template-columns:minmax(0,31%) 1fr minmax(0,31%);grid-template-areas:"eyebrow . title" "riders  . tagline" "riders  . start" "riders  . hints";grid-template-rows:auto auto auto 1fr;background:linear-gradient(90deg,rgba(27,42,52,.62) 0%,rgba(27,42,52,.45) 30%,transparent 40%,transparent 60%,rgba(27,42,52,.45) 70%,rgba(27,42,52,.62) 100%);padding-bottom:46px}.menu-panel .eyebrow{align-self:start}.menu-panel .btn-start{justify-self:stretch;text-align:center}body.menu-open #sound{inset:auto 10px 8px auto;flex-direction:row;align-items:center;gap:6px}.credits{left:14px;right:auto;bottom:6px;max-width:calc(31% - 14px)}}@media(max-height:380px){.rider{grid-template-columns:34px 1fr;padding:1px 8px 1px 4px}.rider img{width:34px;height:34px}.menu-panel .riders{gap:5px}}.controls{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:6px;align-items:center;margin:0}body.is-touch .controls-touch{display:grid}.controls dt{margin:0;white-space:nowrap}.controls dd{margin:0;color:var(--white);font-weight:600}.controls dd b{color:var(--yellow);font-weight:800}.controls .muted{color:#cfe0d6;font-weight:500}.chip{display:inline-block;min-width:26px;padding:1px 8px;border:2px solid var(--ink);border-radius:999px;color:var(--white);font-weight:800;text-align:center;text-shadow:none}.chip-stick{background:var(--yellow);color:var(--ink)}.chip-fire{background:var(--red)}.chip-reset{background:var(--blue)}.chip-pause{background:var(--ink);border-color:var(--white)}@media(max-height:500px){.menu-panel .controls{row-gap:4px;column-gap:8px}.menu-panel .controls kbd{font-size:11px;min-width:20px;padding:0 4px}.chip{font-size:11px;padding:0 6px}}
