@font-face{font-family:Fredoka;src:url(/fonts/Fredoka.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{--bg:#e9ebe6;--grid:#d3d6ce;--ink:#17161d;--ink-soft:#34323f;--panel-text:#e9ebe6;--font:"Fredoka", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;overflow:hidden}canvas#game{width:100%;height:100%;display:block;position:fixed;inset:0}#hint{left:calc(12px + env(safe-area-inset-left,0px));top:calc(10px + env(safe-area-inset-top,0px));opacity:.55;pointer-events:none;margin:0;font-size:12px;line-height:1.4;position:fixed}#touch{display:none}.touch-ui #touch,body.force-touch #touch{display:block}.touch-ui #hint,body.force-touch #hint{display:none}#touch .pad{left:calc(16px + env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));gap:14px;display:flex;position:fixed}#touch .jump{right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));position:fixed}#touch button{border:3px solid var(--ink);width:88px;height:88px;color:var(--ink);touch-action:none;background:#e9ebe6f0;border-radius:0;place-items:center;padding:0;display:grid;box-shadow:0 0 0 3px #e9ebe6f0}#touch .jump{width:104px;height:104px}#touch button.down{color:var(--ink);background:#e69f00}@media (max-height:460px){#touch button{width:72px;height:72px}#touch .jump{width:88px;height:88px}#touch svg{width:36px;height:36px}}#touch svg{fill:none;stroke:currentColor;stroke-width:3.5px;stroke-linecap:square;stroke-linejoin:miter;pointer-events:none;width:44px;height:44px}#tune-toggle{top:calc(8px + env(safe-area-inset-top,0px));right:calc(8px + env(safe-area-inset-right,0px));z-index:20;font:600 13px/1 var(--font);background:var(--bg);color:var(--ink);border:2px solid var(--ink);touch-action:manipulation;border-radius:0;padding:9px 12px;display:none;position:fixed}body.solo #tune-toggle{display:block}#tune-toggle[aria-expanded=true]{background:var(--ink);color:var(--bg)}#tune{z-index:10;width:min(320px,48vw);padding:calc(52px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) 14px;background:var(--ink);color:var(--panel-text);touch-action:pan-y;overscroll-behavior:contain;font-size:12px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}#tune[hidden]{display:none}#tune pre{font:inherit;white-space:pre-wrap;color:#b9bdb3;margin:0 0 14px;line-height:1.5}#tune .row{margin-bottom:12px}#tune .row label{justify-content:space-between;margin-bottom:4px;display:flex}#tune .row output{color:#fff;font-weight:600}#tune input[type=range]{accent-color:#e69f00;touch-action:pan-y;width:100%;margin:0}#tune .actions{gap:8px;margin:16px 0 10px;display:flex}#tune .actions button{font:600 12px/1 var(--font);color:var(--panel-text);border:2px solid var(--panel-text);touch-action:manipulation;background:0 0;border-radius:0;flex:1;padding:10px 8px}#tune .actions button:active{background:var(--panel-text);color:var(--ink)}#tune textarea{resize:none;width:100%;height:92px;font:11px/1.4 var(--font);color:#d8dbd2;-webkit-user-select:text;user-select:text;background:#25232d;border:0;padding:8px}#rotate{z-index:100;background:var(--ink);color:var(--bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;font-size:15px;line-height:1.5;display:none;position:fixed;inset:0}#rotate p{max-width:22ch;margin:0}#rotate svg{fill:none;width:72px;height:72px;stroke:var(--bg);stroke-width:3px;animation:2.4s ease-in-out infinite turn}@keyframes turn{0%,25%{transform:rotate(0)}60%,to{transform:rotate(90deg)}}@media (orientation:portrait) and (pointer:coarse){body.playing #rotate,body.solo #rotate{display:flex}}@media (prefers-reduced-motion:reduce){#rotate svg{animation:none}}#touch,#hint{visibility:hidden}body.playing #touch,body.solo #touch,body.playing #hint,body.solo #hint{visibility:visible}body.playing #hint{display:none}#hud{pointer-events:none;z-index:5;position:fixed;inset:0}#hud[hidden]{display:none}#hud .timer{left:50%;top:calc(10px + env(safe-area-inset-top,0px));font:700 22px/1 var(--font);background:var(--bg);border:2px solid var(--ink);padding:7px 12px;position:absolute;transform:translate(-50%)}#hud .keyinfo{left:50%;top:calc(56px + env(safe-area-inset-top,0px));opacity:.75;white-space:nowrap;font-size:12px;position:absolute;transform:translate(-50%)}#hud .netinfo{left:calc(12px + env(safe-area-inset-left,0px));top:calc(10px + env(safe-area-inset-top,0px));opacity:.6;white-space:pre;font-size:11px;position:absolute}#labels{pointer-events:none;z-index:4;position:fixed;inset:0;overflow:hidden}.label{font:600 11px/1 var(--font);color:var(--t-ink,#22223b);white-space:nowrap;will-change:transform;background:#ffffffb8;border-radius:999px;padding:3px 7px;position:absolute;top:0;left:0}.label.me{display:none}.badge{font-family:var(--font);color:var(--t-ink,#22223b);white-space:nowrap;will-change:transform;text-align:center;font-weight:700;line-height:1;position:absolute;top:0;left:0}.badge.door{border:3px solid var(--t-ink,#22223b);background:#fff;border-radius:999px;padding:.22em .62em}.badge.box{text-shadow:none;padding:0}#ui{z-index:30;touch-action:pan-y;background:#e9ebe6f7;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}#ui[hidden]{display:none}.card{background:var(--bg);border:3px solid var(--ink);-webkit-user-select:text;user-select:text;flex-direction:column;gap:10px;width:min(360px,100vw - 32px);padding:20px;display:flex}.card.wide{width:min(420px,100vw - 32px)}.card h1{letter-spacing:-.02em;margin:0 0 6px;font-size:26px}.card h2{margin:0;font-size:18px}.card p{margin:0;font-size:13px}.card label{opacity:.7;margin-bottom:-4px;font-size:12px}.card input{font:600 16px/1 var(--font);color:var(--ink);border:2px solid var(--ink);background:#fff;border-radius:0;width:100%;min-width:0;padding:12px}.card input.code{text-transform:uppercase;letter-spacing:.3em;text-align:center}.card .row{gap:8px;display:flex}.card .or{opacity:.6;text-align:center;margin-top:4px;font-size:11px}.card button,.report button{font:700 14px/1 var(--font);background:var(--bg);color:var(--ink);border:2px solid var(--ink);touch-action:manipulation;cursor:pointer;border-radius:0;padding:13px 14px}.card button:disabled{opacity:.35;cursor:default}.card button:not(:disabled):active,.report button:active{background:var(--ink);color:var(--bg)}.card button.primary{color:#fff;border-color:var(--ink);background:#5b2eff}.card button.primary:active{background:var(--ink)}.card button.quiet,.report button.quiet{border-color:#0000;padding:8px;font-weight:600;text-decoration:underline}.card .error{color:#b3261e;font-weight:700}.card .muted{opacity:.6;text-align:center}.roomhead{justify-content:space-between;align-items:center;gap:8px;display:flex}.roomcode{font:800 34px/1 var(--font);letter-spacing:.2em}.players{gap:6px;margin:0;padding:0;list-style:none;display:grid}.players li{border:2px solid var(--ink);align-items:center;gap:10px;padding:6px 8px;display:flex}.swatch{border:2px solid var(--ink);place-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:grid}.pname{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.tag{border:1.5px solid var(--ink);padding:2px 5px;font-size:10px}.levelpick{justify-content:space-between;align-items:center;gap:8px;display:flex}.lvname{text-align:center;flex:1;font-size:13px;font-weight:700}.bigtime{font:800 48px/1 var(--font);text-align:center;padding:8px 0}.report{z-index:40;background:var(--ink);width:min(520px,100vw - 16px);max-height:70vh;color:var(--panel-text);touch-action:pan-y;padding:12px;position:fixed;bottom:8px;left:8px;overflow:auto}.report pre{font:11px/1.5 var(--font);white-space:pre-wrap;-webkit-user-select:text;user-select:text;margin:0 0 10px}.report .actions{gap:8px;display:flex}.report button{color:var(--panel-text);border-color:var(--panel-text);background:0 0}.card.two{width:min(620px,100vw - 32px)}.roomhead .count{opacity:.7;margin-left:auto;margin-right:8px;font-size:12px}.teams{grid-template-columns:1fr 1fr;gap:10px;display:grid}.team{border:3px solid var(--ink);align-content:start;gap:6px;padding:8px;display:grid}.team h3{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:13px}.team.shuffling .swatch{transition:none}.players li.pick{cursor:pointer}.teamtimes{gap:8px;display:grid}.teamtime{border:2px solid var(--ink);justify-content:space-between;align-items:baseline;padding:10px 12px;display:flex}.teamtime.win{border-width:4px}.teamtime .ttime{font:800 22px/1 var(--font)}.divider{background:var(--ink);height:3px;position:absolute;left:0;right:0}.divider[hidden]{display:none}.panelhud{margin-top:calc(6px + env(safe-area-inset-top,0px));text-align:center;white-space:nowrap;position:absolute;left:50%;transform:translate(-50%)}.panelhud[hidden]{display:none}.panelhud .ptop{background:var(--bg);border:2px solid var(--ink);align-items:baseline;gap:12px;padding:4px 10px;font-size:12px;display:inline-flex}.panelhud .pname{letter-spacing:.04em;text-transform:uppercase;font-weight:800}.panelhud .ptime{font:800 16px/1 var(--font)}.panelhud .pkey{opacity:.75;margin-top:2px;font-size:11px}.card{max-height:calc(100vh - 16px);overflow-y:auto}#reconnect{left:50%;top:calc(48px + env(safe-area-inset-top,0px));z-index:20;background:var(--ink);color:var(--bg);border:2px solid var(--ink);padding:8px 14px;font-size:13px;font-weight:700;position:fixed;transform:translate(-50%)}#reconnect[hidden]{display:none}#mute{right:calc(10px + env(safe-area-inset-right,0px));top:calc(10px + env(safe-area-inset-top,0px));z-index:30;font:700 11px var(--font);color:var(--ink);background:var(--bg);border:2px solid var(--ink);cursor:pointer;padding:6px 9px;position:fixed}#mute:active{background:var(--ink);color:var(--bg)}#dbg-report{left:calc(10px + env(safe-area-inset-left,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:30;font:600 11px var(--font);color:var(--ink);background:var(--bg);border:2px solid var(--ink);padding:5px 8px;display:none;position:fixed}body.playing #dbg-report{display:block}.timer,.bigtime,.ptime,.ttime,.pcount,.roomcode{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}:root{--ink:#22223b;--ink-soft:#3a3a5c;--bg:#fff;--sky:#8ed8f8;--accent:#ff8a5b;--accent-ink:#22223b;--good:#52b54b;--shadow:0 4px 0 var(--ink)}html,body{background:var(--sky)}#ui{background:var(--sky);overflow:hidden auto}#ui:before,#ui:after{content:"";z-index:-1;pointer-events:none;border-radius:50%;position:fixed}#ui:before{background:#b7e8a0;width:70vw;height:62vh;bottom:-42vh;left:-10vw}#ui:after{background:#8fd27f;width:80vw;height:66vh;bottom:-50vh;right:-14vw}.card{border:4px solid var(--ink);box-shadow:0 6px 0 var(--ink);background:#fff;border-radius:22px}.card h1{letter-spacing:0;font-size:34px;line-height:1}.card h2{font-size:22px}.card input{border:3px solid var(--ink);background:#fff;border-radius:14px}.card button,.report button{border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:14px;font-weight:700;transition:transform 50ms,box-shadow 50ms}.card button:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.card button:disabled{opacity:.5;box-shadow:none}.card button.primary{background:var(--accent);color:var(--ink);border-color:var(--ink)}.card button.primary:active:not(:disabled){background:var(--accent)}.card button.quiet{box-shadow:none;background:0 0;border-color:#0000;text-decoration:underline}.card button.icon{padding:10px 16px}.swatch{border:3px solid var(--ink);color:var(--ink);border-radius:9px}.players li{border:3px solid var(--ink);background:#fff;border-radius:14px}.tag{border:2px solid var(--ink);border-radius:999px}.tag.me{background:var(--ink);color:#fff}.team{border:3px solid var(--ink);border-radius:16px}.team.t0{background:#ffe9d6}.team.t1{background:#d9efff}.players li.picked{background:var(--accent);color:var(--ink)}.teamtime{border:3px solid var(--ink);border-radius:14px}.teamtime.t0{background:#ffe9d6}.teamtime.t1{background:#d9efff}.roomcode{border:3px solid var(--ink);background:#fff3c4;border-radius:14px;padding:4px 12px}#hud .timer{border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:999px;padding:6px 18px;font-weight:700}#hud .keyinfo{opacity:1;border:2px solid var(--ink);top:calc(58px + env(safe-area-inset-top,0px));background:#fff;border-radius:999px;padding:3px 12px;font-weight:600}#hud .keyinfo:empty{display:none}.panelhud .ptop{border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:999px;padding:4px 16px}.panelhud.t0 .ptop{background:#ffd9bf}.panelhud.t1 .ptop{background:#cfe8ff}.panelhud .pkey{border:2px solid var(--ink);opacity:1;background:#fff;border-radius:999px;margin-top:4px;padding:1px 10px;display:inline-block}.panelhud .pkey:empty{display:none}.divider{background:var(--ink);height:5px}.label{color:var(--ink)}#mute,#shake{right:calc(10px + env(safe-area-inset-right,0px));z-index:30;font:700 11px var(--font);color:var(--ink);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:6px 12px;position:fixed}#mute{top:calc(10px + env(safe-area-inset-top,0px))}#shake{top:calc(46px + env(safe-area-inset-top,0px))}#mute:active,#shake:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}body:not(.playing):not(.solo) #shake{display:none}#dbg-report{border-width:3px;border-radius:999px}#touch button{border:4px solid var(--ink);box-shadow:0 4px 0 var(--ink);background:#ffffffd9;border-radius:50%}#touch button svg{stroke:var(--ink)}@media (max-height:460px){#mute,#shake{box-shadow:0 2px 0 var(--ink);border-width:2px;padding:4px 9px;font-size:10px}#shake{top:calc(36px + env(safe-area-inset-top,0px))}#hud .timer{padding:4px 14px;font-size:18px}}.summary{border:3px solid var(--ink);background:#f1fbe9;border-radius:14px;gap:2px;padding:8px 12px;font-size:13px;display:grid}.sumhead{margin-bottom:2px;font-weight:700}.sumrow{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}#toolbar{top:calc(8px + env(safe-area-inset-top,0px));right:calc(10px + env(safe-area-inset-right,0px));z-index:40;gap:8px;display:flex;position:fixed}#toolbar button{all:unset;box-sizing:border-box;cursor:pointer;border:3px solid var(--ink);width:40px;height:40px;box-shadow:0 3px 0 var(--ink);touch-action:manipulation;background:#fff;border-radius:50%;place-items:center;display:grid}#toolbar button[hidden]{display:none}#toolbar button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}#toolbar svg{fill:none;width:22px;height:22px;stroke:var(--ink);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}#toolbar #mute svg>path:first-child{fill:var(--ink)}#toolbar .cut{stroke:var(--accent);stroke-width:2.6px;display:none}#toolbar button.off .cut{display:block}#toolbar button.off svg>path:not(.cut){opacity:.4}#toolbar button.on{background:#ffe9d6}#mute,#shake{position:static}@media (max-height:460px){#toolbar{top:calc(6px + env(safe-area-inset-top,0px));gap:6px}#toolbar button{width:34px;height:34px;box-shadow:0 2px 0 var(--ink);border-width:2px}#toolbar svg{width:19px;height:19px}}body:not(.playing):not(.solo):not(.in-lobby) #shake{display:none}.touch-ui #touch button,body.force-touch #touch button{border:4px solid var(--ink);width:96px;height:96px;box-shadow:0 5px 0 var(--ink);-webkit-tap-highlight-color:transparent;background:#ffffffd1;border-radius:50%;transition:transform 40ms,background 40ms}.touch-ui #touch .jump,body.force-touch #touch .jump{width:116px;height:116px}#touch button.down{background:var(--accent);box-shadow:0 1px 0 var(--ink);transform:translateY(4px)scale(.95)}#touch .pad{left:max(18px, env(safe-area-inset-left,0px));bottom:max(14px, env(safe-area-inset-bottom,0px));gap:16px}#touch .jump{right:max(22px, env(safe-area-inset-right,0px));bottom:max(14px, env(safe-area-inset-bottom,0px))}@media (max-height:460px){.touch-ui #touch button,body.force-touch #touch button{width:84px;height:84px}.touch-ui #touch .jump,body.force-touch #touch .jump{width:100px;height:100px}#touch svg{width:40px;height:40px}}@media (max-height:400px){.touch-ui #touch button,body.force-touch #touch button{width:76px;height:76px}.touch-ui #touch .jump,body.force-touch #touch .jump{width:90px;height:90px}}.racebar{left:calc(10px + env(safe-area-inset-left,0px));top:calc(8px + env(safe-area-inset-top,0px));gap:5px;width:min(34vw,300px);display:grid;position:absolute}.racebar[hidden]{display:none}.racerow{border:3px solid var(--ink);background:#ffffffeb;border-radius:999px;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;padding:2px 9px 2px 3px;display:grid}.racerow.mine{box-shadow:0 2px 0 var(--ink);background:#fff}.racerow:not(.mine){opacity:.88}.racechip{border:2px solid var(--ink);width:20px;height:20px;font:700 11px/1 var(--font);color:var(--ink);border-radius:50%;place-items:center;display:grid}.racerow.t0 .racechip{background:#ffb98f}.racerow.t1 .racechip{background:#9fd0ff}.racetrack{border:2px solid var(--ink);background:#d7dbe6;border-radius:999px;height:8px;position:relative;overflow:visible}.racefill{background:var(--good);border-radius:999px;position:absolute;top:0;bottom:0;left:0}.racerow.t0 .racefill{background:#ff8a5b}.racerow.t1 .racefill{background:#4aa3ff}.racedot{border:3px solid var(--ink);background:#fff;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;transition:left .18s linear;position:absolute;top:50%}.racedoor{background:var(--t-door,#f0b23e);border:2px solid var(--ink);border-radius:5px 5px 1px 1px;width:9px;height:14px;margin-top:-7px;position:absolute;top:50%;right:-4px}.racecount{font:700 11px/1 var(--font);color:var(--ink);font-variant-numeric:tabular-nums}.racerow.done{background:#e4f8dc}#lobby{z-index:8;pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}#lobby[hidden]{display:none}#lobby>*{pointer-events:auto}#lobby>.lobby-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.lobby-labels>*{will-change:transform;position:absolute;top:0;left:0}.lobby-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;background:#ffffffe0;border-radius:999px;padding:2px 6px;font-weight:600;line-height:1.1;overflow:hidden}.lobby-name.me{background:var(--ink);color:#fff}.lobby-name.picked{background:var(--accent);color:var(--ink)}.lobby-team{letter-spacing:.05em;border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);white-space:nowrap;border-radius:999px;padding:5px 14px;font-weight:700}.lobby-team.t0{background:#ffd9bf}.lobby-team.t1{background:#cfe8ff}.lobby-divider{border-left:4px dashed #22223b73;width:0;transform:translate(-2px)}.lobby-top,.lobby-bottom{padding:8px max(12px, env(safe-area-inset-left,0px)) 8px max(12px, env(safe-area-inset-right,0px));justify-content:space-between;align-items:center;gap:10px;display:flex;position:relative}.lobby-top{padding-top:calc(8px + env(safe-area-inset-top,0px));padding-right:calc(150px + env(safe-area-inset-right,0px))}.lobby-bottom{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-top:4px solid var(--ink);background:#ffffffe6;gap:14px}.lobby-top-left,.lobby-top-right{align-items:center;gap:10px;display:flex}.lobby-code{font:700 26px/1 var(--font);letter-spacing:.14em;border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);background:#fff3c4;border-radius:14px;padding:5px 12px 5px 16px}.lobby-count{border:3px solid var(--ink);background:#fff;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700}.chip{all:unset;box-sizing:border-box;cursor:pointer;font:700 13px/1 var(--font);color:var(--ink);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);white-space:nowrap;touch-action:manipulation;background:#fff;border-radius:999px;padding:8px 14px}.chip:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.chip.quiet{box-shadow:none;background:0 0;border-color:#22223b80}.lobby-colors{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.lobby-colors-label{margin-right:2px;font-size:12px;font-weight:700}.colordot{all:unset;box-sizing:border-box;border:3px solid var(--ink);cursor:pointer;touch-action:manipulation;border-radius:50%;width:26px;height:26px}.colordot.mine{outline:3px solid var(--accent);outline-offset:2px;transform:scale(1.1)}.colordot.taken{opacity:.3;cursor:not-allowed;position:relative}.colordot.taken:after{content:"";background:var(--ink);width:3px;margin-left:-1.5px;position:absolute;top:-3px;bottom:-3px;left:50%;transform:rotate(45deg)}.lobby-actions{align-items:center;gap:10px;display:flex}.levelchip{all:unset;box-sizing:border-box;cursor:pointer;border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);touch-action:manipulation;background:#fff;border-radius:14px;align-items:center;gap:8px;padding:3px 12px 3px 3px;display:flex}.levelchip:disabled{cursor:default;opacity:.95}.levelchip-thumb{object-fit:cover;border-radius:10px;width:66px;height:26px;display:block}.levelchip-text{text-align:left;line-height:1.05;display:grid}.levelchip-text b{font-size:13px}.levelchip-text small{opacity:.7;text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:10px;overflow:hidden}.goBtn{all:unset;box-sizing:border-box;cursor:pointer;font:700 20px/1 var(--font);color:var(--ink);background:var(--accent);border:4px solid var(--ink);box-shadow:0 5px 0 var(--ink);touch-action:manipulation;border-radius:16px;padding:12px 34px}.goBtn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.waiting{padding:10px 6px;font-size:14px;font-weight:700}.lobby-tip{left:50%;top:calc(58px + env(safe-area-inset-top,0px));border:2px solid var(--ink);white-space:nowrap;pointer-events:none;background:#ffffffeb;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;position:absolute;transform:translate(-50%)}.levelmodal{z-index:5;background:#22223b8c;place-items:center;padding:10px;display:grid;position:absolute;inset:0}.levelsheet{border:4px solid var(--ink);width:min(760px,100%);max-height:100%;box-shadow:0 6px 0 var(--ink);background:#fff;border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.levelhead{border-bottom:3px solid var(--ink);background:#fff3c4;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.levelhead h2{margin:0;font-size:18px}.levelbody{gap:12px;padding:10px 14px 14px;display:grid;overflow-y:auto}.levelworld h3{letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px;font-size:13px}.levelgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.lvcard{all:unset;box-sizing:border-box;cursor:pointer;border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);touch-action:manipulation;background:#fff;border-radius:14px;gap:3px;padding:6px;display:grid;position:relative}.lvcard.sel{outline:3px solid var(--accent);outline-offset:1px;background:#ffe9d6}.lvcard b{font-size:13px}.lvcard small{opacity:.75;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.lvthumb{border:2px solid var(--ink);border-radius:9px;width:100%;height:auto;display:block}.lvdone{color:#fff;border:2px solid var(--ink);background:#52b54b;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700;position:absolute;top:8px;right:8px}.lvcard.done .lvthumb{border-color:#52b54b}@media (max-height:460px){.lobby-top{padding-top:calc(5px + env(safe-area-inset-top,0px));padding-bottom:4px;padding-right:calc(120px + env(safe-area-inset-right,0px))}.lobby-code{border-width:2px;border-radius:11px;padding:3px 9px 3px 12px;font-size:20px}.lobby-count{border-width:2px;padding:3px 9px;font-size:11px}.chip{box-shadow:0 2px 0 var(--ink);border-width:2px;padding:6px 11px;font-size:11px}.lobby-bottom{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));border-top-width:3px;gap:8px}.colordot{border-width:2px;width:22px;height:22px}.lobby-colors{gap:4px}.lobby-colors-label{display:none}.levelchip{border-width:2px;border-radius:12px;padding:2px 9px 2px 2px}.levelchip-thumb{width:52px;height:22px}.levelchip-text small{display:none}.goBtn{box-shadow:0 3px 0 var(--ink);border-width:3px;border-radius:13px;padding:8px 22px;font-size:16px}.lobby-tip{top:calc(44px + env(safe-area-inset-top,0px))}.levelsheet{border-radius:16px}.levelgrid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:7px}.lvcard{border-width:2px;padding:4px}.levelhead{padding:5px 10px}}body.in-lobby #hint,body.in-lobby #touch,body.modal-open #toolbar{display:none}#dbg-report{left:50%;transform:translate(-50%)}
