:root{color-scheme:dark;--ink: #edf2e6;--muted: #94a49e;--line: rgba(217, 239, 228, .16);--panel: rgba(12, 19, 22, .84);--panel-solid: #121d21;--acid: #cfff4b;--danger: #ff7373;--warn: #f3c969;--app-height: 100dvh;font-family:IBM Plex Sans,Trebuchet MS,sans-serif;background:#10171b}*{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0;overflow:hidden;background:#0a0f11}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--acid);outline-offset:2px}.game-shell{position:relative;width:100%;height:var(--app-height);margin:0;overflow:hidden;isolation:isolate;background:#10171b}#game-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none;opacity:.48}.menu-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,#10171ba3,#10171be0 80%);pointer-events:none}.menu-view{position:relative;z-index:2;display:flex;flex-direction:column;min-height:100%;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:800;letter-spacing:-.03em}.brand-mark{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--acid);color:var(--acid);font:800 11px/1 IBM Plex Mono,monospace;letter-spacing:.08em}.brand-name{font-family:Roboto Condensed,Arial Narrow,sans-serif;font-size:19px;letter-spacing:.025em}.connection-badge{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 9px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:11px;font-weight:700}.connection-dot{width:6px;height:6px;border-radius:50%;background:var(--acid);box-shadow:0 0 0 3px #cfff4b1f}.connection-badge[data-state=reconnecting] .connection-dot,.connection-badge[data-state=connecting] .connection-dot{background:var(--warn);box-shadow:0 0 0 3px #f3c9691f;animation:blink 1s ease-in-out infinite}.connection-badge[data-state=closed] .connection-dot{background:var(--danger);box-shadow:0 0 0 3px #ff73731f}.profile-row{display:grid;grid-template-columns:40px minmax(0,1fr) 44px;align-items:center;gap:10px;min-height:64px;margin-top:10px;padding:8px 0}.profile-avatar{display:grid;width:40px;height:40px;place-items:center;overflow:hidden;border:1px solid rgba(207,255,75,.62);border-radius:50%;background:linear-gradient(145deg,#26343a,#111b1e);color:var(--acid);font:700 11px/1 IBM Plex Mono,monospace}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-copy{display:grid;gap:2px;min-width:0}.profile-copy strong{overflow:hidden;color:var(--ink);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.profile-copy span{color:var(--muted);font-size:11px}.icon-button,.back-button{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--line);background:#0c131699;color:var(--ink);font-size:18px}.mode-banner{position:relative;display:block;aspect-ratio:16 / 9;width:100%;min-height:162px;margin-top:6px;overflow:hidden;border:1px solid rgba(207,255,75,.34);background:radial-gradient(circle at 50% 55%,rgba(207,255,75,.14),transparent 21%),linear-gradient(130deg,#18262a,#10191d 52%,#202225);text-align:left}.mode-banner:before,.mode-banner:after{position:absolute;content:"";pointer-events:none}.mode-banner:before{top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#0c1518d1,#0c15181f 56%,#0c1518bf),linear-gradient(0deg,rgba(7,11,13,.78),transparent 58%)}.mode-banner:after{right:-16%;bottom:-46%;width:70%;height:95%;border:1px solid rgba(207,255,75,.15);border-radius:50%;box-shadow:0 0 40px #cfff4b1a}.banner-grid{position:absolute;top:-36%;right:-36%;bottom:-36%;left:-36%;background-image:linear-gradient(rgba(147,182,169,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(147,182,169,.12) 1px,transparent 1px);background-size:28px 28px;transform:rotate(-7deg)}.banner-scan{position:absolute;top:-26%;bottom:-26%;left:48%;width:2px;background:linear-gradient(transparent,rgba(207,255,75,.9),transparent);box-shadow:0 0 22px #cfff4b9e;transform:rotate(24deg);animation:scanner 6s ease-in-out infinite}.banner-operator{position:absolute;width:86px;height:86px;border:3px solid currentColor;border-radius:26px 31px 19px 37px;opacity:.74;filter:drop-shadow(0 0 15px currentColor)}.banner-operator:before{position:absolute;top:30%;left:-35%;width:130%;height:3px;background:currentColor;content:"";transform:rotate(-22deg)}.banner-blue{bottom:-19px;left:14%;color:#66b8dc;transform:rotate(12deg)}.banner-red{top:-16px;right:13%;color:#db6262;transform:rotate(-20deg) scale(.82)}.banner-copy{position:absolute;bottom:18px;left:18px;display:grid;gap:3px}.banner-copy small,.eyebrow{color:var(--acid);font:800 10px/1 IBM Plex Mono,monospace;letter-spacing:.13em}.banner-copy strong{color:var(--ink);font-family:Roboto Condensed,Arial Narrow,sans-serif;font-size:clamp(27px,8vw,37px);letter-spacing:.025em;line-height:.92}.banner-copy em{color:#c8d3ce;font-size:12px;font-style:normal}.mode-code{position:absolute;right:14px;bottom:14px;color:#edf2e694;font:700 9px/1 IBM Plex Mono,monospace;letter-spacing:.1em}.section-nav{display:grid;gap:8px;margin-top:12px}.section-row,.sub-action{display:grid;grid-template-columns:24px minmax(0,1fr) 22px;align-items:center;min-height:60px;gap:10px;width:100%;padding:9px 13px;border:1px solid var(--line);background:var(--panel);text-align:left}.section-row:hover,.sub-action:hover{border-color:#cfff4b73;background:#141f22f2}.section-icon{color:var(--acid);font:700 15px/1 IBM Plex Mono,monospace}.section-row strong{display:block;color:var(--ink);font-size:14px}.section-row small{display:block;margin-top:2px;color:var(--muted);font-size:11px}.section-row b,.sub-action b{color:var(--acid);font-size:17px;text-align:right}.menu-footer{display:flex;justify-content:space-between;margin-top:auto;padding-top:10px;color:#94a49e94;font:700 9px/1 IBM Plex Mono,monospace;letter-spacing:.08em}.app-sheet{position:absolute;z-index:4;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:#10171b;transform:translate(104%);transition:transform .28s cubic-bezier(.2,.8,.2,1);visibility:hidden}.app-sheet.is-open{transform:translate(0);visibility:visible}.sheet-header{display:flex;align-items:center;gap:10px;min-height:calc(60px + env(safe-area-inset-top));padding:max(8px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));border-bottom:1px solid var(--line);background:#10171bf0}.sheet-header h1{margin:0;color:var(--ink);font-family:Roboto Condensed,Arial Narrow,sans-serif;font-size:24px;letter-spacing:.025em}.sheet-content{flex:1;overflow-y:auto;padding:24px max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.sheet-content h2{margin:5px 0 6px;color:var(--ink);font-family:Roboto Condensed,Arial Narrow,sans-serif;font-size:32px;letter-spacing:.01em}.sheet-lead{max-width:270px;margin:0;color:var(--muted);font-size:14px;line-height:1.45}.mode-info{display:grid;grid-template-columns:1fr auto;gap:12px;margin:26px 0;padding:15px;border-left:2px solid var(--acid);background:var(--panel)}.mode-info span{color:var(--muted);font:700 10px/1 IBM Plex Mono,monospace;letter-spacing:.08em}.mode-info strong{color:var(--ink);font:700 12px/1 IBM Plex Mono,monospace}.primary-action{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;padding:0 16px;border:0;background:var(--acid);color:#10171b;font-weight:800;text-align:left}.primary-action span{font-size:11px;opacity:.65}.primary-action:disabled{cursor:not-allowed;opacity:.58}.notice{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.sheet-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.state-chip{padding:5px 7px;border:1px solid var(--line);color:var(--muted);font:700 9px/1 IBM Plex Mono,monospace;letter-spacing:.08em}.empty-state{display:grid;justify-items:center;gap:8px;margin:22px 0;padding:30px 20px;border:1px dashed rgba(217,239,228,.23);color:var(--ink);text-align:center}.empty-state span{color:var(--acid);font-size:25px}.empty-state strong{font-size:14px}.empty-state p{max-width:235px;margin:0;color:var(--muted);font-size:12px;line-height:1.4}.sub-action{grid-template-columns:minmax(0,1fr) 20px;margin-top:9px;color:var(--ink);font-weight:700}.room-panel{display:grid;gap:12px;margin-top:10px;padding:15px;border:1px solid var(--line);background:var(--panel)}.room-panel label,.room-panel-title{margin:0;color:var(--muted);font-size:12px}.room-panel input{min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:0;outline:none;background:#0d1518;color:var(--ink);font:700 18px/1 IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.room-panel input:focus{border-color:var(--acid)}.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}.segmented button{min-height:44px;border:0;background:transparent;color:var(--muted);font-size:12px}.segmented button+button{border-left:1px solid var(--line)}.segmented .is-selected{background:#cfff4b24;color:var(--acid)}.profile-card{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:13px;padding-bottom:23px;border-bottom:1px solid var(--line)}.profile-avatar-large{width:58px;height:58px;font-size:13px}.profile-card h2{font-size:25px}.profile-card p:last-child{margin:0;color:var(--muted);font-size:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}.setting-row strong,.setting-row small{display:block}.setting-row strong{color:var(--ink);font-size:14px}.setting-row small{margin-top:3px;color:var(--muted);font-size:11px}.toggle{position:relative;width:48px;height:28px;flex:0 0 auto;padding:0;border:1px solid var(--line);border-radius:16px;background:#182327}.toggle span{position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .18s ease,background .18s ease}.toggle[aria-checked=true]{border-color:var(--acid)}.toggle[aria-checked=true] span{background:var(--acid);transform:translate(19px)}.technical-copy{margin-top:22px;color:#94a49ea1;font:11px/1.5 IBM Plex Mono,monospace}.browser-hint{position:absolute;z-index:3;right:max(16px,env(safe-area-inset-right));bottom:max(42px,calc(env(safe-area-inset-bottom) + 28px));max-width:190px;margin:0;color:#edf2e685;font-size:10px;line-height:1.35;text-align:right;pointer-events:none}@keyframes scanner{0%,to{transform:rotate(24deg) translate(-45px);opacity:.25}50%{transform:rotate(24deg) translate(70px);opacity:1}}@keyframes blink{50%{opacity:.45}}@media (orientation: landscape) and (max-height: 540px){.menu-view{display:grid;grid-template-columns:minmax(270px,1.15fr) minmax(250px,.85fr);grid-template-rows:auto 1fr auto;gap:10px 16px}.topbar{grid-column:1/-1}.profile-row{grid-column:1;grid-row:2;align-self:start;margin:0}.mode-banner{grid-column:1;grid-row:2;align-self:end;margin:0;min-height:130px}.section-nav{grid-column:2;grid-row:2;align-content:center;margin:0}.menu-footer{grid-column:1/-1;grid-row:3;padding:0}.banner-copy{bottom:12px;left:13px}.banner-copy strong{font-size:27px}.sheet-content{padding-top:16px}}html[data-reduced-motion=true] *,html[data-reduced-motion=true] *:before,html[data-reduced-motion=true] *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}body.rig-preview .game-shell{width:min(960px,100%);height:min(479px,var(--app-height));margin:max(0px,calc((var(--app-height) - min(479px,var(--app-height))) / 2)) auto}body.rig-preview.rig-gallery .game-shell{width:min(1280px,100%);height:var(--app-height);margin:0 auto}body.rig-preview #game-canvas{opacity:1}body.rig-preview .menu-scrim,body.rig-preview .menu-view,body.rig-preview .app-sheet,body.rig-preview .browser-hint{display:none!important}.rig-preview-status{position:absolute;z-index:20;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));display:grid;gap:3px;max-width:310px;padding:9px 11px 8px;border-left:2px solid var(--acid);color:var(--ink);background:#0c1316bd;box-shadow:0 10px 28px #00000029;pointer-events:none}.rig-preview-kicker{color:var(--acid);font:800 9px/1 IBM Plex Mono,monospace;letter-spacing:.14em;text-transform:uppercase}.rig-preview-status strong{font-family:Roboto Condensed,Arial Narrow,sans-serif;font-size:15px;letter-spacing:.03em}.rig-preview-status span:last-child{overflow-wrap:anywhere;color:var(--muted);font:700 9px/1.2 IBM Plex Mono,monospace}.rig-preview-controls{display:flex;align-items:center;gap:5px;margin-top:4px;pointer-events:auto}.rig-preview-controls button{min-height:24px;padding:3px 6px;border:1px solid rgba(207,255,75,.4);background:#172327;color:var(--ink);font:700 9px/1 IBM Plex Mono,monospace}.rig-preview-controls output{color:var(--acid);font:700 9px/1 IBM Plex Mono,monospace}@media (max-width:420px){.rig-preview-status{padding:7px 9px}.rig-preview-status strong{font-size:12px}}body.map-editor-mode .game-shell{width:100%;height:var(--app-height);margin:0}body.map-editor-mode .menu-scrim,body.map-editor-mode .menu-view,body.map-editor-mode .app-sheet,body.map-editor-mode .browser-hint,body.map-editor-mode #game-canvas{display:none!important}.map-editor-root{position:absolute;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr minmax(240px,300px);background:#0a0f11}.map-editor-toolbar{grid-column:1 / -1;display:flex;align-items:center;gap:6px;min-height:52px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--panel-solid)}.map-editor-tools{display:flex;align-items:center;gap:4px}.map-editor-tool,.map-editor-action{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);background:#0c131699;color:var(--muted);font-size:15px}.map-editor-tool:hover,.map-editor-action:hover{border-color:#cfff4b73;color:var(--ink)}.map-editor-tool.is-active{border-color:var(--acid);color:var(--acid);background:#cfff4b14}.map-editor-spacer{flex:1}.map-editor-export{color:var(--acid)}.map-editor-exit{color:var(--danger)}.map-editor-canvas{position:relative;display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;background:#0d1518}.map-editor-place-panel{position:absolute;top:64px;left:12px;z-index:31;width:220px;padding:12px;border:1px solid var(--line);background:var(--panel-solid);box-shadow:0 14px 34px #00000059}.map-editor-panel-heading{margin:0 0 10px;color:var(--acid);font:800 10px/1 IBM Plex Mono,monospace;letter-spacing:.12em;text-transform:uppercase}.map-editor-place-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.map-editor-place-target{display:flex;align-items:center;gap:7px;min-height:40px;padding:6px 9px;border:1px solid var(--line);background:#0c131699;color:var(--ink);font-size:13px;text-align:left}.map-editor-place-target.is-active{border-color:var(--acid);color:var(--acid)}.map-editor-place-label{font-size:12px}.map-editor-team-row{display:flex;align-items:center;gap:8px;margin-top:10px}.map-editor-panel-label{color:var(--muted);font-size:11px}.map-editor-team-select{flex:1;min-height:32px;padding:4px 6px;border:1px solid var(--line);background:#0d1518;color:var(--ink)}.map-editor-panel-hint{margin:10px 0 0;color:var(--muted);font-size:10px;line-height:1.35}.map-editor-inspector{position:relative;grid-column:2;grid-row:2;overflow-y:auto;padding:14px;border-left:1px solid var(--line);background:var(--panel-solid)}.map-editor-inspector-empty{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.map-editor-field-grid{display:grid;gap:8px}.map-editor-field{display:grid;gap:4px;color:var(--muted);font-size:11px}.map-editor-field input{min-height:34px;padding:5px 8px;border:1px solid var(--line);background:#0d1518;color:var(--ink);font-size:13px}.map-editor-field input:read-only{color:var(--muted);background:#0c131666}.map-editor-inspector-danger{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.map-editor-delete{width:100%;min-height:40px;border:1px solid rgba(255,115,115,.4);background:#ff737314;color:var(--danger);font-weight:700}.map-editor-delete:hover{background:#ff737329}.map-editor-statusbar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;padding:6px 12px;border-top:1px solid var(--line);background:var(--panel-solid);color:var(--muted);font:700 10px/1 IBM Plex Mono,monospace;letter-spacing:.04em}.map-editor-status-diag[data-state=ok]{color:var(--acid)}.map-editor-status-diag[data-state=error]{color:var(--warn)}@media (max-width: 720px){.map-editor-root{grid-template-columns:1fr;grid-template-rows:auto 1fr auto auto}.map-editor-inspector{grid-column:1;grid-row:3;max-height:200px;border-left:0;border-top:1px solid var(--line)}.map-editor-place-panel{right:12px;left:12px;width:auto}}
