:root{font-family:Segoe UI,Microsoft YaHei,sans-serif;color:#eeedf9;background:#070912;font-synthesis:none;font-size:14px;font-weight:400;color-scheme:dark;--bg: #070912;--panel: #101220;--panel-raised: #17192c;--line: #303249;--line-dim: #222538;--text: #eeedf9;--muted: #999bb5;--dim: #707591;--cyan: #46eff2;--pink: #ff62cb;--purple: #ad92ff;--amber: #ffc879;--danger: #ff8199;--mono: "Cascadia Code", "Consolas", "SFMono-Regular", monospace;--font-min: 12px}html{scrollbar-gutter:stable}*{box-sizing:border-box;font-size:max(var(--font-min),1em);scrollbar-width:thin;scrollbar-color:#4c3e6a #0c0e1a}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 85% 8%,#70265d1c,transparent 52%),radial-gradient(ellipse at 5% 75%,#17485f24,transparent 50%),var(--bg)}button,input,summary{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button:not(:disabled),a,summary{transition:color .12s,border-color .12s,background-color .12s}button:active:not(:disabled){translate:0 1px}button[aria-pressed=true]{color:var(--cyan)}button svg{pointer-events:none}input{min-width:0}::selection{background:#bc51c96b;color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}kbd{font:12px var(--mono);border:1px solid #62627c;border-bottom-width:2px;border-radius:2px;padding:1px 4px;color:#b4b5cc;white-space:nowrap}h1,h2,h3,h4,p{margin-top:0}h2,h3,h4{font-weight:650}h3{margin-bottom:10px}.shell{width:100%;min-height:100svh;margin:0 auto;padding:0 40px;display:flex;flex-direction:column}.site-header{height:82px;display:flex;align-items:center;gap:26px;flex-shrink:0;border-bottom:1px solid var(--line-dim)}.brand{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;font:800 16px var(--mono);letter-spacing:1px}.brand>svg{width:36px;height:36px;color:var(--cyan)}.brand-muted{color:var(--purple)}.brand small{display:block;margin-top:4px;color:var(--dim);font:12px var(--mono);letter-spacing:3.3px}.header-label{font:12px var(--mono);letter-spacing:1px;color:var(--dim);border-left:1px solid var(--line);padding-left:26px}.stage-tag{margin-left:auto;font:12px var(--mono);letter-spacing:1px;color:#a0a2ba}main{width:100%}.landing-shell{max-width:1560px}.landing-shell main{max-width:1240px;margin:auto;padding:55px 0 34px}.landing-content{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.85fr);gap:clamp(36px,6vw,100px);align-items:center}.landing-hero{min-width:0;position:relative}.eyebrow{display:flex;align-items:center;gap:8px;color:var(--cyan);font:12px var(--mono);letter-spacing:1px}.eyebrow>span{width:5px;height:5px;background:var(--cyan)}h1{position:relative;margin:24px 0 12px}.game-wordmark{display:block;width:min(100%,520px);color:#f9f4ff}.hero-slogan{font-size:clamp(24px,2.6vw,36px);font-weight:800;letter-spacing:2px}.hero-slogan em{color:#f18cda;font-style:normal}.intro{color:var(--muted);font-size:13px;line-height:1.9;margin:18px 0 0}.neon-scene{position:relative;margin:6px -20px 0}.neon-scene>svg{display:block;width:100%}.scene-label{position:absolute;top:22px;left:24px;color:#8f84a9;font:12px var(--mono);letter-spacing:1.5px}.scene-caption{position:absolute;right:24px;bottom:9px;color:#b39bc7;font-size:12px;letter-spacing:1px}.game-loop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding:18px 0 0;color:var(--muted);font:12px var(--mono)}.game-loop b{color:var(--cyan);font-weight:500;padding-right:5px}.game-loop i{color:var(--pink);font-style:normal}.status-card{margin-top:34px;border-top:1px solid var(--line);color:var(--muted)}.status-row{display:flex;align-items:center;gap:10px;padding:16px 0 8px}.status-row h2{font:12px var(--mono);margin:0;color:var(--cyan)}.status-dot,.connection-dot{width:5px;height:5px;flex-shrink:0;background:var(--amber);box-shadow:0 0 6px #ffc87950}.online .status-dot,.connection-dot.online{background:var(--cyan);box-shadow:0 0 6px #46eff250}.offline .status-dot,.connection-dot.offline{background:var(--danger);box-shadow:none}.offline .status-row h2{color:var(--danger)}.status-description{font-size:12px;color:var(--muted)}.status-row button{background:none;border:1px solid var(--line);color:var(--muted);font-size:12px;padding:5px 10px;margin-left:auto}.status-row button:hover:enabled{border-color:var(--cyan);color:var(--cyan)}.error-detail{color:var(--danger);font-size:12px;overflow-wrap:anywhere}.connection-details{font-size:12px;color:var(--dim)}.connection-details summary{width:fit-content;padding:3px 0}.connection-details p{font:12px var(--mono)}.metrics{display:flex;gap:32px;padding:16px 0}.metrics>div{display:grid;gap:8px}.metrics span{font:12px var(--mono);color:var(--dim)}.metrics strong{font:12px var(--mono);color:var(--muted)}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line-dim);min-height:56px;flex-shrink:0;font:12px var(--mono);color:var(--dim);letter-spacing:1px}.footer-dot{color:var(--pink);margin:0 8px}@media(min-width:1600px){.landing-shell main{padding-top:70px;padding-bottom:55px}}@media(max-width:1000px){.shell{padding:0 24px}.header-label{display:none}.landing-content{gap:32px;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr)}.game-loop{font-size:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));line-height:1.7}.game-loop>i{display:none}.scene-caption{display:none}}@media(max-width:760px){.shell{padding:0 18px}.site-header{height:68px;gap:12px}.stage-tag{font-size:12px;letter-spacing:0}.landing-shell main{padding:32px 0}.landing-content{grid-template-columns:minmax(0,1fr);gap:28px}.landing-hero{max-width:560px;width:100%;margin:auto}.game-wordmark{width:360px;max-width:100%}.neon-scene{max-height:220px;overflow:hidden;margin-top:-15px;margin-inline:0}.neon-scene svg{height:230px}.scene-label{top:32px}.game-loop{font-size:12px}.status-description{display:none}.site-footer>span:last-child{display:none}.metrics{gap:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.account-card{min-width:0}.account-card.is-guest{position:relative;border:1px solid #493957;background:linear-gradient(140deg,#20152966,transparent 45%),#0e111e;padding:30px;box-shadow:8px 8px #04060c}.account-card.is-guest:before,.account-card.is-guest:after{content:"";position:absolute;width:26px;height:26px;pointer-events:none}.account-card.is-guest:before{top:-1px;left:-1px;border-left:2px solid var(--pink);border-top:2px solid var(--pink)}.account-card.is-guest:after{bottom:-1px;right:-1px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan)}.account-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.card-label{color:var(--pink);font-size:12px;font-weight:650;letter-spacing:2px}.account-step{color:var(--dim);font:12px var(--mono);letter-spacing:1px}.auth-tabs{display:flex;border-bottom:1px solid var(--line)}.auth-tabs button{flex:1;border:0;border-bottom:2px solid transparent;padding:12px 10px;background:transparent;color:var(--muted);font-size:12px}.auth-tabs button[aria-pressed=true]{border-color:var(--pink);color:var(--pink);background:#ff62cb09}.auth-title{margin:26px 0 10px;font-size:23px;letter-spacing:.5px;line-height:1.6}.auth-description{color:var(--muted);font-size:12px;line-height:1.8;margin-bottom:25px}.auth-form label,.profile-form label{display:flex;flex-direction:column;gap:9px;font-size:12px;color:#c7c5dc}.account-card input{width:100%;border:1px solid #38374f;border-left:2px solid #615276;border-radius:0;background:#080c17;color:var(--text);padding:12px;font-size:13px;outline:none}.account-card input:focus{border-color:var(--cyan);box-shadow:inset 3px 0 var(--cyan)}.account-card input::placeholder{color:#777c96;font-size:12px}.account-card input:disabled{opacity:.5}.form-hint{color:var(--dim);font-size:12px;line-height:1.8;margin:9px 0 0}.password-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.password-fields:has(label:only-child){grid-template-columns:1fr}.primary-button{border:1px solid var(--cyan);border-left-width:4px;border-radius:0;background:#14343d;color:var(--cyan);padding:12px 18px;font-size:12px;font-weight:750;letter-spacing:1px;box-shadow:inset 0 0 0 2px #080f1b}.primary-button:hover:enabled{background:#46eff2;color:#07121b;box-shadow:inset 0 0 0 2px #46eff2,0 0 18px #46eff224}.submit-button{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:24px;min-height:48px;border-color:var(--pink);background:#391d3e;color:#ff8cda}.submit-button:hover:enabled{color:#170c22;background:var(--pink);box-shadow:inset 0 0 0 2px var(--pink),0 0 20px #ff62cb26}.submit-button span{font-size:20px}.auth-footnote{color:var(--dim);font-size:12px;text-align:center;line-height:1.8;margin:16px 0 0}.form-error,.form-notice{padding:10px 13px;font-size:12px;line-height:1.8;margin:16px 0 0;overflow-wrap:anywhere;border-left:2px solid}.form-error{background:#311623;color:#ff9eb2;border-color:var(--danger)}.form-notice{background:#112a31;color:var(--cyan);border-color:var(--cyan)}.member-heading{display:flex;align-items:center;gap:10px}.avatar{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;color:var(--cyan);border:1px solid #366772;background:#46eff20a;font:600 18px var(--mono);clip-path:polygon(0 0,75% 0,100% 25%,100% 100%,25% 100%,0 75%)}.pilot-label{color:var(--dim);font:12px var(--mono);letter-spacing:1.5px}.member-heading h2{font-size:13px;margin:3px 0 0;overflow-wrap:anywhere}.username-label{font:12px var(--mono);color:var(--dim);margin:3px 0 0}.quiet-button,.profile-settings>summary{display:flex;align-items:center;justify-content:center;height:32px}.quiet-button{margin-left:auto;background:none;color:var(--muted);border:1px solid var(--line);padding:6px 12px;font-size:12px;flex-shrink:0}.quiet-button:hover:enabled{color:var(--danger);border-color:var(--danger)}.profile-form{display:flex;gap:10px;align-items:flex-end}.profile-form label{flex:1;min-width:0}.profile-form button{white-space:nowrap;padding:10px 12px;font-size:12px}.profile-form input{padding:9px 10px}.profile-settings{position:relative;margin-left:auto;flex-shrink:0;z-index:50;font-size:12px}.profile-settings>summary{color:var(--muted);padding:6px 10px;border:1px solid var(--line);list-style:none}.profile-settings>summary::-webkit-details-marker{display:none}.profile-settings[open]>summary{border-color:var(--cyan);color:var(--cyan)}.profile-footer{position:absolute;right:0;top:36px;width:min(350px,calc(100vw - 36px));padding:20px;background:#111525;border:1px solid #456775;box-shadow:0 12px 36px #0009}.profile-footer .eyebrow{margin-bottom:8px}.profile-identity{color:var(--muted);font:12px var(--mono);margin-bottom:20px;overflow-wrap:anywhere}@media(max-width:1000px){.account-card.is-guest{padding:24px}.password-fields{grid-template-columns:1fr}}@media(max-width:760px){.account-card.is-guest{width:100%;max-width:560px;margin:auto;padding:26px 22px}.password-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:440px){.password-fields{grid-template-columns:1fr}.auth-title{font-size:21px}.profile-footer{right:-60px}}.game-shell{--workspace-width: max(90vw, 1200px);--player-bar-height: 53px;width:var(--workspace-width);min-width:1200px;max-width:none;height:auto;min-height:100svh;padding:0;overflow:visible}.game-shell .site-header{height:58px;gap:20px}.game-shell .brand{font-size:13px;gap:9px}.game-shell .brand>svg{width:30px;height:30px}.game-shell .brand small{font-size:12px;letter-spacing:2.3px}.game-shell .header-label{font-size:12px}.game-shell .stage-tag{margin-left:0;font-size:12px}.game-shell main,.game-shell .landing-content{display:flex;flex:1;min-height:0;flex-direction:column}.game-shell main{margin:0}.game-shell .site-footer,.game-shell .account-heading{display:none}.game-shell .account-card.is-member,.game-shell .account-card.is-session-loading{display:flex;flex:1;min-height:0;flex-direction:column;position:relative}.game-shell .account-card.is-session-loading{padding-top:var(--player-bar-height)}.game-shell .member-heading{padding:9px 0;height:var(--player-bar-height);min-height:var(--player-bar-height);flex-shrink:0}.game-shell .member-heading .quiet-button{margin-left:0}.game-shell .member-heading h2{max-width:calc(100vw - 230px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-shell .username-label{display:none}.game-shell .is-member>.form-notice,.game-shell .is-member>.form-error{position:fixed;left:50%;bottom:64px;translate:-50% 0;z-index:80;width:max-content;max-width:min(520px,calc(100vw - 40px));margin:0;box-shadow:0 8px 28px #0008}.game-shell .is-member>.form-notice{pointer-events:none}.header-connection{display:flex;align-items:center;gap:8px;margin-left:auto;color:var(--muted);font:12px var(--mono)}.header-connection button{border:0;background:none;color:var(--cyan);padding:3px 5px;font:17px var(--mono)}.factory-workspace,.factory-loading{width:100%;height:calc(var(--workspace-width) * 9 / 16);aspect-ratio:16 / 9;flex:none;min-height:0}.factory-workspace{display:grid;grid-template-rows:100px minmax(0,1fr) 52px;gap:12px;position:relative}.hud-strip{grid-row:1;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.4fr);gap:18px;align-items:center;flex-shrink:0;padding:12px 16px;border:1px solid var(--line);border-top-color:#685179;background:linear-gradient(110deg,#ff62cb08,transparent 45%),var(--panel);position:relative}.hud-strip:before{content:"";position:absolute;top:-1px;left:-1px;width:45px;height:2px;background:var(--pink)}.factory-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;min-width:0}.factory-toolbar>div:first-child{min-width:0}.factory-toolbar .eyebrow{font-size:12px;letter-spacing:1.5px;color:var(--pink)}.factory-toolbar h2{margin:6px 0 0;color:var(--text);font-size:20px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.factory-toolbar-meta{display:grid;gap:6px;flex-shrink:0;font:12px var(--mono);color:var(--dim)}.factory-toolbar-meta>span:last-child{color:var(--muted)}.mode-pill{display:flex;align-items:center;gap:5px;color:var(--cyan);font-size:12px}.mode-pill i{width:4px;height:4px;background:var(--cyan)}.factory-layout{grid-row:2;display:grid;grid-template-columns:minmax(0,18fr) minmax(0,58fr) minmax(0,24fr);grid-template-areas:"catalog map inspector";grid-template-rows:minmax(0,1fr);gap:16px;flex:none;min-height:0;align-items:stretch}.catalog-panel,.inspector-panel,.map-panel{border:1px solid var(--line);background:var(--panel);min-width:0;position:relative}.catalog-panel,.inspector-panel{min-height:0;contain:size;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.catalog-panel{grid-area:catalog;align-self:stretch;border-top-color:#6d4d78}.inspector-panel{grid-area:inspector;border-top-color:#486673}.panel-caption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 14px;border-bottom:1px solid var(--line-dim);color:var(--text);font-size:12px;font-weight:650;position:sticky;top:0;z-index:5;background:#101320}.panel-caption>div{display:grid;gap:5px}.panel-caption small{color:var(--pink);font:12px var(--mono);letter-spacing:1.3px}.inspector-panel .panel-caption small{color:var(--cyan)}.panel-caption>span{font:12px var(--mono);color:var(--dim)}.catalog-tabs{display:flex;gap:4px;padding:12px 9px 8px}.catalog-tabs button{flex:1;border:1px solid var(--line);background:#0b0e19;color:var(--muted);padding:8px;font-size:12px}.catalog-tabs button[aria-pressed=true]{border-color:#97568c;color:var(--pink);background:#ff62cb0d}.catalog-list{display:flex;flex-direction:column;gap:7px;padding:5px 8px}.catalog-entry{display:flex;align-items:center;gap:9px;position:relative;min-width:0;text-align:left;padding:8px 7px;border:1px solid #303046;background:#121423;color:var(--text);border-left:2px solid color-mix(in srgb,var(--entity-color) 40%,#161926);-webkit-user-select:none;user-select:none}.catalog-entry:hover{border-color:color-mix(in srgb,var(--entity-color) 55%,#28293e);background:#1b1c31}.catalog-entry[aria-pressed=true]{color:var(--entity-color);border-color:var(--entity-color);background:color-mix(in srgb,var(--entity-color) 9%,#0d1220);box-shadow:inset 3px 0 var(--entity-color)}.catalog-entry>span:nth-child(2){display:flex;flex-direction:column;gap:7px;min-width:0}.catalog-entry strong{font-size:12px;font-weight:650;white-space:nowrap}.catalog-entry small{font:12px var(--mono);color:var(--dim);letter-spacing:.5px}.entry-arrow{margin-left:auto;color:var(--entity-color);font-size:12px}.entry-arrow kbd{padding:1px 3px;font-size:12px;color:var(--dim);border-color:#44425c}.catalog-footnote{color:var(--dim);font-size:12px;line-height:2;margin:18px 12px 14px}.catalog-footnote>span{color:var(--muted);font:12px var(--mono);letter-spacing:1px;display:block;margin-bottom:8px}.catalog-footnote kbd{font-size:12px;padding:0 3px}.definition-icon{--entity-color: var(--cyan);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--entity-color);width:48px;height:54px;flex-shrink:0;background:color-mix(in srgb,var(--entity-color) 7%,#0a0e19);border:1px solid color-mix(in srgb,var(--entity-color) 28%,#151a2a);position:relative}.definition-icon svg{width:30px;height:30px}.entity-body{fill:color-mix(in srgb,var(--entity-color) 17%,#101629)}.definition-icon>span{font:12px/14px var(--mono);letter-spacing:1px}.definition-icon.compact{width:40px;height:40px;border:0;background:none}.definition-icon.compact svg{width:24px;height:24px}.definition-icon.compact>span{font:12px/14px var(--mono);letter-spacing:.4px}.map-panel{grid-area:map;display:flex;flex-direction:column;overflow:hidden;min-height:0;background:radial-gradient(ellipse at 78% 0%,#b749a80a,transparent 60%),#080d18}.map-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(var(--cyan),var(--cyan)) left top / 28px 2px no-repeat,linear-gradient(var(--pink),var(--pink)) right bottom / 28px 2px no-repeat;pointer-events:none;z-index:6}.map-panel>.form-error{position:absolute;top:48px;left:12px;right:12px;z-index:10;margin:0}.map-caption{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;color:#b9bbd0;font:12px var(--mono);border-bottom:1px solid var(--line-dim);flex-shrink:0;height:42px;order:0}.map-caption>span{display:flex;align-items:center;gap:7px}.map-caption>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-caption>span:last-child{color:var(--dim);flex-shrink:0}.small-square{width:4px;height:4px;background:var(--cyan)}.map-viewport{overflow:hidden;position:relative;flex:1 1 0;width:100%;min-height:0;touch-action:none;cursor:grab;outline:none;contain:layout paint;order:1;background-image:radial-gradient(#68a7c320 .7px,transparent .7px),radial-gradient(ellipse at 50% 100%,#62409b15,transparent 65%);background-size:24px 24px,100% 100%}.map-viewport:focus-visible{outline:none}.map-viewport:after{content:"";position:absolute;inset:12px;background:linear-gradient(#46eff23a,#46eff23a) left top / 14px 1px no-repeat,linear-gradient(#46eff23a,#46eff23a) left top / 1px 14px no-repeat,linear-gradient(#ff62cb3a,#ff62cb3a) right bottom / 14px 1px no-repeat,linear-gradient(#ff62cb3a,#ff62cb3a) right bottom / 1px 14px no-repeat;pointer-events:none;z-index:5}.factory-map{--tile-size: 30px;--map-label-font: max(12px, calc(12px / var(--map-zoom, 1)));display:grid;grid-template-columns:25px calc(var(--grid-width) * var(--tile-size) + 2px);grid-template-rows:25px calc(var(--grid-height) * var(--tile-size) + 2px);width:max-content;position:absolute;left:0;top:0;transform-origin:0 0}.axis-corner{display:grid;place-items:center;color:#69708e;font:12px var(--mono);font-size:var(--map-label-font)}.x-axis{display:grid;grid-template-columns:repeat(var(--grid-width),var(--tile-size))}.y-axis{display:grid;grid-template-rows:repeat(var(--grid-height),var(--tile-size))}.x-axis span,.y-axis span{display:grid;place-items:center;color:#6c7490;font:12px var(--mono);font-size:var(--map-label-font)}.x-axis .axis-origin,.y-axis .axis-origin{color:var(--pink)}.factory-grid{display:grid;grid-template-columns:repeat(var(--grid-width),var(--tile-size));grid-template-rows:repeat(var(--grid-height),var(--tile-size));border:1px solid #376379;background:#0e1425;position:relative}.map-tile{display:grid;place-items:center;border-right:1px solid #78a1bf13;border-bottom:1px solid #78a1bf13}.map-tile.center-line{background:#c26de407}.tile-point{width:1px;height:1px;background:#72b2c92c}.map-tile.occupied{background:#0b101d}.map-tile>button{width:29px;height:29px;border:1px solid color-mix(in srgb,var(--entity-color) 65%,#17263b);padding:0;border-radius:2px;display:grid;place-items:center;background:color-mix(in srgb,var(--entity-color) 10%,#101427);box-shadow:inset 0 -3px #070b1766}.map-tile>button:hover{border-color:var(--entity-color);background:color-mix(in srgb,var(--entity-color) 19%,#101427)}.map-tile>button:active{translate:none}.map-statusbar{height:56px;align-content:center;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:9px 12px;border-top:1px solid var(--line-dim);background:#0d1120;color:var(--dim);font:12px var(--mono);flex-shrink:0;order:4}.map-statusbar>span:last-child{color:var(--cyan)}.create-factory{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;overflow-y:auto;text-align:center;padding:32px 24px;background:radial-gradient(ellipse at 50% 35%,#a446b015,transparent 65%)}.map-cross{display:grid;place-items:center;width:64px;height:64px;margin-bottom:26px;border:1px solid #be69c2;color:var(--pink);font:40px var(--mono);background:#ff62cb07;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.create-factory h3{color:var(--text);font-size:23px;margin:16px 0}.create-factory p{color:var(--muted);font-size:12px;line-height:2}.create-factory form{width:100%;max-width:320px;text-align:left;margin:14px 0 18px}.create-factory label{display:flex;flex-direction:column;gap:9px;color:var(--muted);font-size:12px}.create-factory button{display:flex;justify-content:space-between;width:100%;margin-top:14px}.create-note{color:var(--dim);font-size:12px}.factory-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted);border:1px solid var(--line);margin:0;font-size:12px;background:var(--panel)}.inspector-panel{display:block;padding-bottom:16px}.inspector-hero{display:flex;align-items:center;gap:12px;padding:18px 16px 10px}.inspector-hero .definition-icon{width:58px;height:64px}.inspector-hero .definition-icon svg{width:40px;height:40px}.inspector-hero h3{color:var(--text);font-size:18px;margin:0 0 8px}.inspector-hero code{color:var(--dim);font:12px var(--mono)}.definition-description{color:var(--muted);font-size:12px;line-height:1.9;margin:0 16px 14px}.definition-properties{margin:0 16px 14px}.definition-properties>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line-dim);padding:9px 0;font-size:12px}.definition-properties dt{color:var(--dim)}.definition-properties dd{color:#c3c1dc;margin:0;font-family:var(--mono)}.recipe-section{margin:20px 14px 0}.recipe-section h4{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin:0 0 12px}.recipe-section h4 span{color:var(--pink);font:12px var(--mono)}.recipe-card{background:#0c1120;border:1px solid #413552;padding:12px;margin-top:9px}.recipe-name{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--text);font-size:12px;margin-bottom:12px}.recipe-name>span{border:1px solid #4d3c62;background:#ad92ff0b;color:var(--purple);font:12px var(--mono);padding:3px 6px}.recipe-ingredients{display:flex;flex-direction:column;gap:7px}.recipe-ingredients>span{display:flex;align-items:center;gap:7px;color:#c3c1db;font-size:12px}.recipe-arrow{color:var(--pink);font:15px var(--mono);padding-left:10px;margin:5px 0}.recipe-card p{color:var(--dim);border-top:1px solid var(--line-dim);padding-top:9px;margin:12px 0 0;font-size:12px}.no-recipes,.inspector-note{color:var(--dim);font-size:12px;line-height:1.9}.inspector-note{margin:20px 14px 0;border-top:1px solid var(--line-dim);padding-top:12px}.workspace-controls{grid-row:3;display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:40px;padding-bottom:10px;flex-shrink:0;position:relative;flex-wrap:wrap}.control-legend{display:flex;align-items:center;gap:8px;color:var(--muted);font:12px var(--mono)}.control-light{width:4px;height:4px;background:var(--pink)}.control-shortcuts{color:var(--dim);margin-left:12px}.control-shortcuts kbd{font-size:12px;margin:0 4px 0 8px}.display-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}.display-controls>button,.controls-guide>summary{display:flex;align-items:center;gap:7px;background:#0f1422;border:1px solid var(--line);color:var(--muted);font-size:12px;padding:7px 9px;white-space:nowrap}.display-controls>button[aria-pressed=true]{border-color:#437e86;color:var(--cyan);background:#46eff20a}.display-controls>button:hover{color:var(--text);border-color:var(--purple)}.display-controls kbd{font-size:12px;padding:0 3px}.controls-guide{position:relative}.controls-guide>summary{list-style:none}.controls-guide>summary::-webkit-details-marker{display:none}.controls-guide>summary>span{color:var(--pink)}.controls-guide[open]>summary{border-color:var(--pink)}.controls-guide-content{position:absolute;bottom:42px;right:0;width:min(360px,calc(100vw - 36px));z-index:30;padding:22px;border:1px solid #76537d;background:#131525;box-shadow:0 12px 30px #0009}.controls-guide-content h3{margin-top:15px;font-size:16px}.controls-guide-content p{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:0}.controls-guide-content dl{font-size:12px;margin:16px 0}.controls-guide-content dl>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:9px 0}.controls-guide-content dt{color:var(--purple);white-space:nowrap}.controls-guide-content dd{margin:0;text-align:right;color:var(--muted)}.factory-workspace.is-immersive .factory-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"map";grid-template-rows:minmax(0,1fr)}.factory-workspace.is-immersive .simulation-sync-error{left:12px;right:12px}.is-immersive .catalog-panel,.is-immersive .inspector-panel{display:none}@media(max-width:1280px){.game-shell .header-label,.game-shell .stage-tag,.factory-toolbar-meta,.control-shortcuts{display:none}}@media(max-width:700px){.game-shell .site-header{gap:10px;height:64px}.header-connection{gap:4px}.header-connection .connection-label{display:none}.header-connection button{font-size:16px}.game-shell .brand{font-size:12px}.controls-guide-content{max-height:70svh;overflow:auto}}@media(max-width:440px){.pilot-label{display:none}.game-shell .brand small{letter-spacing:1px}}.editor-controls{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:10px 12px;border-top:1px solid var(--line-dim);background:#101421;flex-shrink:0;height:116px;overflow-y:auto;align-content:start;order:3}.editor-controls button,.camera-controls button{background:#191b2e;border:1px solid #42415c;color:#c3c2db;border-radius:0;padding:7px 9px;font-size:12px}.editor-controls button:hover:enabled,.camera-controls button:hover:enabled{border-color:var(--cyan);color:var(--cyan);background:#152c38}.editor-controls button.delete-building{color:var(--danger);border-color:#6f3c54;background:#281724}.editor-controls kbd{color:var(--dim);font-size:12px;margin-left:3px;border:0;padding:0}.editor-controls>span{flex-basis:100%;font-size:12px;color:var(--muted);line-height:1.8;min-height:3.6em}.catalog-entry,.map-tile{-webkit-user-select:none;user-select:none}.map-tile{position:relative}.map-tile>button{touch-action:none;position:relative}.map-tile>button:disabled{cursor:wait}.map-tile>button.empty-tile{width:100%;height:100%;border:0;outline:none;background:none;box-shadow:none;border-radius:0;cursor:grab}.map-tile>button.empty-tile:hover{background:#46eff208}.map-tile>button.empty-tile:focus-visible{outline:none}.map-tile>button.conveyor-building{position:absolute;left:0;top:0;width:var(--tile-size);height:var(--tile-size);border:0;border-radius:0;background:none;box-shadow:none}.map-tile>button.conveyor-building:hover{background:none}.conveyor-visual{position:absolute;left:0;top:0;width:var(--tile-size);height:var(--tile-size);color:var(--entity-color);pointer-events:none}.conveyor-visual svg{display:block;width:100%;height:100%;transform-origin:center}.conveyor-bed{fill:color-mix(in srgb,currentColor 13%,#0b1527)}.conveyor-rails,.conveyor-ribs,.conveyor-arrow{stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.conveyor-ribs{opacity:.25}.conveyor-arrow{stroke-width:1.6;stroke-linecap:round}.conveyor-building:hover .conveyor-rails{stroke-width:1.8}.map-tile.selected-building>button{outline:1px solid var(--cyan);outline-offset:1px;z-index:2}.map-tile.selected-building:after{content:"";position:absolute;inset:-3px;pointer-events:none;z-index:3;background:linear-gradient(var(--cyan),var(--cyan)) top left / 7px 2px no-repeat,linear-gradient(var(--cyan),var(--cyan)) top left / 2px 7px no-repeat,linear-gradient(var(--cyan),var(--cyan)) bottom right / 7px 2px no-repeat,linear-gradient(var(--cyan),var(--cyan)) bottom right / 2px 7px no-repeat}.map-tile.hover-tile{background:#46eff20b;box-shadow:inset 0 0 0 1px #46eff230}.map-tile.drop-valid{background:#46eff21f;box-shadow:inset 0 0 0 2px var(--cyan)}.map-tile.drop-invalid{background:#ff819920;box-shadow:inset 0 0 0 2px var(--danger)}.tile-preview{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:3}.map-tile.drop-invalid .tile-preview{opacity:.6}.is-dragging .factory-grid,.map-viewport.is-dragging,.is-dragging .map-tile>button{cursor:grabbing}.map-viewport.is-placing,.is-placing .map-tile>button{cursor:crosshair}.camera-controls{display:flex;align-items:center;flex-wrap:nowrap;gap:7px;padding:7px 12px;border-top:1px solid var(--line-dim);background:#0c1120;color:var(--cyan);font:12px var(--mono);flex-shrink:0;height:42px;order:2}.camera-controls>span{min-width:42px;font-variant-numeric:tabular-nums}.camera-controls button{padding:4px 8px;font-size:12px}.camera-controls small{color:var(--dim);margin-left:auto;font-size:12px}.building-menu{position:fixed;width:172px;padding:10px;border:1px solid #73527f;border-top:2px solid var(--pink);background:#121426;color:var(--text);box-shadow:4px 5px #03050bad;z-index:10001}.building-menu small{display:block;font:12px var(--mono);color:var(--muted);margin:2px 2px 10px}.building-menu button{display:flex;align-items:center;gap:8px;width:100%;border:1px solid #803e5b;background:#321a2c;color:#ff9bba;padding:8px;font-size:12px}.building-menu button:hover:enabled{background:#50213c;border-color:var(--danger)}.building-menu svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.direction-indicator{position:absolute;right:0;top:-1px;font:12px var(--mono);font-size:var(--map-label-font);color:var(--entity-color);transform-origin:center;pointer-events:none}.drag-ghost{position:fixed;display:flex;align-items:center;gap:9px;z-index:10000;pointer-events:none;padding:8px 12px;background:#10172a;border:1px solid #46eff27d;border-left:3px solid var(--cyan);box-shadow:4px 5px #0007;color:var(--cyan);font:12px var(--mono)}.drag-ghost.invalid{border-color:var(--danger);color:var(--danger)}.drag-ghost .definition-icon{width:36px;height:42px}.drag-ghost .definition-icon svg{width:28px;height:28px}.warehouse-panel{display:flex;align-items:center;gap:14px;min-width:0;color:var(--muted)}.warehouse-panel>div:first-child{display:grid;gap:5px;flex-shrink:0}.warehouse-panel .eyebrow{font-size:12px;letter-spacing:1px}.warehouse-panel>div:first-child>strong{font-size:12px;color:#cecce1;font-weight:600}.warehouse-panel>div:first-child>small{display:none}.warehouse-items{display:flex;gap:8px;flex:1;min-width:0}.warehouse-item{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:8px;row-gap:3px;align-items:center;flex:1;min-width:0;padding:8px 10px;border:1px solid #3b3551;background:#0b1020;position:relative}.warehouse-item:before{content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:2px;background:var(--entity-color, var(--purple))}.warehouse-item .definition-icon{grid-row:span 2}.warehouse-item>span:not(.definition-icon){color:var(--dim);font-size:12px;white-space:normal}.warehouse-item>strong{min-width:0;overflow-wrap:anywhere;color:#e4e3f9;font:650 18px/1.2 var(--mono);font-variant-numeric:tabular-nums}.simulation-clock{color:var(--dim);font:12px var(--mono);white-space:nowrap;writing-mode:horizontal-tb}.simulation-sync-error{position:absolute;top:112px;left:calc(18% + 16px);right:calc(24% + 16px);z-index:10;border:1px solid #695037;background:#2c2020;color:var(--amber);padding:8px 12px;margin:0;font-size:12px}.production-inspector{padding:0 16px 16px;border-bottom:1px solid var(--line-dim)}.machine-status{display:flex;align-items:center;gap:7px;color:#c5c3dd;background:#191c2e;border:1px solid #35364d;padding:8px;margin-bottom:14px;font-size:12px}.machine-status>span,.tile-machine-status{width:4px;height:4px;background:#666d89}.status-working>span,.tile-machine-status.status-working,.status-transporting>span,.status-transferring>span{background:var(--cyan)}.status-blocked>span,.status-output_full>span,.status-rejected>span,.tile-machine-status.status-output_full,.tile-machine-status.status-rejected{background:var(--amber)}.input-whitelist{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;margin-bottom:14px}.input-whitelist strong{color:var(--dim);font-size:12px;font-weight:400}.inventory-section h4{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#c9c5df;margin:14px 0 9px}.inventory-section h4 small{color:var(--dim);font-size:12px;font-weight:400}.inventory-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.inventory-slot{min-height:86px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;border:1px solid #35354d;background:#0a1020;color:#3c425e}.inventory-slot.filled{border-color:#655581;background:linear-gradient(145deg,#ad92ff09,transparent),#0c1223}.inventory-slot strong{position:absolute;top:3px;right:3px;color:#f0ecff;background:#101323e8;padding:1px;font:12px var(--mono);font-variant-numeric:tabular-nums}.inventory-slot small{color:var(--muted);font-size:12px;margin-top:4px}.production-progress{margin:14px 0}.production-progress>div{display:flex;justify-content:space-between;gap:6px;color:var(--muted);font:12px var(--mono);font-variant-numeric:tabular-nums}.production-progress progress{display:block;appearance:none;width:100%;height:7px;border:1px solid #3b3c5a;border-radius:0;margin-top:8px;background:#0a1020;accent-color:var(--cyan)}.production-progress progress::-webkit-progress-bar{background:#0a1020}.production-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#7060cc,var(--cyan))}.production-progress progress::-moz-progress-bar{background:linear-gradient(90deg,#7060cc,var(--cyan))}.production-hint,.port-route{color:var(--muted);font-size:12px;line-height:1.9}.production-hint{margin-bottom:12px}.port-route{display:grid;gap:3px;padding:10px;background:#0c1120;border:1px solid #3c3b58;border-left:2px solid var(--pink)}.port-route span:nth-child(2){color:var(--pink);font-size:12px}.conveyor-payload{position:absolute;display:grid;place-items:center;width:12px;height:10px;margin:-5px 0 0 -6px;font:bold 12px/1 var(--mono);border:1px solid var(--item-color);border-radius:1px;background:color-mix(in srgb,var(--item-color) 72%,#171728);color:#0b1425;box-shadow:0 1px 3px #000a;left:0;top:0;will-change:transform;z-index:1}.conveyor-payload svg{display:block;width:10px;height:8px;fill:none;stroke:currentColor;stroke-width:1;stroke-linejoin:round}.factory-grid .definition-icon.compact{display:block;width:28px;height:28px}.factory-grid .definition-icon.compact svg{position:absolute;top:0;left:7px;width:14px;height:14px}.factory-grid .definition-icon.compact>span{position:absolute;left:50%;bottom:0;translate:-50% 0;white-space:nowrap;letter-spacing:0;font-size:var(--map-label-font)}.factory-map.is-zoomed-out .definition-icon.compact>span,.factory-map.is-zoomed-out .axis-corner,.factory-map.is-zoomed-out .axis-minor{visibility:hidden}.factory-map.is-zoomed-out .definition-icon.compact svg{top:3px;left:3px;width:22px;height:22px}.tile-machine-status{position:absolute;top:2px;left:2px;pointer-events:none}.tile-production-bar{position:absolute;left:2px;right:2px;bottom:0;height:2px;background:#080d1c;pointer-events:none}.tile-production-bar>span{display:block;width:100%;height:100%;background:var(--entity-color, var(--cyan));transform-origin:left}.conveyor-items-layer{position:absolute;inset:0;pointer-events:none;z-index:4}.is-eco .conveyor-payload{box-shadow:none}.is-eco .map-viewport{background-image:none}.is-eco .catalog-entry[aria-pressed=true]{box-shadow:none}.is-eco .map-panel{background:#080d18}@media(max-width:1280px){.warehouse-panel{gap:10px}.warehouse-item{column-gap:5px;padding:7px 8px}.warehouse-item>strong{font-size:16px}.camera-controls small{display:none}}@media(prefers-reduced-motion:reduce){.conveyor-payload{box-shadow:none}}
