:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e6ebe5;background:#0b181a;font-synthesis:none;-webkit-font-smoothing:antialiased;--fg:#e6ebe5;--muted:#859b9b;--accent:#dfb77d;--border:rgba(164,198,190,.15);--surface:rgba(12,25,29,.95);--surface2:#1b3034;--green:#95c5a2}*{box-sizing:border-box}html,body{width:100%;height:100%;height:100dvh;margin:0;overflow:hidden;touch-action:none;overscroll-behavior:none}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-assets{position:absolute;width:0;height:0;overflow:hidden}#app{position:relative;isolation:isolate;width:100%;height:100%;height:100dvh;overflow:hidden}#world{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.topbar{position:absolute;top:max(14px,env(safe-area-inset-top));left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:5;pointer-events:none}.topbar>*{pointer-events:auto}.identity{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{display:grid;place-items:center;position:relative;width:44px;height:44px;border-radius:13px;background:#d7b27b;color:#122123;font-size:18px;font-weight:900;letter-spacing:-2px;box-shadow:0 5px 22px #07151677}.mark-dot{position:absolute;width:4px;height:4px;border-radius:50%;background:#122123;right:9px;bottom:12px}.identity h1{font-weight:670;font-size:15px;letter-spacing:2.1px;line-height:1.1;margin:0;white-space:nowrap}.identity h1 strong{font-weight:720;color:var(--accent)}.version-label{font-size:9px;letter-spacing:1.8px;color:#a8bab4;margin-top:5px;font-weight:650}.version-sep{color:#bd996e;margin:0 5px}.top-buttons{display:flex;gap:7px;padding:5px;border-radius:14px;background:rgba(9,22,25,.82);border:1px solid var(--border);box-shadow:0 7px 24px #06121444;backdrop-filter:blur(14px)}.square-button{display:grid;place-items:center;width:39px;height:39px;color:#bdcdc8;background:#213338aa;border:1px solid transparent;border-radius:10px}.square-button:hover,.square-button.active{background:#3a514e;color:#f6d29c}.square-button svg{width:19px;height:19px}.statsbar{position:absolute;z-index:4;top:max(78px,calc(env(safe-area-inset-top) + 64px));left:18px;display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:11px 15px;box-shadow:0 10px 26px #06121466;backdrop-filter:blur(14px)}.stat{display:flex;gap:9px;align-items:center;min-width:89px}.stat-symbol{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:14px}.stat-symbol.credit{background:rgba(230,190,122,.11);color:#e1bc84;border:1px solid rgba(230,190,122,.18)}.stat-symbol.energy{background:rgba(143,197,167,.12);color:#a0d0b3}.stat-symbol svg{width:17px}.stat small{display:block;font-size:9px;letter-spacing:1.2px;color:#819898;font-weight:750;margin-bottom:3px}.stat strong{font-size:15px;letter-spacing:.2px;white-space:nowrap;font-variant-numeric:tabular-nums}.stat-divider{height:30px;width:1px;background:var(--border)}.pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #bc98621f}.mission{position:absolute;z-index:4;right:18px;top:94px;width:294px;background:rgba(13,27,30,.93);border:1px solid var(--border);border-radius:15px;padding:14px 15px;box-shadow:0 14px 40px #07121677;backdrop-filter:blur(16px)}.mission-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:0;padding:0;text-align:left;color:#b2c6ba}.mission-toggle svg{width:16px;height:16px;transition:transform .2s}.mission.collapsed .mission-toggle svg{transform:rotate(-90deg)}.mission.collapsed .mission-inner{display:none}.eyebrow,.panel-kicker{font-size:10px;letter-spacing:1.6px;font-weight:800;color:#a4baa9}.eyebrow{display:flex;align-items:center;gap:8px}.mission-circle{width:7px;height:7px;background:#b6cb9c;border-radius:50%;box-shadow:0 0 0 3px #b6cb9c1f}.mission h2{font-size:15px;margin:12px 0 5px;font-weight:720;letter-spacing:.15px}.mission p{font-size:12px;line-height:1.55;color:#afc1bd;margin:0 0 12px}.progress-track{height:4px;border-radius:4px;background:#3a4c4c;overflow:hidden}.progress-track span{display:block;height:100%;width:0%;background:#daba83;transition:width .2s}.mission-counter{font-size:10px;color:#8ba39c;text-align:right;margin-top:5px;font-variant-numeric:tabular-nums}.control-hint{position:absolute;bottom:113px;left:21px;z-index:3;color:#9bb0aa;font-size:11px;letter-spacing:.1px;text-shadow:0 2px 6px #091413}.hint-key{display:inline-block;border:1px solid #5d7771;color:#dce5dd;background:rgba(10,27,28,.75);border-radius:4px;padding:3px 6px;margin-right:4px;font-size:10px;font-weight:700}.hint-dot{margin:0 7px;color:#6c857e}.actions{position:absolute;z-index:5;right:21px;bottom:108px;display:flex;flex-direction:column;align-items:flex-end;gap:7px}.action-button{background:#14272ad9;color:#cbdad2;border:1px solid #48635d7d;border-radius:11px;min-width:95px;padding:11px 12px;display:flex;gap:9px;align-items:center;font-size:10px;font-weight:800;letter-spacing:1px;box-shadow:0 4px 18px #07121366}.action-button:hover{background:#304a46}.action-primary{border-color:#c9a67588;color:#f6d8a3;background:#4b3e2bdb}.action-button svg{width:16px;height:16px}.zoom-controls{display:flex;gap:5px;border:1px solid var(--border);background:#102326db;padding:4px;border-radius:11px}.zoom-controls button{width:29px;height:29px;background:#2a4040;border:0;border-radius:7px;color:#d4e2d8;display:grid;place-items:center}.zoom-controls svg{width:15px;height:15px}.build-container{position:absolute;z-index:5;bottom:max(9px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(780px,calc(100% - 260px));min-width:480px;display:flex;flex-direction:column;align-items:center}.build-caption{display:flex;align-items:center;width:100%;gap:10px;margin-bottom:7px;color:#b9c9bb;font-size:10px;letter-spacing:2px;font-weight:800;justify-content:center}.caption-line{flex:1;max-width:55px;height:1px;background:#87a29555}.key-tag{margin-left:7px;color:#d4bb8f;font-weight:600;letter-spacing:.5px}.build-dock{display:flex;justify-content:center;width:100%;gap:7px;padding:8px;background:rgba(11,26,29,.96);border:1px solid #69857855;box-shadow:0 13px 46px #061214cc;border-radius:17px;overflow-x:auto;scrollbar-width:none;backdrop-filter:blur(18px)}.build-dock::-webkit-scrollbar{display:none}.build-item{border:1px solid transparent;background:#243b3b;color:#e6eae1;border-radius:11px;min-width:97px;max-width:120px;flex:1;min-height:65px;padding:8px 5px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}.build-item:hover{background:#3a5250}.build-item.active{border-color:#d6b17a;background:#493f31;box-shadow:inset 0 0 0 1px #d6b17a33}.build-item .build-icon{color:#d5b886;margin-bottom:3px;height:21px}.build-item .build-icon svg{width:20px;height:20px}.build-name{font-size:10.5px;font-weight:750;white-space:nowrap}.build-price{font-size:9px;color:#a0b2ac}.build-item.active .build-price{color:#e9cfa2}.build-footnote{color:#a2b7aa;font-size:10px;line-height:1.2;margin-top:6px;white-space:nowrap;text-shadow:0 2px 4px #081315}.joystick{display:none;position:absolute;z-index:5;left:22px;bottom:112px;width:106px;height:106px;border:1px solid #b9d0be43;background:#122a2eb3;border-radius:50%;touch-action:none;box-shadow:inset 0 0 17px #040d0d44}.joystick-ring{position:absolute;inset:15px;border:1px solid #9cbda038;border-radius:50%}.joystick-thumb{position:absolute;width:47px;height:47px;left:29.5px;top:29.5px;background:#586f69;border:1px solid #afc3ae88;border-radius:50%;display:grid;place-items:center;pointer-events:none;box-shadow:0 3px 12px #0a171a88}.stick-cross{width:15px;height:15px;border-top:2px solid #bed0b9;border-left:2px solid #bed0b9;transform:rotate(45deg);border-radius:2px;opacity:.65}.toast{position:absolute;z-index:30;bottom:205px;left:50%;transform:translate(-50%,8px);max-width:min(380px,calc(100vw - 30px));padding:12px 17px;background:#e3bd86;color:#152426;box-shadow:0 9px 25px #0009;border-radius:12px;line-height:1.4;font-size:12px;font-weight:700;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#d68d85;color:#1f2523}.panel-shield{position:absolute;inset:0;z-index:6;background:rgba(3,10,12,.28)}.panel{position:absolute;z-index:7;right:19px;top:257px;bottom:111px;width:335px;max-height:calc(100% - 375px);min-height:190px;background:rgba(13,27,30,.98);border:1px solid #5a76705c;border-radius:16px;box-shadow:0 15px 55px #000a;overflow:hidden;display:flex;flex-direction:column;backdrop-filter:blur(17px)}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 17px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.panel-kicker{color:#c7a77b;font-size:9px}.panel-heading h2{font-size:19px;font-weight:700;margin:4px 0 0}.small-btn{width:32px;height:32px}.small-btn svg{width:16px}.panel-content{overflow:auto;overscroll-behavior:contain;padding:16px 17px 20px;scrollbar-width:thin;scrollbar-color:#47645d transparent}.hidden{display:none!important}.panel-copy{font-size:12px;line-height:1.65;color:#a7bcb6;margin:0 0 15px}.panel-subheading{color:#b4c3ba;letter-spacing:1px;font-weight:800;font-size:10px;margin:17px 0 11px}.inventory-row{display:flex;align-items:center;gap:10px;background:#20353a91;border:1px solid #67827722;border-radius:10px;padding:9px;margin-bottom:7px}.item-dot{flex:0 0 auto;width:27px;height:27px;border-radius:7px;display:grid;place-items:center;font-size:9px;color:#182526;font-weight:850}.inventory-row .item-info{flex:1;min-width:0}.item-info b{font-size:12px;display:block}.item-info small{font-size:10px;color:#8ea5a0}.inventory-row .item-amount{font-size:15px;font-weight:800;letter-spacing:.2px}.row-action{font-size:10px;font-weight:850;padding:8px 9px;color:#e5cb96;background:#4b4331;border:1px solid #6f6145;border-radius:7px}.row-action:hover{background:#685739}.secondary-btn,.primary-btn,.danger-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;padding:11px 12px;font-size:11px;line-height:1.3;font-weight:800;letter-spacing:.35px;min-height:39px}.secondary-btn{background:#273f40;border:1px solid #55706880;color:#d4e3d9}.primary-btn{background:#d6b179;color:#1b2926;border:1px solid #e5c48f}.danger-btn{background:#553937;color:#f2b9aa;border:1px solid #9b6660}.primary-btn svg,.secondary-btn svg{width:16px;height:16px}.wide-btn{width:100%}.btn-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.btn-row>*{flex:1}.cost-text{display:block;font-size:11px;color:#b4c5b6;margin:5px 0 12px}.cost-label{color:#e5c18a;font-weight:800}.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mini-card{background:#23383a;border:1px solid #526e663d;border-radius:10px;padding:10px}.mini-card small{font-size:9px;color:#8fa9a3;display:block;margin-bottom:4px;letter-spacing:1px}.mini-card strong{font-size:15px}.machine-stat{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:9px 0;border-bottom:1px solid var(--border)}.machine-stat span{color:#94aaa3}.machine-stat strong{font-weight:700;text-align:right;max-width:60%}.buffer-row{font-size:11px;color:#cad8cd;background:#273b3c;border-radius:7px;display:flex;justify-content:space-between;padding:7px 9px;margin:4px 0}.choice-list{display:flex;gap:7px;flex-direction:column}.recipe-choice{display:flex;justify-content:space-between;text-align:left;align-items:center;width:100%;background:#23383b;border:1px solid #4b686153;border-radius:10px;padding:10px 11px;color:#d2dfd5}.recipe-choice.active{border-color:#dbba83;background:#413d31}.recipe-choice b{font-size:12px}.recipe-choice small{display:block;color:#a3b7b1;margin-top:3px;font-size:10px}.recipe-choice .check{color:#e1c48e;font-weight:800;font-size:10px}.tech-card{background:#203639;border:1px solid #536d6447;border-radius:12px;margin-bottom:10px;padding:13px}.tech-card.unlocked{border-color:#7aaf8b66}.tech-card h3{font-size:13px;margin:0 0 5px}.tech-card p{font-size:11px;line-height:1.5;color:#a8beb4;margin:0 0 9px}.tech-card footer{display:flex;justify-content:space-between;align-items:center;gap:9px}.tech-card footer small{font-size:10px;color:#b0c3ab;line-height:1.4}.tech-card footer .row-action{white-space:nowrap}.notice{font-size:11px;color:#c1b78b;line-height:1.6;padding:10px 11px;border-radius:9px;background:#4d452a55;border:1px solid #7a6c4370;margin-bottom:13px}.separator{height:1px;background:var(--border);margin:14px 0}.key-help{display:flex;flex-direction:column;gap:7px;color:#bacbc1;font-size:12px}.key-help>div{display:flex;justify-content:space-between;gap:10px}.key-help kbd{font:700 10px/1.4 monospace;color:#e6c78c;background:#283e3e;padding:3px 6px;border-radius:5px}.empty-message{text-align:center;color:#9eb0a8;font-size:12px;line-height:1.6;padding:20px 8px}.welcome-layer{position:absolute;z-index:40;inset:0;background:rgba(4,13,15,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:17px;overflow:auto}.welcome-card{width:min(445px,100%);border:1px solid #60776688;background:linear-gradient(155deg,#213738,#112426 78%);border-radius:23px;padding:34px 34px 25px;text-align:center;box-shadow:0 22px 80px #000b}.welcome-pre{font-size:10px;letter-spacing:2.4px;color:#b2baaa;font-weight:750}.welcome-emblem{margin:21px auto 13px;border:1px solid #9d95725c;background:#d3b27e;color:#182729;width:69px;height:69px;display:grid;place-items:center;border-radius:19px;font-size:29px;letter-spacing:-3px;font-weight:900}.welcome-emblem span{color:#6f5941}.welcome-card h2{font-size:31px;line-height:1.11;letter-spacing:1.7px;margin:0}.welcome-card h2 em{color:#e3bb82;font-style:normal}.welcome-card p{font-size:13px;line-height:1.7;color:#b6c9be;margin:19px auto;max-width:310px}.welcome-steps{display:flex;justify-content:space-between;gap:5px;margin:0 0 22px;color:#d5b780;font-weight:800;font-size:9px;letter-spacing:.6px}.welcome-card small{display:block;margin-top:13px;font-size:10px;color:#859c97}@media(hover:none){.build-item:hover,.action-button:hover,.square-button:hover{filter:none}}
@media(max-width:1100px){.small-only-landscape{display:none}.build-container{width:calc(100% - 245px);min-width:350px}.build-item{min-width:77px}.build-name{font-size:9.4px}.mission{width:265px}}
@media(max-width:760px){.topbar{top:max(9px,env(safe-area-inset-top));left:10px;right:10px}.brand-mark{width:36px;height:36px;border-radius:11px;font-size:16px}.identity{gap:8px}.identity h1{font-size:10px;letter-spacing:1px}.version-label{font-size:7px;letter-spacing:1.15px}.top-buttons{gap:3px;padding:3px;border-radius:11px}.square-button{width:32px;height:32px;border-radius:8px}.square-button svg{width:16px;height:16px}.statsbar{top:max(60px,calc(env(safe-area-inset-top) + 51px));left:10px;padding:8px 10px;gap:10px;border-radius:10px}.stat{gap:7px;min-width:80px}.stat-symbol{width:24px;height:24px;border-radius:7px;font-size:12px}.stat-symbol svg{width:14px}.stat small{font-size:8px;letter-spacing:.6px;margin-bottom:2px}.stat strong{font-size:12px}.stat-divider{height:22px}.mission{top:max(106px,calc(env(safe-area-inset-top) + 100px));left:10px;right:auto;width:min(278px,calc(100% - 20px));padding:10px 12px;border-radius:12px}.mission h2{font-size:13px;margin:8px 0 4px}.mission p{font-size:10.5px;line-height:1.4;margin-bottom:7px}.eyebrow{font-size:8px}.build-container{width:calc(100% - 16px);min-width:0;bottom:max(7px,env(safe-area-inset-bottom))}.build-dock{justify-content:flex-start;border-radius:13px;gap:5px;padding:6px}.build-caption{margin-bottom:4px;font-size:8px}.build-item{min-width:74px;min-height:60px;padding:7px 3px 5px;flex:0 0 74px}.build-item .build-icon{height:17px;margin-bottom:2px}.build-item .build-icon svg{height:18px;width:18px}.build-name{font-size:9px}.build-price{font-size:8px}.build-footnote{font-size:9px;margin-top:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.control-hint{display:none}.actions{right:11px;bottom:max(112px,calc(env(safe-area-inset-bottom) + 105px));gap:6px}.action-button{min-width:64px;padding:9px 9px;gap:5px;border-radius:10px;font-size:9px}.action-button svg{width:16px}.zoom-controls{gap:3px;padding:3px}.zoom-controls button{width:25px;height:27px}.zoom-controls svg{width:13px}.panel{top:auto;left:8px;right:8px;bottom:max(97px,calc(env(safe-area-inset-bottom) + 94px));width:auto;min-height:0;max-height:min(56dvh,545px);border-radius:14px}.panel-content{padding:13px 15px 17px}.panel-heading{padding:13px 15px}.panel-heading h2{font-size:17px}.panel-shield{background:rgba(3,10,12,.34)}.toast{bottom:205px}.welcome-card{padding:25px 23px 20px}.welcome-card h2{font-size:27px}.welcome-card p{font-size:12px}.welcome-steps{font-size:8px}}
@media(pointer:coarse){.joystick{display:block}.action-button{touch-action:manipulation}}
@media(max-width:760px){.joystick{display:block;left:13px;bottom:max(111px,calc(env(safe-area-inset-bottom) + 102px));width:96px;height:96px}.joystick-thumb{left:24.5px;top:24.5px}.joystick-ring{inset:11px}}
@media(max-width:385px){.identity h1{font-size:9px;letter-spacing:.5px}.identity h1 strong{display:block}.version-label{font-size:6.5px}.top-buttons{gap:2px}.square-button{width:30px;height:30px}.mission{width:245px}}
@media(max-height:610px) and (min-width:760px){.mission{top:85px;width:245px}.panel{top:150px;bottom:100px;max-height:calc(100% - 260px)}.control-hint{display:none}}
@media(max-height:460px){.mission{top:68px;right:10px;left:auto;width:238px}.mission-inner{max-height:85px;overflow:auto}.statsbar{top:58px}.joystick{bottom:92px;width:76px;height:76px}.joystick-thumb{width:37px;height:37px;left:18.5px;top:18.5px}.actions{bottom:91px}.action-button{padding:7px}.build-item{min-height:48px}.build-caption,.build-footnote{display:none}.panel{max-height:calc(100dvh - 110px);bottom:84px}.welcome-card{padding:14px}.welcome-emblem{margin:8px auto}.welcome-card p{margin:7px auto}.welcome-steps{margin-bottom:8px}}
