:root{color-scheme:dark;--ink:#f3f4ec;--muted:#a6bcc0;--gold:#efc37c;--gold-bright:#f9dfa5;--teal:#8ce2c4;--edge:#a0c6c429;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:#08232e;color:var(--ink)}button,input,select{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}button:disabled{opacity:.45;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(1.08)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f6d395;outline-offset:4px}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.game-shell{height:100svh;min-height:740px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#215767,#062a3b 75%)}
.world-scene{position:absolute;left:50%;top:50%;width:max(100vw,150svh);aspect-ratio:1.5;background-size:100% 100%;transform:translate(-50%,-50%) scale(var(--zoom,1));transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .7s;z-index:-3}.world-vignette{position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(180deg,#061c29b0 0%,#061c2910 22%,transparent 43%,#041b2720 63%,#051d32b0 82%,#051a2ff5 100%),linear-gradient(90deg,#061f359c 0%,#071d3130 26%,transparent 45%,#081c261c 76%,#061d2a85 100%)}
.game-header{position:absolute;left:32px;right:32px;top:25px;display:flex;align-items:center;justify-content:space-between;gap:25px;z-index:10}.brand{display:flex;gap:14px;align-items:center;text-shadow:0 2px 15px #001527}.brand-emblem{width:48px;height:48px;border:1px solid #eed296cc;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:18px;letter-spacing:-2px;background:linear-gradient(135deg,#e5c78c,#a37a38);box-shadow:inset 0 0 0 4px #26352e,inset 0 0 0 5px #d8bd80,0 6px 18px #03172370;color:#253329;text-shadow:none}.brand h1{font-size:24px;font-weight:600;letter-spacing:.13em;margin:0;line-height:1.35}.brand-sub{font-size:12px;color:#dac69c;letter-spacing:.35em;display:block;margin-top:5px}.resource-bar{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;padding:10px 8px;gap:0;border:1px solid #aad1d13d;border-radius:12px;background:linear-gradient(120deg,#173b44dd,#132c39e0);box-shadow:0 8px 28px #0014252e,inset 0 1px #fff1;backdrop-filter:blur(18px)}.resource{border:0;background:none;display:flex;gap:11px;align-items:center;padding:0 24px;border-right:1px solid #b1c9c633;text-align:left;white-space:nowrap}.resource:last-child{border:0}.resource svg{color:#aacec5;width:23px;height:23px}.cash-resource svg{color:var(--gold)}.resource small{font-size:12px;color:#b9c8c7;display:block;margin-bottom:3px}.resource b{font-family:ui-monospace,Consolas,monospace;font-weight:600;font-size:19px;letter-spacing:.01em}.cash-resource b{color:#f4dba2}.resource em{font-style:normal;font-size:12px;color:#b8cacb;font-weight:400}.game-tools{display:flex;align-items:center;gap:7px;margin-left:auto}.icon-button{background:#14323d91;border:1px solid #a1c5c42f;border-radius:9px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;color:#d4e4e2;font-size:20px;flex-shrink:0;backdrop-filter:blur(10px)}.icon-button:hover{background:#32535bbb;border-color:#bfdbcb88}.icon-button svg{width:18px;height:18px}.place-caption{position:absolute;top:149px;left:43px;text-shadow:0 3px 28px #00102380;pointer-events:none}.place-overline{display:flex;gap:9px;align-items:center;font-size:13px;color:#e1d1aa;letter-spacing:.12em}.place-overline>span{width:21px;height:1px;background:#d8c294}.place-caption h2{font-size:48px;line-height:1.2;letter-spacing:.04em;font-weight:500;margin:16px 0 13px;font-family:"Noto Serif SC","Songti SC","SimSun",serif}.place-caption h2 em{font-style:normal;color:#efe4cc}.place-period{color:#e0b875;margin-left:3px}.place-caption p{font-size:13px;color:#c1cfcc;letter-spacing:.15em;margin:0}.weather-tag{position:absolute;right:41px;top:121px;display:flex;align-items:center;gap:10px;color:#f2d99f}.weather-tag svg{width:29px;height:29px;stroke-width:1.2}.weather-tag>span{font-size:13px}.weather-tag small{display:block;color:#becfcf;font-size:12px;margin-top:4px}
.world-pin{position:absolute;z-index:3;transform:translate(-50%,-100%)}.pin-processing{left:52%;top:39%}.pin-materials{left:35%;top:69%}.pin-shipping{left:81%;top:68%}.pin-expansion{left:33%;top:34%}.building-marker{position:relative;display:flex;align-items:center;gap:9px;padding:0 15px 0 0;border:1px solid #c3d5bf75;background:linear-gradient(120deg,#122e37ee,#1d414add);border-radius:9px;color:#f2f3e9;box-shadow:0 5px 20px #06212cb3,inset 0 1px #ffffff12;backdrop-filter:blur(8px);min-height:50px;white-space:nowrap;transform:scale(calc(1 / var(--zoom,1)));transform-origin:bottom center}.building-marker:after{content:"";position:absolute;width:1px;height:30px;top:100%;left:24px;background:linear-gradient(#d6dec9,transparent);pointer-events:none}.building-marker:before{content:"";position:absolute;width:8px;height:8px;border:1px solid #e1d4a7;border-radius:50%;left:20px;top:calc(100% + 22px);background:#ded5ad70;box-shadow:0 0 14px #ead097;pointer-events:none}.marker-symbol{width:47px;align-self:stretch;display:flex;align-items:center;justify-content:center;border-right:1px solid #aac4bc40;color:#e5d3a4;background:#bfcaac0d;border-radius:8px 0 0 8px;font-size:25px}.marker-symbol svg{width:22px;height:22px}.marker-label{font-size:14px;font-weight:500;text-align:left;padding:8px 0}.marker-label small{font-weight:400;display:block;font-size:12px;color:#acccc6;margin-top:4px}.building-marker:hover{border-color:#f2daa9;box-shadow:0 6px 25px #05233190,0 0 23px #ecd49b24}.expansion-marker{border-style:dashed;border-color:#dfd9b981;background:#153d468f}.is-working{border-color:#d8c68b}.is-working .marker-symbol{color:#f6d496}.is-working .marker-label small{color:#e5cc99}.is-ready{border-color:#8dedc6}.is-ready .marker-symbol{color:#a4f1cf}.working-beam{position:absolute;bottom:0;left:49px;width:calc(100% - 51px);height:2px;background:linear-gradient(90deg,transparent,#f2d8a4,transparent);animation:productionGlow 2s ease-in-out infinite}
.quest-card{position:absolute;bottom:223px;left:35px;width:281px;padding:23px 23px 18px;background:linear-gradient(120deg,#0e2c39e8,#183845d9);border:1px solid #89b4b43f;border-radius:13px;box-shadow:0 14px 30px #08273833;backdrop-filter:blur(20px)}.quest-eyebrow{font-size:12px;letter-spacing:.06em;color:#d9c399;display:flex;align-items:center;gap:9px}.quest-star{font-size:21px;line-height:1}.quest-card h3{font-size:20px;line-height:1.65;font-weight:500;letter-spacing:.015em;margin:14px 0 10px}.quest-card>p{font-size:13px;line-height:1.95;color:#b9cecf;margin:0 0 20px}.quest-bottom{display:flex;align-items:center;justify-content:space-between}.quest-steps{display:flex;align-items:center;gap:7px;font-size:12px;color:#90afb4}.quest-steps>span{min-width:27px;text-align:center}.quest-steps i{width:14px;height:1px;background:#768e8b7f}.quest-steps .current{color:#f1d6a5}.quest-steps .done{color:#a2ebce}.quest-more{background:#43605960;border:1px solid #92ac9450;color:#dfd1ab;width:29px;height:29px;border-radius:50%;font-size:17px}.dispatch-card{position:absolute;right:35px;top:201px;width:288px;border:1px solid #b8d2c14f;border-radius:14px;padding:21px;background:linear-gradient(140deg,#143540ed,#143644da);box-shadow:0 16px 50px #001b3b40,inset 0 1px #fff1;backdrop-filter:blur(22px);transition:opacity .25s,transform .25s}.dispatch-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#c1d3cb;gap:6px}.dispatch-top>span{display:flex;align-items:center;gap:7px}.dispatch-top svg{width:16px;height:16px;color:#e9cf99}.mini-link,.text-link{border:0;background:none;padding:0;color:#b7c8b8;font-size:12px}.text-link{font-size:14px;color:#e5c78e}.client-heading{display:flex;align-items:center;gap:10px;margin-top:21px}.client-monogram{width:40px;height:40px;border:1px solid #abbd9852;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#64765a,#314c4f);color:#efeacb;font-size:19px;flex-shrink:0;box-shadow:inset 0 0 0 3px #17394144}.client-heading h3{font-size:16px;font-weight:500;margin:0}.client-heading p{font-size:12px;color:#97b4b4;margin:5px 0 0}.contract-seal{font-size:12px;border:1px solid #9fcfc75c;padding:4px 6px;border-radius:5px;color:#b8dacc;margin-left:auto;white-space:nowrap}.dispatch-brief{display:flex;align-items:center;justify-content:space-between;margin:19px 0;font-size:14px;color:#d7e1d9;padding:14px 0;border-top:1px solid #a0beba26;border-bottom:1px solid #a0beba26}.dispatch-brief>span{font:24px ui-monospace,Consolas,monospace;color:#f4e6bd}.dispatch-brief small{font-size:12px;color:#b1c9c6}.dispatch-payment>span{display:block;font-size:12px;color:#a9c2c3}.dispatch-payment>strong{display:block;font:29px ui-monospace,Consolas,monospace;color:#f2d69a;margin:7px 0 17px;letter-spacing:-.02em}.delivery-countdown{display:flex;justify-content:space-between;color:#acc7c5;font-size:12px;margin-bottom:17px}.delivery-countdown>span{display:flex;align-items:center;gap:5px}.delivery-countdown svg{width:16px;height:16px}.delivery-countdown>span:last-child{color:#abd9bc}.dispatch-card>.btn{min-height:44px}.dispatch-card>h3{font-size:20px;line-height:1.8;font-weight:500}.dispatch-card>p{font-size:14px;color:var(--muted);line-height:1.9}.scene-controls{position:absolute;bottom:174px;right:36px;display:flex;align-items:center;gap:7px;color:#c0d3d1;font-size:12px}.scene-controls .icon-button{width:31px;height:31px;border:0;background:#10313d8a}.scene-controls>i{height:16px;width:1px;background:#b8ccc43b;margin:0 5px}.scene-controls>span{min-width:40px;text-align:center}.dock-region{position:absolute;bottom:55px;left:50%;transform:translateX(-50%);width:590px}.dock-heading{display:flex;align-items:center;gap:7px;color:#c7d4ce;font-size:12px;margin:0 0 13px 15px}.dock-dot{width:5px;height:5px;border-radius:50%;background:#97d7b9;box-shadow:0 0 10px #b5e5ad55}.dock-hint{margin-left:auto;color:#9bb5b9;margin-right:15px}.action-dock{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid #8dafab57;background:linear-gradient(180deg,#224953ec,#123340f2);box-shadow:inset 0 1px #e5e9c229,0 10px 40px #00162755;border-radius:17px;backdrop-filter:blur(15px)}.dock-item{display:flex;flex:1;align-items:center;gap:10px;justify-content:center;padding:13px 9px;background:transparent;border:1px solid transparent;border-radius:10px;min-width:0}.dock-item+.dock-item{border-left-color:#90aeaa25}.dock-item:hover,.dock-item.active{background:linear-gradient(130deg,#e8ca8533,#92a57917);border-color:#c2b68977}.dock-icon{display:flex;align-items:center;justify-content:center;position:relative;color:#d4cba6}.dock-icon svg{width:26px;height:26px;stroke-width:1.4}.dock-name{text-align:left;font-size:14px;white-space:nowrap}.dock-name small{display:block;font-size:12px;color:#98b1b4;margin-top:6px}.dock-badge{position:absolute;right:-7px;top:-10px;background:#d4b87c;color:#1b3538;border:1px solid #e4cb95;min-width:16px;height:16px;border-radius:9px;font-size:11px;font-weight:bold;text-align:center;padding:0 2px}.time-console{position:absolute;bottom:57px;right:35px;width:193px}.time-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;gap:12px}.day-caption{font-size:13px;color:#c8d8d3;white-space:nowrap;display:flex;align-items:center;gap:10px}.day-caption b{font:29px ui-monospace,Consolas,monospace;color:#f2ecd8}.time-playback{display:flex;gap:5px;align-items:center}.time-playback .icon-button{border:0;width:28px;height:29px;background:#33546080}.time-playback .icon-button svg{width:13px;height:13px}.time-playback .running{color:#f2ce8e}.speed{border:0;background:transparent;padding:5px;color:#c2d6d6;font:14px ui-monospace,Consolas,monospace}.end-day{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border:1px solid #f0d09c;border-radius:9px;background:linear-gradient(120deg,#f8dfa5,#e5b873);box-shadow:0 5px 23px #04182844,inset 0 1px #fff6;color:#293e3b;font-size:16px;font-weight:600}.end-day svg{width:17px;height:17px;fill:#4f634f33}.daily-fee{display:block;font-size:12px;text-align:center;color:#9cb5b9;margin-top:9px}.world-footer{position:absolute;bottom:16px;left:35px;right:35px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#91aeb8;font-size:12px}.world-footer #news{max-width:75%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.world-footer #save-status{white-space:nowrap;color:#97b9b3}
/* One shared action sheet keeps the world visible. */
dialog{position:fixed;top:111px;bottom:190px;left:auto;right:30px;margin:0;padding:25px;width:405px;max-width:calc(100vw - 40px);max-height:calc(100svh - 210px);color:var(--ink);border:1px solid #bacabd6e;border-radius:17px;background:linear-gradient(140deg,#173845f7,#0d2a38f5);box-shadow:0 18px 70px #001526a0,inset 0 1px #ffffff17;backdrop-filter:blur(30px);overflow:auto;z-index:40;scrollbar-width:thin;scrollbar-color:#748e86 #123440}dialog[open]{animation:sheetIn .25s ease-out}.sheet-open .dispatch-card,.sheet-open .weather-tag{opacity:0;pointer-events:none;transform:translateX(12px)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px}.modal-head .icon-button{background:none;border:0;width:30px;height:30px}.eyebrow{color:#ccb990;font-size:12px;letter-spacing:.12em}.modal-head h2{font-size:25px;font-weight:500;letter-spacing:.05em;line-height:1.4;margin:8px 0 0}.sheet-intro{font-size:14px;color:#bad0cf;margin:0 0 23px;line-height:1.8}.stock-meter{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:12px;color:#a9c4c8;margin-bottom:23px}.stock-meter>span{display:flex;align-items:center;gap:7px}.stock-meter svg{width:16px;height:16px}.stock-meter b{font-weight:400;margin-left:auto;color:#d7e2d6}.progress{width:100%;height:4px;background:#628d9336;border-radius:4px;overflow:hidden}.progress>i{height:100%;display:block;background:linear-gradient(90deg,#76bdaa,#bfe4c1);border-radius:4px;transition:width .4s}.progress.gold>i{background:linear-gradient(90deg,#bca66a,#f1d697)}.material-item{display:flex;align-items:center;gap:13px;padding:20px 0;border-top:1px solid var(--edge)}.material-grade{width:62px;height:68px;border:1px solid color-mix(in srgb,var(--grade-color) 45%,transparent);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;font:21px ui-monospace,Consolas,monospace;color:var(--grade-color);background:linear-gradient(135deg,#d2ebeb1a,transparent);box-shadow:inset 0 1px #fff1;flex-shrink:0}.material-grade small{font:9px system-ui;letter-spacing:.04em;margin-top:6px;color:#9ab4b8}.material-copy{flex:1}.material-copy h3{font-size:14px;font-weight:500;margin:0 0 8px}.material-copy>div{white-space:nowrap}.material-copy strong{font:17px ui-monospace,Consolas,monospace;color:#eadbb7}.material-copy small{font-size:12px;color:#a1b9bc}.material-copy p{font-size:12px;color:#9eb8bb;margin:7px 0 0}.price-change{font-size:12px;margin-left:10px}.up{color:#eab49a}.down{color:#9ad5bf}.round-action{width:31px;height:31px;background:#d9c79119;border:1px solid #d4c49969;border-radius:50%;color:#ebd6a9;font-size:23px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sheet-details{margin-top:22px;border-top:1px solid var(--edge);padding-top:18px}.sheet-details summary{font-size:13px;color:#c8d0bf;cursor:pointer;line-height:1.8}.sheet-details[open] summary{color:#efd39b}.sheet-footnote{color:#87a7af;font-size:12px;text-align:center;line-height:1.9;margin:24px 0 0}.finished-stock>p{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:#c0d4d0}.finished-stock b{font-weight:400}.button-row{display:flex;gap:8px;flex-wrap:wrap}.facility-card{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--edge)}.facility-picture{width:96px;min-height:106px;border-radius:9px;background-size:650%;background-position:51% 28%;position:relative;box-shadow:inset 0 0 0 1px #edf4db22;flex-shrink:0}.facility-picture-1{background-position:25% 37%}.facility-picture-2{background-position:80% 35%}.facility-picture>span{position:absolute;left:6px;bottom:6px;color:#f3dca9;font-size:12px;border:1px solid #d2c3926e;padding:4px 6px;border-radius:4px;background:#15393bea;backdrop-filter:blur(8px)}.facility-locked .facility-picture{filter:saturate(.45)}.facility-info{flex:1;min-width:0}.facility-title{display:flex;align-items:center;justify-content:space-between;gap:5px}.facility-title h3{font-size:14px;font-weight:500;margin:3px 0 0}.facility-status{font-size:12px;color:#94b1b3;white-space:nowrap}.facility-status.busy{color:#ead49e}.facility-info>p{font-size:12px;color:#aec4c4;margin:11px 0 15px}.facility-info .btn{padding:7px 10px;font-size:12px}.production-count{display:flex;justify-content:space-between;gap:5px;font-size:12px;color:#b7cfcc;margin:12px 0}.production-count b{font-weight:400;color:#ead5a6}.sheet-section-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#c7d8d0;margin:26px 0 12px;letter-spacing:.03em}.sheet-section-title>span{color:#c7b98f;font-size:12px}.contract-card{background:#315a651e;border:1px solid #9bbfbc38;border-radius:11px;padding:15px;margin:10px 0}.contract-heading{display:flex;align-items:center;gap:10px}.contract-heading .client-monogram{width:34px;height:34px;border-radius:8px;font-size:17px}.contract-heading h3{font-size:14px;font-weight:500;margin:0}.contract-heading p{font-size:12px;color:#adc3c3;margin:6px 0 0}.contract-due{margin-left:auto;font-size:12px;color:#b4c8b8;white-space:nowrap}.contract-due.urgent{color:#e6b191}.contract-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:17px;gap:10px}.contract-bottom>strong{font:19px ui-monospace,Consolas,monospace;color:#eed4a0}.contract-bottom .btn{font-size:12px;padding:8px 10px}.quiet-empty{font-size:14px;line-height:1.9;color:#9ab8be;padding:15px 0 8px}.legacy-heading{text-align:center;margin:22px 0}.legacy-heading>span{font-size:41px;color:#e7cb93;text-shadow:0 0 32px #f3d69946}.legacy-heading h3{font-size:20px;font-weight:500;margin:12px 0}.legacy-heading p{font-size:13px;color:#aec5c4}.growth-progress{padding:0 2px;margin:28px 0}.growth-progress>div{margin:17px 0}.growth-progress p{display:flex;justify-content:space-between;font-size:13px;color:#b1c8c8;margin:0 0 9px}.growth-progress b{font-weight:400;color:#e7d4a8}.upgrade-row{display:flex;align-items:center;gap:10px;padding:16px 0;border-top:1px solid var(--edge)}.upgrade-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#b2baa2}.upgrade-row>div{flex:1}.upgrade-row h3{font-size:14px;font-weight:500;margin:0}.upgrade-row p{font-size:12px;color:#99b5ba;margin:7px 0 0}.upgrade-row .btn{padding:7px 9px;font-size:12px;white-space:nowrap}.journal-list p{font-size:13px;color:#aec6c7;line-height:1.9;border-bottom:1px solid var(--edge);padding:11px 0;margin:0}.journal-list p>span{font:12px ui-monospace,Consolas,monospace;color:#d2bf8c;margin-right:9px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #9bb6ab60;background:#46605c42;color:#e2eadd;padding:11px 15px;border-radius:7px;font-size:14px;min-height:38px}.btn svg{width:17px;height:17px}.btn-primary{background:linear-gradient(125deg,#f4dc9f,#dfb777);border-color:#edcd94;color:#263e3c;box-shadow:inset 0 1px #fff4,0 4px 13px #071a252e;font-weight:500}.btn-teal{background:linear-gradient(125deg,#72b5a1,#8accb3);color:#193c36;border-color:#b1dcbf}.btn-danger{background:#5b3c35;border-color:#ae8070;color:#f5ddd0}.btn-full{width:100%}.btn-small{font-size:13px;padding:8px 12px;min-height:32px}.subtle-link{border:0;background:none;color:#d3c294;padding:4px 0;font-size:13px}.gold-text{color:var(--gold)}.modal-note{font-size:14px;color:#b2c9cc;line-height:1.95;margin:13px 0}.field{margin:21px 0}.field label{font-size:14px;color:#d2e0d9;display:block;margin-bottom:10px}.field input,.field select{background:#0a2836b3;border:1px solid #86b1b075;border-radius:8px;padding:12px 13px;min-height:46px;width:100%;font-size:16px;color:#eaf1e8}.field small{font-size:12px;color:#94b3bb;line-height:1.8;display:block;margin-top:9px}.range-label{display:flex;justify-content:space-between;gap:10px}.quote{border:1px solid #90b2a747;padding:18px;border-radius:10px;background:linear-gradient(135deg,#415b501f,#103343a3);margin:22px 0}.quote-total{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;color:#c2d1c6}.quote-total b{font:24px ui-monospace,Consolas,monospace;color:#f1d89f}.quote p{font-size:13px;line-height:1.95;color:#aec7ca;margin:12px 0 0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.modal-actions>.btn{flex:1}.inline-warning{background:#65503145;border:1px solid #bda47c7d;border-radius:9px;padding:14px;font-size:13px;line-height:1.9;color:#ead3a3}.help-step{display:flex;gap:13px;margin:24px 0}.step-num{width:30px;min-width:30px;height:30px;border:1px solid #caba8566;display:flex;align-items:center;justify-content:center;color:#e6cb90;border-radius:7px;font:13px ui-monospace,Consolas,monospace;background:#bbae7b0f}.help-step h3{font-size:15px;font-weight:500;margin:2px 0 8px}.help-step p{font-size:13px;line-height:1.9;color:#a9c2c6;margin:0}.settings-row{padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--edge)}.settings-row>div{font-size:14px}.settings-row small{font-size:12px;line-height:1.85;color:#9cbac0;display:block;margin-top:8px}.settings-row .btn{white-space:nowrap}.stat-row{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--edge);font-size:14px;color:#bed0ca}.stat-row strong{font-weight:400;color:#eedcba}.stat-row:last-child{border:0}.result-symbol{text-align:center;color:#efd49a;font-size:48px;margin:25px 0 16px}.result-heading{font-size:23px;text-align:center;font-weight:500;line-height:1.6}.result-copy{font-size:14px;line-height:1.9;text-align:center;color:#b5cacb}.toast-stack{position:fixed;bottom:192px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:80;max-width:calc(100vw - 40px);pointer-events:none}.toast{background:linear-gradient(120deg,#284f4aef,#17403eea);border:1px solid #b8d1aa89;box-shadow:0 10px 35px #051a2b66;backdrop-filter:blur(18px);border-radius:9px;padding:14px 21px;font-size:14px;color:#e3edda;line-height:1.8;animation:toastIn .25s}.toast.error{background:#4a3d31ee;border-color:#c2a17c;color:#f1d9bd}.reward-float{position:absolute;left:52%;top:45%;display:flex;align-items:center;gap:10px;padding:13px 20px;border:1px solid #f0d79caf;border-radius:8px;background:#284c42df;color:#f9eac1;font-size:15px;box-shadow:0 8px 30px #06251a80;pointer-events:none;animation:rewardRise 2.8s ease-out forwards;z-index:15}.day-transition .world-scene{animation:newDay 1.3s ease-out}
@keyframes sheetIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes productionGlow{50%{opacity:.35}}@keyframes rewardRise{0%{opacity:0;transform:translate(-50%,10px)}15%,65%{opacity:1}100%{opacity:0;transform:translate(-50%,-75px)}}@keyframes newDay{0%{filter:brightness(.8)}35%{filter:brightness(1.13)}100%{filter:brightness(1)}}
@media(min-width:1650px){.game-header{left:44px;right:44px;top:30px}.place-caption{left:57px;top:165px}.place-caption h2{font-size:58px}.quest-card{left:49px;width:306px;bottom:231px;padding:26px}.quest-card h3{font-size:22px}.dispatch-card{right:49px;top:225px;width:307px;padding:25px}.time-console{right:49px;width:218px}.scene-controls{right:49px}.resource{padding:0 31px}.dock-region{width:640px}.action-dock{padding:12px}.dock-item{padding:15px 12px}.world-footer{left:49px;right:49px}}
@media(max-width:1250px){.game-header{left:24px;right:24px;gap:14px}.brand{gap:10px}.brand h1{font-size:21px}.brand-emblem{width:43px;height:43px}.resource{padding:0 17px;gap:8px}.resource b{font-size:18px}.resource-bar{left:52%}.place-caption{left:30px;top:133px}.place-caption h2{font-size:40px}.quest-card{left:24px;width:254px;padding:19px;bottom:223px}.quest-card h3{font-size:18px}.dispatch-card{right:24px;width:261px;padding:18px;top:189px}.client-heading{gap:8px}.contract-seal{padding:3px 4px}.dock-region{width:510px;left:48%;bottom:54px}.dock-item{gap:8px;padding:12px 5px}.dock-name{font-size:13px}.dock-name small{font-size:12px}.dock-icon svg{width:23px;height:23px}.time-console{right:25px;width:166px}.scene-controls{right:25px}.weather-tag{right:29px;top:116px}.time-playback{gap:0}.day-caption{gap:6px}.daily-fee{font-size:12px}.world-footer{left:26px;right:26px}dialog{right:23px;width:387px}.marker-label{font-size:13px}.marker-label small{font-size:12px}.marker-symbol{width:41px}.building-marker{gap:8px;padding-right:12px}.building-marker:after{left:20px}.building-marker:before{left:16px}}
@media(max-width:1020px){.resource-bar{left:51%;padding:9px 5px}.resource{padding:0 12px;gap:8px}.resource small{font-size:12px}.resource b{font-size:17px}.resource svg{width:19px;height:19px}.game-tools{gap:4px}.game-tools .icon-button{width:32px;height:34px}.brand h1{font-size:19px}.brand-sub{letter-spacing:.23em}.brand-emblem{width:39px;height:39px;font-size:16px}.place-caption h2{font-size:35px}.place-caption{top:133px}.place-caption p{font-size:12px}.quest-card{width:218px;padding:17px}.quest-card h3{font-size:17px}.quest-card p{font-size:12px}.dispatch-card{width:231px;padding:16px}.dispatch-card .client-monogram{display:none}.client-heading h3{font-size:15px}.dispatch-payment strong{font-size:27px}.dock-region{width:480px;left:24px;transform:none}.time-console{right:24px;width:169px}.dock-item{padding:11px 3px;gap:7px}.dock-name{font-size:13px}.dock-name small{font-size:12px}.scene-controls{bottom:181px}.pin-expansion{left:34%;top:38%}.pin-materials{left:37%;top:68%}.marker-label small{display:none}.building-marker{min-height:41px}.marker-symbol{width:35px}.marker-symbol svg{width:19px;height:19px}.pin-shipping{left:75%;top:69%}}
@media(max-height:780px) and (min-width:761px){.game-shell{min-height:650px}.place-caption{top:118px}.place-caption h2{font-size:38px;margin:13px 0 9px}.place-caption h2 br{display:none}.place-caption p{display:none}.quest-card{bottom:209px;padding:18px 20px}.quest-card h3{font-size:18px;line-height:1.6;margin:11px 0 8px}.quest-card>p{line-height:1.8;margin-bottom:14px}.dispatch-card{top:156px;padding:17px}.client-heading{margin-top:14px}.dispatch-brief{padding:10px 0;margin:13px 0}.dispatch-payment strong{font-size:25px;margin:6px 0 12px}.delivery-countdown{margin-bottom:12px}.dock-region{bottom:46px}.time-console{bottom:45px}.scene-controls{bottom:163px}.weather-tag{top:106px}.world-footer{bottom:10px}dialog{top:106px;bottom:174px;max-height:calc(100svh - 200px)}}
@media(max-width:760px){.game-shell{height:100svh;min-height:840px}.game-header{left:18px;right:18px;top:19px;align-items:flex-start}.brand{gap:10px}.brand h1{font-size:21px}.brand-sub{font-size:12px;letter-spacing:.27em}.brand-emblem{width:42px;height:42px}.game-tools{gap:6px;margin-top:4px}.game-tools .icon-button{width:32px;height:32px}.resource-bar{top:66px;left:0;right:0;transform:none;padding:10px 4px;justify-content:center;border-radius:10px;background:#153643e0}.resource{flex:1;padding:0 10px;gap:8px;justify-content:center}.resource b{font-size:16px}.resource svg{width:19px;height:19px}.resource small{font-size:12px}.resource em{font-size:12px}.place-caption{left:23px;top:165px}.place-overline{font-size:12px}.place-caption h2{font-size:29px;margin:9px 0 0;line-height:1.3}.place-caption h2 br{display:none}.place-caption p{display:none}.weather-tag{top:163px;right:23px;gap:6px}.weather-tag svg{width:23px;height:23px}.weather-tag span{font-size:12px}.weather-tag small{display:none}.world-scene{width:calc(100vw + 80px);height:auto;aspect-ratio:1.5;top:245px;transform:translate(-50%,0) scale(var(--zoom,1));transform-origin:center;min-height:0}.world-vignette{background:linear-gradient(180deg,#0b293eda 0%,#0c2b3c77 23%,transparent 42%,#08283900 57%,#092c41c9 68%,#08283c 89%),linear-gradient(90deg,#082d3622,transparent 60%)}.pin-processing{left:54%;top:37%}.pin-materials{left:27%;top:70%}.pin-shipping{left:76%;top:58%}.pin-expansion{left:26%;top:37%}.building-marker{min-height:33px;padding-right:9px;gap:6px;border-radius:7px}.marker-symbol{width:29px;border-radius:6px 0 0 6px;font-size:20px}.marker-symbol svg{width:16px;height:16px}.marker-label{font-size:12px;padding:8px 0}.marker-label small{display:none}.building-marker:after{height:16px;left:15px}.building-marker:before{width:6px;height:6px;left:12px;top:calc(100% + 12px)}.quest-card{left:19px;right:19px;bottom:218px;width:auto;padding:15px 17px 12px;border-radius:11px;background:linear-gradient(125deg,#193d4bd9,#244950bc)}.quest-eyebrow{font-size:12px}.quest-star{font-size:16px}.quest-card h3{font-size:17px;margin:8px 0 6px;line-height:1.5}.quest-card>p{font-size:12px;line-height:1.75;margin:0 36px 0 0}.quest-bottom{position:absolute;right:15px;bottom:17px}.quest-steps{display:none}.quest-more{width:27px;height:27px}.dispatch-card{display:none}.dock-region{left:19px;right:19px;bottom:116px;width:auto;transform:none}.dock-heading{font-size:12px;margin:0 7px 9px}.dock-hint{display:none}.action-dock{padding:5px;border-radius:12px;gap:3px}.dock-item{flex-direction:column;gap:7px;padding:10px 3px}.dock-name{font-size:12px;text-align:center}.dock-name small{display:none}.dock-icon svg{width:23px;height:23px}.dock-badge{font-size:11px;top:-5px;right:-9px}.time-console{left:20px;right:20px;bottom:46px;display:flex;align-items:center;justify-content:space-between;width:auto;gap:12px}.time-top{margin:0;gap:12px;flex:1}.time-playback{gap:4px}.day-caption{font-size:12px;gap:7px}.day-caption b{font-size:25px}.end-day{width:145px;padding:12px 17px;font-size:14px;border-radius:8px}.daily-fee{display:none}.scene-controls{right:19px;top:215px;bottom:auto;gap:4px}.scene-controls .icon-button{width:28px;height:27px;font-size:18px}.scene-controls span{font-size:12px;min-width:37px}.scene-controls i{display:none}.scene-controls button:last-child{display:none}.world-footer{bottom:15px;left:20px;right:20px;font-size:12px;gap:10px}.world-footer #news{display:none}.world-footer #save-status{margin-left:auto}.sheet-open .quest-card{visibility:hidden}.sheet-open .weather-tag{opacity:1;transform:none}dialog{left:12px;right:12px;top:231px;bottom:217px;width:auto;max-width:none;max-height:calc(100svh - 265px);margin:0;padding:21px;border-radius:14px;background:linear-gradient(130deg,#173c4cfb,#102f40fc);backdrop-filter:blur(25px)}.modal-head h2{font-size:23px}.modal-head{margin-bottom:15px}.toast-stack{bottom:220px;width:max-content;max-width:calc(100vw - 28px)}.toast{font-size:13px;padding:12px 17px}.reward-float{left:50%;top:46%;font-size:13px;white-space:nowrap}.material-item{gap:11px}.material-grade{width:55px;height:62px;font-size:19px}.material-copy strong{font-size:16px}.material-copy h3{font-size:14px}.price-change{margin-left:7px}.facility-picture{width:83px}.facility-card{gap:13px}.contract-heading{gap:8px}.contract-due{font-size:12px}.contract-bottom strong{font-size:19px}.contract-bottom .btn{font-size:12px;padding:8px}.sheet-intro{font-size:14px}.legacy-heading{margin:15px 0}.growth-progress{margin:22px 0}}
@media(max-width:370px){.resource{gap:6px;padding:0 7px}.resource b{font-size:15px}.resource svg{width:17px;height:17px}.resource small{font-size:12px}.game-tools{gap:4px}.brand h1{font-size:19px}.game-tools .icon-button{width:30px}.place-caption h2{font-size:27px}.time-playback{gap:0}.time-top{gap:7px}.end-day{width:136px}.facility-title{flex-wrap:wrap}.material-copy h3{font-size:13px}.price-change{display:none}.contract-heading .client-monogram{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-height:600px){dialog{top:20px;bottom:20px;max-height:calc(100svh - 40px)}}

.world-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;user-select:none;pointer-events:none}.facility-picture{overflow:hidden}.facility-picture img{position:absolute;width:650%;height:auto;max-width:none;left:-280%;top:-82%;pointer-events:none}.facility-picture-1 img{left:-137.5%;top:-108%}.facility-picture-2 img{left:-440%;top:-102%}.facility-picture>span{z-index:1}

.operations-status{position:absolute;top:104px;left:50%;transform:translateX(-50%);display:flex;gap:0;align-items:center;background:#163b478f;border:1px solid #c0d1bf32;border-radius:20px;padding:5px 9px;backdrop-filter:blur(15px);font-size:12px;color:#d6e1d3}.operations-status button,.operations-status>span{display:flex;gap:6px;align-items:center;padding:4px 11px;white-space:nowrap;border:0;background:none;color:inherit;font-size:12px}.operations-status>span{border-left:1px solid #c2d7c536;border-right:1px solid #c2d7c536}.operations-status svg{width:14px;height:14px}.operations-status .ops-warning,.incident-alert{color:#f3bb91}.incident-open dialog{width:565px;right:50%;transform:translateX(50%);top:132px;bottom:auto;max-height:calc(100svh - 172px);background:linear-gradient(135deg,#203e4cfa,#123342fa);border-color:#d7ba807d;box-shadow:0 30px 100px #001426c9;animation:none}.incident-person{display:flex;gap:12px;align-items:center;margin:23px 0 17px}.incident-person>span{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(120deg,#5e6a5a,#2e5054);border:1px solid #d2c79c7c;color:#ecddb4;font-size:21px}.incident-person b{font-size:14px;font-weight:500}.incident-person small{display:block;font-size:12px;color:#b5c8c7;margin-top:6px}.incident-category{font-style:normal;font-size:12px;color:#edcfa0;border:1px solid #c7b08477;padding:4px 7px;border-radius:5px;margin-left:auto}.incident-story{font-size:16px;color:#d4e0d8;line-height:1.95;margin:20px 0}.incident-choices{display:flex;flex-direction:column;gap:11px}.incident-choice{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid #8cab9c70;background:linear-gradient(110deg,#7294821c,#16394355);border-radius:10px;text-align:left;width:100%}.incident-choice:hover:not(:disabled){background:#69806b40;border-color:#dec796}.choice-number{display:grid;place-items:center;width:28px;height:28px;border:1px solid #c8b78b6b;border-radius:6px;color:#e6cb92;font:14px ui-monospace,Consolas,monospace;flex-shrink:0}.incident-choice>span:nth-child(2){flex:1}.incident-choice b{font-size:15px;font-weight:500;display:block}.incident-choice small{display:block;font-size:13px;line-height:1.75;color:#b5cecc;margin-top:7px}.incident-choice em{display:block;font-size:12px;color:#edb18e;font-style:normal;margin-top:7px}.incident-choice>strong{font:13px ui-monospace,Consolas,monospace;color:#e7cb94;white-space:nowrap;font-weight:400}.incident-footer{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-top:19px;font-size:12px;color:#a8c1c5}.incident-footer button{font-size:12px}.outcome-mark{font-size:48px;color:#c1db9d;text-align:center;margin:26px 0 12px}.outcome-copy{text-align:center}.outcome-copy>span{font-size:13px;color:#adc5c3}.outcome-copy h3{font-size:23px;font-weight:500;color:#f0d6a5}.outcome-copy p{font-size:15px;line-height:2;color:#c2d7d3}.outcome-footer{font-size:12px;color:#97b4bb;margin:27px 0;text-align:center;line-height:1.8}.team-status{display:flex;justify-content:space-between;font-size:14px;gap:9px;color:#c6d7cf}.team-status b{color:#ebd4a5;font-weight:400}.team-status small{font-size:12px;color:#a6c3c0}.mode-picker{display:flex;gap:8px;margin-top:18px}.mode-picker button{flex:1;border:1px solid #a3b8a34a;border-radius:8px;background:#34575138;padding:10px 8px;font-size:14px}.mode-picker small{font-size:12px;color:#a5c0c0;display:block;margin-top:6px}.mode-picker .active{border-color:#d5bd83;background:#83774a30;color:#f0d294}.wear-meter{font-size:12px;color:#aec4bf;margin-top:14px}.wear-meter button{float:right;border:0;background:none;font-size:12px;color:#e7c791;padding:0}.wear-meter .progress{clear:both;margin-top:9px;height:3px}.progress.danger>i{background:#e1a587}.resilience-card{border:1px solid #a6b99448;background:#5e6f411c;border-radius:9px;padding:16px;margin:12px 0 23px}.resilience-card b{font-size:15px;font-weight:500;color:#e5cea0}.resilience-card p{font-size:13px;color:#c5d3bd;line-height:1.8}.resilience-card small{font-size:12px;color:#a7bdb9;line-height:1.8}.decision-history{padding:16px 0;border-bottom:1px solid var(--edge)}.decision-history span{font-size:12px;color:#b6c6b8}.decision-history b{font-size:14px;display:block;font-weight:500;margin-top:9px;color:#e5cb96}.decision-history p{font-size:13px;color:#aac7c5;line-height:1.8}.finance-hero{padding:22px 0 20px;text-align:center}.finance-hero small{font-size:13px;color:#b7cecb;display:block}.finance-hero>b{font:32px ui-monospace,Consolas,monospace;color:#f2d69d;display:block;margin:12px 0}.finance-hero>span{font-size:13px;color:#b1c7c5}.finance-strip{display:flex;gap:10px;background:#728c7018;border:1px solid #b8c59341;border-radius:9px;padding:15px}.finance-strip>span{flex:1;color:#a8c1c1;font-size:12px}.finance-strip b{display:block;color:#e6d6ac;font:18px ui-monospace,Consolas,monospace;margin-top:7px}.settlement-list{margin-top:23px;padding-top:10px;border-top:1px solid var(--edge)}.settlement-list p{font-size:13px;display:flex;justify-content:space-between;gap:12px;color:#a9c0c0}.settlement-list b{font-weight:400;color:#e0d2a6}.restructure-box{margin-top:22px;border:1px solid #b89a6f73;background:#64482925;border-radius:8px;padding:15px}.restructure-box b{font-size:14px;color:#e1c39b}.restructure-box p{font-size:13px;color:#c2beb0;line-height:1.9}.storm-active .world-art{filter:brightness(.67) saturate(.65)}.storm-active .world-vignette{background:linear-gradient(180deg,#16374c94,#18476722 60%,#041e35ed)}.low-cash .cash-resource b{color:#f2b59b}
@media(max-width:760px){.operations-status{top:211px;left:23px;right:23px;transform:none;justify-content:center;font-size:12px;border-radius:8px;padding:4px}.operations-status button,.operations-status>span{padding:4px 10px;font-size:12px}.scene-controls{display:none}.incident-open dialog{left:12px;right:12px;width:auto;transform:none;top:153px;bottom:24px;max-height:calc(100svh - 174px);padding:20px}.incident-story{font-size:14px;line-height:1.9}.incident-choice{padding:13px 11px;gap:9px}.incident-choice b{font-size:14px}.incident-choice small{font-size:12px}.incident-choice>strong{font-size:12px}.choice-number{width:24px;height:25px;font-size:12px}.incident-person>span{width:37px;height:37px}.incident-person b{font-size:13px}.incident-category{font-size:12px}.incident-footer{display:block;line-height:1.8}.incident-footer button{display:block;margin-top:7px}.team-status{font-size:13px}.finance-hero>b{font-size:28px}}
@media(max-height:600px){.incident-open dialog{top:20px;bottom:20px;max-height:calc(100svh - 40px)}}

.deal-label{display:inline-block;padding:4px 8px;background:#accfbc16;color:#accfbc;border-radius:5px;font-size:11px;margin:9px 0}.deal-label.urgent{background:#e5b07616;color:#e5b076}.deal-label.credit{color:#a9bce3;background:#a9bce316}.deal-facts{display:flex;justify-content:space-between;font-size:12px;color:#a6c0c6;gap:12px}.deal-facts b{color:#e8d6a7;margin-left:4px}.deal-facts .loss,.deal-risk{color:#ecb098}.deal-risk,.payment-terms{font-size:11px;line-height:1.7;margin:9px 0}.payment-terms{color:#a6c0c6}.contract-bottom strong small{display:block;font-size:9px;font-weight:400;color:#91a8b1;margin-top:3px}.dispatch-strategy{font-size:13px;line-height:1.9;color:#b7cbd1;margin:22px 0}.dispatch-choice-tags{display:flex;gap:6px;margin:18px 0 24px;flex-wrap:wrap}.dispatch-choice-tags span{font-size:10px;padding:6px;border:1px solid #a7c3c52b;border-radius:5px;color:#ddcfae}.offer-review-title h3{font-size:22px;margin:12px 0}.offer-review-title p{font-size:13px;color:#b8cbd1}.campaign-heading>span{font-size:11px;color:#debf80}.campaign-heading h3{font-family:Georgia,'SimSun',serif;font-size:25px;line-height:1.5;margin:20px 0 12px}.campaign-heading p{font-size:13px;line-height:1.9;color:#afc7ce}.campaign-goals{margin:24px 0}.campaign-goals>div{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid #9fbdc324;gap:8px;font-size:12px}.campaign-goals b{margin-left:auto;font-size:13px;color:#e4cd9d}.goal-check{color:#8b9fa3;font-size:17px}.goal-check.met{color:#91ceb4}.campaign-mini-progress{display:flex;gap:5px;margin:17px 0}.campaign-mini-progress i{height:4px;background:#aac5c524;flex:1;border-radius:5px}.campaign-mini-progress .met{background:#91ceb4}.contract-card{padding-top:17px;padding-bottom:18px}.contract-bottom{margin-top:12px}

/* The game UI sits above a full, interactive WebGL viewport. */
.world-3d{position:absolute;inset:0;z-index:-2;touch-action:none;overflow:hidden;background:#123c49}
.world-3d canvas{display:block;width:100%;height:100%;touch-action:none;outline:none;cursor:grab}
.world-3d canvas:active{cursor:grabbing}.world-3d canvas:focus-visible{outline:2px solid #f0d69b;outline-offset:-3px}
.world-3d-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}
.scene-label{position:absolute;left:0;top:0;padding:7px 11px;pointer-events:auto;border:1px solid #94b6b75e;border-radius:6px;background:#123543e8;color:#e7ece0;font-size:12px;white-space:nowrap;box-shadow:0 6px 20px #00151f33;transition:opacity .15s;backdrop-filter:blur(8px)}
.scene-label::after{content:'';position:absolute;width:1px;height:14px;background:#cad7b77a;top:100%;left:50%}.scene-label small{display:block;font-size:11px;color:#9ec1c0;margin-top:3px}.scene-label.working{border-color:#e5c474;color:#f7df9d}.scene-label.locked{border-style:dashed;color:#a4b9b8}.scene-label:hover{border-color:#ffe7a7;background:#245262}
.world-loading{position:absolute;inset:0;display:flex;flex-direction:column;gap:15px;align-items:center;justify-content:center;background:#123945;z-index:4;pointer-events:none;color:#d9cfb0;font-size:14px;transition:opacity .3s}.world-loading::before{content:'';width:36px;height:36px;border:2px solid #c7d4b12b;border-top-color:#eccf90;border-radius:50%;animation:worldLoading 1s linear infinite}.world-loading[hidden]{display:none}@keyframes worldLoading{to{transform:rotate(360deg)}}
.world-ready .world-scene{visibility:hidden}.world-ready .world-vignette{z-index:-1;background:linear-gradient(180deg,#0523309c,transparent 22%,transparent 70%,#052330b3);pointer-events:none}.world-ready .game-shell{background:#163b49}
.world-ready .place-caption{top:138px;left:32px;pointer-events:none}.world-ready .place-caption h2{font-size:30px;margin:10px 0}.world-ready .place-caption h2 br{display:none}.world-ready .place-caption p{display:none}.world-ready .place-overline{font-size:12px}
.world-ready .quest-card{bottom:204px;padding:18px;width:245px;left:26px;background:#123744e8}.world-ready .quest-card h3{font-size:18px;margin:12px 0}.world-ready .quest-card p{font-size:12px;line-height:1.75}.world-ready .quest-card .btn{font-size:12px;padding:9px;min-height:33px}.world-ready .dispatch-card{top:205px;width:253px;right:26px;padding:18px;background:#123744e8}.world-ready .dispatch-strategy{font-size:12px;line-height:1.75;margin:14px 0}.world-ready .dispatch-choice-tags{margin:12px 0 18px}.world-ready .client-heading h3{font-size:16px}.world-ready .dispatch-card .btn{font-size:13px}
.scene-help{position:absolute;top:194px;left:32px;color:#b8d0ce;font-size:12px;pointer-events:none;z-index:9;line-height:1.8}.scene-help b{font-weight:400;display:inline-block;color:#e8d7ad;border:1px solid #b2c8bc44;background:#163b48ab;border-radius:4px;font-size:10px;letter-spacing:.1em;padding:2px 6px;margin-right:8px}.scene-control-row{display:flex;gap:5px;align-items:center}.scene-controls-3d{position:absolute;right:26px;bottom:188px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:10}.scene-controls-3d button{background:#173c49e8;border:1px solid #a6c0bc55;color:#d7dfcd;border-radius:6px;min-width:32px;height:32px;padding:0 9px;font-size:12px}.scene-controls-3d button.active{border-color:#d5be85;color:#f1daa3;background:#526253}.scene-controls-3d .rotate-control{font-size:19px;min-width:34px}.scene-controls-3d .camera-reset{font-size:12px}.scene-controls-3d .detail-toggle{min-width:66px}.world-ready .scene-controls{display:none}.scene-tooltip{position:absolute;pointer-events:none;border:1px solid #dac48f88;background:#173d49f5;padding:9px 12px;border-radius:6px;z-index:6;font-size:12px;color:#eddbb3;max-width:220px}.scene-tooltip[hidden]{display:none}
.scene-focus .place-caption,.scene-focus .quest-card,.scene-focus .dispatch-card,.scene-focus .scene-help{opacity:0;pointer-events:none}.scene-focus .scene-controls-3d{bottom:188px}.world-failed .world-3d{display:none}.world-failed .scene-help{max-width:330px;color:#e9c890;background:#183b48e8;padding:10px 14px;border-radius:7px}.world-failed .scene-controls-3d{display:none}.world-3d canvas[data-picking="true"]{cursor:pointer}
@media(min-width:1650px){.world-ready .place-caption,.scene-help{left:48px}.world-ready .quest-card{left:42px;width:265px;bottom:225px}.world-ready .dispatch-card{right:42px;width:275px}.scene-controls-3d{right:48px}}
@media(max-width:1100px){.world-ready .dispatch-card{display:none}.world-ready .place-caption h2{font-size:25px}.world-ready .quest-card{width:220px;padding:15px}.scene-help{top:187px;max-width:220px}.scene-controls-3d{right:24px}}
@media(max-height:780px) and (min-width:761px){.world-ready .place-caption{top:116px}.world-ready .place-caption h2{font-size:24px}.scene-help{top:170px}.world-ready .quest-card{bottom:197px;padding:13px 16px;width:229px}.world-ready .quest-card h3{font-size:17px;margin:8px 0}.world-ready .quest-card .campaign-mini-progress{margin:11px 0}.world-ready .dispatch-card{top:170px}.scene-controls-3d{bottom:177px}}
@media(max-width:760px){.world-ready .game-shell{height:100svh;min-height:660px}.world-3d{inset:145px 0 155px}.world-ready .world-vignette{background:linear-gradient(180deg,#0e2e40 0%,#103444 18%,transparent 29%,transparent 63%,#0e304399 78%,#0c2d40 98%)}.world-ready .place-caption{top:153px;left:19px}.world-ready .place-caption h2{font-size:21px;margin:6px 0}.world-ready .place-overline{display:none}.world-ready .weather-tag{display:none}.scene-help{left:20px;top:188px;font-size:11px;max-width:none}.scene-help b{font-size:9px}.world-ready .quest-card{width:auto;bottom:211px;left:18px;right:18px;padding:11px 14px;background:#153b47dc;pointer-events:auto}.world-ready .quest-card h3{font-size:15px;margin:6px 0}.world-ready .quest-card p,.world-ready .quest-card .campaign-mini-progress{display:none}.world-ready .quest-card>.btn{position:absolute;right:12px;top:24px;width:auto;padding:6px 10px;font-size:11px}.world-ready .quest-eyebrow{font-size:11px}.scene-controls-3d{top:219px;right:15px;bottom:auto;gap:6px}.scene-controls-3d button{font-size:10px;min-width:28px;height:28px;padding:0 6px}.scene-controls-3d .rotate-control{font-size:17px;min-width:28px}.scene-controls-3d .camera-reset{font-size:10px}.scene-label{font-size:11px;padding:5px 7px}.scene-label small{display:none}.world-ready .operations-status{top:127px}.scene-focus .scene-controls-3d{bottom:auto}.world-ready .dock-region{bottom:116px}.world-ready .time-console{bottom:46px}.scene-tooltip{display:none}.world-ready dialog{top:180px;bottom:217px;max-height:calc(100svh - 230px)}}
@media(prefers-reduced-motion:reduce){.world-loading::before{animation:none}}

.market-ticker{position:absolute;top:145px;left:50%;transform:translateX(-50%);width:374px;z-index:10}.market-ticker>button{width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:14px;border:1px solid #adc1af4d;border-radius:9px;background:#163b48e3;padding:10px 13px;text-align:left;backdrop-filter:blur(10px);color:#c6d9d1;font-size:11px}.market-ticker b{color:#efd8a6;font:14px ui-monospace,monospace;margin-left:6px}.ticker-title{color:#91b4b6}.market-ticker small{display:block;width:100%;font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#b1cac7}.weather-live{background:none;border:0;text-align:left;color:#ebdab6;cursor:pointer;padding:0}.weather-live>span{display:block;font-size:15px}.weather-live small{display:block;font-size:11px;color:#b7c9c7;margin-top:6px}.market-news-card{display:block;width:100%;border:1px solid #b8c3a75c;background:#89956815;text-align:left;border-radius:9px;padding:15px;margin:0 0 20px;color:#dbe2ce}.market-news-card>span{font-size:11px;color:#acc4b7}.market-news-card b{font-size:15px;line-height:1.7;display:block;margin:8px 0}.market-news-card small{font-size:12px;color:#d7c391}.market-report-intro>span{color:#9cbbbe;font-size:12px}.market-report-intro h3{font-size:21px;line-height:1.6;margin:15px 0 10px}.market-report-intro>b{display:inline-block;background:#b698591c;border:1px solid #bda56b55;border-radius:4px;padding:4px 8px;font-size:12px;color:#edd29b}.market-report-intro p{font-size:14px;line-height:1.95;color:#b8cfc9}.grade-tabs{display:flex;gap:9px;margin:22px 0 15px}.grade-tabs button{flex:1;padding:9px;background:#34564d35;border:1px solid #a4b7a94d;border-radius:6px;font:14px ui-monospace,monospace;color:#b8ccc8}.grade-tabs button.active{border-color:#e6c589;color:#f0dba8;background:#a48d4929}.market-price{display:flex;align-items:center;justify-content:space-between;margin:15px 0}.market-price>b{font:27px ui-monospace,monospace;color:#ecd6a7}.market-price small{font-size:12px;color:#b0c4c4;margin-left:7px}.market-price>span{font-size:14px}.market-chart{width:100%;height:auto;display:block;margin-top:18px}.market-chart-empty{padding:20px 0;font-size:12px;color:#9cb8b8}.price-causes p{display:flex;justify-content:space-between;border-bottom:1px solid #b4c7b522;padding:10px 0;margin:0;font-size:13px;color:#b7ceca}.price-causes b{font-weight:400}.market-drivers{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:24px 0}.market-drivers>div{border:1px solid #a6c0b72b;padding:11px 8px;border-radius:7px;text-align:center}.market-drivers span{display:block;font-size:12px;color:#adc8c5}.market-drivers b{display:block;font:20px ui-monospace,monospace;color:#e0d5b0;margin:8px 0}.market-drivers small{font-size:10px;color:#88a8ae}.weather-report{margin:20px 0}.weather-report>span{font-size:12px;color:#b7c9bd}.weather-report h3{font:38px 'Microsoft YaHei',sans-serif;color:#ebd3a1;margin:15px 0}.weather-report p{font-size:15px;line-height:1.85;color:#c0d3cb}.weather-report small{font-size:13px;line-height:1.9;color:#a8c2c2}.forecast-effects{display:flex;justify-content:space-between;border:1px solid #9fbcab44;padding:15px;border-radius:8px}.forecast-effects>span{font-size:12px;color:#a8c3bf}.forecast-effects b{display:block;font-size:21px;color:#e9d7a8;margin-top:10px}.weather-plans{display:flex;flex-direction:column;gap:11px;margin:20px 0}.weather-plans button{text-align:left;border:1px solid #b4c2aa55;border-radius:8px;background:#7082671c;padding:15px;color:#e3d9b9}.weather-plans b{display:block;font-size:14px;font-weight:500}.weather-plans small{display:block;color:#abc6c2;font-size:12px;line-height:1.8;margin-top:9px}.staff-roster{border:1px solid #b8bd9466;border-radius:8px;padding:14px;margin:0 0 23px;background:#74866a14}.staff-roster>span{font-size:11px;color:#aec4b5}.staff-roster>b{display:block;font-size:14px;color:#e7d4a9;margin:8px 0;line-height:1.7}.staff-roster>small{display:block;font-size:12px;color:#a7c0bc}.staff-roster>.subtle-link{margin-top:9px;font-size:12px}.shipment-card{padding:16px;border:1px solid #b3c5b14f;border-radius:9px;margin-bottom:11px;background:#596d551c}.shipment-card>b{font-size:14px;color:#e2d4a7}.shipment-card p,.shipment-card span{font-size:12px;line-height:1.8;color:#bfd1c8}.shipment-card small{display:block;font-size:12px;line-height:1.8;color:#cbb899;margin-top:8px}
@media(max-width:1100px){.market-ticker{left:auto;right:25px;transform:none;top:145px;width:340px}.world-ready .weather-tag{top:105px;right:27px}.market-ticker>button{gap:10px}}
@media(max-width:760px){.market-ticker{left:18px;right:18px;top:auto;bottom:296px;width:auto;transform:none}.market-ticker>button{padding:8px 10px;font-size:10px;gap:12px;background:#173b46df}.market-ticker b{font-size:12px}.market-ticker small{display:none}.scene-focus .market-ticker{opacity:0;pointer-events:none}.world-ready .weather-tag{display:block;right:18px;top:157px}.weather-live>span{font-size:12px}.weather-live small{font-size:10px}.weather-live small{display:block}.world-ready .place-caption h2{font-size:20px}.sheet-open .market-ticker{visibility:hidden}}
.unlock-checks{display:grid;gap:9px;margin:20px 0}.unlock-check{display:grid;grid-template-columns:1fr auto;gap:8px;border:1px solid #91b7b63b;border-radius:8px;padding:12px 14px;font-size:13px}.unlock-check small{grid-column:1/-1;color:#9bbab9}.unlock-check.met>span,.unlock-ready{color:#9fd3b5}.unlock-check.missing{border-color:#c8a66577}.unlock-check.missing small{color:#e7c47c}.unlock-check b{font-size:12px;font-variant-numeric:tabular-nums}.unlock-ready{font-size:13px}

.payroll-intro>span{font-size:12px;color:#d6c28d}.payroll-intro h3{font-size:22px;line-height:1.5;margin:13px 0}.payroll-intro p,.bonus-card p{font-size:13px;line-height:1.8;color:#a9c4c2}.payroll-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.payroll-summary>div{background:#214650;border:1px solid #779a9744;border-radius:8px;padding:15px}.payroll-summary span,.payroll-summary small{display:block;font-size:11px;color:#adc7c2;line-height:1.6}.payroll-summary b{display:block;font-size:24px;color:#edcf8e;margin:8px 0;font-variant-numeric:tabular-nums}.payday-notice{display:grid;gap:8px;padding:14px;background:#adc9b517;border-left:2px solid #afd8bd;margin-bottom:20px;font-size:13px}.payday-notice span{font-size:11px;color:#afc7c2}.payroll-rows p{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;margin:0;border-bottom:1px solid #a6c1b626;font-size:13px}.payroll-rows small{display:block;color:#95b1af;font-size:11px;margin-top:6px}.payroll-rows b{font-size:12px;white-space:nowrap;color:#e4dac0}.bonus-card{border:1px solid #cdb57866;background:#bb995e0e;border-radius:9px;margin:24px 0;padding:18px}.bonus-card>span{font-size:12px;color:#d8c18b}.bonus-card h3{font-size:19px;margin:13px 0}.bonus-card>small{display:block;font-size:11px;line-height:1.8;color:#adc1b7}.bonus-options{display:flex;gap:7px;margin:16px 0}.bonus-options button{flex:1;border:1px solid #879f9144;border-radius:6px;padding:10px 3px;background:#254648;color:#c6d6c7;font-size:13px}.bonus-options small{display:block;font-size:10px;margin-top:7px}.bonus-options .active{color:#f2d995;border-color:#bdae79;background:#71664666;opacity:1}.payroll-link{display:block;text-align:left;width:100%;border:1px solid #bbaa7855;border-radius:8px;background:#22474e;padding:15px;margin-bottom:17px}.payroll-link span{display:block;font-size:11px;color:#cbb983}.payroll-link b{display:block;color:#e0e0cc;font-size:14px;margin:9px 0}.payroll-link small{color:#a3c3bc;font-size:11px}.payroll-warning{border-color:#d89a6c}.daily-cost-button{background:none;border:0;color:inherit;font-size:inherit;padding:3px 0;cursor:pointer}.daily-cost-button:hover{color:#f4d897;text-decoration:underline}

.construction-cards{display:grid;gap:11px}.construction-card{width:100%;display:flex;align-items:center;text-align:left;gap:12px;padding:17px 14px;border:1px solid #9bb6ab55;border-radius:10px;background:#30545a45;color:#dbe5d9;cursor:pointer;min-height:103px}.construction-card:hover,.construction-card:focus-visible{border-color:#e4c587;background:#55645359;outline:2px solid #e4c58733;outline-offset:2px}.construction-icon{color:#d9c795;flex-shrink:0}.construction-icon svg{width:25px;height:25px}.construction-copy{flex:1;min-width:0}.construction-copy b{font-size:15px;display:block;font-weight:500}.construction-copy small,.construction-copy em{display:block;font-size:11px;line-height:1.7;color:#a8c2bc;margin-top:5px;font-style:normal}.construction-copy em{color:#d2c18b}.construction-price{font:14px ui-monospace,Consolas,monospace;color:#edd6a0;white-space:nowrap}.construction-price small{display:block;font:11px system-ui;margin-top:9px;color:#a9c5bd}.warehouse-overview{padding:17px 0}.warehouse-overview>span{font-size:12px;color:#cdbd91}.warehouse-overview h3{font:38px ui-monospace,Consolas,monospace;color:#f0d89e;margin:16px 0}.warehouse-overview h3 small{font:14px system-ui;color:#c3d2c8}.warehouse-overview p{font-size:13px;line-height:1.8;color:#b0c8c6}.warehouse-change{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#91bda115;border:1px solid #96b89b48;border-radius:8px;padding:15px;font-size:14px}.warehouse-change strong{color:#d6e5b9}.warehouse-entry{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;text-align:left;margin-bottom:17px;padding:14px;border:1px solid #c9b68077;border-radius:9px;background:#72694324;color:#e5d9b7}.warehouse-entry b{font-size:14px;font-weight:500}.warehouse-entry small{display:block;font-size:12px;margin-top:7px;color:#b3ccc3}.warehouse-entry strong{font-size:12px;white-space:nowrap}.warehouse-entry:hover{border-color:#ead39c;background:#83724640}
:root{--sheet-top:110px;--sheet-bottom:185px}html,body{height:100%;overflow:hidden}.game-shell,body.world-ready .game-shell{height:100svh;min-height:0;overflow:clip}body dialog,body.world-ready dialog,body.incident-open dialog{top:var(--sheet-top);bottom:var(--sheet-bottom);height:calc(100svh - var(--sheet-top) - var(--sheet-bottom));max-height:calc(100svh - var(--sheet-top) - var(--sheet-bottom));overscroll-behavior:contain;scroll-padding:12px}.modal-head{position:sticky;top:-25px;z-index:2;background:#173845;padding:12px 0;margin-top:-12px}.modal-head .icon-button{position:relative}
@media(max-height:780px) and (min-width:761px){:root{--sheet-top:100px;--sheet-bottom:180px}}
@media(max-width:760px){:root{--sheet-top:153px;--sheet-bottom:225px}.construction-card{padding:14px 10px;gap:9px;min-height:98px}.construction-copy b{font-size:14px}.construction-price{font-size:12px}.construction-icon svg{width:22px;height:22px}.modal-head{top:-21px}.construction-price small{font-size:10px}}
@media(max-height:560px){:root{--sheet-top:75px;--sheet-bottom:145px}.scene-help,.place-caption,.quest-card{display:none}.game-header{top:12px}}

/* A warmer industrial diorama, with the factory as the main stage. */
.position-entry{width:100%;text-align:left;border:1px solid #9fb7a944;background:#74a18d14;border-radius:12px;color:#e7ddb8;padding:14px 17px;margin-bottom:15px}.position-entry small{display:block;margin-top:6px;color:#afcbbd;font-size:11px}.position-intro>span{font-size:10px;color:#b3c4a7;letter-spacing:.1em}.position-intro h3{font-size:22px;color:#efdbb1;line-height:1.6}.position-intro p{font-size:12px;line-height:1.9;color:#b9cdc3}.position-profit{padding:17px;border:1px solid #b9c18c3d;background:#b1b8810b;border-radius:12px;margin:20px 0}.position-profit>span{font-size:11px;color:#c3ceba}.position-profit>b{display:block;font-size:28px;margin:10px 0}.position-profit small{font-size:10px;color:#a6beb2}.position-card{padding:17px 0;border-bottom:1px solid #bad0b72e}.position-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.position-card>div:first-child>b{font-size:24px;color:#ebd39b}.position-card>div:first-child>span{font-size:13px;color:#bfd0c4}.position-quotes{display:flex;justify-content:space-between;gap:8px;margin:17px 0}.position-quotes span{font-size:10px;color:#a9c3b7}.position-quotes b{display:block;font-size:15px;color:#e4e4c8;margin-top:6px}.position-card p{font-size:12px;color:#b6c9bc}
.process-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0 18px}.process-flow button{position:relative;border:1px solid #a6b89335;background:#718f751a;border-radius:7px;padding:8px 5px;text-align:left;font-size:10px;color:#e3dfbf}.process-flow small{display:block;color:#94c1b4;font-size:9px;margin-bottom:4px}.process-flow span{position:absolute;right:7px;top:9px;color:#d7b973}.station-detail>span{font-size:11px;color:#abc6bc}.station-detail h3{font-size:22px;line-height:1.7;color:#f3ddb0}.station-detail p{font-size:13px;line-height:1.9;color:#c2d2c7}.station-detail>b{display:block;font-size:12px;padding:13px;border:1px solid #b1bd8640;border-radius:8px;color:#d8dcb8}
.world-ready .world-vignette{background:linear-gradient(180deg,#092d3980,transparent 24%,transparent 72%,#092d3990)}
.world-ready .place-caption{top:126px}.world-ready .place-caption h2{font-size:25px;letter-spacing:.08em}.world-ready .place-overline{color:#e5c98b}
.world-ready .quest-card{bottom:196px;width:225px;background:#153c49df;border-color:#91ada24d;box-shadow:0 12px 35px #09232e30}.world-ready .quest-card p{display:none}.world-ready .quest-card h3{font-size:16px}.world-ready .dispatch-card{width:230px;background:#143c48ec;box-shadow:0 14px 38px #082b3144}.world-ready .dispatch-payment strong{font-size:25px}
.world-ready .scene-label{background:#f1eee0ed;color:#214b50;border-color:#e5dab3;border-radius:9px;box-shadow:0 5px 14px #092b3830;padding:8px 13px;font-weight:700}.world-ready .scene-label small{color:#577777;font-weight:400}.world-ready .scene-label.working{background:#ffedb9;color:#65501e}.world-ready .scene-label.locked{background:#d5e0d7d9;border-color:#809d96;color:#53746d}
.world-ready dialog{background:linear-gradient(150deg,#204551,#112f3d);border-color:#96b0a577;border-radius:18px;box-shadow:0 22px 65px #031d3659}.world-ready .modal-head{background:#1d414d}.world-ready .action-dock{background:#173e4beF;box-shadow:0 10px 32px #06263342;border-color:#a2bbaa66}
.gain{color:#8ce2b8!important}.loss{color:#f3ad89!important}.inventory-entry,.comfort-card{display:block;text-align:left;width:100%;border:1px solid #cfbe8255;border-radius:13px;background:linear-gradient(135deg,#48615855,#b4955220);padding:17px;color:#f1e4c4;margin:0 0 15px}.inventory-entry>b{display:block;font-size:24px;margin:8px 0}.inventory-entry small,.comfort-card small{display:block;color:#b9d1cb;line-height:1.7}.inventory-entry b small{font-size:11px;font-weight:400}.value-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.value-grid>div{background:#91b9ae0d;border:1px solid #9bbdaf25;padding:14px;border-radius:11px}.value-grid>div:last-child{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.value-grid small{display:block;color:#b5cbc4;font-size:11px;margin-bottom:6px}.value-grid b{font-size:21px;font-variant-numeric:tabular-nums}
.inventory-items article{display:flex;flex-wrap:wrap;justify-content:space-between;gap:9px;padding:14px 0;border-bottom:1px solid #accabb25}.inventory-items article>div:last-of-type{text-align:right}.inventory-items small{display:block;font-size:11px;color:#adc9c3;line-height:1.8;margin-top:4px}.inventory-items article>b,.inventory-items strong{font-size:15px}.custody-row{display:flex;gap:9px;align-items:center;justify-content:space-between;padding:12px 0}.credit-scale{padding:15px;border:1px solid #bdc49740;border-radius:12px;margin-bottom:18px}.credit-scale summary{cursor:pointer;color:#eedaa8;font-size:13px}.credit-scale p{display:flex;justify-content:space-between;gap:12px;font-size:12px}.credit-scale small{font-size:11px;line-height:1.8;color:#bfd0c3}.material-flow{display:flex;gap:18px;justify-content:center;align-items:center;color:#eddbac;padding:12px 0}.material-flow b{font-size:19px}.scrap-terms{background:#c5b97a0d;border-left:2px solid #c5b97a;padding:10px 13px;font-size:11px;line-height:1.8;color:#a9c7c1}
.atelier-index>span,.workshop-intro>span{font-size:10px;letter-spacing:.12em;color:#b9c5a5}.atelier-index h3{font-size:21px;line-height:1.6;margin:10px 0 20px}.atelier-index>button{display:flex;align-items:center;gap:13px;width:100%;text-align:left;color:#e8ecd9;background:linear-gradient(120deg,#457b8055,#98b38515);border:1px solid #9fbaaf3b;padding:17px 13px;border-radius:13px;margin-bottom:12px}.atelier-index>button small{display:block;color:#abc9c4;font-size:11px;margin-top:7px}.atelier-index strong{margin-left:auto;color:#eccb85}.atelier-icon{font-size:27px;font-family:Georgia,serif;color:#e8cf96}.workshop-intro h3{font-size:24px;margin:12px 0;color:#f2e1b8}.workshop-intro p{color:#b5cec9;line-height:1.8}.workshop-strip{display:flex;justify-content:space-between;border-block:1px solid #aec1a830;padding:14px 0;margin:16px 0}.workshop-strip span{font-size:10px;color:#abc7bd}.workshop-strip b{display:block;font-size:18px;margin-top:6px;color:#efdfb9}
.worker-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 10px;border:1px solid #7baba638;background:#8ac0b708;border-radius:12px;color:#eceddb;margin:10px 0}.worker-card:hover{border-color:#f1cb7e;background:#96c7b515}.worker-card>span:nth-child(2){flex:1;min-width:0}.worker-card b{font-size:15px}.worker-card em{font-size:10px;color:#e7c883;font-style:normal}.worker-card small{display:block;font-size:10px;line-height:1.8;color:#b8d2c9}.worker-card>strong{color:#e2c58a;font-size:24px}.worker-meters{display:block;font-size:10px;color:#d8e2c9;margin:6px 0}.worker-portrait{position:relative;display:inline-block;flex-shrink:0;width:49px;height:60px;overflow:hidden;border-radius:10px;background:linear-gradient(#90c2b6,#477877);border:1px solid #c6d6b666}.worker-portrait .face{position:absolute;left:15px;top:15px;width:22px;height:25px;background:#deb483;border-radius:5px;box-shadow:inset -5px 0 #bd8d5c}.worker-portrait .face:after{content:'••';position:absolute;color:#273f45;left:4px;top:3px;letter-spacing:5px;font-size:9px}.worker-portrait .helmet{position:absolute;left:11px;top:9px;width:30px;height:13px;background:#efca65;border-radius:12px 12px 3px 3px;z-index:2;border-bottom:3px solid #ad8642}.worker-portrait .uniform{position:absolute;left:9px;bottom:-9px;width:33px;height:34px;background:#4b869b;border-radius:8px;border:2px solid #b4d9cf}.portrait-4 .uniform{background:#578a77}.portrait-3 .uniform{background:#73739b}.worker-profile{display:flex;align-items:center;gap:20px;margin:15px 0 25px}.worker-profile>.worker-portrait{transform:scale(1.35);margin:12px}.worker-profile h3{font-size:28px;margin:8px 0;color:#f0dfb8}.worker-profile span,.worker-profile p{color:#abc7ba;font-size:12px}.worker-data{display:flex;gap:13px}.worker-data>div{flex:1;font-size:11px;color:#bdd0c1}.worker-data b{display:block;margin:9px 0;font-size:16px;color:#efe2c5}.worker-data i{display:block;height:5px;border-radius:4px;background:linear-gradient(90deg,var(--bar) var(--value),#7daba330 var(--value))}.worker-concern{padding:12px 14px;margin-bottom:8px;border-left:2px solid #e4b080;background:#d29b5520;border-radius:0 8px 8px 0}.worker-concern b{font-size:12px;color:#f1c99e}.worker-concern small{display:block;margin-top:5px;color:#c2caba;line-height:1.7;font-size:11px}.worker-happy{font-size:12px;color:#9ce0b5;background:#84bca815;padding:15px;border-radius:10px}.worker-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.worker-actions button{padding:15px 10px;border:1px solid #9ab9ad45;border-radius:10px;text-align:left;background:#8cad9812;color:#e6dfc5}.worker-actions small{display:block;font-size:10px;color:#b7c8b8;line-height:1.6;margin-top:6px}.comfort-card{margin-top:20px;font-size:12px}
.workshop-view .quest-card,.workshop-view .dispatch-card,.workshop-view .place-caption,.workshop-view .scene-help{display:none}.workshop-view .scene-controls-3d{left:26px;right:auto;align-items:flex-start}.worker-scene-label{background:#143d44dd!important;color:#ffe4a3!important;border:1px solid #f3d18199!important;font-size:11px!important;padding:5px 9px!important}.worker-scene-label small{color:#b6d9c5!important}.workshop-banner{position:absolute;left:30px;top:155px;color:#244d54;background:#f0e9d7ec;padding:15px 22px;border-radius:12px;pointer-events:none;box-shadow:0 8px 24px #163f4533}.workshop-banner b{font-size:22px;display:block}.workshop-banner small{font-size:11px;display:block;margin-top:8px}.workshop-banner[hidden]{display:none}
@media(max-width:760px){.world-ready .place-caption{top:150px}.world-ready .place-caption h2{font-size:19px}.world-ready .quest-card{width:auto;bottom:209px;padding:9px 12px}.world-ready .quest-card h3{font-size:13px}.workshop-view .world-3d{inset:135px 0 150px}.workshop-view .scene-controls-3d{left:12px;top:174px}.workshop-banner{top:142px;left:16px;padding:8px 12px}.workshop-banner b{font-size:14px}.workshop-banner small{display:none}.worker-actions{gap:7px}.value-grid b{font-size:18px}.world-ready .scene-label{font-size:10px;padding:5px 7px}.worker-card{padding:10px 6px;gap:8px}}
@media(max-height:560px){.workshop-banner{top:85px}.workshop-view .scene-controls-3d{bottom:142px;top:auto}}

@media(min-width:761px){.world-ready .scene-help{top:191px;font-size:10px}.workshop-view .market-ticker{opacity:.8}.workshop-view .market-ticker:hover{opacity:1}}

.news-entry{width:100%;display:grid;text-align:left;gap:9px;padding:18px;margin:0 0 18px;border:1px solid #d1b16a80;border-radius:12px;background:linear-gradient(120deg,#d4b56820,#78b9ac0b);color:#e8ede4}.news-entry span,.news-entry small{font-size:12px;color:#cfbd8f}.news-entry b{line-height:1.55}.news-masthead>span{font-size:11px;letter-spacing:1px;color:#cdb979}.news-masthead h3{font-size:25px;line-height:1.4;margin:16px 0}.news-masthead p,.news-story p,.news-quiet p{color:#b4cdc9;line-height:1.8;font-size:13px}.news-masthead>div{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 25px}.news-masthead>div span,.news-tags span{font-size:11px;border:1px solid #95b7ad38;padding:5px 8px;border-radius:5px;color:#bcd4c8}.news-story{border-top:1px solid #98b7b445;padding:22px 0}.news-story.pending{border:1px solid #d6b77875;border-radius:12px;padding:18px;margin-bottom:20px;background:#acb79307}.news-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#9cb6b3}.news-meta b{color:#dac383;white-space:nowrap}.news-story h3{font-size:20px;line-height:1.55;margin:14px 0}.news-tags{display:flex;flex-wrap:wrap;gap:7px}.news-story .news-chain{color:#dfd1a3}.news-timing{display:grid;gap:8px;border-left:3px solid #d9b965;padding:10px 13px;background:#d9b9650b}.news-timing b{font-size:14px;color:#ead19a}.news-timing span,.news-price-note{font-size:11px;color:#a1bdb9;line-height:1.7}.news-outcome{border-left:2px solid #86bdac;padding-left:12px}.news-outcome b{font-size:12px;color:#b0d3c5}.news-position-list{margin:15px 0 7px}.news-position-list>div{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:8px 0;border-bottom:1px solid #a2c0ba1b}.news-price-note{display:block}.news-trade-actions{display:grid;gap:10px;margin-top:18px}.news-trade-actions>div{display:grid;grid-template-columns:45px 1fr 1fr;gap:8px;align-items:center}.news-trade-actions b{color:#c9d8d3;font:13px ui-monospace,monospace}.news-trade-actions .btn{padding:9px 6px;font-size:12px}.news-wallet{display:grid;gap:12px;margin:22px 0}.news-wallet>span{display:flex;justify-content:space-between;color:#aec6bd;font-size:13px}.news-wallet b{color:#edd5a0}.news-quiet{padding:22px 0}.market-ticker button.has-market-news{border-color:#dcc48299;box-shadow:0 0 22px #d6b0650e}

/* Richer material colors and readable controls against both concrete and water. */
.world-ready .world-vignette{background:linear-gradient(180deg,#031d36a1,transparent 27%,transparent 62%,#021c3699)}
.world-ready .resource-bar,.world-ready .action-dock{background:linear-gradient(125deg,#123f55f7,#081f36f7);border-color:#76a5b573;box-shadow:0 10px 32px #00142680}
.world-ready .quest-card,.world-ready .dispatch-card{background:#092c42f5;border-color:#6b9caa99}
.world-ready .market-ticker>button{background:#0b3148f5;border-color:#8dadb36b}.world-ready .market-ticker b{color:#ffd274}.world-ready .market-ticker small{color:#d0e3df}
.world-ready .place-caption{text-shadow:0 2px 4px #061e34,0 4px 18px #052541}.world-ready .place-caption h2{color:#f8fbf6;font:600 25px/1.32 'Microsoft YaHei',sans-serif;letter-spacing:.025em}.world-ready .place-caption h2 em{color:#ffd276}.world-ready .place-caption h2 br{display:block}.world-ready .place-caption .place-period{display:none}.world-ready .place-overline{color:#ffd584}
.world-ready .scene-help{top:224px;color:#eef4ef;text-shadow:0 1px 3px #082d46}.world-ready .scene-help b{background:#123d52ed;border-color:#99bac288;color:#ffe1a1}
.world-ready .scene-controls-3d{left:26px;right:auto;top:260px;bottom:auto;flex-direction:column;align-items:flex-start;gap:8px}.world-ready.workshop-view .scene-controls-3d{left:30px;top:105px;bottom:auto;flex-direction:row}
.world-ready .dock-heading{color:#ecf5ed;text-shadow:0 2px 4px #04283f}.world-ready .dock-hint{color:#c8dfda}.world-ready .time-console{color:#e2ece8}.world-ready .time-top{background:#0b3043da;padding:6px 10px;border-radius:8px;margin-bottom:8px}.world-ready .daily-fee{background:#0a2a40db;padding:4px 9px;border-radius:5px;color:#d5e6e0}.world-ready .end-day{background:linear-gradient(130deg,#ffdb83,#e9a934);color:#183346;box-shadow:0 5px 18px #11293470}
.world-ready .world-footer{color:#c3d8d8;text-shadow:0 1px 3px #082334}.world-ready .scene-label{background:#123c50f5;border-color:#79b7c6;color:#f0f7ee;box-shadow:0 4px 14px #061b38aa}.world-ready .scene-label small{color:#a8d5d3}.world-ready .scene-label.working{background:#76530beF;border-color:#ffcf58;color:#fff3cb}.world-ready .scene-label.working small{color:#ffe4a3}.world-ready .scene-label.locked{background:#24434bd9;color:#9dc0c3;border-color:#6e9da6}
.world-ready dialog{background:linear-gradient(145deg,#163f54,#081e34);border-color:#77a5b1a8}.world-ready .modal-head{background:#12384d}.world-ready .finished-scene-label{background:#134c44f0;border-color:#78d4af;color:#e1fff0;font-size:10px;padding:5px 8px}
.logistics-activity{position:absolute;left:50%;bottom:178px;transform:translateX(-50%);max-width:60%;padding:8px 16px;border-radius:9px;border:1px solid #fac561bb;background:#13374fed;color:#ffe6a1;font-size:12px;pointer-events:none;box-shadow:0 4px 16px #00233866}.logistics-activity[hidden]{display:none}
.finished-overview,.warehouse-visual-level{display:block;width:100%;text-align:left;border:1px solid #7fc7b565;background:linear-gradient(125deg,#12636a55,#114252);padding:14px 16px;border-radius:10px;color:#e0f1dd;margin:16px 0}.finished-overview>span,.warehouse-visual-level>span{display:block;font-size:11px;color:#aadfd4}.finished-overview>b,.warehouse-visual-level>b{display:block;margin:9px 0;font-size:19px;color:#ffdd91}.finished-overview small,.warehouse-visual-level small{display:block;font-size:11px;color:#b8d5d2;line-height:1.8}.finished-row{display:flex;justify-content:space-between;gap:15px;padding:19px 0;border-bottom:1px solid #78aaac44}.finished-row>b{font-size:14px;color:#bcd7d8}.finished-row>strong{font-size:19px;color:#ffda91}
@media(min-width:761px) and (max-height:780px){.world-ready .place-caption{top:120px}.world-ready .place-caption h2{font-size:22px}.world-ready .scene-help{top:209px}.logistics-activity{bottom:180px;max-width:50%;font-size:11px}}
@media(max-width:760px){.world-ready .place-caption{top:158px}.world-ready .place-caption h2{font-size:17px}.world-ready .place-caption h2 br{display:none}.world-ready .place-caption h2 em{margin-left:4px}.world-ready .scene-help{top:187px;font-size:10px}.logistics-activity{bottom:2px;max-width:90%;width:max-content;padding:6px 10px;font-size:10px}.world-ready .scene-label small{display:none}.world-ready .time-top{padding:3px 6px}.world-ready .daily-fee{background:none;padding:0}.world-ready .finished-scene-label{font-size:9px;padding:4px}.world-ready .place-caption{max-width:68%}.world-ready .scene-controls-3d{left:auto;right:15px;top:219px;flex-direction:column;align-items:flex-end}.world-ready.workshop-view .scene-controls-3d{left:12px;top:174px;right:auto;flex-direction:row}}

/* Sunlit coastal factory: warm paper controls, clear blue water, copper accents. */
.world-ready .game-shell{background:#9ed0dc}
.world-ready .world-vignette{background:linear-gradient(180deg,#d3edf452,transparent 22%,transparent 72%,#388fb23b)}
.world-ready .brand{color:#153d56;text-shadow:0 1px 10px #fff9}.world-ready .brand-sub{color:#7f5120}
.world-ready .resource-bar,.world-ready .action-dock{background:linear-gradient(125deg,#fffcefF5,#eef6ebf5);border:1px solid #fff5d2;box-shadow:0 7px 22px #246c7d38,inset 0 1px #fff;color:#204758}
.world-ready .resource{color:#21485b;border-right-color:#b1c7c9}.world-ready .resource svg{color:#267d8c}.world-ready .resource small,.world-ready .resource em{color:#53717a}.world-ready .cash-resource b,.world-ready .cash-resource svg{color:#a5651d}
.world-ready .dock-item{color:#25495a}.world-ready .dock-item+.dock-item{border-left-color:#7ba2a03b}.world-ready .dock-name small{color:#58757e}.world-ready .dock-icon{color:#238c9b}.world-ready .dock-item:nth-child(2) .dock-icon{color:#c87b37}.world-ready .dock-item:nth-child(3) .dock-icon{color:#5582be}.world-ready .dock-item:nth-child(4) .dock-icon{color:#4b954f}.world-ready .dock-item:hover,.world-ready .dock-item.active{background:#cfeadd;border-color:#79b9aa}
.world-ready .quest-card,.world-ready .dispatch-card{--muted:#536d75;--edge:#71959b44;background:linear-gradient(135deg,#fff7dcf5,#f4f8eefa);color:#274c5a;border-color:#fff3c5;box-shadow:0 8px 22px #3a778a35}
.world-ready .quest-eyebrow{color:#996126}.world-ready .quest-card>p{color:#527079}.world-ready .campaign-mini-progress>i{background:#bfd2c3}.world-ready .campaign-mini-progress>i.met{background:#328969}
.world-ready .dispatch-top,.world-ready .dispatch-top .mini-link,.world-ready .dispatch-brief,.world-ready .dispatch-strategy,.world-ready .delivery-countdown,.world-ready .dispatch-card .client-heading p{color:#536f78}.world-ready .dispatch-top svg{color:#a36b2b}.world-ready .dispatch-brief{border-color:#a8c1c277}.world-ready .dispatch-brief>span{color:#234f61}.world-ready .dispatch-brief small{color:#54707a}.world-ready .dispatch-payment>span{color:#54707a}.world-ready .dispatch-payment>strong{color:#ad6525}.world-ready .delivery-countdown>span:last-child{color:#32825a}.world-ready .contract-seal{color:#337d74;border-color:#68a599}.world-ready .dispatch-choice-tags span{color:#52747b;border-color:#8caaa777}
.world-ready .place-caption{text-shadow:0 1px 12px #dffaff9c}.world-ready .place-caption h2{color:#204a65}.world-ready .place-caption h2 em{color:#276778}.world-ready .place-overline{color:#775326}.world-ready .place-overline>span{background:#b1823a}.world-ready .place-caption p{color:#325f70}
.world-ready .scene-help{color:#2a5a6b;text-shadow:0 1px 5px #ecfffd}.world-ready .scene-help b{background:#fff3d9ed;color:#77532c;border-color:#ffefc4}
.world-ready .scene-controls-3d button,.world-ready .game-tools .icon-button{background:#f8f6e9ed;color:#326074;border-color:#ffffe799;box-shadow:0 3px 9px #426d7b26}.world-ready .scene-controls-3d button:hover,.world-ready .scene-controls-3d button.active{background:#fbd18c;color:#794c1c;border-color:#ffe6b5}
.world-ready .market-ticker>button{background:#256777ef;border-color:#93d5ce;color:#eaf9ef;box-shadow:0 5px 16px #235e7530}.world-ready .market-ticker b{color:#ffde91}.world-ready .market-ticker small{color:#def0e7}
.world-ready .scene-label{background:#fff9eaf5;border-color:#c4d5b7;color:#285663;box-shadow:0 3px 10px #286c7b4d}.world-ready .scene-label small{color:#527e85}.world-ready .scene-label.working{background:#fff0bcef;border-color:#e9b047;color:#8a571b}.world-ready .scene-label.working small{color:#987032}.world-ready .scene-label.locked{background:#e6eadbcf;color:#57767a;border-color:#abc7b9}.world-ready .finished-scene-label{background:#267e69f0;color:#f1fff5;border-color:#b7edc1}
.world-ready .dock-heading{color:#174c60;text-shadow:0 1px 4px #defbff}.world-ready .dock-hint{color:#275f73}.world-ready .dock-dot{background:#237b63}
.world-ready .time-top{background:#eff6e9ef;border:1px solid #fff3ce}.world-ready .day-caption,.world-ready .speed{color:#426572}.world-ready .day-caption b{color:#1e5368}.world-ready .time-playback .icon-button{background:#c9e3d8;color:#2c7080}.world-ready .daily-fee{background:#edf6e8ed;color:#3e6978}.world-ready .end-day{background:linear-gradient(125deg,#ffdf86,#f5ae42);border-color:#fff0b4;color:#72501d;box-shadow:0 5px 17px #52808b38}
.world-ready .world-footer,.world-ready .world-footer #save-status{color:#245f73;text-shadow:0 1px 4px #e2faff}.world-ready .weather-tag{color:#845820;text-shadow:0 1px 6px #e9fffb}.world-ready .weather-tag small{color:#315f72}
.world-ready dialog{background:linear-gradient(145deg,#285b6d,#1e465e);border-color:#a1d3d3}.world-ready .modal-head{background:#285b6d}
.world-ready .logistics-activity{background:#fff2cdeb;border-color:#eac775;color:#805b24;box-shadow:0 4px 14px #376f7e44}
.world-ready .weather-live{background:#f4f8e6ed;border:1px solid #ffffdc99;padding:7px 10px;border-radius:9px;color:#47636a;text-shadow:none}.world-ready .weather-live>span{color:#8e622a}.world-ready .weather-live small{color:#456b77}
@media(max-width:760px){.world-ready .world-vignette{background:linear-gradient(180deg,#c9e8ed 0%,#c1e4e9 16%,transparent 26%,transparent 65%,#7cbad199 82%,#91c8d6 98%)}.world-ready .daily-fee{background:none}.world-ready .resource-bar{border-color:#fff4d6}.world-ready .quest-card{background:#fff6e0f5}}
.world-ready.low-cash .cash-resource b{color:#b04625}
@media(max-width:760px){.world-ready .operations-status{top:152px;padding:1px 4px;background:#327485ed}.world-ready .operations-status button,.world-ready .operations-status>span{padding:3px 9px}.world-ready .place-caption{top:182px}.world-ready .scene-help{top:211px}.world-ready .weather-tag{top:183px}.world-ready .scene-controls-3d{top:241px}.world-ready .dock-heading{display:none}}
