@font-face{font-family:Gochi Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/gochi-hand-latin-400-normal-D3Iu69dp.woff2) format("woff2"),url(/assets/gochi-hand-latin-400-normal-DC0_N7qt.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Brush;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-brush-latin-ext-400-normal-Dwx6Pt9q.woff2) format("woff2"),url(/assets/caveat-brush-latin-ext-400-normal-CLkQDail.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat Brush;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/caveat-brush-latin-400-normal-2w-6t9gW.woff2) format("woff2"),url(/assets/caveat-brush-latin-400-normal-B3pS0In6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #22304a;--paper: #fffdf5;--paper-2: #fff3c9;--accent: #ff7b54;--accent-2: #4dabf7;--good: #2fb86b;--bad: #ef5b5b;--author: #2ee6a6;--gold: #ffd23f;--silver: #cfd8e3;--bronze: #e0955f;--hand: "Gochi Hand", "Comic Sans MS", cursive;--title: "Caveat Brush", "Gochi Hand", cursive;--wobble: 255px 15px 225px 15px / 15px 225px 15px 255px;--wobble-2: 15px 255px 15px 225px / 225px 15px 255px 15px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#5ec8ff;font-family:var(--hand);color:var(--ink);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none}#game{position:fixed;inset:0;display:block}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;gap:18px;padding:16px;overflow-y:auto}.screen>:first-child{margin-top:auto}.screen>:last-child{margin-bottom:auto}.screen.dim{background:#141e3c40}.logo{font-family:var(--title);font-size:clamp(40px,15vw,150px);line-height:.9;text-transform:uppercase;letter-spacing:.02em;margin:0;display:flex;filter:drop-shadow(0 0 5px rgba(255,255,255,.75))}.logo span{display:inline-block;animation:bob 2.4s ease-in-out infinite;color:transparent;-webkit-background-clip:text;background-clip:text;filter:drop-shadow(2px 0 0 var(--ink)) drop-shadow(-2px 0 0 var(--ink)) drop-shadow(0 2px 0 var(--ink)) drop-shadow(0 -2px 0 var(--ink)) drop-shadow(4px 4px 0 var(--ink))}.logo .red{background-image:linear-gradient(180deg,#ff8a7a,#ef4b3f,#b8232a)}.logo .purple{background-image:linear-gradient(180deg,#d59bff,#a355f0,#7029c4)}.logo .blue{background-image:linear-gradient(180deg,#8fd0ff,#3f8fe8,#2262bd)}.logo .ch-t{position:relative;top:.04em;margin-left:-.05em}.logo .ch-v{position:relative;top:.03em}@keyframes bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}.btn{font-family:var(--hand);font-size:28px;color:var(--ink);background:var(--paper);border:3px solid var(--ink);border-radius:var(--wobble);padding:8px 28px 10px;cursor:pointer;box-shadow:4px 5px 0 var(--ink);transition:transform .08s,box-shadow .08s;min-width:160px}.btn:hover{transform:translate(-1px,-2px) rotate(-1deg);box-shadow:5px 7px 0 var(--ink)}.btn:active{transform:translate(3px,4px);box-shadow:1px 1px 0 var(--ink)}.btn.primary{background:var(--accent);color:#fff;-webkit-text-stroke:.6px var(--ink);font-size:34px}.btn.small{font-size:20px;padding:4px 14px 6px;min-width:0;box-shadow:3px 3px 0 var(--ink)}.btn:focus-visible{outline:3px dashed var(--accent-2);outline-offset:4px}.row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.icon{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.2em;margin-right:.25em;flex:none}.icon svg{display:block;width:100%;height:100%;overflow:visible;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}h2 .icon{width:1em;height:1em;vertical-align:-.12em;margin-right:.15em;filter:drop-shadow(3px 3px 0 var(--ink))}.panel{background:var(--paper);border:3px solid var(--ink);border-radius:var(--wobble-2);box-shadow:6px 7px 0 var(--ink);padding:18px 24px;max-width:min(560px,100%)}h2{font-family:var(--title);font-size:clamp(40px,7vw,64px);margin:0;color:#fff;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--ink)}.select{gap:clamp(10px,2vh,18px)}.select h2{font-size:clamp(36px,min(5vw,7vh),56px);line-height:1}.sel-grid{display:grid;gap:18px;width:min(1320px,100%);align-items:stretch;grid-template-columns:minmax(240px,280px) minmax(360px,540px) minmax(340px,440px);grid-template-areas:"overall list details";justify-content:center}.sel-grid.offline{grid-template-columns:minmax(340px,460px) minmax(320px,440px);grid-template-areas:"list details"}.sel-overall{grid-area:overall}.sel-grid>.sel-overall{contain:size;min-height:360px}.sel-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:2px;padding-right:4px}.sel-scroll,.lb-list{scrollbar-width:thin;scrollbar-color:rgba(34,48,74,.35) transparent}.sel-pin{flex:none;border-top:2px dashed rgba(34,48,74,.3);padding-top:6px}.sel-pin .mb-row{font-size:20px}.sel-list{grid-area:list}.sel-details{grid-area:details}.sel-grid>.sel-details{overflow:hidden}.sel-grid>.panel{max-width:none;min-width:0;padding:14px 16px;display:flex;flex-direction:column;gap:10px}@media(max-width:1040px){.sel-grid{grid-template-columns:minmax(340px,460px) minmax(320px,440px);grid-template-areas:"list details" "overall details"}}@media(max-width:720px){.sel-grid,.sel-grid.offline{grid-template-columns:minmax(0,480px);grid-template-areas:"list" "overall"}.sel-grid>.sel-details{display:none}.slots{grid-template-rows:none;grid-auto-flow:row}.slot.empty~.slot.empty{display:none}.slot.empty .slot-name:after{content:"More tracks coming soon";opacity:.5}}.slots{display:grid;grid-template-rows:repeat(10,auto);grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px 10px}.sel-list .slots{flex:1;align-content:space-between}.slot{display:flex;align-items:center;gap:8px;min-width:0;padding:3px 8px 3px 4px;font-family:var(--hand);font-size:19px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border:2.5px solid var(--ink);border-radius:12px 16px 10px 14px;transition:transform .08s,background .08s}.slot:nth-child(2n){border-radius:16px 10px 14px 12px}.slot:hover:not(:disabled),.slot.on{transform:translate(3px) rotate(-.6deg)}.slot.on{background:var(--paper-2);box-shadow:3px 3px 0 var(--ink)}.slot:focus-visible{outline:3px dashed var(--accent-2);outline-offset:2px}.slot-num{flex:none;width:1.6em;height:1.6em;display:grid;place-items:center;border-radius:50%;font-family:var(--title);font-size:18px;color:#fff;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;border:2px solid var(--ink);background:var(--accent-2)}.slot.grassland .slot-num{background:#62d64f}.slot.icecave .slot-num{background:#8ff3ff}.slot.neon .slot-num{background:#ff4fd8}.slot.canyon .slot-num{background:#ff7a59}.slot.beach .slot-num{background:#2fb3c9}.slot.autumn .slot-num{background:#e8812f}.slot.sky .slot-num{background:#8ec5ff}.slot.reef .slot-num{background:#1fb5b0}.slot.candy .slot-num{background:#ff6fb5}.slot.alpine .slot-num{background:#9fb4d0}.slot.mine .slot-num{background:#ffb142}.slot.factory .slot-num{background:#ffc300}.slot.space .slot-num{background:#9d8fff}.slot.city .slot-num{background:#4da3d9}.slot.volcano .slot-num{background:#ff6a00}.slot.haunted .slot-num{background:#b8ff5c}.slot.circus .slot-num{background:#e03b4f}.slot.pirate .slot-num{background:#e9c46a}.slot.retro .slot-num{background:#5c94fc}.slot.aurora .slot-num{background:#5cffb0}.slot-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot .medal{flex:none;width:22px;height:22px;border-width:2.5px}.slot .medal.author:after{font-size:12px}.slot.empty{cursor:default;background:transparent;border-style:dashed;border-color:#22304a4d}.slot.empty .slot-num{background:transparent;border-style:dashed;border-color:#22304a4d;color:#22304a66;-webkit-text-stroke:0}.sel-details .art{height:96px;margin:-14px -16px 0;flex:none}.sel-name{font-family:var(--title);font-size:34px;line-height:1}.medal-times{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:4px}.medal-time{display:flex;align-items:center;gap:4px;font-size:18px;font-variant-numeric:tabular-nums;opacity:.45}.medal-time.got{opacity:1}.medal-time .medal{width:20px;height:20px;border-width:2px}.medal-time .medal.author:after{font-size:11px}.sel-you{display:flex;align-items:center;gap:14px;font-size:20px;white-space:nowrap;min-height:48px;padding:6px 10px;background:var(--paper-2);border:2px dashed var(--ink);border-radius:var(--wobble)}.sel-pb{display:inline-flex;align-items:center;gap:6px;font-family:var(--title);font-size:28px;line-height:1;font-variant-numeric:tabular-nums}.sel-pb .medal{width:24px;height:24px}.sel-pb.none{opacity:.3}.sel-place{margin-left:auto;white-space:nowrap}.sel-place b{font-family:var(--title);font-size:26px}.sel-sub{display:flex;align-items:center;gap:6px;font-family:var(--title);font-size:24px;line-height:1;margin-bottom:2px}.sel-sub .icon{width:.95em;height:.95em;margin:0;vertical-align:0}.sel-board{display:flex;flex-direction:column;gap:2px}.sel-details .row{margin-top:auto;align-items:center}.sel-details .btn.primary{padding:4px 34px 6px}.mb-row{display:grid;grid-template-columns:minmax(2em,max-content) minmax(0,1fr) auto;gap:6px;align-items:baseline;padding:0 6px;border-radius:8px;font-size:18px;line-height:1.3}.mb-rank{font-family:var(--title);text-align:left}.mb-row.top1 .mb-rank{color:#c99400}.mb-row.top2 .mb-rank{color:#7b8794}.mb-row.top3 .mb-rank{color:#b86a33}.mb-who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mb-val{font-variant-numeric:tabular-nums;white-space:nowrap}.mb-row.me{background:var(--paper-2);outline:2px solid var(--accent);outline-offset:-1px}.mb-row.placeholder{opacity:.3}.mb-row.placeholder .mb-rank{color:inherit}.mb-gap{text-align:center;line-height:.8;opacity:.5}.mb-empty{font-size:17px;padding:2px 6px}.art{position:relative;overflow:hidden;border-bottom:3px solid var(--ink)}.art .num{position:absolute;left:12px;top:6px;font-family:var(--title);font-size:48px;color:#fff;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill}.art.grassland{background:linear-gradient(#5ec8ff,#d9f6ff 60%,#62d64f 60% 68%,#b9793d 68%)}.art.icecave{background:linear-gradient(#7c83fd,#c4e7ff 60%,#8ff3ff 60% 68%,#5a64d6 68%)}.art.neon{background:linear-gradient(#0b0a2e,#3b1263 60%,#ff4fd8 60% 64%,#17133f 64%)}.art.canyon{background:linear-gradient(#ff7a59,#ffd98e 60%,#ffb35c 60% 68%,#d9824a 68%)}.art.beach{background:linear-gradient(#3fb8ff,#fff4d6 60%,#2fb3c9 60% 66%,#f1d38c 66%)}.art.autumn{background:linear-gradient(#f7a35c,#fde7c2 60%,#e8812f 60% 66%,#a5562d 66%)}.art.sky{background:linear-gradient(#8ec5ff,#fff0fa 60%,#fff 60% 66%,#c8dcff 66%)}.art.reef{background:linear-gradient(#0a4d7a,#1fb5b0 60%,#ff8a8a 60% 66%,#e8c98a 66%)}.art.candy{background:linear-gradient(#ffb3d9,#fff0f7 60%,#ff4fa3 60% 66%,#ffc2de 66%)}.art.alpine{background:linear-gradient(#6fa8dc,#eef6ff 60%,#fff 60% 66%,#9fb4d0 66%)}.art.mine{background:linear-gradient(#2a1d14,#5a3d27 60%,#ffb142 60% 66%,#3d2a1c 66%)}.art.factory{background:linear-gradient(#8a939e,#d9d4c7 60%,#ffc300 60% 66%,#4a4e52 66%)}.art.space{background:linear-gradient(#05030f,#1b1440 60%,#9dff5c 60% 66%,#2b2356 66%)}.art.city{background:linear-gradient(#4da3d9,#f2e8d8 60%,#9aa9b5 60% 66%,#3f5163 66%)}.art.volcano{background:linear-gradient(#1f0a0a,#8c2a12 60%,#ff6a00 60% 66%,#3d1410 66%)}.art.haunted{background:linear-gradient(#1c1233,#5b4a7a 60%,#b8ff5c 60% 66%,#2e2447 66%)}.art.circus{background:linear-gradient(#5a1024,#b8283f 60%,#ffd23f 60% 66%,#7a1530 66%)}.art.pirate{background:linear-gradient(#2b3a55,#f2a65a 60%,#3f5f7a 60% 66%,#1f4a5c 66%)}.art.retro{background:linear-gradient(#5c94fc,#8fb8ff 60%,#00a800 60% 66%,#c84c0c 66%)}.art.aurora{background:linear-gradient(#030a1f,#123a4a 60%,#5cffb0 60% 66%,#0d2233 66%)}.medal{display:inline-block;width:26px;height:26px;border-radius:50%;border:3px solid var(--ink);vertical-align:middle;position:relative}.medal.author{background:var(--author)}.medal.gold{background:var(--gold)}.medal.silver{background:var(--silver)}.medal.bronze{background:var(--bronze)}.medal.none{background:transparent;border-style:dashed;opacity:.5}.medal.big{width:110px;height:110px;border-width:5px;box-shadow:4px 5px 0 var(--ink)}.medal.author:after{content:"★";position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:var(--ink)}.medal.big.author:after{font-size:56px}.hud{position:absolute;inset:0;pointer-events:none}.hud>*{pointer-events:auto}.timer{position:absolute;top:10px;left:50%;transform:translate(-50%) rotate(-1deg);font-family:var(--title);font-size:clamp(40px,7vw,64px);color:#fff;-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;text-shadow:3px 4px 0 var(--ink);display:flex;pointer-events:none}.timer .d{display:inline-block;width:.52em;text-align:center}.timer .p{display:inline-block;width:.25em;text-align:center}.target{position:absolute;top:clamp(62px,10vw,86px);left:50%;transform:translate(-50%);font-size:20px;background:var(--paper);border:2.5px solid var(--ink);border-radius:var(--wobble);padding:0 12px 2px;white-space:nowrap;display:flex;gap:6px;align-items:center;pointer-events:none}.target .medal{width:16px;height:16px;border-width:2px}.target .medal.author:after{font-size:9px}.hud-left{position:absolute;top:12px;left:12px;display:flex;gap:8px}.btn.icon-btn{display:inline-grid;place-items:center;width:46px;height:40px;padding:0}.btn.icon-btn .icon{width:22px;height:22px;margin:0}kbd .icon{width:.8em;height:.8em;margin:0;vertical-align:-.05em}.hud-right{position:absolute;top:12px;right:12px;text-align:right;font-size:20px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;pointer-events:none}.hud-right>*{pointer-events:auto}.hud-right .pbbox{background:var(--paper);border:2.5px solid var(--ink);border-radius:var(--wobble-2);padding:0 10px 2px}.hud-right .cpbox{font-size:17px;font-variant-numeric:tabular-nums;background:#fffdf5bf;border:2px solid rgba(34,48,74,.6);border-radius:var(--wobble);padding:0 9px 1px}.hud-right .ghostbox{font-size:16px;color:#22304acc;background:#fffdf5bf;border:2px solid rgba(34,48,74,.4);border-radius:var(--wobble);padding:0 8px 1px}.hud-right .ghostbox[hidden]{display:none}.split{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);font-family:var(--title);font-size:48px;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink);pointer-events:none;animation:pop 1.4s ease-out forwards}.split.ahead{color:#7dffb0}.split.behind{color:#ff8a8a}.split.neutral{color:#fff}@keyframes pop{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}25%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-70%)}}.countdown{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);font-family:var(--title);font-size:clamp(90px,18vw,180px);color:var(--gold);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:6px 6px 0 var(--ink);pointer-events:none;animation:count .5s ease-out}.countdown.go{color:#7dffb0}@keyframes count{0%{transform:translate(-50%,-50%) scale(1.8) rotate(-10deg);opacity:0}40%{transform:translate(-50%,-50%) scale(1) rotate(3deg);opacity:1}to{transform:translate(-50%,-50%) scale(1) rotate(0)}}.oops{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%) rotate(-4deg);font-family:var(--title);font-size:72px;color:#ff8a8a;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--ink);pointer-events:none;animation:pop .9s ease-out forwards}.missed-cp{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%) rotate(-3deg);display:flex;flex-direction:column;align-items:center;gap:2px;width:max-content;max-width:calc(100% - 32px);font-family:var(--title);font-size:clamp(44px,7vw,76px);line-height:1;text-align:center;color:#ff8a8a;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--ink);pointer-events:none;animation:missed-cp 2.6s ease-out forwards}.missed-cp small{font-size:.42em;color:#fff;-webkit-text-stroke:2px var(--ink);text-shadow:2px 2px 0 var(--ink)}@keyframes missed-cp{0%{opacity:0;transform:translate(-50%,-30%) rotate(-3deg) scale(.6)}8%{opacity:1;transform:translate(-50%,-50%) rotate(-3deg) scale(1.12)}16%{transform:translate(-50%,-50%) rotate(-3deg) scale(1)}85%{opacity:1}to{opacity:0;transform:translate(-50%,-60%) rotate(-3deg)}}.replay-frame{position:absolute;inset:0;pointer-events:none;border:10px solid rgba(20,30,60,.6);box-shadow:inset 0 0 0 3px var(--ink),inset 0 0 90px #141e3c73}.replay-badge{position:absolute;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%) rotate(-2deg);display:flex;align-items:center;gap:10px;font-family:var(--title);font-size:clamp(30px,5vw,44px);line-height:1;color:#fff;background:var(--bad);border:3px solid var(--ink);border-radius:var(--wobble);box-shadow:4px 5px 0 var(--ink);padding:4px 18px 6px;letter-spacing:2px;pointer-events:none}.replay-badge .rec{width:.45em;height:.45em;border-radius:50%;background:#fff;border:2.5px solid var(--ink);animation:rec-blink 1s steps(1) infinite}.replay-badge.static{position:static;transform:rotate(-2deg);font-size:26px}@keyframes rec-blink{50%{opacity:0}}.replay-who{position:absolute;top:18px;right:18px;max-width:calc(50vw - 130px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:22px;background:var(--paper);border:2.5px solid var(--ink);border-radius:var(--wobble-2);padding:0 12px 2px}@media(max-width:620px){.replay-who{top:80px;right:auto;left:50%;transform:translate(-50%);max-width:calc(100vw - 48px);font-size:20px}}.hud.replay .timer{top:18px}.hud.replay .hud-left{top:18px;left:18px}.freecam{position:absolute;inset:0;pointer-events:none}.freecam>*{pointer-events:auto}.freecam-surface{position:absolute;inset:0;cursor:grab;touch-action:none}.freecam-surface.dragging{cursor:grabbing}.freecam-frame{position:absolute;inset:0;pointer-events:none;border:6px dashed var(--accent-2);box-shadow:inset 0 0 0 3px var(--ink),inset 0 0 70px #143c7859}.freecam-badge{position:absolute;left:50%;top:calc(16px + env(safe-area-inset-top));transform:translate(-50%) rotate(-2deg);display:flex;align-items:center;gap:8px;font-family:var(--title);font-size:clamp(26px,4.5vw,38px);line-height:1;color:#fff;background:var(--accent-2);-webkit-text-stroke:.6px var(--ink);border:3px solid var(--ink);border-radius:var(--wobble);box-shadow:4px 5px 0 var(--ink);padding:4px 16px 6px;letter-spacing:2px;pointer-events:none}.freecam-badge .icon{width:1em;height:1em;margin:0}.freecam-top{position:absolute;left:50%;top:calc(76px + env(safe-area-inset-top));transform:translate(-50%);display:flex;gap:10px;align-items:center;pointer-events:none}.freecam-top>*{pointer-events:auto}.freecam-close{font-size:24px;padding:6px 18px 8px;min-width:0;white-space:nowrap}.freecam-zoom{position:absolute;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;pointer-events:none}.freecam-zoom button{pointer-events:auto;width:64px;height:64px;border-radius:50%;border:3px solid var(--ink);background:var(--paper);box-shadow:3px 4px 0 var(--ink);display:grid;place-items:center;padding:0;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}.freecam-zoom button .icon{width:56%;height:56%;margin:0}.freecam-zoom button.down{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--ink);background:var(--gold)}.freecam-hint{position:absolute;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%);max-width:calc(100vw - 140px);text-align:center;font-size:19px;line-height:1.2;background:var(--paper);border:2.5px solid var(--ink);border-radius:var(--wobble-2);padding:2px 12px 4px;pointer-events:none}.freecam-hint .touch-only{display:none}@media(pointer:coarse){.freecam-hint .touch-only{display:inline}.freecam-hint .no-touch{display:none}}body.force-touch .freecam-hint .touch-only{display:inline}body.force-touch .freecam-hint .no-touch{display:none}.touch{position:absolute;bottom:0;left:0;right:0;display:none;justify-content:space-between;align-items:flex-end;padding:0 16px calc(18px + env(safe-area-inset-bottom));pointer-events:none}.touch .grp{display:flex;gap:14px}.touch button{pointer-events:auto;width:84px;height:84px;border-radius:50%;border:3px solid var(--ink);background:#fffdf5bf;font-family:var(--title);font-size:40px;color:var(--ink);box-shadow:3px 4px 0 var(--ink);touch-action:none}.touch button.down{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--ink);background:var(--gold)}.touch button{display:grid;place-items:center;padding:0}.touch button .icon{width:46%;height:46%;margin:0}.touch .grp.jump{flex-direction:column;align-items:center;justify-content:flex-end;gap:12px}.touch button.restart{width:58px;height:58px;box-shadow:2px 3px 0 var(--ink)}.touch button.restart .icon{width:56%;height:56%}.touch button.restart:active{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--ink);background:var(--gold)}@media(pointer:coarse){.touch{display:flex}.hud .no-touch{display:none}}body.force-touch .touch{display:flex}body.force-touch .hud .no-touch{display:none}.results{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;animation:rise .35s ease-out;max-height:100%;min-height:0}.results-body{display:flex;flex-direction:column;align-items:center;gap:clamp(4px,1.2vh,10px);width:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain}.results>.row{flex:none;gap:10px;align-items:center}.results>.row .btn{min-width:0;padding:6px 18px 8px;font-size:clamp(20px,3.4vh,26px);white-space:nowrap}.results>.row .btn.primary{font-size:clamp(24px,4vh,30px)}.results .medal-label{font-size:clamp(22px,3.8vh,30px)}.results .stamp .medal.big{width:clamp(56px,13vh,110px);height:clamp(56px,13vh,110px)}.results .stamp .medal.big.author:after{font-size:clamp(28px,6.5vh,56px)}@keyframes rise{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}.results .time{font-family:var(--title);font-size:clamp(48px,min(10vw,11vh),88px);line-height:1;color:#fff;-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--ink)}.results .newpb{font-family:var(--title);font-size:clamp(24px,4.2vh,34px);color:var(--accent);transform:rotate(-4deg);animation:wiggle .6s ease-in-out infinite alternate}@keyframes wiggle{0%{transform:rotate(-4deg) scale(1)}to{transform:rotate(3deg) scale(1.08)}}.results .info{font-size:22px}.stamp{animation:stamp .5s cubic-bezier(.2,1.6,.4,1) both;animation-delay:.25s}@keyframes stamp{0%{transform:scale(3) rotate(-30deg);opacity:0}to{transform:scale(1) rotate(-8deg);opacity:1}}.medal-label{font-family:var(--title);font-size:30px}.muted{opacity:.7}.good{color:var(--good)}.bad{color:var(--bad)}.keys{font-size:18px;opacity:.8}kbd{font-family:var(--title);border:2px solid var(--ink);border-radius:6px 8px 6px 9px;padding:0 6px;background:#fff;box-shadow:1px 2px 0 var(--ink)}.help{font-size:22px;line-height:1.5}.corner{position:absolute;top:12px;right:12px}.corner-left{position:absolute;top:12px;left:12px}.controls-hint{position:absolute;left:16px;top:50%;transform:translateY(-50%) rotate(-1.5deg);display:grid;grid-template-columns:auto auto;align-items:center;gap:10px 12px;font-size:24px;line-height:1;padding:14px 18px;background:#fffdf5b8;border:2.5px solid rgba(34,48,74,.6);border-radius:var(--wobble);box-shadow:3px 4px #22304a59;pointer-events:none;animation:controls-hint 6s ease-in-out forwards}.controls-hint .ch-keys{display:flex;align-items:center;gap:5px;justify-self:end}.controls-hint .or{opacity:.6}.controls-hint kbd{display:inline-block;font-size:22px;line-height:1;padding:4px 8px 5px}@keyframes controls-hint{0%{opacity:0;margin-left:-12px}6%{opacity:1;margin-left:0}85%{opacity:1}to{opacity:0}}.results.run{width:min(720px,100%);max-width:none;padding:clamp(10px,2vh,16px) clamp(12px,3vw,20px)}.run-title{font-family:var(--title);font-size:clamp(28px,5vh,40px);line-height:1}.run-boxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;text-align:left}.run-boxes.single{grid-template-columns:minmax(0,360px);justify-content:center}@media(max-width:620px){.run-boxes{grid-template-columns:minmax(0,1fr)}}.run-box{min-width:0;display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:2px dashed rgba(34,48,74,.35);border-radius:var(--wobble)}.run-main{align-items:center;justify-content:center;text-align:center;background:var(--paper-2);border-color:var(--ink)}.run-hero{display:flex;align-items:center;gap:14px}.run-hero .medal.big{width:clamp(44px,9vh,64px);height:clamp(44px,9vh,64px);border-width:4px;box-shadow:3px 4px 0 var(--ink)}.run-hero .medal.big.author:after{font-size:clamp(22px,4.5vh,32px)}.run-hero .medal.none.big{box-shadow:none}.run-time{font-family:var(--title);font-size:clamp(44px,min(10vw,9vh),72px);line-height:1;font-variant-numeric:tabular-nums;color:#fff;-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;text-shadow:3px 4px 0 var(--ink)}.run-time.none{opacity:.3}.run-delta{font-size:22px;color:var(--bad)}.run-main .newpb{font-size:clamp(22px,3.6vh,28px)}.run-main .medal-times{grid-template-columns:repeat(2,auto);justify-content:center;gap:4px 18px}.results>.row .btn.small{font-size:20px;padding:4px 14px 6px}.run-board-head{display:flex;align-items:center;gap:6px;width:100%;padding:0;background:none;border:0;cursor:pointer;font-family:var(--title);font-size:22px;line-height:1;color:var(--ink);text-align:left}.run-board-head .icon{width:.95em;height:.95em;margin:0}.run-more{margin-left:auto;font-size:26px;opacity:.45}.run-board-head:hover .run-more{opacity:1}.run-board-head:focus-visible{outline:3px dashed var(--accent-2);outline-offset:3px;border-radius:6px}.run-list{position:relative;display:flex;flex-direction:column;gap:8px}.run-list>:not(.run-spinner){transition:opacity .25s}.run-board.busy .run-list>:not(.run-spinner){opacity:.3}.run-spinner{position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border:3px dashed var(--ink);border-radius:50%;animation:run-spin 1.4s linear infinite,run-spinner-in .3s ease-out}@keyframes run-spin{to{transform:rotate(360deg)}}@keyframes run-spinner-in{0%{opacity:0}}.run-rows{display:flex;flex-direction:column;gap:2px}.run-pin{border-top:2px dashed rgba(34,48,74,.3);padding-top:6px}.run-note{font-size:17px;text-align:center}.run-board .lb-join{font-size:17px}.run-board .lb-name{font-size:19px;width:9em}.results>.row .btn.play{font-size:clamp(34px,6vh,46px);padding:6px 60px 10px;animation:play-pulse 1.3s ease-in-out infinite}.results>.row .btn.play:hover,.results>.row .btn.play:active{animation:none}@keyframes play-pulse{0%,to{transform:scale(1) rotate(-1deg);box-shadow:4px 5px 0 var(--ink)}50%{transform:scale(1.06) rotate(1deg);box-shadow:6px 8px 0 var(--ink)}}@media(prefers-reduced-motion:reduce){.results>.row .btn.play{animation:none}.run-spinner{animation-duration:4s,.3s}}@media(max-height:460px){.results.run,.results.run .results-body{gap:6px}.run-box{padding:6px 10px;gap:4px}.run-board .mb-row{font-size:16px;line-height:1.15}.run-board-head{font-size:19px}.run-pin{padding-top:4px}}.timer.done{animation:timer-pop .6s cubic-bezier(.2,1.8,.4,1) both;color:#fff7c2}.timer.done.gold{color:var(--gold)}.timer.done.author{color:var(--author)}.timer.done.silver{color:var(--silver)}.timer.done.bronze{color:var(--bronze)}@keyframes timer-pop{0%{transform:translate(-50%) scale(1) rotate(-1deg)}45%{transform:translate(-50%) scale(1.45) rotate(3deg)}to{transform:translate(-50%) scale(1.2) rotate(-2deg)}}.finish-stamp{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%) rotate(-6deg);font-family:var(--title);font-size:clamp(80px,15vw,150px);line-height:.9;color:#ff6b6b;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:6px 6px 0 var(--ink);pointer-events:none;text-align:center;animation:stamp-in .45s cubic-bezier(.2,1.6,.4,1) both}.finish-medal{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:6px;font-size:.4em;color:#fff;-webkit-text-stroke:2.5px var(--ink);text-shadow:3px 3px 0 var(--ink);animation:medal-in .4s .25s cubic-bezier(.2,1.6,.4,1) both}.finish-medal .medal{width:.9em;height:.9em;border-width:3px}@keyframes stamp-in{0%{transform:translate(-50%,-50%) scale(2.6) rotate(-20deg);opacity:0}to{transform:translate(-50%,-50%) scale(1) rotate(-6deg);opacity:1}}@keyframes medal-in{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.confetti-rain{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti-rain i{position:absolute;top:-20px;width:10px;height:16px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.3,.1,.6,1);animation-fill-mode:both}.confetti-rain i:nth-child(3n){width:8px;height:8px;border-radius:50%}.confetti-rain i:nth-child(4n){width:14px;height:7px}@keyframes confetti-fall{0%{transform:translate(0) rotate(0);opacity:1}80%{opacity:1}to{transform:translate(var(--sway),105vh) rotate(var(--spin));opacity:.6}}.customise{--t: clamp(24px, min(7.2vh, 4.6vw), 52px);--pw: min(380px, 36vw, 60vh);gap:clamp(6px,2vh,18px);padding:clamp(8px,2vh,24px) 16px}.customise h2{font-size:clamp(30px,min(7vw,8vh),64px);line-height:1}.customise .btn.primary{font-size:clamp(22px,5vh,34px);padding:2px 28px 4px}.look-panel{display:flex;gap:clamp(12px,2.5vw,26px);align-items:center;justify-content:center;max-width:100%;padding:clamp(8px,2vh,18px) clamp(10px,2vw,24px)}.look-left{display:flex;flex-direction:column;gap:clamp(4px,1.2vh,10px);align-items:center;flex:none}.look-preview{width:var(--pw);aspect-ratio:14 / 9;border:3px solid var(--ink);border-radius:var(--wobble-2);box-shadow:4px 5px 0 var(--ink);background:#bfe3ff}.medal-summary{display:flex;gap:14px;font-size:clamp(16px,3vh,22px)}.nickname-row{display:flex;align-items:center;gap:10px;font-size:clamp(16px,3vh,22px)}.medal-count{display:flex;align-items:center;gap:5px}.medal-count .medal{width:20px;height:20px;border-width:2px}.medal-count .medal.author:after{font-size:11px}.look-lists{display:flex;flex-direction:column;gap:calc(var(--t) * .32);width:calc(var(--t) * 8.6);max-width:100%}.look-slots{display:flex;justify-content:space-between;gap:calc(var(--t) * .18)}.look-slot{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0;background:none;border:none;cursor:pointer;font-family:var(--hand);color:var(--ink);font-size:clamp(14px,calc(var(--t) * .36),20px);line-height:1}.look-slot .look-chip{width:calc(var(--t) * 1.25);height:calc(var(--t) * 1.25)}.look-slot .swatch{transform:scale(1.3)}.look-slot:hover .look-chip{transform:translateY(-2px) rotate(-2deg)}.look-slot.open .look-chip{background:var(--gold);box-shadow:2px 3px 0 var(--ink);transform:translateY(-2px) rotate(-2deg)}.look-slot:focus-visible{outline:3px dashed var(--accent-2);outline-offset:2px}.look-options{display:flex;flex-direction:column;gap:6px;border-top:2.5px dashed var(--ink);padding-top:calc(var(--t) * .25)}.look-options-title,.look-hint{font-size:clamp(16px,calc(var(--t) * .42),22px);line-height:1}.look-hint{text-align:center;opacity:.7}.chips{display:flex;flex-wrap:wrap;gap:calc(var(--t) * .18)}.look-chip{width:var(--t);height:var(--t);padding:0;display:grid;place-items:center;position:relative;background:#fff;border:2.5px solid var(--ink);border-radius:14px 18px 12px 16px;cursor:pointer;transition:transform .08s}.look-chip:hover:not(.locked){transform:translateY(-2px) rotate(-2deg)}.look-chip.active{background:var(--gold);box-shadow:2px 3px 0 var(--ink);transform:translateY(-2px) rotate(-2deg)}.look-chip.locked{cursor:not-allowed;background:#e9e9e9}.look-chip.locked .swatch{opacity:.35;filter:grayscale(.6)}.look-chip:focus-visible{outline:3px dashed var(--accent-2);outline-offset:2px}.look-chip .req{position:absolute;right:-5px;bottom:-6px;display:flex;align-items:center;gap:1px;font-family:var(--hand);font-size:calc(var(--t) * .3);line-height:1;color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:9px;padding:1px 3px 1px 1px}.look-chip .req .medal{width:calc(var(--t) * .26);height:calc(var(--t) * .26);border-width:1.5px}.look-chip .req .medal.author:after{font-size:calc(var(--t) * .15)}.swatch{width:calc(var(--t) * .62);height:calc(var(--t) * .62);border-radius:50%;border:2.5px solid var(--ink);display:inline-grid;place-items:center;flex:none}.swatch.icon{border:none;font-size:calc(var(--t) * .5);line-height:1}.swatch.man svg{width:100%;height:100%;filter:drop-shadow(0 0 1px var(--ink))}@media(max-height:460px)and (min-aspect-ratio:1/1){.customise h2{display:none}}@media(max-aspect-ratio:1/1){.customise{--t: clamp(26px, min((100vw - 70px) / 7.2, 4.6vh), 48px);--pw: min(100vw - 70px, 28vh * 14 / 9)}.look-panel{flex-direction:column}.look-lists{width:100%}}.unlocked{background:#fff3c9;border:2.5px dashed var(--ink);border-radius:var(--wobble);padding:4px 8px 6px 14px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 10px;font-size:19px;line-height:1.2}.swatch.pic{border:none;border-radius:0;width:86%;height:86%;object-fit:contain;pointer-events:none}.swatch.pic.sky{border:2px solid var(--ink);border-radius:8px 10px 7px 9px;width:80%;height:80%}.desync-toast{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:100;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:10px;background:#c92a2a;color:#fff;font:600 14px/1.3 system-ui,sans-serif;box-shadow:0 4px 16px #0000004d}.lb-box{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding:10px 12px;border:2px dashed var(--ink);border-radius:var(--wobble);background:var(--paper-2)}.lb-status{font-size:22px;text-align:center}.lb-status.good{color:var(--good);font-family:var(--title);font-size:28px}.lb-status .muted{font-size:16px;color:var(--ink)}.lb-join{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:20px;text-align:center}.lb-join-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}.lb-name{font:inherit;font-size:22px;width:12em;max-width:60vw;padding:4px 10px;color:var(--ink);background:#fff;border:3px solid var(--ink);border-radius:var(--wobble-2);user-select:text;-webkit-user-select:text}.lb-name:focus{outline:3px dashed var(--accent-2);outline-offset:2px}.lb-msg{font-size:18px;color:var(--bad);min-height:1.2em}.lb-panel{width:min(620px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px}.lb-list{max-height:min(52vh,520px);overflow-y:auto;display:flex;flex-direction:column;gap:4px;font-size:22px}.lb-head{font-size:18px;opacity:.7;text-align:center}.lb-head:empty{display:none}.lb-sub{margin-top:-14px;min-height:1.3em;font-size:20px;line-height:1.3;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill}.lb-row{display:grid;grid-template-columns:3.2em 1fr auto auto;gap:10px;align-items:center;padding:3px 8px;border-radius:10px}.lb-row:nth-child(2n){background:#22304a0d}.lb-row.me{background:var(--paper-2);outline:2px solid var(--accent)}.lb-row.top1 .lb-rank{color:#c99400}.lb-row.top2 .lb-rank{color:#7b8794}.lb-row.top3 .lb-rank{color:#b86a33}.lb-rank{font-family:var(--title);font-size:26px}.lb-who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-time{font-variant-numeric:tabular-nums;white-space:nowrap}.lb-time .muted{font-size:16px}.lb-actions{display:flex;gap:4px}.lb-actions .btn{font-size:16px;padding:2px 8px 3px;box-shadow:2px 2px 0 var(--ink)}.lb-gap{text-align:center;opacity:.5}.lb-pinned:empty{display:none}.lb-pinned{border-top:2px dashed rgba(34,48,74,.3);padding-top:8px;font-size:22px}.profile-panel{width:min(460px,100%)}.profile{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font-size:20px}.profile-name{font-family:var(--title);font-size:40px;line-height:1}@media(max-width:520px){.lb-row{grid-template-columns:2.6em 1fr auto;font-size:18px}.lb-row .lb-actions{grid-column:2 / -1;justify-content:flex-end}.lb-time .muted{display:none}}.turnstile-box{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:90}.foot-link{position:fixed;right:14px;bottom:12px;z-index:5;font-size:17px;line-height:1;color:var(--ink);text-decoration:none;padding:5px 12px 7px;background:#fffdf58c;-webkit-backdrop-filter:blur(6px) saturate(1.2);backdrop-filter:blur(6px) saturate(1.2);border:2px solid rgba(34,48,74,.35);border-radius:var(--wobble-2);transform:rotate(-2deg);transition:background .15s,border-color .15s,transform .15s}.foot-link:hover,.foot-link:focus-visible{background:#fffdf5e6;border-color:var(--ink);text-decoration:underline;transform:rotate(0) translateY(-1px)}.screen>:has(+.foot-link:last-child){margin-bottom:auto}.lb-note{font-size:16px;opacity:.8;max-width:30em}.lb-note a{color:var(--ink)}.lb-data{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.lb-data a{color:var(--ink)}.lb-code{font:700 24px/1 ui-monospace,Cascadia Mono,Consolas,monospace;letter-spacing:2px;padding:6px 12px;background:#fff;border:3px dashed var(--ink);border-radius:10px;user-select:all;-webkit-user-select:all}
