:root{--night:#141a2b;--ink:#1f2740;--glass:#141a2bd6;--glass-strong:#141a2bf2;--line:#9fb2da2e;--text:#eef2fb;--muted:#9fb2da;--teal:#22b5a6;--teal-light:#5fe3d0;--coral:#ff7a59;--sun:#ffc857;--violet:#7b6cf6;--radius:14px;--shadow:0 10px 30px #00000059;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif}*{box-sizing:border-box}#game,#ui{position:fixed;inset:0}#game canvas{display:block}#ui{pointer-events:none}.hud>*,.onboarding,.modal-backdrop{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer}kbd{border:1px solid var(--line);text-align:center;background:#ffffff14;border-bottom-width:2px;border-radius:6px;min-width:1.6em;margin:0 1px;padding:1px 6px;font:700 12px/1.4 ui-monospace,monospace;display:inline-block}a{color:var(--teal-light)}.muted{color:var(--muted)}.small{font-size:12px}.panel-glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-quality=low] .panel-glass{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--glass-strong)}.btn{border:0;border-radius:10px;padding:9px 16px;font-weight:700;transition:transform 80ms,filter .15s}.btn:hover{filter:brightness(1.1)}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(135deg, var(--teal), #1a9c8f);color:#fff}.btn.ghost{border:1px solid var(--line);background:#ffffff12}.btn.danger{color:#fff;background:#c94a4a}.btn:disabled{opacity:.6;cursor:default}.account{flex-direction:column;gap:6px;margin-top:12px;display:flex}.account p{margin:0}.account .row{flex-wrap:wrap;justify-content:flex-start;gap:8px}.btn.small{padding:6px 10px;font-size:13px}.btn.big{padding:13px 22px;font-size:16px}.icon-btn{border:1px solid var(--line);background:var(--glass);border-radius:10px;place-items:center;width:36px;height:36px;font-size:17px;display:grid}.icon-btn:hover,.icon-btn.active{border-color:var(--teal);background:#22b5a633}.icon-btn.tiny{background:0 0;border:0;width:24px;height:24px;font-size:12px}.link{color:var(--teal-light);background:0 0;border:0;padding:0;text-decoration:underline}.badge{color:var(--teal-light);white-space:nowrap;background:#22b5a62e;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.badge.soon{color:var(--sun);background:#ffc8572e}.logo{letter-spacing:.2px;align-items:center;gap:8px;font-size:18px;font-weight:800;display:flex}.logo b{color:var(--teal-light)}.logo-mark{background:linear-gradient(135deg, var(--teal), var(--violet));color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;font-weight:900;display:grid}.logo.big{font-size:30px}.logo.big .logo-mark{border-radius:12px;width:44px;height:44px;font-size:24px}.topbar{pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.topbar>*{pointer-events:auto}.topbar-left,.topbar-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.topbar-left .logo{background:var(--glass);border:1px solid var(--line);border-radius:12px;padding:5px 12px 5px 6px}.zone-chip,.presence-chip{background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.zone-chip.soon em{color:var(--sun);font-style:normal}.presence-chip .dot{background:#4ade80;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block;box-shadow:0 0 6px #4ade80}.objectives{width:290px;padding:12px 14px;position:absolute;top:62px;right:12px}.objectives-head{align-items:center;gap:8px;display:flex}.objectives h2{text-transform:uppercase;letter-spacing:1px;color:var(--sun);flex:1;margin:0;font-size:13px}.progress-bar{background:#ffffff14;border-radius:99px;height:5px;margin:8px 0 6px;overflow:hidden}.progress-bar div{background:linear-gradient(90deg, var(--teal), var(--teal-light));height:100%;transition:width .4s}.objectives ul{margin:0;padding:0;list-style:none}.objectives li{border-radius:8px;gap:8px;padding:5px 4px;font-size:13px;display:flex}.objectives li.next{background:#ffc8571a;border:1px solid #ffc85759}.objectives li.done span:not(.check){color:var(--muted);text-decoration:line-through}.objectives small{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.check{border:1.5px solid var(--muted);border-radius:4px;flex:none;place-items:center;width:16px;height:16px;margin-top:1px;font-size:11px;font-weight:900;display:grid}.done .check{background:var(--teal);border-color:var(--teal);color:#fff}.all-done{margin-top:8px;font-size:13px;font-weight:700}.minimap{padding:8px;position:absolute;bottom:12px;left:12px}.minimap canvas{width:192px;height:auto;display:block}.minimap-caption{color:var(--muted);text-align:center;margin-top:4px;font-size:11px;display:block}.chat{flex-direction:column;width:340px;display:flex;position:absolute;bottom:12px;right:12px;overflow:hidden}.chat-tabs{align-items:center;gap:4px;padding:6px 6px 0;display:flex}.chat-tabs button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:700}.chat-tabs button.active{color:var(--teal-light);background:#22b5a633}.chat-mode{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;padding-right:4px;font-size:10.5px;overflow:hidden}.chat-log{height:128px;padding:6px 10px;font-size:13px;line-height:1.35;overflow-y:auto}.msg{word-wrap:break-word;margin:2px 0}.msg b{color:var(--teal-light)}.msg.self b{color:var(--sun)}.msg.system{color:var(--muted);font-style:italic}.msg.system b{color:var(--muted)}.chat-input{border-top:1px solid var(--line);gap:4px;padding:6px;display:flex}.chat-input input{border:1px solid var(--line);min-width:0;color:var(--text);font:inherit;background:#00000040;border-radius:8px;flex:1;padding:7px 9px;font-size:13px}.chat-input input:focus{outline:2px solid var(--teal);outline-offset:-1px}.emotes{display:flex}.emotes button{background:0 0;border:0;border-radius:6px;padding:2px 3px;font-size:16px}.emotes button:hover{background:#ffffff1a}.hint{background:var(--glass-strong);pointer-events:none;border:1px solid #5fe3d073;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:700;animation:.18s pop;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.toasts{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:62px;left:50%;transform:translate(-50%)}.toast{background:var(--glass-strong);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;max-width:min(520px,90vw);padding:8px 14px;font-size:14px;font-weight:600;animation:.2s pop}.toast-icon{margin-right:6px}.stats{background:var(--glass);pointer-events:none;border-radius:8px;padding:4px 8px;font:600 11px ui-monospace,monospace;position:absolute;top:62px;left:12px}@keyframes pop{0%{opacity:0;transform:translate(-50%,6px)}}.toast{animation-name:fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(-6px)}}.dialog{border-color:#5fe3d066;width:min(620px,100vw - 24px);padding:14px 18px 12px;position:absolute;bottom:76px;left:50%;transform:translate(-50%)}.dialog-speaker{background:var(--teal);color:#fff;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:800;position:absolute;top:-13px;left:16px}.dialog p{margin:6px 0 10px;font-size:15px;line-height:1.5}.dialog-footer{justify-content:space-between;align-items:center;display:flex}.dialog-footer kbd{background:#fff3;margin-left:4px}.modal-backdrop{background:#080b148c;place-items:center;padding:16px;animation:.15s fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--glass-strong);outline:none;flex-direction:column;width:min(560px,100%);max-height:calc(100vh - 32px);display:flex}.modal.wide{width:min(860px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.modal-head h2{margin:0;font-size:18px}.modal-icon{margin-right:8px}.modal-body{padding:14px 18px 18px;font-size:14px;line-height:1.5;overflow-y:auto}.modal-body h3{margin:16px 0 6px;font-size:15px}.lead{font-size:15.5px}.cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.card{border:1px solid var(--line);background:#ffffff0d;border-radius:12px;padding:10px 12px}.card h3{margin:0 0 4px}.card p{color:var(--muted);margin:0;font-size:13px}.row{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.row.end{justify-content:flex-end}.notice{background:#ffc8571f;border:1px solid #ffc85766;border-radius:10px;padding:8px 10px;font-size:13px}.tip{border-left:4px solid var(--sun);background:#ffc85714;border-radius:0 12px 12px 0;margin:4px 0;padding:14px 16px;font-size:16px}.roadmap{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.roadmap>li{border:1px solid var(--line);background:#ffffff0a;border-radius:12px;gap:10px;padding:10px 12px;display:flex}.roadmap>li.current{border-color:var(--teal);background:#22b5a61a}.roadmap>li.done{opacity:.85}.badge.done{color:var(--muted);background:#ffffff1a}.roadmap-version{color:var(--teal-light);min-width:34px;font-weight:900}.roadmap h3{margin:0 0 4px;font-size:14px}.roadmap ul{color:var(--muted);margin:0;padding-left:16px;font-size:13px}.elevator{flex-direction:column;gap:8px;display:flex}.elevator-floor{text-align:left;border:1px solid var(--line);background:#ffffff0d;border-radius:12px;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 12px;display:grid}.elevator-floor.open{border-color:var(--teal)}.elevator-floor:disabled{opacity:.7;cursor:not-allowed}.floor-label{font-weight:800}.floor-desc{color:var(--muted);grid-column:1;font-size:12.5px}.elevator-floor .badge{grid-area:1/2/span 2;align-self:center}.settings{flex-direction:column;gap:12px;display:flex}.settings label{flex-direction:column;gap:4px;font-size:14px;display:flex}.settings label.check{flex-direction:row;align-items:flex-start;gap:8px}.settings select{color:var(--text);border:1px solid var(--line);font:inherit;background:#0000004d;border-radius:8px;padding:7px}.controls{border-collapse:collapse;width:100%}.controls td{border-bottom:1px solid var(--line);padding:7px 4px}.controls td:first-child{color:var(--muted);width:40%}.onboarding{background:radial-gradient(1000px 600px at 15% 10%, #22b5a640, transparent 60%), radial-gradient(900px 600px at 90% 90%, #7b6cf640, transparent 60%), var(--night);place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.onboarding-card{background:var(--glass-strong);border:1px solid var(--line);width:min(900px,100%);box-shadow:var(--shadow);border-radius:20px;padding:22px 24px}.onboarding-header{text-align:center;margin-bottom:16px}.onboarding-header .logo{justify-content:center}.tagline{color:var(--muted);margin:8px 0 0}.onboarding-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;display:flex}.onboarding-footer p{flex:1;min-width:220px;margin:0}.avatar-editor{grid-template-columns:220px 1fr;gap:20px;display:grid}.avatar-stage{border:1px solid var(--line);background:radial-gradient(circle at 50% 70%,#22b5a640,#ffffff08 70%);border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:14px;display:flex}.stage-actions{gap:6px;display:flex}.name-field{width:100%}.field{flex-direction:column;gap:5px;margin-bottom:10px;display:flex}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-size:12px;font-weight:700}.field input{border:1px solid var(--line);color:var(--text);font:inherit;background:#0000004d;border-radius:10px;padding:9px 10px}.field input:focus{outline:2px solid var(--teal)}.error{color:var(--coral);font-size:12px}.swatches,.chips{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:2px solid #ffffff40;border-radius:50%;width:26px;height:26px}.swatch.selected{box-shadow:0 0 0 2px var(--teal);border-color:#fff}.chip{border:1px solid var(--line);text-transform:capitalize;background:#ffffff0d;border-radius:999px;padding:5px 10px;font-size:13px}.chip.selected{border-color:var(--teal);background:#22b5a640}.presets{flex-wrap:wrap;gap:6px;display:flex}.preset{border:1px solid var(--line);background:#ffffff0a;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 6px 4px;font-size:11px;display:flex}.preset:hover{border-color:var(--teal)}@media (max-width:760px){.avatar-editor{grid-template-columns:1fr}.objectives{width:calc(100vw - 24px);top:104px}.chat{width:calc(100vw - 24px);bottom:12px}.minimap,.badge{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
