@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html,body{height:100%;overflow:hidden}#app{flex-direction:column;height:100%;display:flex}.screen{background:radial-gradient(1200px 600px at 70% -10%, #7cb8e814, transparent 60%), radial-gradient(900px 500px at 10% 110%, #3ed6c30f, transparent 60%), var(--void);flex:1;justify-content:center;align-items:center;padding:24px;display:flex;overflow-y:auto}.screen-card{width:100%;max-width:420px;padding:36px 32px 32px}.screen-card .brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.screen-card .brand img{width:52px;height:52px}.screen-card .brand .word{font-family:var(--font-display);letter-spacing:.12em;font-size:22px;font-weight:700}.screen-card .brand .sub{font-family:var(--font-mono);letter-spacing:.18em;color:var(--teal);text-transform:uppercase;font-size:10.5px}.tabs{gap:4px;margin-bottom:8px;display:flex}.tabs button{border:none;border-bottom:2px solid var(--line);color:var(--dim);font-family:var(--font-display);letter-spacing:.05em;cursor:pointer;background:0 0;flex:1;padding:9px 0;font-size:15px;font-weight:600}.tabs button.active{color:var(--teal);border-bottom-color:var(--teal)}.form-error{color:#ffb3b7;background:#e8767c1f;border:1px solid #e8767c66;margin:12px 0 0;padding:9px 12px;font-size:13.5px;display:none}.form-error.show{display:block}.form-actions{flex-direction:column;gap:10px;margin-top:22px;display:flex}.invite-banner{border:1px solid var(--teal-dim);background:#3ed6c314;margin-bottom:18px;padding:10px 14px;font-size:14px}.invite-banner strong{color:var(--teal)}.verify-lead{margin:4px 0 6px;font-size:15px}.verify-lead strong{color:var(--teal)}.verify-why{color:var(--faint);margin:0 0 18px;font-size:13px}.verify-code{font-family:var(--font-mono);letter-spacing:12px;text-align:center;padding:12px 0 12px 12px;font-size:30px}.hub-verify{border:1px solid var(--ember);background:#f49b4b14;align-items:center;gap:12px;margin-bottom:18px;padding:10px 14px;font-size:13.5px;display:flex}.hub-verify span{flex:1}.hub-avatar{border:1px solid var(--line);background:var(--void-2);align-items:center;gap:12px;margin-bottom:6px;padding:10px 12px;display:flex}.hav-preview{border:2px solid var(--line-bright);width:40px;min-width:40px;height:40px;font-family:var(--font-display);color:#04211d;border-radius:50%;place-items:center;font-weight:700;display:grid}.hav-meta{flex:1;font-size:13.5px;line-height:1.35}.hav-meta em{color:var(--faint);font-size:12px;font-style:normal}.accent-pick{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.swatch{background:var(--c);cursor:pointer;width:30px;height:30px;box-shadow:0 0 10px color-mix(in srgb, var(--c) 55%, transparent);border:2px solid #0000;border-radius:50%}.swatch:hover{transform:scale(1.1)}.swatch.sel{border-color:var(--ice)}.swatch-custom{border:1px dashed var(--line-bright);background:var(--void-2);cursor:pointer;width:34px;height:34px;padding:2px}.btn-danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn-danger:hover{border-color:var(--danger);background:#e8767c1f}.hub-section{margin-top:26px}.hub-section h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:0 0 10px;font-size:12px;font-weight:500}.org-list{flex-direction:column;gap:8px;display:flex}.org-row{background:var(--void-2);border:1px solid var(--line);cursor:pointer;text-align:left;color:var(--ice);align-items:center;gap:12px;width:100%;padding:12px 14px;transition:border-color .15s;display:flex}.org-row:hover{border-color:var(--teal-dim)}.org-row .dot{width:34px;height:34px;font-family:var(--font-display);color:#04211d;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));place-items:center;font-weight:700;display:grid}.org-row .meta{flex:1;min-width:0}.org-row .meta .name{font-size:15px;font-weight:600}.org-row .meta .role{font-family:var(--font-mono);color:var(--faint);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.org-row .go{color:var(--teal);font-family:var(--font-mono);font-size:13px}.hub-inline-form{gap:8px;display:flex}.hub-inline-form input{flex:1}.game-root{flex:1;min-height:0;display:flex;position:relative}#game-canvas{background:var(--void);cursor:crosshair;flex:1;min-width:0;display:block}.topbar{background:linear-gradient(180deg, var(--hull-2), var(--hull));border-bottom:1px solid var(--line);z-index:10;flex-wrap:wrap;align-items:center;gap:14px;padding:8px 14px;display:flex}.topbar .mark{width:30px;height:30px}.topbar .where{flex-direction:column;min-width:0;line-height:1.2;display:flex}.topbar .where .org{font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.topbar .where .loc{font-family:var(--font-mono);color:var(--teal);letter-spacing:.12em;text-transform:uppercase;font-size:11px}.topbar .spacer{flex:1}.topbar .self{color:var(--dim);align-items:center;gap:8px;font-size:14px;display:flex}.topbar .self .avatar{border:2px solid var(--line-bright);border-radius:50%;width:22px;height:22px}.room-chip{font-family:var(--font-mono);letter-spacing:.08em;border:1px solid var(--line-bright);background:var(--void-2);align-items:center;gap:7px;padding:4px 12px;font-size:12px;display:inline-flex}.room-chip .k{text-transform:uppercase;font-size:10px}.room-chip[data-kind=public] .k{color:var(--teal)}.room-chip[data-kind=private] .k{color:var(--ember)}.room-chip[data-kind=team] .k{color:var(--sky)}.room-chip[data-kind=corridor] .k{color:var(--faint)}.side-panel{background:var(--hull);border-left:1px solid var(--line);flex-direction:column;width:340px;min-height:0;display:flex}.side-panel header{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px 10px;display:flex}.side-panel header .title{flex:1;min-width:0}.side-panel header .title .name{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.side-panel header .title .sub{font-family:var(--font-mono);color:var(--faint);letter-spacing:.08em;font-size:11px}.icon-btn{border:1px solid var(--line);color:var(--dim);cursor:pointer;background:0 0;place-items:center;width:30px;height:30px;font-size:14px;display:grid}.icon-btn:hover{border-color:var(--teal-dim);color:var(--teal)}.chat-log{scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex-direction:column;flex:1;gap:12px;padding:14px 16px;display:flex;overflow-y:auto}.msg{gap:10px;display:flex}.msg .pip{border-radius:2px;width:8px;min-width:8px;margin-top:4px}.msg .body{flex:1;min-width:0}.msg .head{align-items:baseline;gap:8px;display:flex}.msg .who{font-size:13.5px;font-weight:600}.msg .when{font-family:var(--font-mono);color:var(--faint);font-size:10.5px}.msg .text{overflow-wrap:break-word;white-space:pre-wrap;font-size:14px}.msg .text code{font-family:var(--font-mono);background:var(--void-2);border:1px solid var(--line);border-radius:3px;padding:1px 5px;font-size:12.5px}.msg .text pre{background:var(--void-2);border:1px solid var(--line);border-radius:3px;margin:6px 0;padding:10px 12px;overflow-x:auto}.msg .text pre code{background:0 0;border:none;padding:0;font-size:12.5px}.msg img.att{border:1px solid var(--line);border-radius:3px;max-width:100%;max-height:220px;margin-top:6px;display:block}.file-card{background:var(--void-2);border:1px solid var(--line);color:var(--ice);align-items:center;gap:10px;margin-top:6px;padding:9px 12px;font-size:13.5px;display:flex}.file-card:hover{border-color:var(--teal-dim);text-decoration:none}.file-card .fname{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.file-card .fsize{font-family:var(--font-mono);color:var(--faint);font-size:11px}.msg.system .text{color:var(--dim);border-left:2px solid var(--teal-dim);padding-left:10px;font-size:13.5px}.msg.system .text strong{color:var(--teal)}.chat-compose{border-top:1px solid var(--line);align-items:flex-end;gap:8px;padding:10px 12px;display:flex}.chat-compose textarea{resize:none;flex:1;max-height:120px;font-size:14px;line-height:1.4}.chat-note{font-family:var(--font-mono);color:var(--faint);letter-spacing:.06em;padding:0 16px 10px;font-size:10.5px}.voice-bar{z-index:10;align-items:center;gap:8px;padding:8px 12px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.voice-bar .vhint{font-family:var(--font-mono);color:var(--faint);letter-spacing:.06em;padding:0 6px;font-size:11px}.vbtn{background:var(--void-2);border:1px solid var(--line-bright);color:var(--dim);font-family:var(--font-display);letter-spacing:.05em;cursor:pointer;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.vbtn .led{background:var(--faint);border-radius:50%;width:8px;height:8px}.vbtn.on{color:var(--ice);border-color:var(--teal)}.vbtn.on .led{background:var(--teal);box-shadow:0 0 8px var(--teal)}.vbtn.hot{color:var(--ice);border-color:var(--ember)}.vbtn.hot .led{background:var(--ember);box-shadow:0 0 8px var(--ember)}.prompt{font-family:var(--font-mono);letter-spacing:.05em;border:1px solid var(--teal-dim);color:var(--ice);z-index:9;background:#0d1630eb;padding:8px 16px;font-size:13px;display:none;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.prompt.show{display:block}.prompt kbd{font-family:var(--font-mono);background:var(--teal);color:#04211d;border-radius:2px;padding:1px 7px;font-weight:700}.toasts{z-index:100;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}.toast{background:var(--hull-2);border:1px solid var(--line-bright);max-width:480px;padding:10px 18px;font-size:14px;animation:.2s ease-out toast-in}.toast.error{border-color:var(--danger)}.toast.ok{border-color:var(--teal-dim)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}dialog{background:0 0;border:none;width:calc(100vw - 40px);max-width:440px;padding:0}dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#040711b3}.dialog-card{padding:26px 26px 22px}.dialog-card h3{font-family:var(--font-display);letter-spacing:.04em;margin:0 0 4px;font-size:18px}.dialog-card .dsub{color:var(--dim);margin:0 0 8px;font-size:13.5px}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.kind-pick{gap:8px;margin-top:6px;display:flex}.kind-pick button{background:var(--void-2);border:1px solid var(--line);color:var(--dim);cursor:pointer;font-family:var(--font-display);flex:1;padding:10px 8px;font-size:13px;font-weight:600}.kind-pick button.sel{border-color:var(--teal);color:var(--ice)}.kind-pick button .kd{font-family:var(--font-body);color:var(--faint);margin-top:3px;font-size:11.5px;font-weight:400;display:block}.team-pick{border:1px solid var(--line);max-height:160px;margin-top:10px;padding:6px;display:none;overflow-y:auto}.team-pick.show{display:block}.team-pick label{color:var(--ice);cursor:pointer;align-items:center;gap:8px;margin:0;padding:6px 8px;font-size:14px;display:flex}.team-pick label:hover{background:var(--void-2)}.invite-result{gap:8px;margin-top:14px;display:none}.invite-result.show{display:flex}.invite-result input{font-family:var(--font-mono);font-size:12.5px}.domain-list{flex-wrap:wrap;gap:6px;min-height:26px;margin:8px 0 10px;display:flex}.domain-empty{color:var(--faint);font-size:13px}.domain-chip{background:var(--void-2);border:1px solid var(--teal-dim);font-family:var(--font-mono);color:var(--teal);align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:12.5px;display:inline-flex}.domain-chip button{color:var(--dim);cursor:pointer;background:0 0;border:none;padding:0 3px;font-size:15px;line-height:1}.domain-chip button:hover{color:var(--danger)}.occupants{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;padding:10px 16px;display:flex}.occupants .occ{color:var(--dim);background:var(--void-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 4px;font-size:12.5px;display:inline-flex}.occupants .occ .a{color:#04211d;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:grid}.conn{z-index:9;font-family:var(--font-mono);letter-spacing:.1em;color:var(--danger);border:1px solid var(--danger);background:#0d1630e6;padding:4px 10px;font-size:11px;display:none;position:absolute;top:10px;right:12px}.conn.show{display:block}@media (width<=900px){.side-panel{width:280px}}@media (width<=700px){.game-root{flex-direction:column}.side-panel{border-left:none;border-top:1px solid var(--line);width:100%;height:42%}.voice-bar{bottom:calc(42% + 12px)}.prompt{bottom:calc(42% + 70px)}}
