@font-face{font-family:"Press Start 2P";src:url(/fonts/press-start-2p.woff2) format("woff2");font-display:swap}@font-face{font-family:Chakra Petch;font-weight:500;src:url(/fonts/chakra-petch-500.woff2) format("woff2");font-display:swap}@font-face{font-family:Chakra Petch;font-weight:700;src:url(/fonts/chakra-petch-700.woff2) format("woff2");font-display:swap}@font-face{font-family:Share Tech Mono;src:url(/fonts/share-tech-mono.woff2) format("woff2");font-display:swap}:root{--bg: #0b0620;--panel: rgba(12, 6, 32, .86);--panel-solid: #120a2c;--line: rgba(0, 240, 255, .35);--cyan: #00f0ff;--magenta: #ff2bd6;--yellow: #ffd23c;--green: #39ff5a;--red: #ff3b5c;--text: #ece8ff;--muted: #a49cc8;--safe-t: env(safe-area-inset-top, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--pixel: "Press Start 2P", monospace;--ui: "Chakra Petch", system-ui, sans-serif;--mono: "Share Tech Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font:500 16px/1.4 var(--ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none}input,textarea{-webkit-user-select:text;user-select:text}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}.hidden{display:none!important}.muted{color:var(--muted)}kbd{font:400 12px var(--mono);padding:2px 6px;border-radius:5px;color:var(--cyan);border:1px solid var(--line);background:#00f0ff14}body.touch .desktop-only{display:none!important}body:not(.touch) .touch-only{display:none!important}#game{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 0 0 1px #ff2bd61f,0 0 30px #00f0ff1f,inset 0 0 40px #00f0ff0a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn{border:1px solid var(--line);border-radius:10px;padding:12px 20px;background:#00f0ff14;font:700 16px var(--ui);letter-spacing:.06em;transition:transform .08s,box-shadow .2s,filter .2s}.btn:hover{box-shadow:0 0 18px #00f0ff59}.btn:active{transform:translateY(1px) scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{border:none;color:#0b0620;background:linear-gradient(90deg,var(--cyan),var(--magenta));box-shadow:0 0 22px #ff2bd673,0 0 10px #00f0ff80}.btn.primary:hover{filter:brightness(1.12)}.btn.ghost{background:transparent}.btn.danger{border-color:#ff3b5c99;color:var(--red);background:#ff3b5c14}.btn.small{padding:8px 14px;font-size:14px}.btn.tiny{padding:4px 10px;font-size:12px;border-radius:7px}.btn.busy{filter:saturate(.3)}.link{background:none;border:none;color:var(--cyan);text-decoration:underline;text-underline-offset:3px;font-size:14px;padding:6px}input{font:500 16px var(--ui);color:var(--text);background:#00000073;border:1px solid var(--line);border-radius:10px;padding:12px 14px;outline:none;min-width:0}input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #00f0ff33}.error{color:var(--red);min-height:1.4em;font-weight:700;margin-top:6px}.logo{font-family:var(--pixel);font-size:clamp(20px,min(6.4vw,(100vw - 340px) / 13.4),56px);line-height:1.15;margin:0;letter-spacing:.02em;color:#fff;position:relative;white-space:nowrap;text-shadow:0 0 6px var(--cyan),0 0 22px var(--cyan),0 0 42px var(--magenta),3px 3px 0 var(--magenta)}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;inset:0;pointer-events:none}.glitch:before{color:var(--cyan);text-shadow:none;transform:translate(-2px);clip-path:inset(0 0 58% 0);opacity:.3}.glitch:after{color:var(--magenta);text-shadow:none;transform:translate(2px);clip-path:inset(58% 0 0 0);opacity:.3}.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:50;padding:calc(16px + var(--safe-t)) calc(16px + var(--safe-r)) calc(16px + var(--safe-b)) calc(16px + var(--safe-l))}#loading{background:radial-gradient(ellipse at 50% 60%,#2a0a4a,#0b0620 60%);gap:22px;z-index:60;transition:opacity .3s}#loading .btn{margin-top:8px}.load-bar{width:min(420px,80vw);height:12px;border-radius:6px;border:1px solid var(--line);overflow:hidden;background:#0006}#load-fill{height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--magenta));box-shadow:0 0 16px var(--magenta);transition:width .25s}#load-msg{font:400 15px var(--mono);color:var(--muted);text-align:center}#title{background:repeating-linear-gradient(0deg,rgba(0,0,0,.14) 0 2px,transparent 2px 4px),linear-gradient(180deg,#0b062026,#0b06208c 55%,#0b0620eb);overflow-y:auto;justify-content:flex-start;touch-action:pan-y}.title-wrap{margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:center;width:min(1080px,100%)}.title-main{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0}.badge{font:700 12px var(--ui);letter-spacing:.2em;color:var(--yellow);border:1px solid rgba(255,210,60,.5);padding:5px 10px;border-radius:20px;background:#ffd23c14}.tagline{font-size:clamp(15px,2.2vw,20px);margin:0;color:#d9d2ff;text-shadow:0 2px 8px #000}.tagline b{color:var(--yellow)}.motd-note{display:flex;flex-direction:column;gap:4px;max-width:560px;padding:10px 14px;border-radius:12px;overflow-wrap:anywhere;border:1px solid rgba(255,210,60,.6);background:#0c061eb8;box-shadow:0 0 14px #ffd23c2e}.motd-note b{font:400 10px var(--pixel);color:var(--yellow);letter-spacing:.04em}.motd-note span{font-size:15px;color:#fff}#modal-body .motd-note{max-width:none;margin:12px 0 4px}.motd-text{font-size:18px;line-height:1.5;overflow-wrap:anywhere}.auth{display:flex;flex-wrap:wrap;gap:10px;align-items:center;width:min(560px,100%)}.auth input{flex:1 1 220px}.auth .link{flex-basis:100%;text-align:left}.auth .captcha{flex-basis:100%;margin-top:-6px}.auth .captcha:empty{display:none}.auth .auth-note{flex-basis:100%;color:var(--cyan);font-weight:700}.auth .auth-note:empty{display:none}.welcome{font-size:20px;flex-basis:100%}.welcome b{color:var(--cyan)}.controls-help{display:flex;flex-wrap:wrap;gap:10px 16px;color:var(--muted);font-size:14px}.title-side{padding:16px 18px;align-self:center}.title-side h3{font:400 13px var(--pixel);color:var(--yellow);margin:0 0 12px}#title-board{margin:0;padding-left:26px;display:flex;flex-direction:column;gap:6px}#title-board li{display:flex;justify-content:space-between;gap:10px;font-weight:700}#title-board li::marker{color:var(--magenta);font-family:var(--mono)}.title-season{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.title-season h3{margin-bottom:2px}.ts-rule{margin:0 0 8px;font-size:12px;color:var(--muted)}#title-champions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}#title-champions li{display:flex;gap:8px;align-items:baseline}.ts-week{font:400 10px var(--pixel);color:var(--magenta);flex:none}.ts-name{font-weight:700;flex:1;min-width:0;overflow-wrap:anywhere}.ts-score{font:500 13px var(--mono);color:var(--green)}.ts-now .ts-name{font-weight:500;color:var(--muted)}.title-next{margin:10px 0 0;font-size:14px;color:var(--yellow)}.title-jail{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:14px;font-weight:700;color:#ff6b81;overflow-wrap:anywhere}.tb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-score{color:var(--green);font:400 13px var(--mono);white-space:nowrap}#hud{position:fixed;inset:0;pointer-events:none;z-index:20}#hud button,#hud canvas{pointer-events:auto}#hud-left{position:absolute;top:calc(12px + var(--safe-t));left:calc(12px + var(--safe-l));display:flex;flex-direction:column;align-items:flex-start;gap:6px}#player-card{display:flex;gap:12px;align-items:center;padding:10px 14px 10px 10px;min-width:230px}#lvl-badge{width:46px;height:46px;display:grid;place-items:center;font:400 16px var(--pixel);color:#0b0620;background:linear-gradient(135deg,var(--yellow),var(--magenta));border-radius:10px;box-shadow:0 0 16px #ff2bd699}.pc-info{display:flex;flex-direction:column;gap:3px;min-width:0}#pc-name{font-weight:700;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px}#pc-title{font:400 12px var(--mono);color:var(--cyan);text-transform:uppercase;letter-spacing:.08em}.xp{height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}#xp-fill{height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--green));box-shadow:0 0 8px var(--cyan);transition:width .6s}#pc-stats{font:400 12px var(--mono);color:var(--muted)}#mp-chip{display:flex;gap:10px;align-items:center;padding:5px 12px;border-radius:16px;max-width:280px;background:#080416c7;border:1px solid var(--line);font:700 13px var(--ui);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#mp-chip .team{color:var(--yellow);overflow:hidden;text-overflow:ellipsis}#mp-chip:hover{box-shadow:0 0 12px #00f0ff80}#emote-bar{display:flex;gap:6px;padding:6px;border-radius:14px;background:#080416d9;border:1px solid var(--line);pointer-events:auto}#emote-bar button{width:50px;height:50px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000059;font-size:26px;position:relative;display:grid;place-items:center}#emote-bar button:hover{border-color:var(--cyan);box-shadow:0 0 10px #00f0ff80}#emote-bar button span{position:absolute;top:1px;left:4px;font:400 10px var(--mono);color:var(--muted)}body.touch #emote-bar button span{display:none}#emote-pop{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-size:54px;pointer-events:none;animation:emotePop 1.4s ease-out forwards}@keyframes emotePop{0%{opacity:0;transform:translate(-50%,-30%) scale(.5)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-90%) scale(1)}}.title-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}#title-online{font:700 12px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--green);white-space:nowrap;border:1px solid rgba(57,255,90,.5);padding:5px 10px;border-radius:20px;background:#39ff5a14}#title-online:before{content:"\25cf  ";text-shadow:0 0 8px var(--green)}#tracker{--zc: var(--cyan);position:absolute;top:calc(14px + var(--safe-t));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 16px;border-radius:30px;max-width:46vw;background:#080416c7;border:1px solid var(--zc);box-shadow:0 0 14px color-mix(in srgb,var(--zc) 45%,transparent);font-weight:700;font-size:14px;white-space:nowrap}#trk-arrow{color:var(--zc);display:inline-block;font-size:16px;text-shadow:0 0 8px var(--zc);transition:transform .1s linear}#trk-text{overflow:hidden;text-overflow:ellipsis}#zone-banner{--zc: var(--cyan);position:fixed;top:22%;left:50%;transform:translate(-50%,-10px);text-align:center;opacity:0;z-index:45;transition:opacity .5s,transform .5s;pointer-events:none;width:92vw}#zone-banner.show{opacity:1;transform:translate(-50%)}#zb-name{font:400 clamp(16px,3.4vw,34px) var(--pixel);color:#fff;text-shadow:0 0 10px var(--zc),0 0 30px var(--zc),3px 3px 0 #000}#zb-tag{margin-top:10px;font-size:clamp(14px,2vw,20px);color:var(--zc);font-weight:700;text-shadow:0 2px 6px #000}#zone-banner.gold{--zc: var(--yellow)}#top-right{position:absolute;top:calc(12px + var(--safe-t));right:calc(12px + var(--safe-r));display:flex;flex-direction:column;align-items:flex-end;gap:8px}#minimap{width:160px;height:160px;border-radius:50%;box-shadow:0 0 20px #00f0ff59;pointer-events:none!important}#hud-buttons{display:flex;gap:6px}#hud-buttons button{width:44px;height:44px;border-radius:10px;border:1px solid var(--line);background:#080416cc;font-size:18px;position:relative;display:grid;place-items:center}#hud-buttons button span{position:absolute;bottom:-2px;right:2px;font:400 9px var(--mono);color:var(--cyan)}body.touch #hud-buttons button span{display:none}#hud-buttons button:hover{box-shadow:0 0 12px #00f0ff80}#toasts{position:fixed;z-index:45;top:calc(232px + var(--safe-t));right:calc(12px + var(--safe-r));pointer-events:none;display:flex;flex-direction:column;gap:6px;align-items:flex-end;max-width:300px}.toast{padding:8px 12px;border-radius:10px;background:#080416e6;border:1px solid var(--line);font-weight:700;font-size:14px;animation:toastIn .3s ease-out;transition:opacity .4s,transform .4s}.toast.good{border-color:var(--green);color:var(--green);box-shadow:0 0 12px #39ff5a59}.toast.bad{border-color:var(--red);color:#ffc2cc}.toast.gold{border-color:var(--yellow);color:var(--yellow);box-shadow:0 0 14px #ffd23c73}.toast.out{opacity:0;transform:translate(20px)}@keyframes toastIn{0%{opacity:0;transform:translate(30px)}}#crosshair{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%)}#crosshair:before,#crosshair:after{content:"";position:absolute;background:#ffffffe6;box-shadow:0 0 4px var(--cyan)}#crosshair:before{left:10px;top:2px;width:2px;height:18px}#crosshair:after{top:10px;left:2px;width:18px;height:2px}body.touch #crosshair{width:12px;height:12px}body.touch #crosshair:before{left:5px;top:1px;height:10px}body.touch #crosshair:after{top:5px;left:1px;width:10px}#prompt{position:absolute;left:50%;bottom:calc(118px + var(--safe-b));transform:translate(-50%);padding:9px 16px;border-radius:10px;background:#080416e0;border:1px solid var(--yellow);color:var(--yellow);font-weight:700;white-space:nowrap;box-shadow:0 0 16px #ffd23c59;opacity:0;transition:opacity .18s ease-out;pointer-events:none}#prompt.on{opacity:1}#prompt kbd{color:var(--yellow);border-color:var(--yellow);margin-right:4px}#bottom{position:absolute;left:50%;bottom:calc(10px + var(--safe-b));transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}#progress{font-size:13px;color:var(--muted);text-shadow:0 1px 4px #000}#progress b{color:var(--green);font-size:16px}#hotbar{display:flex;gap:4px;padding:5px;border-radius:12px;background:#080416b3;border:1px solid rgba(255,255,255,.08)}.slot{width:50px;height:50px;padding:4px;border-radius:8px;border:2px solid rgba(255,255,255,.12);background:#00000059;position:relative}.slot canvas{width:100%;height:100%;image-rendering:pixelated;display:block;pointer-events:none!important}.slot .key{position:absolute;top:1px;left:4px;font:400 10px var(--mono);color:var(--muted)}.slot.sel{border-color:var(--cyan);box-shadow:0 0 12px var(--cyan),inset 0 0 8px #00f0ff4d}body.touch .slot .key{display:none}#touch{position:fixed;inset:0;z-index:10;touch-action:none}#joy-base{position:absolute;width:124px;height:124px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid rgba(0,240,255,.45);background:radial-gradient(circle,#00f0ff1a,#00f0ff05);opacity:0;pointer-events:none;transition:opacity .15s}#joy-base.on{opacity:1}#joy-knob{position:absolute;left:50%;top:50%;width:54px;height:54px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 35%,#fff,var(--cyan));box-shadow:0 0 18px var(--cyan)}.tbtn{position:absolute;border-radius:50%;border:2px solid rgba(0,240,255,.55);background:#0804168c;color:#fff;font-size:26px;display:grid;place-items:center;z-index:25;touch-action:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tbtn.down{background:#00f0ff59;transform:scale(.94)}#btn-jump{width:80px;height:80px;right:calc(24px + var(--safe-r));bottom:calc(34px + var(--safe-b));font-size:30px}#btn-break{width:58px;height:58px;right:calc(118px + var(--safe-r));bottom:calc(26px + var(--safe-b))}#btn-place{width:58px;height:58px;right:calc(40px + var(--safe-r));bottom:calc(128px + var(--safe-b))}#btn-emote{width:50px;height:50px;right:calc(26px + var(--safe-r));bottom:calc(204px + var(--safe-b));font-size:24px}#btn-use{width:auto;height:56px;padding:0 22px;border-radius:28px;right:calc(118px + var(--safe-r));bottom:calc(112px + var(--safe-b));font:700 18px var(--ui);letter-spacing:.1em;color:#0b0620;border:none;background:linear-gradient(90deg,var(--yellow),#ff9a3c);box-shadow:0 0 22px #ffd23cb3}#resume{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#05020f8c;cursor:pointer}.pause{padding:26px 30px;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center;cursor:default}.pause h2{font:400 22px var(--pixel);margin:0;color:var(--cyan);text-shadow:0 0 12px var(--cyan)}.pause-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}#modal{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:calc(12px + var(--safe-t)) calc(12px + var(--safe-r)) calc(12px + var(--safe-b)) calc(12px + var(--safe-l));background:#05020f9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#modal.over-title{z-index:55}#modal-box{position:relative;width:min(720px,100%);max-height:100%;display:flex;flex-direction:column;background:#0c0620f2;animation:modalIn .18s ease-out}#modal-box.wide{width:min(940px,100%)}#modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:22px;touch-action:pan-y;-webkit-user-select:text;user-select:text}#modal-close{position:absolute;top:8px;right:8px;width:38px;height:38px;border-radius:10px;z-index:2;border:1px solid var(--line);background:#080416e6;font-size:18px}@keyframes modalIn{0%{opacity:0;transform:scale(.97) translateY(8px)}}.modal-title{font:400 18px var(--pixel);margin:0 0 12px;color:var(--cyan);text-shadow:0 0 10px var(--cyan)}#modal-body h3{font:400 12px var(--pixel);color:var(--yellow);margin:22px 0 10px}.term{--zc: var(--cyan);display:flex;flex-direction:column;gap:14px}.term-head{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font:400 13px var(--mono);letter-spacing:.08em;padding:8px 12px;margin-right:36px;border-radius:8px;background:color-mix(in srgb,var(--zc) 16%,transparent);border:1px solid color-mix(in srgb,var(--zc) 55%,transparent)}.term-id{color:var(--zc);font-weight:700}.term-zone{color:#fff}.term-diff{margin-left:auto;color:var(--yellow)}.npc-row{display:flex;gap:14px;align-items:flex-start}.npc-portrait{width:72px;height:72px;flex:none;image-rendering:pixelated;border-radius:10px;border:2px solid var(--zc);box-shadow:0 0 14px color-mix(in srgb,var(--zc) 50%,transparent)}.npc-text{min-width:0}.npc-name{font-weight:700;color:var(--zc);font-size:17px}.npc-say{font-size:16px;color:#e6e0ff;font-style:italic;min-height:2.8em;cursor:pointer}.ch-title{margin:0;font-size:22px;line-height:1.2}.ch-q{font-size:17px;line-height:1.5}.ch-q pre,.ch-q code,.explain code{font-family:var(--mono);background:#00000080;border:1px solid rgba(255,255,255,.1);border-radius:6px}.ch-q code,.explain code{padding:1px 5px;color:var(--cyan)}.ch-q pre{padding:12px 14px;font-size:14px;line-height:1.45;white-space:pre;overflow-x:auto;touch-action:pan-x pan-y;margin:10px 0 0;color:#d6f7ff}.ch-q pre code{border:none;background:none;padding:0}.bad{color:#ff6b85;font-weight:700}.good{color:var(--green);font-weight:700}.ch-answers{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.ans{display:flex;gap:10px;align-items:center;text-align:left;padding:12px 14px;border-radius:10px;min-height:54px;border:1px solid rgba(255,255,255,.16);background:#ffffff0a;font-size:15px;transition:background .15s,border-color .15s}.ans:hover:not(:disabled){border-color:var(--zc);background:color-mix(in srgb,var(--zc) 12%,transparent)}.ans:disabled{cursor:default;opacity:.6}.ans-key{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;font:400 12px var(--pixel);background:color-mix(in srgb,var(--zc) 25%,transparent);color:#fff}.ans.correct{border-color:var(--green);background:#39ff5a2e;opacity:1}.ans.wrong{border-color:var(--red);background:#ff3b5c26;opacity:.8;text-decoration:line-through}.ans-row{grid-column:1 / -1;display:flex;gap:10px}.ans-row input{flex:1;min-width:0;font-family:var(--mono);font-size:18px}.ch-hint{padding:10px 14px;border-radius:10px;border:1px dashed var(--yellow);color:#ffe9a8;background:#ffd23c12}.ch-actions{display:flex;justify-content:flex-start;align-items:center;gap:10px}.fail{padding:10px 14px;border-radius:10px;background:#ff3b5c1a;border:1px solid rgba(255,59,92,.5);color:#ffc2cc;font-weight:700}.fail small{font-weight:500;color:var(--muted)}.reboot{margin-top:4px;font:400 13px var(--mono);color:var(--yellow)}.reboot:empty{display:none}.win{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding:16px;border-radius:12px;background:#39ff5a14;border:1px solid rgba(57,255,90,.5);animation:modalIn .3s ease-out}.win-pts{font:400 22px var(--pixel);color:var(--green);text-shadow:0 0 14px var(--green)}.win-line{font-weight:700;font-size:17px}.win-quest{font-weight:700;color:var(--yellow);text-shadow:0 0 10px rgba(255,210,60,.5)}.win-btns{display:flex;flex-wrap:wrap;gap:10px}.quest-strip{display:flex;gap:5px}.pip{flex:1 1 0;min-width:0;max-width:34px;height:30px;display:grid;place-items:center;padding:0;border-radius:7px;font:700 13px var(--mono);color:var(--muted);background:#ffffff0a;border:1px solid rgba(255,255,255,.18);transition:border-color .15s,background .15s}.pip:hover{border-color:var(--zc)}.pip.done{color:var(--green);border-color:#39ff5a8c;background:#39ff5a1a}.pip.on{color:#fff;border-color:var(--zc);background:color-mix(in srgb,var(--zc) 30%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--zc) 60%,transparent)}.explain{color:#ddd8f5;line-height:1.5}.explain b{color:var(--cyan)}.shake{animation:shake .4s}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.howto{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px;line-height:1.45}.howto b{color:var(--cyan)}.howto .gold{color:var(--yellow)}.keys{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 14px;color:var(--muted);font-size:14px}.term>.btn.primary{align-self:flex-start}.ql-summary{color:var(--muted);font-family:var(--mono);margin-bottom:12px}.ql-zone{--zc: var(--cyan);border:1px solid color-mix(in srgb,var(--zc) 40%,transparent);border-radius:10px;margin-top:10px;overflow:hidden}.ql-zone>summary{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;list-style:none;background:color-mix(in srgb,var(--zc) 10%,transparent)}.ql-zone summary::-webkit-details-marker{display:none}.ql-name{font-weight:700;color:var(--zc);flex:1}.ql-bar{width:120px;height:8px;border-radius:4px;background:#ffffff1a;overflow:hidden}.ql-bar i{display:block;height:100%;background:var(--zc);box-shadow:0 0 8px var(--zc)}.ql-count{font-family:var(--mono);width:44px;text-align:right}.ql-zone ul{list-style:none;margin:0;padding:4px 8px 8px}.ql-zone li{display:flex;align-items:center;gap:10px;padding:7px 6px;border-bottom:1px solid rgba(255,255,255,.05)}.ql-zone li.solved{opacity:.6}.ql-id{font-family:var(--mono);color:var(--muted)}.ql-t{flex:1;display:flex;flex-direction:column;min-width:0}.ql-t small{color:var(--muted)}.ql-d{color:var(--yellow);font-family:var(--mono);white-space:nowrap}.ql-zone li.solved .ql-d{color:var(--green)}.ql-zone>ul>li{display:block;padding:0}.ql-quest>summary{display:flex;align-items:center;gap:10px;padding:7px 6px;cursor:pointer;list-style:none}.ql-quest>summary:before{content:"\25b8";color:var(--zc);transition:transform .15s}.ql-quest[open]>summary:before{transform:rotate(90deg)}.ql-quest.solved>summary{opacity:.6}.ql-quest.solved>summary .ql-d{color:var(--green)}.ql-steps{list-style:none;margin:0 0 6px 22px;padding:0}.ql-steps li{padding:5px 6px;font-size:14px}.ql-steps .ql-id{min-width:2.2em;text-align:right}.lb{width:100%;border-collapse:collapse;font-size:15px;table-layout:fixed}.lb th:nth-child(1){width:58px}.lb th:nth-child(3){width:72px}.lb th:nth-child(4){width:92px}.lb th:nth-child(5){width:70px}.lb th{text-align:left;font:400 11px var(--pixel);color:var(--muted);padding:8px;border-bottom:1px solid var(--line)}.lb td{padding:9px 8px;border-bottom:1px solid rgba(255,255,255,.06)}.lb-rank{font-family:var(--mono);width:56px}.lb-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-name small{display:block;font:400 11px var(--mono);color:var(--cyan);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis}.lb-solved{color:var(--green);font-family:var(--mono)}.lb-pts{font-family:var(--mono);color:var(--yellow)}.lb tr.me{background:#00f0ff1f;outline:1px solid var(--cyan)}.lb tr.top1 .lb-name{color:var(--yellow)}.bigmap{display:block;margin:10px auto 0;border-radius:12px;border:1px solid var(--line);image-rendering:pixelated;cursor:crosshair;max-width:100%;height:auto}.menu-btns{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.map-trips{justify-content:center;margin-top:12px}.map-trips .btn{border-width:2px;border-style:solid}.map-trips .btn:disabled{opacity:.55;cursor:not-allowed}.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.seg{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.seg button{border:none;background:transparent;padding:7px 14px;font-weight:700;font-size:14px}.seg button.on{background:linear-gradient(90deg,var(--cyan),var(--magenta));color:#0b0620}.set-row input[type=range]{width:180px;accent-color:var(--cyan);padding:0}.report{display:flex;flex-direction:column;gap:10px}.report p{margin:0}.report .modal-title{margin-right:40px;line-height:1.5}.report-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.report select,.report textarea{font:500 16px var(--ui);color:var(--text);background:#00000073;border:1px solid var(--line);border-radius:10px;outline:none}.report select{padding:9px 12px;flex:1 1 220px;max-width:360px}.report textarea{width:100%;padding:10px 12px;resize:vertical;min-height:120px;line-height:1.45}.report select:focus,.report textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #00f0ff33}.report-count{font:400 12px var(--mono);margin-left:auto}.report-note{font-size:13px}.report a,.tiny-print a{color:var(--cyan)}.ch-actions .report-link{margin-left:auto;font-size:13px;color:var(--muted)}.legal-line{margin:0;font-size:13px;color:var(--muted)}.legal-line a{color:var(--cyan);text-underline-offset:3px}.code-box{display:flex;gap:10px;align-items:center;margin-top:10px;padding:10px;border-radius:10px;background:#00000073;border:1px dashed var(--magenta)}.code-box code{font:400 14px var(--mono);color:var(--magenta);overflow-wrap:anywhere;flex:1;-webkit-user-select:all;user-select:all}.tiny-print{font-size:12px;margin-top:18px}@media(max-width:820px){.title-wrap{grid-template-columns:minmax(0,1fr);gap:18px}.logo{font-size:clamp(20px,6.4vw,56px)}.title-side{width:100%}}@media(max-width:760px),(max-height:540px){#player-card{min-width:0;padding:6px 10px 6px 6px;gap:8px}#lvl-badge{width:34px;height:34px;font-size:12px}#pc-name{font-size:14px;max-width:120px}#pc-title{font-size:10px}#pc-stats{display:none}#minimap{width:104px;height:104px}#hud-buttons button{width:38px;height:38px;font-size:16px}#mp-chip{font-size:11px;padding:4px 10px;max-width:200px}#emote-bar button{width:42px;height:42px;font-size:22px}#tracker{top:auto;bottom:calc(92px + var(--safe-b));font-size:12px;padding:6px 12px;max-width:70vw}#prompt{bottom:calc(128px + var(--safe-b));font-size:14px}.slot{width:38px;height:38px;padding:3px}#hotbar{gap:3px;padding:4px}#progress{font-size:11px}#modal-body{padding:16px}.ch-answers{grid-template-columns:minmax(0,1fr)}.ch-title{font-size:19px}.ch-q{font-size:16px}.ql-bar{width:60px}.quest-strip{gap:4px}.pip{height:28px;font-size:12px}.lb th:nth-child(3),.lb td:nth-child(3){display:none}#toasts{max-width:220px;top:calc(166px + var(--safe-t))}.toast{font-size:12px;padding:6px 10px}.lb th:nth-child(1){width:44px}.lb th:nth-child(4){width:76px}.lb th:nth-child(5){width:56px}.lb td,.lb th{padding-left:6px;padding-right:6px}}@media(max-width:380px){.slot{width:32px;height:32px;padding:2px}#hotbar{gap:2px;padding:3px}}@media(max-height:540px)and (orientation:landscape){#tracker{top:calc(10px + var(--safe-t));bottom:auto;max-width:38vw}#prompt{bottom:calc(86px + var(--safe-b))}#zone-banner{top:26%}#minimap{width:92px;height:92px}#toasts{top:calc(150px + var(--safe-t))}.slot{width:30px;height:30px;padding:2px}#hotbar{gap:2px;padding:3px}body.touch #btn-break{right:calc(106px + var(--safe-r))}body.touch #btn-emote{right:auto;bottom:auto;left:calc(14px + var(--safe-l));top:calc(118px + var(--safe-t))}body.touch #prompt{bottom:auto;top:calc(52px + var(--safe-t))}#modal{padding-top:calc(6px + var(--safe-t));padding-bottom:calc(6px + var(--safe-b))}#modal-body{padding:12px 16px}.term{gap:9px}.term-head{font-size:11px;padding:5px 10px}.npc-portrait{width:46px;height:46px}.npc-name{font-size:15px}.npc-say{font-size:14px;min-height:0}.ch-title{font-size:17px}.ch-q{font-size:15px;line-height:1.4}.ch-q pre{font-size:12.5px;padding:8px 10px}.ch-answers{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.ans{min-height:44px;padding:8px 10px;font-size:14px}.ans-key{width:24px;height:24px;font-size:10px}.pip{height:25px;font-size:11px;border-radius:6px}}@media(orientation:portrait){body.touch #btn-jump{bottom:calc(118px + var(--safe-b))}body.touch #btn-break{bottom:calc(110px + var(--safe-b))}body.touch #btn-place{bottom:calc(210px + var(--safe-b))}body.touch #btn-use{bottom:calc(196px + var(--safe-b))}body.touch #btn-emote{bottom:calc(286px + var(--safe-b))}body.touch #prompt{bottom:auto;top:calc(228px + var(--safe-t));font-size:14px;max-width:90vw;overflow:hidden;text-overflow:ellipsis}body.touch #tracker{bottom:auto;top:calc(176px + var(--safe-t));max-width:86vw}body.touch #zone-banner{top:30%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.tabs{display:flex;gap:6px;margin:4px 0 10px}.tabs button{padding:6px 14px;border-radius:16px;border:1px solid var(--line);background:transparent;font-weight:700}.tabs button.on{background:#00f0ff2e;border-color:var(--cyan);color:var(--cyan)}.team-list{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px}.team-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#ffffff0a}.team-list .tm-name{font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-list .tm-name small{display:block;font:400 12px var(--mono);color:var(--muted)}.team-list li.invite{flex-wrap:wrap}.team-list li.invite .tm-name{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}.team-list .dot{width:9px;height:9px;border-radius:50%;background:#4a4466;flex:none}.team-list .dot.on{background:var(--green);box-shadow:0 0 8px var(--green)}.team-list .cap{color:var(--yellow)}.team-form{display:flex;gap:8px;margin:8px 0;flex-wrap:wrap}.team-form input{flex:1;min-width:160px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#00000059;color:var(--text);font:500 16px var(--ui)}.team-msg{min-height:1.4em;font-weight:700}.team-msg.bad{color:#ffc2cc}.team-msg.good{color:var(--green)}#threat-chip{--tc: var(--cyan);display:flex;gap:6px;align-items:center;padding:5px 12px;border-radius:16px;max-width:280px;background:#080416c7;border:1px solid color-mix(in srgb,var(--tc) 70%,transparent);font:700 13px var(--ui);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#threat-chip b{color:var(--tc)}#threat-chip .tc-lvl{color:var(--tc);font:400 11px var(--mono);letter-spacing:.1em}#threat-chip .tc-dot{width:8px;height:8px;border-radius:50%;background:var(--tc);box-shadow:0 0 8px var(--tc);flex:none}#threat-chip:hover{box-shadow:0 0 12px color-mix(in srgb,var(--tc) 60%,transparent)}#btn-arena{border-color:#ff2bd699!important;box-shadow:0 0 10px #ff2bd659}body.in-arena #btn-arena{background:#ff2bd647!important}#crosshair.lock:before,#crosshair.lock:after{background:#ff4d6d;box-shadow:0 0 6px #ff2d55}#crosshair.lock{border-radius:50%;box-shadow:0 0 0 2px #ff2d55e6,0 0 12px #ff2d5599}body.in-arena #progress{display:none}#arena-bar{display:flex;gap:6px;align-items:stretch;padding:5px;border-radius:12px;pointer-events:auto;background:#080416cc;border:1px solid rgba(255,43,214,.45);box-shadow:0 0 16px #ff2bd640}#arena-bar>*{display:flex;align-items:center;gap:8px;padding:4px 10px;border-radius:8px;background:#00000059;border:1px solid rgba(255,255,255,.08)}#arena-bar small{display:block;font:400 10px var(--mono);color:var(--muted);letter-spacing:.06em}.ab-tool{font:700 12px var(--ui);color:#fff}.ab-icon{font-size:24px;line-height:1}.ab-credits{flex-direction:column;justify-content:center;gap:0!important;min-width:96px;text-align:center}.ab-credits b{font:700 20px var(--ui);color:var(--green);text-shadow:0 0 8px rgba(57,255,90,.5)}.ab-credits span{font:400 10px var(--mono);color:var(--cyan)}#arena-bar.broke .ab-credits b{color:var(--red);text-shadow:none}.ab-heat{flex-direction:column;justify-content:center;gap:4px!important}.ab-meter{width:84px;height:8px;border-radius:4px;background:#ffffff1a;overflow:hidden}.ab-meter i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff7a3c,var(--yellow),var(--green))}.ab-meter.low i{background:var(--red)}.ab-leave{font:700 14px var(--ui);color:var(--green)!important;border-color:#39ff5a73!important;flex-direction:column;justify-content:center;gap:0!important}.ab-leave:hover{box-shadow:0 0 12px #39ff5a66}body.touch.in-arena #btn-break,body.touch.in-arena #btn-place{font-size:30px;border-color:#ff2bd6b3}#warp{position:fixed;inset:0;z-index:44;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 50%,#fff,#00f0ffd9,#ff2bd699 60%,#0b062000)}#warp.go{animation:warp .7s ease-out}@keyframes warp{0%{opacity:0;transform:scale(.6)}18%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}#zone-banner.bad{--zc: var(--red)}.vuln{--vc: var(--magenta);display:flex;flex-direction:column;gap:10px}.vuln-head{display:flex;gap:14px;align-items:center;margin-right:36px}.vuln-emoji{font-size:54px;line-height:1;width:76px;height:76px;display:grid;place-items:center;border-radius:16px;flex:none;background:color-mix(in srgb,var(--vc) 22%,transparent);border:2px solid var(--vc);box-shadow:0 0 18px color-mix(in srgb,var(--vc) 45%,transparent)}.vuln-name{margin:0;font:400 clamp(16px,3.4vw,24px) var(--pixel);color:#fff;text-shadow:0 0 12px var(--vc);line-height:1.3}.vuln-id{margin-top:6px;font:400 14px var(--mono);color:var(--vc)}.vuln-bar{height:14px;border-radius:7px;background:#ffffff1a;overflow:hidden}.vuln-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--yellow),#ff2d55);transition:width .3s}.vuln-count{font-size:14px;color:var(--muted)}.vuln-count b{color:#fff;font-size:18px}.vuln-taunt{margin:4px 0;padding:10px 14px;border-left:3px solid var(--vc);background:#0000004d;border-radius:0 10px 10px 0;font-style:italic;color:#fff}.vuln p{margin:0;line-height:1.5}#modal-body .vuln h3{margin:10px 0 0}.vuln-credits{font-size:14px;color:var(--muted)}.vuln-credits b{color:var(--green);font-size:17px}.patch-btns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.patch-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;font-size:14px;line-height:1.2}.patch-btn small{font:400 11px var(--mono);opacity:.8}.arena-hero{--tc: var(--cyan);text-align:center;padding:14px;border-radius:14px;border:1px solid var(--tc);background:color-mix(in srgb,var(--tc) 10%,transparent)}.ah-num{font:700 clamp(38px,8vw,56px) var(--ui);color:var(--tc);line-height:1;text-shadow:0 0 18px color-mix(in srgb,var(--tc) 60%,transparent)}.ah-lbl{color:var(--muted);font-size:14px}.ah-lvl{margin-top:6px;font:400 12px var(--pixel);color:var(--tc)}.av-list,.av-top{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.av-list li{--vc: var(--magenta);display:grid;grid-template-columns:34px minmax(0,1.3fr) minmax(60px,1fr) auto;gap:10px;align-items:center;padding:7px 10px;border-radius:10px;background:#0000004d;border-left:3px solid var(--vc)}.av-emoji{font-size:24px;text-align:center}.av-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.av-name small{display:block;font:400 11px var(--mono);color:var(--vc);overflow:hidden;text-overflow:ellipsis}.av-bar{height:8px;border-radius:4px;background:#ffffff1a;overflow:hidden}.av-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--yellow),#ff2d55)}.av-list b{font:700 16px var(--ui);min-width:44px;text-align:right}.av-top{counter-reset:rank}.av-top li{counter-increment:rank;display:flex;gap:10px;align-items:center;padding:5px 10px;border-radius:8px;background:#00000040}.av-top li:before{content:"#" counter(rank);font:400 13px var(--mono);color:var(--magenta);width:30px}.av-top li span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.av-top li b{color:var(--green)}.av-top li.me{outline:1px solid var(--cyan);background:#00f0ff1f}@media(max-width:760px),(max-height:540px){#threat-chip{font-size:11px;padding:4px 10px;max-width:200px}#arena-bar{gap:4px;padding:4px}#arena-bar>*{padding:3px 7px}.ab-tool{display:none!important}.ab-credits{min-width:70px}.ab-credits b{font-size:16px}.ab-meter{width:60px}.patch-btns{grid-template-columns:repeat(2,minmax(0,1fr))}.vuln-emoji{font-size:40px;width:58px;height:58px}.av-list li{grid-template-columns:28px minmax(0,1fr) auto}.av-bar{display:none}}#blockpage{position:fixed;inset:0;z-index:100;pointer-events:none;outline:none}.bp-page{--e: calc(var(--burn, 0) * 120% - 10%);position:absolute;inset:0;overflow:auto;display:flex;flex-direction:column;align-items:center;padding:calc(24px + var(--safe-t)) calc(16px + var(--safe-r)) calc(24px + var(--safe-b)) calc(16px + var(--safe-l));pointer-events:auto;cursor:default;background:#e3e3e3;color:#000;font:400 20px Arial,Helvetica,sans-serif;-webkit-font-smoothing:auto;-webkit-user-select:text;user-select:text}.bp-card{flex:none;width:min(948px,100%);margin-top:auto;background:#fff;border:3px solid #fd4239;border-radius:10px;overflow:hidden}.bp-head{display:flex;align-items:flex-start;gap:22px;margin:24px 26px 1px;font-size:30px;color:#fd4239}.bp-no{flex:none;position:relative;width:.7em;height:.7em;margin-top:.225em;border:.14em solid;border-radius:50%}.bp-no:after{content:"";position:absolute;left:50%;top:50%;width:.14em;height:.5em;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}.bp-card hr{margin:21px 26px 19px;border:0;border-top:1px solid #cfd0d1;border-bottom:1px solid #eee}.bp-card p{margin:0 26px 20px}.bp-card b{font-weight:700;white-space:nowrap}.bp-what{font-weight:700;color:#2a2c30}.bp-link{color:#00b6e5;cursor:pointer}.bp-help{display:flex;justify-content:space-between;gap:16px;padding:12px 28px 12px 26px;background:#f3f3f3;color:#696a6d;font-size:13.6px}.bp-foot{flex:none;display:flex;align-items:center;gap:5px;margin:14px 0 auto;color:#939393;font-size:15px}.bp-logo{display:inline-flex;align-items:center;gap:1px;font:italic 700 18px Arial,Helvetica,sans-serif;letter-spacing:-.03em}.bp-logo svg{width:18px;height:20px;fill:currentColor}#blockpage.burning .bp-page{-webkit-mask-image:linear-gradient(to top,transparent var(--e),#000 calc(var(--e) + 8%));mask-image:linear-gradient(to top,transparent var(--e),#000 calc(var(--e) + 8%))}#blockpage.burning .bp-page:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,#1c0700 var(--e),rgba(110,38,0,.85) calc(var(--e) + 5%),rgba(200,95,20,.3) calc(var(--e) + 11%),transparent calc(var(--e) + 19%))}.bp-fire{position:absolute;inset:0;width:100%;height:100%}@media(max-width:600px),(max-height:500px){.bp-page{font-size:16px}.bp-head{font-size:22px;gap:14px;margin:18px 18px 0}.bp-card hr{margin:16px 18px 15px}.bp-card p{margin:0 18px 15px}.bp-help{padding:10px 18px;font-size:12px}.bp-foot{flex-wrap:wrap;justify-content:center;text-align:center;font-size:13px}}.bp-gotcha{position:fixed;left:50%;top:40%;z-index:101;pointer-events:none;text-align:center;white-space:nowrap;transform:translate(-50%,-50%) rotate(-7deg);animation:bp-stamp 2.8s cubic-bezier(.2,.9,.3,1) both}.bp-gotcha b{display:block;font:400 clamp(40px,11vw,112px)/1.15 var(--pixel);background:linear-gradient(#fffbe0 12%,#ffd23c 45%,#ff6a1c 75%,#ff2d2d);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 18px rgba(255,110,20,.85)) drop-shadow(0 6px 0 #3a0800)}.bp-gotcha small{display:block;margin-top:12px;font:700 clamp(14px,3vw,22px) var(--ui);letter-spacing:.24em;color:#fff;text-shadow:0 0 10px #ff5a1c,0 2px 0 #000}@keyframes bp-stamp{0%{opacity:0;transform:translate(-50%,-50%) rotate(-7deg) scale(2.6)}14%{opacity:1;transform:translate(-50%,-50%) rotate(-7deg) scale(.94)}20%{transform:translate(-50%,-50%) rotate(-7deg) scale(1.04)}26%,82%{opacity:1;transform:translate(-50%,-50%) rotate(-7deg) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(-7deg) scale(1.08)}}.ql-zone.locked{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;opacity:.75}.ql-lock{color:var(--yellow);font-weight:700}.ql-new{color:var(--zc);font:400 9px var(--pixel)}
