:root{--bg:#05060a;--panel:#0c0e16f0;--line:#ffffff17;--text:#e8ecf4;--muted:#9aa4b8;--mono:"JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);margin:0;overflow:hidden}#game{cursor:none;touch-action:none;width:100vw;height:100dvh;display:block;position:fixed;inset:0}body.touch{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.overlay,button{touch-action:manipulation}button{font:inherit;color:inherit}a{color:#7fdcff}code{font-family:var(--mono);color:#ffd84a}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:radial-gradient(#05060a8c,#05060aeb);place-items:safe center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.overlay[hidden]{display:none}.overlay.menu{background:radial-gradient(at 50% 20%,#1a1030 0%,#05060a 70%)}.overlay.intro-overlay{cursor:pointer;background:#05060a99}.title{text-align:center;width:100%;max-width:1100px}.logo{font:900 clamp(56px, 11vw, 132px) / .9 var(--sans);letter-spacing:-.04em;background:linear-gradient(#fff 30%,#ff4d6d);color:#0000;filter:drop-shadow(0 0 30px #ff4d6d59);-webkit-background-clip:text;background-clip:text;display:inline-block;position:relative}.logo:before,.logo:after{content:attr(data-text);color:#0000;pointer-events:none;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.logo:before{background:#00e5ff;animation:2.6s step-end infinite glitch}.logo:after{background:#ff00c8;animation:2.6s step-end infinite reverse glitch}@keyframes glitch{0%,86%,to{clip-path:inset(100% 0 0);transform:none}88%{clip-path:inset(20% 0 55%);transform:translate(-6px,2px)}91%{clip-path:inset(60% 0 10%);transform:translate(5px,-2px)}94%{clip-path:inset(40% 0 35%);transform:translate(-3px,1px)}}.subtitle{font:500 18px var(--mono);color:var(--muted);margin:12px 0 34px}.levels{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.level{--accent:#fff;text-align:left;border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 14%, transparent), #ffffff05);cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:18px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.level:not(.locked):hover{border-color:var(--accent);box-shadow:0 10px 40px -10px var(--accent);transform:translateY(-4px)}.level.locked{opacity:.4;cursor:not-allowed;filter:grayscale(.7)}.group+.group{margin-top:26px}.group-title{font:700 12px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);align-items:center;gap:12px;margin:0 0 12px;display:flex}.group-title:after{content:"";background:var(--line);flex:1;order:1;height:1px}.group-progress{letter-spacing:.04em;text-transform:none;order:2;font-weight:500}.levels.extras{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.level-name{font:800 24px var(--sans);color:var(--accent)}.level-tagline{color:var(--text);text-wrap:pretty;flex:1;font-size:13px;line-height:1.4}.level-meta{color:var(--muted);font-size:13px}.level-meta b{font-family:var(--mono);color:var(--text)}.level-clients{gap:4px;margin-top:4px;display:flex}.level-best{font:500 11px var(--mono);color:var(--muted);margin-top:4px}.avatar{width:30px;height:30px;font:800 14px var(--sans);color:#0b0b10;border-radius:8px;flex:none;place-items:center;display:inline-grid}.level-clients .avatar{border-radius:6px;width:24px;height:24px;font-size:12px}.legend{font:12px var(--mono);color:var(--muted);flex-wrap:wrap;justify-content:center;gap:16px;margin:26px 0 8px;display:flex}.legend i{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.fineprint{color:var(--muted);max-width:720px;margin:16px auto 0;font-size:12px;line-height:1.7}.languages{background:#ffffff0f;border-radius:9px;gap:2px;margin-top:18px;padding:3px;display:inline-flex}.languages button{font:600 12px var(--mono);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 12px}.languages button:hover{color:var(--text)}.languages button.active{color:var(--text);background:#ffffff24}.intro{text-align:center;--accent:#fff;animation:.5s ease-out rise}.intro-sprint{font:700 14px var(--mono);letter-spacing:.3em;color:var(--accent);text-transform:uppercase}.intro-name{font:900 clamp(48px, 9vw, 104px) / 1 var(--sans);letter-spacing:-.03em;text-shadow:0 0 40px var(--accent)}.intro-tagline{font:18px var(--sans);color:var(--text);margin:14px 0 22px}.intro-meta{font:13px var(--mono);color:var(--muted);justify-content:center;align-items:center;gap:8px;display:flex}.intro-meta .avatar{width:24px;height:24px;font-size:12px}.intro-go{font:600 13px var(--mono);color:var(--accent);margin-top:40px;animation:1.2s infinite blink}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}@keyframes blink{50%{opacity:.3}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;width:min(560px,100%);padding:30px;animation:.35s ease-out rise;box-shadow:0 30px 80px -20px #000c}.panel.wide{width:min(760px,100%)}.panel h2{font:800 28px var(--sans);margin:0 0 8px}.panel h2.win{color:#58e6a0}.panel h2.lose{color:#ff4d6d}.panel p{color:var(--muted);line-height:1.5}.panel pre{font:12px var(--mono);white-space:pre-wrap;color:#ffb3c0;max-height:240px;overflow:auto}.stats{grid-template-columns:repeat(5,1fr);gap:8px;margin:20px 0;display:grid}.stats div{text-align:center;background:#ffffff0a;border-radius:10px;flex-direction:column;gap:4px;padding:12px 8px;display:flex}.stats b{font:800 20px var(--sans)}.stats span{font:10px var(--mono);color:var(--muted);text-transform:uppercase}.notes{border:1px solid var(--line);background:#0000004d;border-radius:12px;padding:14px 16px}.notes-title{font:700 13px var(--mono);margin-bottom:8px}.notes ul{max-height:220px;margin:0;padding:0;font-size:13px;line-height:1.7;list-style:none;overflow:auto}.notes li{white-space:nowrap;text-overflow:ellipsis;color:var(--text);overflow:hidden}.notes li b{font:700 12px var(--mono);margin-right:6px;text-decoration:none}.notes-creep{font:12px var(--mono);color:#ffd84a;margin-top:8px}.final-msg{background:#ff4d6d14;border:1px solid #ff4d6d4d;border-radius:12px;gap:12px;margin:16px 0;padding:14px;display:flex}.final-msg p{color:var(--text);margin:4px 0 0;font-weight:700}.actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.actions button{border:1px solid var(--line);cursor:pointer;background:#ffffff0d;border-radius:10px;padding:11px 18px;font-weight:600;transition:background .15s,transform .1s}.actions button:hover{background:#ffffff1a}.actions button:active{transform:scale(.97)}.actions button.primary{background:#3a6df0;border-color:#3a6df0}.actions button.primary:hover{background:#4f80ff}.multi{width:min(620px,100%)}.field{font:600 11px var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex-direction:column;gap:6px;margin:14px 0 0;display:flex}.field input,.field select{border:1px solid var(--line);color:var(--text);font:500 16px var(--sans);text-transform:none;letter-spacing:0;background:#00000059;border-radius:10px;padding:11px 12px}.field input:focus,.field select:focus{outline-offset:1px;outline:2px solid #3a6df0}.field input[name=code]{font-family:var(--mono);letter-spacing:.08em}.multi-choices{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:6px;display:grid}.multi-box{border:1px solid var(--line);background:#ffffff08;border-radius:12px;flex-direction:column;justify-content:space-between;gap:12px;padding:4px 14px 14px;display:flex}.multi-box button,.share button{border:1px solid var(--line);cursor:pointer;background:#ffffff0d;border-radius:10px;padding:11px 18px;font-weight:600}.multi-box button.primary{background:#3a6df0;border-color:#3a6df0}.multi-box button:hover,.share button:hover{filter:brightness(1.15)}.multi-error{min-height:1.5em;margin:10px 0 0;font-size:14px;color:#ff6b81!important}.lobby h2{color:var(--accent);font-family:var(--mono);letter-spacing:.04em}.share{border:1px solid var(--line);background:#00000059;border-radius:10px;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex}.share code{text-overflow:ellipsis;white-space:nowrap;color:#7fdcff;flex:1;min-width:0;font-size:13px;overflow:hidden}.members{gap:6px;margin:16px 0 0;padding:0;list-style:none;display:grid}.members li,.team li{background:#ffffff0a;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;display:flex}.members li.offline{opacity:.5}.members i,.team i{border-radius:50%;flex:none;width:14px;height:14px}.tag{font:600 10px var(--mono);color:var(--muted);text-transform:uppercase;background:#ffffff14;border-radius:6px;padding:2px 7px}.tag.you{color:#cfdcff;background:#3a6df04d}.lobby-level{margin:16px 0 0}.lobby-level b{color:var(--accent)}.waiting{font:13px var(--mono);color:var(--muted);align-self:center;margin:0;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.5}}.team{margin:0 0 16px}.team ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.team li span{font:600 12px var(--mono);color:var(--muted);margin-left:auto}@media (height<=500px){.multi{padding:18px 22px}.multi h2{font-size:22px}.multi>p:first-of-type{display:none}.field{margin-top:8px}.field input,.field select{padding:8px 10px}.multi-box{gap:8px;padding:2px 10px 10px}.multi-box button{padding:8px 14px}.members{margin-top:10px}.members li{padding:6px 10px}.multi .actions{margin-top:12px}}#chat{pointer-events:none;z-index:5;flex-direction:column;gap:8px;width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}#chat[hidden]{display:none}.chat-header{font:600 12px var(--mono);color:var(--muted);background:#0c0e16cc;border-radius:8px;align-self:flex-end;align-items:center;gap:8px;padding:6px 10px;display:flex}.chat-dot{background:#58e6a0;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #58e6a0}.chat-members{opacity:.6}.mission{background:#280c14eb;border:1px solid #ff4d6d80;border-radius:12px;padding:12px;animation:.3s ease-out slide;box-shadow:0 0 30px -8px #ff4d6d99}.mission.hidden{display:none}.mission-top{align-items:center;gap:8px;display:flex}.mission-top .avatar{border-radius:6px;width:22px;height:22px;font-size:11px}.mission-kind{font:700 11px var(--mono);color:#ff8fa3;letter-spacing:.05em;flex:1}.mission-time{font:800 15px var(--mono)}.mission-time.urgent{color:#ff4d6d;animation:.5s infinite blink}.mission-goal{font:600 13px var(--sans);margin:8px 0}.bar{background:#ffffff1a;border-radius:3px;height:6px;overflow:hidden}.bar .fill{background:linear-gradient(90deg,#ff4d6d,#ffd84a);width:0;height:100%;transition:width .2s}.chat-list{flex-direction:column;gap:8px;display:flex}.msg{background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:10px;padding:10px 12px;animation:.3s ease-out slide;display:flex}.msg:nth-child(n+3){opacity:.55}.msg:nth-child(n+4){opacity:.3}.msg.ok{border-color:#58e6a080}.msg.ko{border-color:#ff4d6d80}.msg.zombie{background:#14220cf0;border-color:#9dff6b99}.msg.nudge{border-color:#ff9f1c99}.msg.call{border-color:#7fb8ff99}.mission.call{background:#0e182ceb;border-color:#7fb8ff8c;box-shadow:0 0 30px -8px #7fb8ff99}.mission.call .mission-kind{color:#9fcbff}.mission.call .fill{background:linear-gradient(90deg,#7fb8ff,#ffd84a)}.text em{color:#ffb347;font-weight:700}.bubble{flex:1;min-width:0}.meta{align-items:baseline;gap:6px;font-size:12px;display:flex}.meta .name{font-weight:800}.meta .role{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.meta .time{color:var(--muted);font:10px var(--mono)}.text{overflow-wrap:anywhere;margin-top:3px;font-size:13px;line-height:1.4}.dots{color:var(--muted);letter-spacing:2px;font-size:10px;animation:.8s infinite blink}@keyframes slide{0%{opacity:0;transform:translate(30px)}}#touch{z-index:4;touch-action:none;position:fixed;inset:0}#touch[hidden]{display:none}.stick-zone{touch-action:none;position:absolute;top:70px;bottom:0}.stick-zone.left{width:45%;left:0}.stick-zone.right{width:55%;right:0}.stick{opacity:0;pointer-events:none;background:#ffffff0a;border:2px solid #ffffff29;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transition:opacity .15s;position:absolute}.stick.held{opacity:1}.stick .knob{background:#ffffff59;border-radius:50%;position:absolute;inset:32px;box-shadow:0 0 18px #ffffff4d}.stick-zone.right .stick .knob{background:#ff4d6d8c;box-shadow:0 0 18px #ff4d6d99}.stick-zone.left:after,.stick-zone.right:after{content:"";pointer-events:none;border:2px dashed #ffffff1f;border-radius:50%;width:84px;height:84px;position:absolute;bottom:34px}.stick-zone.left:after{left:40px}.stick-zone.right:after{bottom:110px;right:200px}.stick-zone:has(.held):after{display:none}.touch-btn{color:#fff;font:800 13px var(--mono);touch-action:none;background:#0c0e168c;border:2px solid #ffffff40;border-radius:50%;place-items:center;display:grid;position:absolute}.touch-btn.down{background:#fff3;transform:scale(.92)}.touch-btn.dash{color:#7fdcff;border-color:#7fdcff99;width:72px;height:72px;bottom:26px;right:22px}.touch-btn.bomb{width:54px;height:54px;font-size:22px;bottom:34px;right:108px}.touch-bar{z-index:1;gap:6px;display:flex;position:absolute;top:72px;left:50%;transform:translate(-50%)}.touch-small{border:1px solid var(--line);background:#0c0e1699;border-radius:10px;width:34px;height:34px;font-size:16px}body.touch #chat{opacity:.92;gap:6px;width:min(300px,38vw);top:104px;bottom:auto;right:12px}body.touch .chat-header,body.touch .msg:nth-child(n+2){display:none}body.touch .msg,body.touch .mission{padding:8px 10px}body.touch .text,body.touch .mission-goal{font-size:12px}body.touch .text{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (height<=500px){body.touch #chat{width:min(250px,34vw);top:96px}body.touch .meta .role,body.touch .meta .time{display:none}body.touch .msg{gap:6px;padding:6px 8px}body.touch .msg .avatar,body.touch .mission-top .avatar{border-radius:5px;width:18px;height:18px;font-size:10px}body.touch .mission{padding:6px 8px}body.touch .mission-kind{font-size:9px}body.touch .mission-time{font-size:12px}body.touch .mission-goal{margin:3px 0 5px;font-size:11px}body.touch .text{-webkit-line-clamp:2;line-clamp:2;font-size:11px}}.rotate{z-index:20;text-align:center;background:var(--bg);font:600 16px var(--sans);place-content:center;gap:12px;padding:32px;display:none;position:fixed;inset:0}.rotate span{font-size:48px}@media (orientation:portrait){body.touch:is([data-mode=intro],[data-mode=playing],[data-mode=paused]) .rotate{display:grid}}@media (height<=500px){.overlay{padding:12px}.logo{margin-bottom:10px;font-size:38px}.subtitle{display:none}.levels{grid-template-columns:repeat(4,1fr);gap:8px}.level{gap:4px;padding:10px}.level-name{font-size:16px}.group+.group{margin-top:12px}.group-title{margin-bottom:6px;font-size:10px}.levels.extras{grid-template-columns:repeat(2,1fr)}.levels.extras .level{flex-flow:wrap;align-items:baseline;gap:2px 10px}.levels.extras .level-tagline,.levels.extras .level-clients{display:none}.levels.extras .level-best{margin-top:0}.level-tagline,.level-meta{font-size:11px}.level-clients .avatar{width:18px;height:18px;font-size:10px}.legend{display:none}.fineprint{margin-top:10px;font-size:10px;line-height:1.5}.languages{margin-top:8px}.intro-name{font-size:40px}.panel{padding:16px}}@media (width<=760px){.stats{grid-template-columns:repeat(3,1fr)}#chat{width:calc(100vw - 32px)}}.touch-small.active{background:#7fdcff40;border-color:#7fdcff99}.home-hint{color:#7fdcff;margin-top:6px}
