:root{--accent:#ff3b3b;--accent-rgb:255, 59, 59;--on-accent:#fff;--fg:#fff;--bg:#0e0e10}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);-webkit-user-select:none;user-select:none;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}#hud{pointer-events:none;text-shadow:0 1px 3px #0009;position:fixed;inset:0}#center{text-align:center;position:absolute;bottom:12%;left:50%;transform:translate(-50%)}#timer{letter-spacing:.02em;font:600 22px/1 ui-monospace,SF Mono,Menlo,monospace}#timer.dim{opacity:.6;font-size:16px}#speed{font-variant-numeric:tabular-nums;font:800 44px/1.1 ui-monospace,SF Mono,Menlo,monospace;transition:color .2s}#graph{opacity:.8;margin:4px auto 0;display:block}#keys{justify-content:center;gap:4px;margin-top:8px;display:flex}#keys span{opacity:.5;border:1px solid #ffffff59;border-radius:4px;min-width:26px;padding:3px 6px;font:600 12px ui-monospace,monospace}#keys span.on{background:rgba(var(--accent-rgb), .8);opacity:1;border-color:#0000}#topright{text-align:right;font:600 14px ui-monospace,monospace;position:absolute;top:14px;right:16px}#fps{opacity:.5;margin-top:4px;font-size:12px}#toast{color:var(--accent);opacity:0;font:700 26px/1 ui-sans-serif,system-ui;transition:opacity .25s,transform .25s;position:absolute;top:22%;left:50%;transform:translate(-50%,8px)}#toast.show{opacity:1;transform:translate(-50%)}#toast.gold{color:#ffd166}#help{background:#00000073;border-radius:8px;padding:10px 14px;font-size:13px;line-height:1.6;position:absolute;bottom:16px;left:16px}.title{letter-spacing:-.02em;font:900 56px/1 ui-sans-serif,system-ui}.title span{color:var(--accent)}#loading{background:radial-gradient(ellipse at 50% 30%, #3a1517, var(--bg));align-content:center;place-items:center;gap:16px;display:grid;position:fixed;inset:0}.bar{background:#ffffff1f;border-radius:2px;width:min(360px,80vw);height:4px;overflow:hidden}#progress{background:var(--accent);width:0;height:100%;transition:width .2s}#loadlabel{opacity:.6;font-size:13px}.panel{background:#121214e0;border:1px solid #ffffff14;border-radius:14px;gap:16px;width:min(480px,100%);padding:28px;display:grid}.sub{opacity:.6;margin:-6px 0 0;font-size:13px}#play{background:var(--accent);color:var(--on-accent);cursor:pointer;border:0;border-radius:10px;padding:14px;font:700 17px ui-sans-serif,system-ui}#play:hover{filter:brightness(1.1)}.how{opacity:.85;gap:8px;font-size:13px;line-height:1.55;display:grid}label{opacity:.9;grid-template-columns:1fr auto;gap:6px;font-size:13px;display:grid}label input{width:100%;accent-color:var(--accent);grid-column:1/-1}#xhair{pointer-events:none;z-index:2;position:fixed;inset:0}#hud{z-index:3}#menu{z-index:5}.tabpage{gap:14px;display:grid}#chpreview{background:linear-gradient(135deg,#3b4f57,#8b6a4c 55%,#d9d3c7);border-radius:10px;width:100%;height:auto}.grid2{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}@media (max-width:480px){.grid2{grid-template-columns:1fr}}.checks{flex-wrap:wrap;gap:16px;display:flex}label.check{cursor:pointer;white-space:nowrap;align-items:center;gap:6px;display:flex}label.check input{accent-color:var(--accent)}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:7px;width:28px;height:28px;box-shadow:inset 0 0 0 1px #0006}.swatch.active{border-color:#fff}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}label.color{align-items:center;gap:8px;display:flex}label.color input{cursor:pointer;background:0 0;border:0;width:36px;height:28px;padding:0}button.ghost{color:var(--fg);cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:8px;padding:8px 12px;font:600 13px ui-sans-serif,system-ui}.knives{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.knife{text-align:left;color:var(--fg);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:9px;padding:10px;font:600 13px ui-sans-serif,system-ui}.knife small{opacity:.5;margin-top:2px;font-weight:400;display:block}.knife.active{border-color:var(--accent);background:rgba(var(--accent-rgb), .12)}.knife.missing small{color:#ffb86b;opacity:.8}.hint{opacity:.6;margin:0;font-size:12px;line-height:1.5}.bindhead{justify-content:space-between;align-items:center;margin-top:4px;font-size:13px;display:flex}.binds{gap:6px;display:grid}.bind{justify-content:space-between;align-items:center;font-size:13px;display:flex}.key{min-width:92px;color:var(--fg);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:7px;padding:6px 10px;font:600 12px ui-monospace,SF Mono,Menlo,monospace}.key.waiting{border-color:var(--accent);color:var(--accent)}.byline{letter-spacing:.28em;text-transform:uppercase;color:#fff;margin-top:-8px;font:800 13px/1 ui-sans-serif,system-ui}#loading .byline{margin-top:-6px}#brand{letter-spacing:.12em;opacity:.45;font:600 11px ui-sans-serif,system-ui;position:absolute;bottom:14px;right:16px}#brand b{color:#fff;font-weight:800}.mapcredit{opacity:.65;margin-top:-4px;font-size:12px}.mapcredit b{font-weight:700}label.namefield{grid-template-columns:1fr}label.namefield input{color:var(--fg);background:#ffffff0f;border:1px solid #ffffff2e;border-radius:8px;padding:9px 11px;font:600 14px ui-sans-serif,system-ui}.boards{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:480px){.boards{grid-template-columns:1fr}}.boardhead{margin-bottom:6px;font-size:13px;font-weight:700}.board{margin:0;padding-left:22px;font:500 12px/1.75 ui-monospace,SF Mono,Menlo,monospace}.board li.me{color:var(--accent)}.board .empty{opacity:.5;margin-left:-22px;font-family:ui-sans-serif,system-ui;list-style:none}#wr{opacity:.8;margin-bottom:2px;font-size:12px}#timerbox{color:#f2f2f2;text-shadow:0 1px 2px #000000b3;background:#282c2e8c;border-radius:4px;justify-items:center;gap:3px;padding:10px 22px 11px;font:700 16px/1.25 Trebuchet MS,ui-sans-serif,system-ui,sans-serif;display:inline-grid}#timerbox .l1{font-size:20px}#timer{letter-spacing:.02em;color:#6dff6d;font:700 22px/1.2 Trebuchet MS,ui-sans-serif,system-ui,sans-serif;transition:none}#timer.dim{color:#f2f2f2;opacity:1;font-size:20px}#timer:before{content:"「"}#timer:after{content:"」"}#timer.dim:before,#timer.dim:after{content:""}#trank{color:#f2f2f2}#tstyle{color:#dfe8ff}#speed{font-variant-numeric:tabular-nums;font:800 21px/1.2 Trebuchet MS,ui-sans-serif,system-ui,sans-serif;color:#f5b041!important}#timerbox .l4{font-size:15px}#timerbox .bar{color:#f5b041}label select{color:var(--fg);background:#16252b;border:1px solid #ffffff2e;border-radius:8px;grid-column:1/-1;padding:8px 10px;font:600 14px ui-sans-serif,system-ui}.skins{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;max-height:260px;margin-top:6px;display:grid;overflow-y:auto}.skin{text-align:left;color:var(--fg);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:8px;padding:7px 8px;font:600 12px ui-sans-serif,system-ui;display:flex}.skin i{border-radius:5px;flex:none;width:18px;height:18px}.skin.active{border-color:var(--accent);background:rgba(var(--accent-rgb), .1)}#chat{color:#e8f4ff;text-shadow:0 1px 2px #000,0 0 4px #000;pointer-events:none;z-index:20;width:min(520px,100vw - 32px);font:600 13px ui-sans-serif,system-ui;position:fixed;bottom:150px;left:16px}#chat .log{flex-direction:column;justify-content:flex-end;gap:2px;max-height:220px;display:flex;overflow:hidden}#chat .line{line-height:1.35;transition:opacity .6s}#chat .line.old{opacity:0}#chat.open .line.old{opacity:.85}#chat.open .log{background:#00000059;border-radius:8px 8px 0 0;padding:6px 8px;overflow-y:auto}#chat .tag{color:var(--accent)}#chat .name,#chat .gold{color:#ffd166}#chat .input{pointer-events:auto;box-sizing:border-box;color:#fff;width:100%;font:inherit;background:#0009;border:1px solid #ffffff40;border-radius:6px;outline:none;margin-top:4px;padding:7px 10px}#chat .input.hidden{display:none}#smmenu{color:#e8f4ff;border-left:3px solid var(--accent);text-shadow:0 1px 2px #000;z-index:20;background:#080c12b8;border-radius:0 8px 8px 0;min-width:220px;padding:10px 12px;font:600 14px ui-sans-serif,system-ui;position:fixed;top:38%;left:16px;transform:translateY(-50%)}#smmenu.hidden{display:none}#smmenu .t{color:var(--accent);margin-bottom:6px}#smmenu .t span,#smmenu .i span{opacity:.55;font-weight:400}#smmenu .i{padding:1px 0}#smmenu .i.on{color:#ffd166}#smmenu .nav{opacity:.75;margin-top:6px;font-size:13px}#menu{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#08080aeb,#08080ab8 30%,#08080ad9);grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;position:fixed;inset:0}#menu.hidden{display:none}.topbar{background:#00000073;border-bottom:1px solid #ffffff12;align-items:center;gap:28px;height:64px;padding:0 28px;display:flex}.topbar .logo{letter-spacing:-.02em;font:900 24px/1 ui-sans-serif,system-ui}.topbar .logo span{color:var(--accent)}.topbar .tabs{gap:4px;height:100%;display:flex}.topbar .tab{height:100%;color:var(--fg);opacity:.55;cursor:pointer;letter-spacing:.12em;text-transform:uppercase;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 18px;font:700 14px ui-sans-serif,system-ui;transition:opacity .15s,border-color .15s}.topbar .tab:hover{opacity:.9}.topbar .tab.active{opacity:1;border-bottom-color:var(--accent)}.topbar .who{opacity:.7;white-space:nowrap;margin-left:auto;font-size:13px}.menubody{padding:28px;overflow-y:auto}.menubody .tabpage{width:min(1080px,100%);margin:0 auto}.menubody h2{letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin:0;font:800 13px ui-sans-serif,system-ui}.maps{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.mapcard{text-align:left;cursor:pointer;min-height:120px;color:var(--fg);background:linear-gradient(135deg, rgba(var(--accent-rgb), .16), #ff8c3c0f 60%, #ffffff08);border:1px solid #ffffff1a;border-radius:10px;align-content:end;gap:6px;padding:18px;transition:transform .12s,border-color .12s;display:grid;position:relative}.mapcard:hover{border-color:#ffffff4d;transform:translateY(-2px)}.mapcard.active{border-color:var(--accent)}.mapcard .mtitle{font:900 22px ui-sans-serif,system-ui}.mapcard .mmeta{opacity:.7;font-size:12px}.mapcard .mtimes{opacity:.9;gap:14px;font-size:12px;display:flex}.mapcard .mbadge{letter-spacing:.12em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);border-radius:4px;padding:4px 8px;font:800 10px ui-sans-serif,system-ui;position:absolute;top:12px;right:12px}.subtabs{gap:6px;display:flex}.subtab{letter-spacing:.08em;text-transform:uppercase;color:var(--fg);opacity:.6;cursor:pointer;background:0 0;border:1px solid #ffffff1f;border-radius:6px;padding:8px 14px;font:700 12px ui-sans-serif,system-ui}.subtab.active{opacity:1;border-color:var(--accent);color:var(--accent)}.subpage{gap:14px;max-width:640px;display:grid}.menufoot{background:#00000073;border-top:1px solid #ffffff12;align-items:center;gap:20px;padding:14px 28px;display:flex}.menufoot .tip{opacity:.6;font-size:12px}.menufoot .brand{opacity:.6;margin-left:auto;font-size:12px}.menufoot #play{letter-spacing:.12em;text-transform:uppercase;min-width:220px;padding:14px 28px;font:800 15px ui-sans-serif,system-ui}@media (max-width:720px){.topbar{gap:12px;padding:0 12px;overflow-x:auto}.topbar .who{display:none}.topbar .tab{letter-spacing:.06em;padding:0 10px;font-size:12px}.menubody{padding:16px}.menufoot{flex-wrap:wrap;padding:12px 16px}.menufoot .tip{display:none}.menufoot #play{flex:1;min-width:0}}.maps h2.span{grid-column:1/-1;margin-top:10px}.mapcard.server{background:linear-gradient(120deg, rgba(var(--accent-rgb), .28), #ff8c3c1a 70%);grid-column:1/-1;min-height:110px}#netinfo{opacity:.85;text-align:right;text-shadow:0 1px 2px #000;font:600 12px ui-sans-serif,system-ui}#netinfo .on{color:#4ade80}#netinfo .off{color:#f87171}#scoreboard{z-index:15;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#060a0ed1;border:1px solid #ffffff1a;border-radius:10px;width:min(560px,100vw - 32px);padding:12px 14px;font:600 13px ui-sans-serif,system-ui;position:fixed;top:18%;left:50%;transform:translate(-50%)}#scoreboard.hidden{display:none}#scoreboard .sbhead{justify-content:space-between;margin-bottom:8px;display:flex}#scoreboard .sbhead span{opacity:.6}#scoreboard .sbrow{border-top:1px solid #ffffff0f;grid-template-columns:1fr 90px 50px;padding:4px 0;display:grid}#scoreboard .sbcols{opacity:.5;text-transform:uppercase;letter-spacing:.08em;border-top:0;font-size:11px}#scoreboard .sbrow.me{color:var(--accent)}#namegate{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08080acc;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#namegate.hidden{display:none}#namegate .box{background:#121214f2;border:1px solid #ffffff1a;border-radius:12px;gap:12px;width:min(380px,100%);padding:26px;display:grid}#namegate .logo{letter-spacing:-.02em;font:900 28px/1 ui-sans-serif,system-ui}#namegate .logo span{color:var(--accent)}#namegate label{opacity:.85;font-size:14px;display:block}#namegate input{color:var(--fg);background:#ffffff0f;border:1px solid #fff3;border-radius:8px;outline:none;padding:11px 12px;font:600 16px ui-sans-serif,system-ui}#namegate input:focus{border-color:var(--accent)}#namegate button{letter-spacing:.1em;text-transform:uppercase;background:var(--accent);color:var(--on-accent);cursor:pointer;border:0;border-radius:8px;padding:12px;font:800 14px ui-sans-serif,system-ui}#namegate #nameerr{color:#f87171;min-height:1em;margin:0;font-size:13px}button.discord{color:#fff;cursor:pointer;background:#5865f2;border:0;border-radius:8px;padding:11px 14px;font:800 13px ui-sans-serif,system-ui}button.discord:hover{filter:brightness(1.1)}button.small,button.ghost.small{padding:6px 10px;font-size:12px}#namegate .gatetext{opacity:.8;margin:0;font-size:14px;line-height:1.5}#acct{align-items:center;gap:8px;margin-left:16px;display:inline-flex}#acct img{border-radius:50%;width:24px;height:24px}#acct i{letter-spacing:.1em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);border-radius:4px;padding:2px 6px;font-size:10px;font-style:normal}.topbar .who{align-items:center;display:flex}#namegate button.discord{color:#fff;background:#5865f2}
