:root{font-family:Bahnschrift,Microsoft YaHei,Segoe UI,sans-serif;color:#d8e2e9;background:#172834;font-synthesis:none;--panel:#1d303fea;--solid:#203543;--line:#b3c8d222;--muted:#8ca6b7;--accent:#e2b88a;--cyan:#9ad2cf;--shadow:0 16px 45px #0b17283b}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;touch-action:manipulation}button:disabled{opacity:.42;cursor:default}button:hover:not(:disabled){background-color:#ffffff0d}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #eac394;outline-offset:3px}button,select{transition:background .15s,color .15s}svg{width:18px;height:18px;vertical-align:middle;flex-shrink:0}#app,#world{position:fixed;inset:0}#world{touch-action:none}#world canvas{display:block}.hud{position:fixed;inset:0;pointer-events:none}.hud button,.hud input,.hud select,.hud .interactive{pointer-events:auto}.brand{position:absolute;top:22px;left:25px;display:flex;align-items:center;gap:13px;color:#dbe4e8;text-shadow:0 2px 8px #152839}.brand-emblem{width:42px;height:44px;display:grid;place-items:center;background:#e3b88a;color:#263e4f;clip-path:polygon(0 0,78% 0,100% 22%,100% 100%,22% 100%,0 78%);font:700 18px Bahnschrift}.brand h1{font-size:19px;font-weight:600;letter-spacing:4px;margin:0}.brand small{font:8px Consolas;letter-spacing:2.7px;color:#9cb2c1;display:block;margin-top:5px}.status-strip{position:absolute;top:22px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:23px;padding:11px 18px;background:#1d3240e6;border:1px solid var(--line);border-radius:5px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.meter{display:flex;gap:9px;align-items:center;white-space:nowrap}.meter svg{width:16px;height:16px;color:var(--accent)}.meter b{font:17px Bahnschrift;font-weight:500}.meter small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.meter.energy svg{color:var(--cyan)}.time-bar{position:absolute;right:25px;top:23px;display:flex;align-items:center;gap:3px;background:#1d3341d9;border:1px solid var(--line);padding:6px;border-radius:5px}.time-bar button{min-width:29px;height:28px;font-size:10px;color:#a2b9c8;border-radius:3px}.time-bar button.active{background:#b4c9d01e;color:#f1d5b3}.time-bar svg{height:14px;width:14px}.rail{position:absolute;left:25px;top:101px;display:flex;flex-direction:column;gap:10px}.rail button{width:44px;height:45px;background:#203746ed;border:1px solid #b5c6cc28;box-shadow:0 5px 12px #15202a1f;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#acc1c9;position:relative}.rail button.active{border-color:#dec6a38c;color:#f0d2a4;background:#425563}.rail button:after{content:attr(data-label);position:absolute;left:52px;padding:8px 10px;background:#1d3343;border:1px solid var(--line);border-radius:4px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none}.rail button:hover:after{opacity:1}.rail .space{height:6px}.scene-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.scene-label{position:absolute;transform:translate(-50%,-100%);padding:8px 11px;background:#213d4bdd;border:1px solid #aec8d235;border-left:2px solid #b4cfcc;border-radius:3px;box-shadow:0 4px 12px #122b3824;white-space:nowrap}.scene-label b{display:block;font-size:10px;font-weight:500;letter-spacing:.5px}.scene-label small{display:block;color:#91adb9;font-size:8px;margin-top:4px}.tutorial{position:absolute;left:25px;bottom:29px;width:310px;pointer-events:auto;background:linear-gradient(140deg,#344b5aee,#243d4aee);border:1px solid #c1cbd23c;border-top:2px solid #d7b48d;border-radius:5px;padding:17px 18px;box-shadow:var(--shadow)}.tutorial small,.eyebrow{font:9px Consolas;letter-spacing:2px;color:#9eb2bb}.tutorial h2{font-size:15px;letter-spacing:.5px;margin:10px 0;font-weight:500;color:#edddc8}.tutorial p{font-size:11px;line-height:1.8;color:#a6bdc9;margin:0 0 13px}.tutorial>.close{position:absolute;right:8px;top:7px}.tutorial .button{width:100%;justify-content:space-between}.map-controls{position:absolute;right:25px;bottom:28px;display:flex;align-items:center;gap:5px;background:#1d3342d4;border:1px solid #b4c8d52a;border-radius:5px;padding:5px}.map-controls button{width:28px;height:29px;display:grid;place-items:center;color:#a9c3ce}.map-controls svg{width:15px;height:15px}.map-controls span{font:9px Consolas;color:#a8bdc9;width:33px;text-align:center}.subtle-status{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font:8px Consolas;letter-spacing:1px;color:#a5b9c1;text-shadow:0 1px 3px #102539}.toast{position:absolute;top:88px;left:50%;transform:translate(-50%);border:1px solid #adcacb55;padding:11px 20px;background:#294654ef;border-radius:4px;color:#d9e7e1;font-size:12px;max-width:560px;text-align:center;opacity:0;z-index:40;transition:opacity .15s;box-shadow:var(--shadow)}.toast.show{opacity:1}.toast.warn{background:#624d42ef;border-color:#d9ad83;color:#f3dbc1}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;background:#d1b18c;border:1px solid #e5ccb04d;border-radius:4px;color:#243b48;font-size:11px;font-weight:600}.button.secondary{background:#b9c8cf09;color:#aac1ce;border-color:#b9c8cf32;font-weight:400}.button.danger{background:#b5756522;border-color:#bf8f743d;color:#d8a894}.button.small{padding:7px 9px;font-size:10px}.button.full{width:100%;margin-top:10px}.button svg{width:14px;height:14px}.close{width:26px;height:26px;display:grid;place-items:center;color:#91abb8;border-radius:4px}.close svg{width:14px;height:14px}.hidden{display:none!important}.drawer{position:absolute;right:25px;top:91px;bottom:88px;width:330px;padding:20px;background:var(--panel);border:1px solid #bfd0d12f;border-radius:6px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:auto;pointer-events:auto;scrollbar-width:thin;scrollbar-color:#59798b transparent}.drawer h2{font-weight:500;font-size:18px;letter-spacing:1px;margin:0}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.description{font-size:11px;line-height:1.85;color:#94b0c0;margin:11px 0 16px}.detail{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:10px;color:#8eabbc}.detail strong{font:12px Consolas,Microsoft YaHei;font-weight:400;color:#d4e0e5}.field{display:flex;flex-direction:column;gap:7px;margin:13px 0;font-size:10px;color:#9bb6c5}.field label{font-size:10px;color:#9bb6c5}.select,input[type=text],input[type=number]{width:100%;color:#d2e0e6;background:#172f3f;border:1px solid #b2c6cf36;border-radius:4px;padding:9px 10px;font-size:11px;min-width:0}.row{display:flex;gap:9px;align-items:center}.row>*{min-width:0}.row .field{flex:1}.notice{padding:11px 12px;border-left:2px solid #c3a679;background:#c9ad7a09;color:#b5b7a2;font-size:10px;line-height:1.8;margin:13px 0}.tag{display:inline-flex;align-items:center;gap:5px;color:var(--c,#acbec8);background:#ffffff05;border:1px solid #a9c1d321;padding:5px 7px;border-radius:3px;font-size:9px;white-space:nowrap}.tags{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.progress{height:4px;background:#b4c7d41a;margin:12px 0;overflow:hidden;border-radius:2px}.progress>i{display:block;height:100%;background:#e0b688;transition:width .2s}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.stat-grid>div{padding:12px;background:#132b3b80;border:1px solid var(--line);border-radius:4px}.stat-grid b{font:23px Bahnschrift;color:#d7dcca}.stat-grid small{font-size:9px;color:#8facbd;display:block;margin-top:5px}.item-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.item-code{font:9px Consolas;color:var(--c);background:color-mix(in srgb,var(--c),transparent 92%);border:1px solid color-mix(in srgb,var(--c),transparent 65%);padding:5px;min-width:36px;text-align:center}.item-row>span:nth-child(2){flex:1}.item-row small{font-size:9px;color:#8cabbc}.recipe-card{padding:13px;background:#102b3c44;border:1px solid var(--line);border-radius:5px;margin:12px 0}.recipe-card h3{font-size:12px;color:#d3dde0;margin:0 0 10px;font-weight:500}.worker-card,.rule-card{border:1px solid var(--line);padding:12px;background:#142b394a;margin:9px 0;border-radius:4px}.worker-card h3,.rule-card h3{font-size:12px;font-weight:500;margin:0 0 7px;display:flex;justify-content:space-between}.worker-card p,.rule-card p{font-size:10px;line-height:1.8;color:#91adbb;margin:0}.rule-card .row{margin-top:10px}.modal-bg{position:fixed;inset:0;z-index:60;background:#091e2db3;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;padding:22px}.modal{position:relative;background:#203543;border:1px solid #acbdc442;border-radius:8px;box-shadow:0 30px 100px #081a2b73;width:940px;max-width:100%;max-height:91vh;overflow:auto;padding:28px;scrollbar-width:thin;scrollbar-color:#5c7b8c transparent}.modal>.close{position:absolute;right:17px;top:17px}.modal h2{font-size:24px;font-weight:500;letter-spacing:1px;margin:8px 0 12px;color:#e5e8e1}.modal-intro{font-size:11px;line-height:1.9;color:#92adbd;margin:0 0 18px}.tabs{display:flex;gap:5px;flex-wrap:wrap;margin:17px 0}.tabs button{font-size:10px;padding:8px 13px;border:1px solid var(--line);border-radius:4px;color:#9cb6c5;background:#a6b6c205}.tabs button.active{background:#dbc49918;color:#e6cda9;border-color:#d3ba9069}.workshop-grid{display:grid;grid-template-columns:270px 1fr;gap:20px}.recipe-list{max-height:480px;overflow:auto;scrollbar-width:thin;scrollbar-color:#5c7a8a transparent;display:flex;flex-direction:column;gap:5px}.recipe-choice{padding:10px 12px;border:1px solid var(--line);border-radius:4px;text-align:left;display:flex;gap:11px;align-items:center;background:#172f3d70;color:#b0c3cf}.recipe-choice b{font-size:11px;font-weight:500}.recipe-choice small{display:block;font:8px Consolas;color:#779aac;margin-top:4px}.recipe-choice.active{background:#c5b08b13;border-color:#c7b18f83}.recipe-details{padding:17px 20px;background:#1028375e;border:1px solid var(--line);border-radius:5px;min-height:335px}.recipe-details h3{font-size:20px;letter-spacing:.5px;font-weight:500;margin:5px 0 14px;color:#decec0}.recipe-input{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.recipe-input .name{flex:1;text-align:left;padding:0;color:#b2c8d3}.recipe-input .name:hover{color:#edd3af}.recipe-input b{font:11px Consolas;color:#dfc29c}.recipe-input.missing b{color:#d99681}.step-list{display:flex;gap:7px;margin:18px 0;flex-wrap:wrap}.step-list>div{flex:1;min-width:90px;border-top:2px solid #647b883c;padding-top:8px;color:#617d8d;font-size:9px}.step-list>div.active{border-color:#e6be90;color:#e2c199}.step-list>div.done{border-color:#91c4bb;color:#9bc9c1}.step-list small{font:9px Consolas;display:block;margin-bottom:4px}.workshop-footer{display:flex;align-items:center;gap:10px;margin-top:18px;border-top:1px solid var(--line);padding-top:15px;color:#8fabb8;font-size:10px}.workshop-footer>span{flex:1}.build-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.build-card{padding:14px;background:#142e3e66;border:1px solid var(--line);border-radius:4px;text-align:left;min-height:96px}.build-card .code{display:block;font:9px Consolas;color:#d2b391;margin-bottom:12px;letter-spacing:1px}.build-card b{font-size:12px;font-weight:500;display:block}.build-card small{font-size:10px;color:#8ca7b9;display:block;margin-top:7px}.build-card.available{border-color:#bfd4c453;background:#b6cfab09}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.mode-card{background:#132e3e77;border:1px solid var(--line);padding:24px;border-radius:5px}.mode-card h3{font-weight:500;font-size:18px;color:#ddceba;margin:12px 0}.mode-card p{font-size:11px;line-height:1.9;color:#97b2c0;min-height:60px}.mode-card .button{width:100%}.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tech-card{border:1px solid var(--line);border-radius:5px;padding:20px;background:#112b3c55}.tech-card.current{border-color:#d6b88e77}.tech-card.done{background:#83b8b812;border-color:#8ab8b04d}.tech-card h3{font-size:15px;line-height:1.6;font-weight:500;color:#d4dccc;margin:14px 0}.tech-card p{font-size:10px;line-height:1.9;color:#94afbc;min-height:57px}.tech-card strong{font:22px Bahnschrift;color:#d4b58f;display:block;margin:20px 0 4px}.tech-card small{font-size:9px;color:#86a5b8}.manual-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.manual-grid article{padding:16px;border:1px solid var(--line);border-radius:4px}.manual-grid h3{font-size:12px;font-weight:500;color:#d8c7ac;margin:0 0 9px}.manual-grid p{font-size:10px;line-height:1.9;color:#94b0bf;margin:0}.designer{width:1180px;padding:25px}.designer-grid{display:grid;grid-template-columns:160px minmax(250px,1fr) 244px;gap:16px}.design-stage{height:470px;position:relative;background:radial-gradient(ellipse at 50% 35%,#4b6475,#1d3546 73%);border:1px solid var(--line);border-radius:5px;overflow:hidden;touch-action:none}.design-stage canvas{display:block}.design-stage .view-note{position:absolute;bottom:13px;left:15px;font:9px Consolas;color:#86a6bc;pointer-events:none}.module-list{display:flex;flex-direction:column;gap:5px}.module-list button{font-size:11px;border:1px solid var(--line);padding:10px 11px;background:#132c3d7d;text-align:left;border-radius:3px;display:flex;justify-content:space-between;color:#a6bdcc}.module-list button span{color:#d8b68f}.part-list{max-height:173px;overflow:auto;margin-top:15px;scrollbar-width:thin;scrollbar-color:#5d7e91 transparent}.part-list button{font-size:9px;padding:6px 8px;width:100%;text-align:left;color:#90adbf}.part-list button.active{background:#c6aa8123;color:#e1c39c}.part-editor{max-height:470px;overflow:auto;padding:0 3px;scrollbar-width:thin;scrollbar-color:#56778a transparent}.part-editor h3{font-weight:500;font-size:13px;color:#d4c5ad;margin:0 0 14px}.slider-row{display:flex;align-items:center;gap:7px;margin:10px 0}.slider-row span{font:10px Consolas;color:#9eb7c7;min-width:28px}.slider-row input{width:100%;accent-color:#c3a67f;min-width:0}.slider-row b{font:9px Consolas;min-width:30px;color:#bacbd6;text-align:right}.design-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:15px}.design-bottom .tags{margin:0;flex:1}.design-bottom .field{margin:0;width:180px;flex-shrink:0}.color-field{display:flex;gap:10px;align-items:center;font-size:10px;color:#94b0c2;margin:12px 0}.color-field input{width:32px;height:26px;padding:0;border:0;background:transparent}.observe .rail,.observe .tutorial,.observe .status-strip,.observe .brand,.observe .subtle-status{display:none}.observe .time-bar{opacity:.25}.observe .time-bar:hover{opacity:1}.loading{position:fixed;inset:0;background:#1b3242;z-index:100;display:grid;place-content:center;text-align:center;gap:15px}.loading strong{font-size:25px;letter-spacing:6px;color:#debf97}.loading small{font:10px Consolas;letter-spacing:3px;color:#86a6b9}@media(max-width:1100px){.brand{left:18px}.brand h1{font-size:16px}.brand small{font-size:7px;letter-spacing:1.6px}.brand-emblem{width:34px;height:37px}.status-strip{gap:16px;left:52%;padding:10px 14px}.meter b{font-size:15px}.time-bar{right:18px}.rail{left:18px}.drawer{right:18px;width:310px}.tutorial{left:18px;width:290px}.designer-grid{grid-template-columns:137px 1fr 205px;gap:11px}.design-stage{height:445px}.designer{padding:21px}.module-list button{font-size:10px;padding:9px}.part-editor{max-height:445px}}@media(max-width:750px){.brand{top:16px;left:13px;gap:8px}.brand h1{font-size:14px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1px}.brand-emblem{height:31px;width:30px;font-size:14px}.status-strip{top:63px;left:13px;transform:none;padding:8px 11px;gap:17px}.meter b{font-size:13px}.meter small{font-size:7px}.meter svg{width:13px;height:13px}.time-bar{right:12px;top:15px;padding:4px;gap:0}.time-bar button{min-width:23px;height:25px;font-size:8px}.rail{left:13px;top:132px;gap:8px}.rail button{width:33px;height:35px}.rail button svg{width:15px;height:15px}.rail button:after{display:none}.tutorial{left:13px;bottom:65px;width:260px;padding:13px 14px}.tutorial small{font-size:8px}.tutorial h2{font-size:13px;margin:8px 0}.tutorial p{font-size:10px;margin-bottom:10px}.tutorial .button{font-size:10px;padding:8px 10px}.map-controls{right:12px;bottom:16px}.subtle-status{left:13px;transform:none;bottom:17px;max-width:180px;font-size:7px}.drawer{right:12px;top:115px;bottom:64px;width:min(315px,calc(100vw - 65px));padding:16px}.drawer h2{font-size:15px}.toast{top:105px;max-width:calc(100vw - 60px);width:max-content;font-size:10px;padding:9px 12px}.modal-bg{padding:10px}.modal{padding:23px 17px;max-height:94vh}.modal h2{font-size:20px}.eyebrow{font-size:8px;letter-spacing:1.5px}.modal-intro{font-size:10px}.workshop-grid{grid-template-columns:1fr;gap:12px}.recipe-list{display:grid;grid-template-columns:1fr 1fr;max-height:180px}.recipe-choice{padding:8px;gap:7px}.recipe-choice b{font-size:10px}.recipe-choice small{font-size:7px}.recipe-details{padding:14px;min-height:280px}.recipe-details h3{font-size:17px}.tabs{gap:4px;margin:12px 0}.tabs button{font-size:9px;padding:7px 10px}.workshop-footer{flex-wrap:wrap;font-size:9px;gap:7px}.workshop-footer>span{flex-basis:100%}.build-grid{grid-template-columns:1fr 1fr;gap:8px}.build-card{padding:12px;min-height:87px}.build-card b{font-size:11px}.build-card .code{font-size:8px}.mode-grid{grid-template-columns:1fr;gap:10px}.mode-card{padding:17px}.mode-card h3{font-size:16px}.mode-card p{min-height:0;font-size:10px}.tech-grid{grid-template-columns:1fr;gap:9px}.tech-card{padding:15px}.tech-card h3{margin:8px 0;font-size:14px}.tech-card p{min-height:0;margin:7px 0}.tech-card strong{margin:10px 0 0;font-size:20px}.manual-grid{grid-template-columns:1fr}.manual-grid article{padding:13px}.designer-grid{grid-template-columns:95px 1fr;gap:10px}.design-stage{height:330px}.module-list button{padding:8px 6px;font-size:9px}.part-list{max-height:110px;margin-top:9px}.part-editor{grid-column:1/-1;max-height:260px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.part-editor h3,.part-editor>.notice,.part-editor>.row{grid-column:1/-1}.part-editor h3{margin:5px 0}.part-editor .field{margin:7px 0}.design-bottom{flex-wrap:wrap;gap:10px}.design-bottom .tags{flex-basis:100%}.design-bottom .field{flex:1}.design-bottom .button{font-size:10px}.scene-label b{font-size:9px}.scene-label small{font-size:7px}.scene-label{padding:6px 8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.button{white-space:nowrap}.design-bottom .tags .tag{font-size:10px}.description,.tutorial p,.modal-intro,.recipe-input,.manual-grid p{font-size:12px}.worker-card p,.rule-card p{font-size:11px}.design-bottom .tag{white-space:normal}@media(max-height:800px)and (min-width:751px){.tutorial{left:82px;width:280px}}@media(max-width:750px){.tutorial{left:59px;width:calc(100vw - 75px);max-width:300px}.description,.tutorial p,.modal-intro,.manual-grid p{font-size:11px}.time-bar button{min-width:22px}}.manual-hud{position:absolute;bottom:28px;left:50%;transform:translate(-50%);width:340px;background:#233b4bec;border:1px solid #d5bb914d;padding:16px 18px;border-radius:5px;pointer-events:auto;box-shadow:var(--shadow)}.manual-hud h3{font-size:14px;font-weight:500;margin:9px 0;color:#e3cbaa}.manual-hud .row{justify-content:space-between}.observe .manual-hud{display:none}@media(max-width:750px){.manual-hud{left:59px;right:16px;width:auto;transform:none;bottom:66px;padding:13px}.manual-hud h3{font-size:12px}.manual-hud .button{font-size:9px;padding:8px}.manual-hud .eyebrow{font-size:8px}}.brand .site-home{display:inline-flex;align-items:center;min-height:24px;margin-top:2px;color:#b9ced5;font-size:12px;letter-spacing:0;text-decoration:none;pointer-events:auto}.brand .site-home:hover{color:#f1d5b3}.brand .site-home:focus-visible{outline:2px solid #e3b88a;outline-offset:3px;border-radius:2px}.mobile-factory-controls{display:none}@media(max-width:760px),(max-width:1000px)and (max-height:500px){#world canvas{touch-action:none}.hud .brand{top:max(12px,env(safe-area-inset-top));left:14px;gap:8px}.brand h1{font-size:21px}.brand-emblem{width:32px;height:36px;font-size:22px}.site-home{font-size:12px;min-height:28px;display:flex;align-items:center}.status-strip{top:76px;left:12px;right:12px;gap:5px;justify-content:space-between}.status-strip .meter{padding:8px;gap:7px;flex:1;min-height:47px}.meter b{font-size:13px}.meter small{font-size:10px}.meter svg{width:16px;height:16px}.time-bar{right:12px;top:max(12px,env(safe-area-inset-top));padding:2px}.time-bar button{min-width:38px;height:44px;font-size:12px}.time-bar button[data-speed],.time-bar button[data-action=sound]{display:none}.time-bar button[data-action=observe]{display:grid}.mobile-menu-open .time-bar{top:136px;right:12px;z-index:41}.mobile-menu-open .time-bar button{display:grid;place-items:center}.mobile-factory-controls{display:block;position:absolute;inset:0;pointer-events:none}.mobile-factory-nav{position:absolute;bottom:0;left:0;right:0;display:flex;gap:3px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#1b303fef;border-top:1px solid #93b3c638;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto}.mobile-factory-nav button{flex:1;min-height:48px;border:1px solid #9ab1bc23;border-radius:5px;background:#2b4251;color:#d6e3e7;font-size:13px}.mobile-factory-nav button[aria-expanded=true]{color:#f4d1a0;border-color:#b69872}.rail{display:none}.mobile-menu-open .rail{display:grid;grid-template-columns:repeat(3,1fr);position:absolute;inset:auto 12px calc(79px + env(safe-area-inset-bottom));gap:8px;background:#203745f7;padding:14px;border:1px solid #93b3c645;border-radius:10px;z-index:40;pointer-events:auto}.rail .space{display:none}.rail button{width:auto;height:76px;flex-direction:column;gap:8px}.rail button:after{content:attr(aria-label);position:static;display:block;opacity:1;background:none;border:0;padding:0;font-size:12px}.rail button svg{width:20px;height:20px}.map-controls{right:12px;bottom:calc(83px + env(safe-area-inset-bottom));gap:2px;padding:3px}.map-controls button{width:42px;height:44px}.map-controls span,.map-controls button[data-action=inspect]{display:none}.mobile-camera-note{position:absolute;top:132px;left:14px;font-size:10px;color:#b1c8d5;background:#162e3ca6;padding:6px 8px;border-radius:4px}.subtle-status{display:none}.mobile-placement{display:none;position:absolute;left:12px;right:12px;bottom:calc(83px + env(safe-area-inset-bottom));align-items:center;gap:8px;padding:9px;background:#294555f5;border:1px solid #bea380;border-radius:7px;pointer-events:auto}.mobile-placement span{flex:1;font-size:12px}.mobile-placement button{min-width:50px;min-height:44px;padding:6px 10px;background:#435c68;color:#f4dbb7;border-radius:5px}body[data-mobile-building=true] .mobile-placement{display:flex}body[data-mobile-building=true] .map-controls{display:none}.tutorial{display:none;left:12px;right:12px;bottom:calc(145px + env(safe-area-inset-bottom));width:auto;max-width:none;padding:20px;z-index:35}.mobile-goal-open .tutorial:not(.hidden){display:block}.tutorial h2{font-size:18px;margin:10px 22px 14px 0}.tutorial p{font-size:14px}.tutorial .button{font-size:14px;min-height:48px}.tutorial .close{width:44px;height:44px}.drawer{z-index:38;inset:auto 8px calc(77px + env(safe-area-inset-bottom));width:auto;max-height:62dvh;padding:18px;border-radius:14px 14px 6px 6px;overscroll-behavior:contain;background:#203744f7}.drawer-head{position:sticky;top:-18px;padding:10px 0;background:#203744;z-index:2}.drawer h2{font-size:18px}.drawer .close{min-width:44px;min-height:44px}.manual-hud{bottom:calc(142px + env(safe-area-inset-bottom));left:12px;right:12px;width:auto;max-height:30dvh;overflow:auto;padding:12px;transform:none}.manual-hud h3{font-size:14px}.manual-hud .button{font-size:13px;min-height:44px}.toast{inset:164px 12px auto;width:auto;transform:none;font-size:13px;max-width:none;pointer-events:none}.modal-bg{padding:0;align-items:flex-end}.modal{width:100%;max-width:100%;max-height:94dvh;padding:25px 18px calc(24px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;overscroll-behavior:contain}.modal>.close{position:sticky;display:block;margin:-10px -7px -26px auto;top:0;right:0;min-width:44px;min-height:44px;background:#203543;z-index:4}.modal h2{font-size:22px;padding-right:26px}.modal-intro,.description{font-size:13px;line-height:1.7}.modal .eyebrow{letter-spacing:1px;font-size:10px}.button,.select,.input,.drawer button,.tabs button{min-height:44px;font-size:14px}.select,.input,input,select{font-size:16px}.tabs{overflow-x:auto;flex-wrap:nowrap}.tabs button{flex-shrink:0;padding:8px 12px}.build-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.build-card{min-height:108px}.build-card b{font-size:14px}.build-card small{font-size:11px}.workshop-grid{grid-template-columns:1fr}.recipe-list{display:flex;overflow:auto;max-height:none;gap:8px;padding:2px 0 10px}.recipe-choice{flex:0 0 155px;min-height:60px}.recipe-choice b{font-size:13px}.recipe-choice small{font-size:11px}.recipe-details h3{font-size:20px}.recipe-input .name{min-height:44px;font-size:14px}.step-list>div{font-size:12px}.workshop-footer{flex-wrap:wrap;gap:8px}.workshop-footer>span{width:100%;font-size:12px}.designer-grid{grid-template-columns:1fr;gap:16px}.designer-grid>div{min-width:0}.design-stage{height:290px;min-height:240px}.part-list{max-height:160px;overflow:auto}.field{font-size:12px}.notice,.detail,.worker-card p{font-size:13px}.row{flex-wrap:wrap}.observe .mobile-factory-controls{display:none}.observe .time-bar{opacity:1}.observe .map-controls{bottom:calc(12px + env(safe-area-inset-bottom))}.recipe-list{flex-direction:row}.recipe-choice{max-width:155px}.designer-grid>.design-stage{order:-1;height:280px}.module-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.module-list button,.part-list button{min-height:44px;font-size:13px}.part-editor input[type=range]{min-height:40px}.part-list{margin-top:14px}}@media(max-height:500px)and (max-width:1000px){.status-strip,.mobile-camera-note{display:none}.drawer{max-height:65dvh}.manual-hud{bottom:80px;max-height:42dvh}.map-controls{bottom:80px}}@media(max-height:500px)and (max-width:1000px){.manual-hud{right:auto;left:12px;width:300px;max-width:44vw}}
