@import"https://fonts.googleapis.com/css2?family=Rubik:wght@400;500;600;700;800&family=Silkscreen:wght@400;700&family=VT323&display=swap";:root{font-family:Rubik,system-ui,sans-serif;font-size:13px;color:var(--ink);background:#26303e;font-synthesis:none;--ink:#26221c;--muted:#6f6858;--chrome:#d6d0c0;--chrome-2:#e6e0d0;--paper:#f7f2e4;--hi:#fffdf4;--lo:#8f8875;--dk:#2f2b26;--title-a:#3f86cc;--title-b:#1c4a80;--lcd-bg:#0e1d14;--lcd:#8ff08a;--amber:#ffc65a;--gold:#f0c43c;--good:#2f8a3f;--bad:#c8402c;--blue:#2f6fb0;--bevel:inset 1px 1px 0 var(--hi),inset -1px -1px 0 var(--lo);--pressed:inset 1px 1px 0 var(--lo),inset -1px -1px 0 var(--hi);--pixel:"Silkscreen",monospace;--lcd-font:"VT323",monospace}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px dashed var(--blue);outline-offset:2px}svg{width:16px;height:16px;flex-shrink:0}button svg{pointer-events:none}[hidden]{display:none!important}h1,h2,h3,p{margin:0}kbd{font:10px var(--pixel);padding:1px 4px;background:var(--chrome-2);border:1px solid var(--lo);box-shadow:var(--bevel);color:var(--muted)}.positive{color:var(--good)}.negative{color:var(--bad)}.muted{color:var(--muted)}.small-copy{font-size:11.5px;line-height:1.55;margin-top:10px}#app{height:100dvh;min-height:560px;display:flex;flex-direction:column}.window{background:var(--chrome);border:1px solid var(--dk);box-shadow:var(--bevel)}.title-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;background:linear-gradient(180deg,var(--title-a),var(--title-b));color:#fff;font:700 10px var(--pixel);letter-spacing:.4px;padding:5px 8px;text-shadow:1px 1px 0 #0b2546;border-bottom:1px solid var(--dk);flex-shrink:0}.title-bar>span{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.title-bar svg{width:12px;height:12px}.title-bar button{color:#fff;display:grid;place-items:center;width:18px;height:16px;background:var(--chrome);color:var(--ink);border:1px solid var(--dk);box-shadow:var(--bevel);font:700 11px var(--pixel);text-shadow:none}.title-bar button svg{width:10px;height:10px}.title-bar.small{font-size:9px;padding:3px 6px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;padding:5px 11px;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel);font-weight:600;font-size:12px;white-space:nowrap}.button:hover:not(:disabled){background:#f2ecdc}.button:active:not(:disabled),.button.pressed{box-shadow:var(--pressed);transform:translateY(1px)}.button svg{width:14px;height:14px}.button.primary{background:var(--gold);font-weight:700}.button.primary:hover:not(:disabled){background:#f6d25a}.button.danger{color:var(--bad)}.full{width:100%}.icon-button{width:30px;height:30px;display:inline-grid;place-items:center;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel)}.icon-button:active,.icon-button.active{box-shadow:var(--pressed)}.text-button{display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-size:12px;font-weight:600;padding:7px 0}.text-button:hover:not(:disabled){text-decoration:underline}.text-button svg{width:13px;height:13px}.text-button.danger{color:var(--bad)}.live-dot{width:7px;height:7px;background:var(--lcd);display:inline-block;box-shadow:0 0 6px var(--lcd);flex-shrink:0}.section-label{display:flex;align-items:center;gap:6px;font:700 9px var(--pixel);color:var(--muted);letter-spacing:.4px;margin:16px 0 8px}.section-label svg{width:12px;height:12px}.topbar{height:66px;flex-shrink:0;display:flex;align-items:center;gap:16px;padding:0 14px;background:linear-gradient(180deg,#ebe5d6,#cec7b5);border-bottom:2px solid var(--dk);box-shadow:inset 0 1px 0 var(--hi);z-index:5}.brand{display:flex;align-items:center;gap:10px;text-align:left;flex-shrink:0}.brand-mark{width:42px;height:42px;display:grid;place-items:center;background:linear-gradient(180deg,#5ab0e8,#2f6fb0);border:1px solid var(--dk);box-shadow:var(--bevel)}.brand-mark svg{width:32px;height:32px}.brand strong{display:block;font:700 17px var(--pixel);letter-spacing:-.5px;color:var(--dk);text-shadow:1px 1px 0 var(--hi)}.brand small{display:block;font:400 8px var(--pixel);color:var(--muted);margin-top:1px}.brand:hover strong{color:var(--blue)}.hud{display:flex;align-items:center;gap:10px;margin:auto;min-width:0}.lcd{background:var(--lcd-bg);border:1px solid var(--dk);box-shadow:inset 2px 2px #000,inset -1px -1px #3a4a40,0 1px 0 var(--hi);padding:3px 10px 4px;min-width:138px;color:var(--lcd);font-family:var(--lcd-font);line-height:1;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;text-shadow:0 0 6px #8ff08a66}.lcd small{font:400 8px var(--pixel);color:#5fae66;grid-column:1/-1;letter-spacing:.5px;margin-bottom:1px}.lcd strong{font-size:27px;font-weight:400;white-space:nowrap}.lcd strong.negative{color:#ff7a5a}.lcd em{font-style:normal;font-size:15px;align-self:end;white-space:nowrap;padding-bottom:2px}.lcd em.positive{color:var(--lcd)}.lcd em.negative{color:#ff7a5a}.lcd.amber{color:var(--amber);text-shadow:0 0 6px #ffc65a66;min-width:150px}.lcd.amber small{color:#c4943c}.hud-stat{display:flex;align-items:center;gap:7px;padding:0 4px}.hud-stat>svg{width:20px;height:20px;color:var(--blue)}.hud-stat small{display:block;font:400 8px var(--pixel);color:var(--muted)}.hud-stat strong{display:block;font-size:20px;font-weight:700;line-height:1.05}.hud-stars{display:flex;flex-direction:column;align-items:flex-start;padding:3px 8px;border:1px solid transparent}.hud-stars:hover{border-color:var(--lo);box-shadow:var(--bevel)}.hud-stars small{font:400 8px var(--pixel);color:var(--muted)}#star-row,.tower-rating>span,.celebration-stars,.star-title{color:var(--gold);font-size:19px;letter-spacing:1px;text-shadow:1px 1px 0 var(--dk),-1px 0 0 var(--dk),0 -1px 0 var(--dk),1px 0 0 var(--dk);line-height:1.1}.dim{color:#b5ad98!important}.demand{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 6px;background:var(--lcd-bg);border:1px solid var(--dk);box-shadow:inset 2px 2px #000,0 1px 0 var(--hi)}.demand-bars{display:flex;gap:4px;height:34px}.demand-bars>span{position:relative;width:11px;height:100%;background:#1c2e22;border:1px solid #33463a}.demand-bars>span:after{content:"";position:absolute;left:-2px;right:-2px;top:50%;height:1px;background:#6a7d6f}.demand-bars i{position:absolute;left:0;right:0;transition:height .6s}.demand-bars [data-demand=living] i.up{background:#62e06a}.demand-bars [data-demand=office] i.up{background:#5ab0e8}.demand-bars [data-demand=retail] i.up{background:var(--gold)}.demand-bars i.down{background:#ff6a4a}.demand-labels{display:flex;gap:4px}.demand-labels b{width:11px;text-align:center;font:400 8px var(--pixel);color:#8fbf96}.header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.game-layout{flex:1;min-height:0;display:grid;grid-template-columns:262px minmax(300px,1fr) 292px;background:var(--dk);gap:0}.build-panel{display:flex;flex-direction:column;min-height:0;z-index:2}.build-panel .title-bar #catalog-count{font-size:8px;opacity:.8}.categories{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:8px 8px 6px}.category{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 5px;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel);font:400 8px var(--pixel);color:var(--ink)}.category svg{width:17px;height:17px;color:var(--blue)}.category:hover{background:#f2ecdc}.category.active{background:var(--blue);color:#fff;box-shadow:var(--pressed)}.category.active svg{color:var(--gold)}.search{display:flex;align-items:center;gap:6px;margin:2px 8px 8px;height:30px;padding:0 8px;background:var(--paper);border:1px solid var(--dk);box-shadow:var(--pressed)}.search svg{width:14px;height:14px;color:var(--muted)}.search input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:12px}.catalog{flex:1;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:max-content;align-content:start;gap:7px;padding:2px 8px 10px;scrollbar-width:thin;scrollbar-color:var(--lo) var(--chrome-2)}.room-card{position:relative;display:flex;flex-direction:column;text-align:left;background:var(--paper);border:1px solid var(--dk);box-shadow:var(--bevel);padding:0 0 6px;min-width:0;transition:transform .12s}.room-card:hover{transform:translateY(-2px);box-shadow:var(--bevel),0 3px 0 var(--dk)}.room-card.selected{outline:3px solid var(--gold);outline-offset:-1px;background:#fff7d6}.room-art{position:relative;height:66px;overflow:hidden;background:linear-gradient(180deg,#8ccdf0,#d6f0f8 70%,#cfc8b6 70%);border-bottom:1px solid var(--dk);display:flex;align-items:flex-end;justify-content:center;margin-bottom:5px}.room-art canvas{width:100%;height:auto;image-rendering:auto}.room-name{font-size:11.5px;font-weight:600;padding:0 6px;line-height:1.2;min-height:28px;display:flex;align-items:center}.room-price{display:flex;justify-content:space-between;align-items:baseline;gap:4px;padding:0 6px}.room-price b{font:400 15px var(--lcd-font);color:var(--dk)}.room-price small{font-size:9.5px;color:var(--good);font-weight:600;white-space:nowrap}.room-card.broke .room-price b{color:var(--bad)}.room-card.locked .room-art canvas{filter:grayscale(1) brightness(.8)}.room-card.locked .room-name{color:var(--muted)}.lock-tag{position:absolute;top:4px;right:4px;display:flex;align-items:center;gap:3px;background:var(--dk);color:var(--gold);font:400 9px var(--pixel);padding:2px 5px}.lock-tag svg{width:10px;height:10px}.empty-state{grid-column:1/-1;padding:16px 4px;color:var(--muted);font-size:12px}.build-bottom{display:flex;gap:4px;padding:7px 8px;border-top:1px solid var(--lo);box-shadow:inset 0 1px 0 var(--hi)}.tool-button{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 6px;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel);font-size:11.5px;font-weight:600}.tool-button svg{width:15px;height:15px}.tool-button kbd{font-size:8px;padding:0 3px}.tool-button.small{flex:0 0 36px}.tool-button.active{background:var(--blue);color:#fff;box-shadow:var(--pressed)}.tool-button.active kbd{background:#1c4a80;color:#fff;border-color:#0b2546}.world-panel{position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;background:#3a92da;container-type:inline-size;border-left:1px solid var(--dk);border-right:1px solid var(--dk)}#game-canvas{position:absolute;inset:0}#game-canvas canvas{display:block;width:100%;height:100%;touch-action:none}.world-panel[data-tool]:not([data-tool=inspect]) #game-canvas canvas{cursor:crosshair}.world-panel[data-tool=bulldoze] #game-canvas canvas{cursor:not-allowed}.paused .world-panel:after{content:"PAUSED";position:absolute;top:12px;left:50%;transform:translate(-50%);font:700 13px var(--pixel);color:var(--gold);background:var(--dk);padding:4px 12px;border:1px solid var(--gold);animation:blink 1.2s steps(2) infinite;pointer-events:none}@keyframes blink{50%{opacity:.35}}.goal-card{position:absolute;top:12px;left:12px;width:236px;background:var(--chrome);border:1px solid var(--dk);box-shadow:var(--bevel),3px 3px #0003}.goal-card strong{display:block;font-size:14px;font-weight:700;padding:8px 10px 2px}.goal-card p{font-size:11.5px;color:var(--muted);padding:0 10px;line-height:1.4}.progress{margin:8px 10px 5px;height:10px;background:var(--lcd-bg);border:1px solid var(--dk);box-shadow:inset 1px 1px #000}.progress span{display:block;height:100%;background:repeating-linear-gradient(-45deg,var(--gold) 0 6px,#e0a82c 6px 12px);transition:width .5s;animation:stripes 1s linear infinite;background-size:17px 100%}@keyframes stripes{to{background-position:17px 0}}.goal-card small{display:flex;justify-content:space-between;align-items:center;padding:0 10px 8px;font:400 15px var(--lcd-font);color:var(--dk)}.goal-card small b{display:flex;align-items:center;gap:4px;font-weight:400;color:var(--good)}.goal-card small svg{width:13px;height:13px}.world-top-actions{position:absolute;top:12px;right:12px;display:flex;gap:4px}.world-icon{display:flex;align-items:center;justify-content:center;gap:4px;min-width:32px;min-height:32px;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel),2px 2px #0003;color:var(--ink);font:400 8px var(--pixel)}.world-icon svg{width:16px;height:16px}.world-icon:hover{background:#f2ecdc}.world-icon.active{background:var(--blue);color:#fff;box-shadow:var(--pressed)}.view-tools{position:absolute;right:12px;top:56px;display:flex;flex-direction:column;gap:3px}.view-tools>span{height:6px}.view-tools .world-icon{width:38px;flex-direction:column;gap:2px;padding:5px 0}.map-block{position:absolute;right:12px;bottom:12px;background:var(--chrome);border:1px solid var(--dk);box-shadow:var(--bevel),3px 3px #0003;padding:0 0 4px}.map-block canvas{display:block;width:136px;height:88px;margin:4px 4px 3px;border:1px solid var(--dk);cursor:crosshair;image-rendering:pixelated}.map-block>div:last-child{display:flex;justify-content:space-between;padding:0 6px}.map-block button{display:flex;align-items:center;gap:3px;font:400 8px var(--pixel)}.map-block button svg{width:11px;height:11px}.map-block button:hover{color:var(--blue)}.world-bottom{position:absolute;left:12px;bottom:12px;display:flex}.overlay-tools{display:flex;align-items:center;gap:3px;padding:4px;background:var(--chrome);border:1px solid var(--dk);box-shadow:var(--bevel),3px 3px #0003}.overlay-tools>span{font:400 8px var(--pixel);color:var(--muted);margin:0 5px}.overlay-tools button{width:30px;height:28px;display:grid;place-items:center;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel)}.overlay-tools button.active{background:var(--blue);color:#fff;box-shadow:var(--pressed)}.overlay-tools svg{width:15px;height:15px}.build-hint{position:absolute;left:12px;bottom:60px;display:flex;align-items:center;gap:10px;padding:7px 12px 7px 7px;background:var(--chrome);border:1px solid var(--dk);box-shadow:var(--bevel),3px 3px #0003;max-width:calc(100% - 190px)}.hint-icon{width:34px;height:34px;display:grid;place-items:center;background:var(--room-color);border:1px solid var(--dk);box-shadow:var(--bevel)}.hint-icon svg{width:18px;height:18px}.build-hint strong{display:block;font-size:13px}.build-hint small{display:block;font-size:10.5px;color:var(--muted);margin-top:2px}.build-hint b{font:400 20px var(--lcd-font);margin-left:6px;white-space:nowrap}.tier-picker{display:flex;gap:2px;margin-top:5px}.tier-chip{display:flex;flex-direction:column;align-items:center;min-width:46px;padding:2px 4px 3px;background:var(--chrome-2);border:1px solid var(--dk);border-top:3px solid var(--tier);box-shadow:var(--bevel);font:400 8px var(--pixel);color:var(--ink);cursor:pointer}.tier-chip i{font-style:normal;font:400 13px/1 var(--lcd-font);color:var(--good);letter-spacing:-1px}.tier-chip.active{background:var(--dk);color:var(--gold);box-shadow:var(--pressed)}.tier-chip.active i{color:var(--gold)}.tier-chip.locked{opacity:.5}.tier-chip:disabled{cursor:default}.tier-chip.t4{background-image:linear-gradient(135deg,#0000 40%,#fff6,#0000 60%)}.tier-tag{position:absolute;top:4px;left:4px;display:flex;align-items:center;gap:3px;background:#1d1a16cc;color:var(--gold);font:400 8px var(--pixel);padding:2px 5px}.tier-tag svg{width:9px;height:9px}.fit-out{margin:8px 0 10px}.fit-out .tier-picker{flex-wrap:wrap}.fit-out .tier-chip{flex:1;min-width:0}.fit-out .small-copy{margin-top:5px}.cursor-tip{position:absolute;z-index:6;pointer-events:none;max-width:260px;background:#1d1a16ee;color:#f6efd6;border:1px solid #000;border-left:4px solid #8a8476;padding:6px 9px 7px;box-shadow:3px 3px #0004}.cursor-tip.ok{border-left-color:#62e06a}.cursor-tip.bad{background:#1d1a16;color:#f6efd6;border-left-color:#ff6a4a}.cursor-tip strong{display:block;font:700 9px var(--pixel);letter-spacing:.3px;color:#fff}.cursor-tip span{display:flex;align-items:flex-start;gap:5px;font-size:11.5px;line-height:1.35;margin-top:3px;color:#d8d0b8}.cursor-tip.bad span{color:#ffb8a8}.cursor-tip.ok span{color:#b8f0b0}.cursor-tip span svg{width:13px;height:13px;margin-top:1px}.cursor-tip b{display:block;font:400 18px var(--lcd-font);color:var(--gold);margin-top:2px}.tutorial{position:absolute;left:12px;top:12px;width:270px;background:var(--chrome);border:1px solid var(--dk);box-shadow:var(--bevel),3px 3px #0003;z-index:3}.world-panel:has(.tutorial:not([hidden])) .goal-card{display:none}.tutorial h3{font-size:15px;padding:9px 11px 3px}.tutorial p{font-size:12px;line-height:1.5;color:var(--muted);padding:0 11px 9px}.tutorial .button{margin:0 11px 11px}.celebration{position:absolute;inset:0;z-index:7;pointer-events:none;display:grid;place-items:center;overflow:hidden}.celebration-card{background:var(--chrome);border:2px solid var(--dk);box-shadow:var(--bevel),6px 6px #0005;padding:18px 28px;text-align:center;animation:pop .5s cubic-bezier(.2,1.6,.4,1)}.celebration-card strong{display:block;font:700 22px var(--pixel);margin:6px 0}.celebration-card p{font-size:13px;color:var(--muted)}.celebration-stars{font-size:30px!important}.celebration i{position:absolute;top:-12px;left:var(--x);width:8px;height:12px;background:var(--c);animation:confetti 2.6s var(--d) ease-in forwards}@keyframes pop{0%{transform:scale(.3);opacity:0}}@keyframes confetti{to{transform:translateY(110cqh) rotate(720deg)}}.inspector-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden;z-index:2}#inspector{padding:10px 12px 6px;overflow-y:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:var(--lo) var(--chrome-2)}#inspector h2{font-size:20px;font-weight:700;letter-spacing:-.3px;line-height:1.2}.tower-rating{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.tower-rating small{font-size:11px;color:var(--muted)}.star-next{margin-top:8px;padding:2px 9px 7px;background:var(--paper);border:1px solid var(--lo);box-shadow:var(--pressed)}.star-next .section-label{margin:7px 0 4px}.req{display:flex;align-items:center;gap:6px;font-size:12px;padding:2px 0;color:var(--muted)}.req svg{width:13px;height:13px}.req b{margin-left:auto;font:400 15px var(--lcd-font)}.req.met{color:var(--good)}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.overview-grid>div{background:var(--lcd-bg);border:1px solid var(--dk);box-shadow:inset 2px 2px #000;padding:5px 9px;color:var(--lcd)}.overview-grid strong{display:block;font:400 30px var(--lcd-font);line-height:1}.overview-grid strong small{font-size:16px;margin-left:3px}.overview-grid span{font:400 8px var(--pixel);color:#5fae66}.meter{margin-bottom:9px}.meter>div{display:flex;justify-content:space-between;font-size:12px;margin-bottom:3px}.meter b{font:400 15px var(--lcd-font)}.meter-track{display:block;height:9px;background:var(--lcd-bg);border:1px solid var(--dk);box-shadow:inset 1px 1px #000}.meter-track>span{display:block;height:100%;background:linear-gradient(180deg,#8ff08a,#3fae4a);transition:width .5s}.meter.low .meter-track>span{background:linear-gradient(180deg,#ff9a7a,#d0503c)}.power-meter .meter-track>span{background:linear-gradient(180deg,#ffe07a,#e0a82c)}.power-meter.over .meter-track>span{background:linear-gradient(180deg,#ff9a7a,#d0503c)}.quick-status{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:5px 0}.quick-status span{display:flex;align-items:center;gap:6px;color:var(--muted)}.quick-status svg{width:13px;height:13px}.quick-status b{font:400 16px var(--lcd-font)}.wealth-row{display:grid;grid-template-columns:58px 1fr 44px;align-items:center;gap:8px;font-size:12px;margin:5px 0}.wealth-track{height:9px;background:var(--lcd-bg);border:1px solid var(--dk);position:relative}.wealth-track i{position:absolute;left:0;top:0;bottom:0;background:var(--gold)}.wealth-row.over .wealth-track i{background:var(--bad)}.wealth-row b{text-align:right;font:400 16px var(--lcd-font)}.demand-row{display:grid;grid-template-columns:58px 1fr 34px;align-items:center;gap:8px;font-size:12px;margin:5px 0}.demand-track{position:relative;height:10px;background:var(--lcd-bg);border:1px solid var(--dk)}.demand-track:after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--lo)}.demand-track i{position:absolute;top:0;bottom:0}.demand-track i.up{background:#62e06a}.demand-track i.down{background:#ff6a4a}.demand-row b{text-align:right;font:400 16px var(--lcd-font)}.ledger{margin-top:12px;padding:7px 10px 2px;background:var(--paper);border:1px solid var(--lo);box-shadow:var(--pressed)}.ledger>div{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;margin:3px 0}.ledger b{font:400 17px var(--lcd-font)}.ledger-total{border-top:1px dashed var(--lo);padding-top:4px;font-weight:600}.rent-control{margin-top:12px}.rent-control label{display:flex;justify-content:space-between;font-size:12px}.rent-control input,.settings-row input[type=range]{width:100%;accent-color:var(--blue);margin:7px 0 2px}.rent-control>div{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.plot-controls{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;padding:10px;background:var(--paper);border:1px solid var(--lo)}.plot-controls>label{font-size:11px;font-weight:700;letter-spacing:1px}.plot-controls p{margin:0;line-height:1.4}.plot-controls .button{white-space:normal}.plot-controls .button:focus-visible{outline:2px solid var(--dk);outline-offset:2px}.plot-controls select{padding:6px;font-size:12px;background:var(--paper);border:1px solid var(--dk);box-shadow:var(--pressed)}.room-hero{background:linear-gradient(180deg,#8ccdf0,#d6f0f8);border:1px solid var(--dk);box-shadow:var(--pressed);height:96px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:9px;overflow:hidden}.room-hero canvas{width:100%;height:auto}.room-description{font-size:12px;line-height:1.5;color:var(--muted);margin:4px 0 9px}.style-row{display:flex;align-items:center;gap:8px;margin:0 0 11px;padding:6px 8px;background:var(--paper);border:1px solid var(--lo);box-shadow:var(--pressed)}.style-row>div{flex:1;min-width:0}.style-row small{display:block;font:400 8px var(--pixel);color:var(--muted)}.style-row strong{display:block;font-size:12.5px;margin:1px 0}.style-row p{font-size:11px;line-height:1.4;color:var(--muted)}.style-row .button{flex:none;font-size:11px;padding:5px 7px;white-space:nowrap}.style-row .button svg{width:13px;height:13px}.connection-badges{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:11px}.connection-badges>span{display:flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:3px 6px;border:1px solid var(--dk)}.connection-badges svg{width:12px;height:12px}.good{background:#d4f0c8;color:#1f6a2c}.bad{background:#ffd8cc;color:#9a2c1c}.appeal{margin:10px 0;padding:6px 9px;background:var(--paper);border:1px solid var(--lo);box-shadow:var(--pressed)}.appeal-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:12px;margin-bottom:3px}.appeal-head span{display:flex;align-items:center;gap:5px}.appeal-head svg{width:13px;height:13px;color:var(--bad)}.appeal-head b{font:400 18px var(--lcd-font)}.appeal-row{display:flex;justify-content:space-between;font-size:11.5px;padding:1px 0}.appeal-row b{font:400 15px var(--lcd-font)}.detail-list{margin:8px 0}.detail-list>div{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:3px 0;border-bottom:1px dotted var(--lo)}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;text-align:right;font-weight:600}.reactor-console{margin:12px 0;padding:11px;background:#172e3a;border:2px solid #405b66;box-shadow:inset 0 0 0 1px #10212c;color:#c1d9d7}.reactor-heading{display:flex;justify-content:space-between;align-items:center;gap:5px;font:700 8px var(--pixel)}.reactor-heading>span{display:flex;align-items:center;gap:5px;color:#9dbdbd}.reactor-heading svg{width:13px;height:13px;color:#70e2db}.reactor-heading>b{font:700 8px var(--pixel);color:#91e4ae;white-space:nowrap}.reactor-warning .reactor-heading>b{color:#ffb080}.reactor-output{display:flex;align-items:center;gap:10px;margin:13px 0 10px}.reactor-output>strong{font:700 28px var(--pixel);letter-spacing:-1px;color:#8cece3;text-shadow:0 0 14px #4ad4d533}.reactor-output>span{font:700 8px var(--pixel);line-height:1.6;color:#bed6d1}.reactor-output>span>span{display:block;font:10px Rubik,sans-serif;color:#8dabab}.reactor-heat>span{display:flex;justify-content:space-between;font:700 8px var(--pixel);color:#a6c3c0}.reactor-heat>div{position:relative;height:7px;background:#0b202b;margin-top:6px;border:1px solid #425d65}.reactor-heat i{display:block;height:100%;max-width:100%}.reactor-heat em{position:absolute;left:90%;top:-3px;width:1px;height:11px;background:#ffa67d}.reactor-cooling{display:flex;align-items:center;justify-content:space-between;margin:9px 0;font-size:10px}.reactor-cooling>span{display:flex;align-items:center;gap:5px}.reactor-cooling svg{width:12px;height:12px;color:#7dd9e4}.reactor-modes{display:flex;gap:4px}.reactor-modes button{flex:1;min-width:0;padding:7px 3px;border:1px solid #56747a;background:#253f4b;font-size:10px;color:#d6e8df}.reactor-modes button:hover{background:#365664}.reactor-modes button[aria-pressed=true]{background:#37635f;border-color:#7cddd0;color:#c9fff2;opacity:1}.reactor-modes button:focus-visible{outline:2px solid #e4c46b;outline-offset:2px}.reactor-console p{font-size:11px;line-height:1.5;margin:9px 0 5px;color:#c4dcd4}.reactor-console small{display:block;font-size:9px;line-height:1.5;color:#93afaf}.reactor-warning{border-color:#b27c52}.lift-options{margin:10px 0;padding:8px 9px;background:var(--paper);border:1px solid var(--lo);box-shadow:var(--pressed)}.lift-options>b{display:flex;align-items:center;gap:5px;font-size:12px}.lift-options p{font-size:11px;color:var(--muted);margin:3px 0 7px}.lift-options label{display:block;font-size:11px;color:var(--muted);margin-top:8px}.lift-options input{display:block;width:100%;margin-top:4px;padding:5px;background:#fff;border:1px solid var(--dk);box-shadow:var(--pressed)}.person-hero{display:flex;gap:11px;align-items:center}.person-hero canvas{width:54px;height:99px;background:linear-gradient(180deg,#8ccdf0,#d6f0f8);border:1px solid var(--dk);box-shadow:var(--pressed);image-rendering:pixelated;padding:0 4px;flex-shrink:0}.person-hero p{font-size:12px;margin-top:2px}.mood-face{font-size:24px;display:block;margin-top:4px}.quote{font-size:12.5px;line-height:1.5;font-style:italic;background:#fffbe8;border:1px solid var(--lo);border-left:4px solid var(--gold);padding:8px 10px;margin:10px 0}.activity-section{border-top:1px solid var(--lo);box-shadow:inset 0 1px 0 var(--hi);padding:0 12px 6px;max-height:34%;overflow-y:auto;flex-shrink:0}.activity-section .section-label{margin:9px 0 6px}.notice{position:relative;margin-bottom:5px}.notice>button:first-child{display:flex;gap:7px;align-items:flex-start;text-align:left;width:100%;padding:5px 18px 5px 5px;background:var(--paper);border:1px solid var(--lo)}.notice>button:first-child:hover{background:#fffbe8}.notice>button>span{width:20px;height:20px;display:grid;place-items:center;background:#d4e8f8;color:var(--blue);border:1px solid var(--dk);flex-shrink:0}.notice.warning>button>span{background:#ffe2b8;color:#a8581c}.notice.success>button>span{background:#d4f0c8;color:var(--good)}.notice svg{width:12px;height:12px}.notice p{font-size:11.5px;line-height:1.4}.notice .dismiss{position:absolute;right:5px;top:4px;font-size:14px;color:var(--muted)}.inspector-footer{display:flex;justify-content:space-between;padding:6px 10px;border-top:1px solid var(--lo);box-shadow:inset 0 1px 0 var(--hi)}.inspector-footer button{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:4px 6px}.inspector-footer button:hover{color:var(--blue)}.inspector-footer svg{width:14px;height:14px}.bottom-bar{height:42px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 10px;background:linear-gradient(180deg,#ebe5d6,#cec7b5);border-top:2px solid var(--dk);box-shadow:inset 0 1px 0 var(--hi);z-index:5}.time-controls{display:flex;align-items:center;gap:6px;flex-shrink:0}#pause.active{background:var(--gold)}.speed-group{display:flex;gap:2px}.speed-group button{height:30px;min-width:36px;padding:0 6px;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel);font-size:13px;font-weight:700;color:var(--dk)}.speed-group button:hover{background:var(--paper)}.speed-group button.active{background:var(--blue);color:#fff;box-shadow:var(--pressed)}.speed-readout{width:166px;padding:3px 7px;background:var(--lcd-bg);color:var(--lcd);border:1px solid var(--dk);box-shadow:inset 1px 1px #000;white-space:nowrap}.speed-readout>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.speed-readout strong{font-size:10px;line-height:13px;letter-spacing:.3px}.speed-readout small{display:block;font-size:10px;line-height:12px;color:#b8c7b5;font-variant-numeric:tabular-nums}.speed-meter{display:flex;align-items:flex-end;gap:2px;height:12px}.speed-meter i{width:5px;height:5px;background:#304134;border:1px solid #52604b}.speed-meter i:nth-child(2){height:7px}.speed-meter i:nth-child(3){height:9px}.speed-meter i:nth-child(4){height:12px}.speed-meter i.lit{background:currentColor;border-color:currentColor}.speed-readout[data-rate="2"],.speed-readout[data-rate="4"]{color:var(--amber)}.speed-readout[data-rate="0"]{color:var(--amber);border-color:#a87418}.ticker{flex:1;min-width:0;display:flex;align-items:stretch;height:28px;background:var(--lcd-bg);border:1px solid var(--dk);box-shadow:inset 2px 2px #000}.ticker-label{display:flex;align-items:center;gap:5px;padding:0 9px;background:var(--bad);color:#fff;font:700 9px var(--pixel);white-space:nowrap;border-right:1px solid #000}.ticker-label svg{width:13px;height:13px}.ticker-track{position:relative;flex:1;overflow:hidden;container-type:inline-size}#ticker-text{position:absolute;top:50%;white-space:nowrap;font:400 19px var(--lcd-font);color:var(--amber);text-shadow:0 0 6px #ffc65a66;transform:translate(100cqw,-50%)}@keyframes ticker{0%{transform:translate(100cqw,-50%)}to{transform:translate(-100%,-50%)}}.bottom-right{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:11px}#floor-jump{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:5px 9px;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel)}#floor-jump svg{width:14px;height:14px}.toast{position:fixed;left:50%;bottom:56px;transform:translate(-50%,14px);z-index:40;max-width:min(520px,92vw);background:#1d2a4a;color:#fff;border:2px solid var(--gold);box-shadow:4px 4px #0006;padding:10px 16px;font-size:13px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%)}.toast.error{background:#5a1e14;border-color:#ff6a4a}.modal-backdrop{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px;background:#0b1026a8;background-image:radial-gradient(#ffffff10 1px,transparent 1px);background-size:4px 4px}.modal{width:540px;max-width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--bevel),8px 8px #0007}#modal-content{padding:16px 18px 18px;overflow-y:auto}.modal h2{font-size:24px;font-weight:800;letter-spacing:-.5px;margin-bottom:4px}.modal-intro{font-size:12.5px;color:var(--muted);line-height:1.5;margin-bottom:14px}.modal-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.new-game-options{display:flex;flex-direction:column;gap:7px}.new-game-options>button{display:flex;align-items:center;gap:12px;text-align:left;padding:9px;background:var(--paper);border:1px solid var(--dk);box-shadow:var(--bevel)}.new-game-options>button:hover{background:#fffbe8;transform:translate(2px)}.new-game-options>button>svg{width:18px;height:18px;margin-left:auto;color:var(--muted)}.scenario{width:46px;height:46px;display:grid;place-items:center;background:var(--c);border:1px solid var(--dk);box-shadow:var(--bevel);flex-shrink:0}.scenario svg{width:24px;height:24px;color:var(--dk)}.new-game-options strong{display:block;font-size:14.5px}.new-game-options small{display:block;font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px}.save-slots{display:flex;flex-direction:column;gap:6px}.save-slot{display:flex;align-items:center;gap:10px;padding:8px;background:var(--paper);border:1px solid var(--dk);box-shadow:var(--bevel)}.save-slot>span svg{width:22px;height:22px;color:var(--blue)}.save-slot>div{flex:1}.save-slot strong{display:block;font-size:13px}.save-slot small{font-size:11.5px;color:var(--muted)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px dotted var(--lo);font-size:13px}.settings-row label,.settings-row>span:first-child{flex:1}.settings-row small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}.settings-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue)}.settings-row input[type=range]{max-width:180px}.row-actions{display:flex;gap:5px}.weather-controls{display:flex;flex-wrap:wrap;gap:5px;margin-top:14px}.weather-controls h3{width:100%;font-size:14px;margin-bottom:3px}.weather-controls .button{text-transform:capitalize}.weather-alert{position:absolute;right:55px;top:58px;max-width:calc(100% - 67px);padding:7px 11px;border:1px solid #7ca7a0;background:#122b30ed;color:#c2e7de;box-shadow:2px 3px #0004;font:16px var(--lcd-font);z-index:3;text-align:left}.weather-alert.severe{border-color:#d2aa71;color:#ffe3a4;background:#322b23ed}.focus-mode .weather-alert{display:none}#weather-text{display:block;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#weather-text:hover{text-decoration:underline}.weather-display{display:flex;align-items:center;gap:18px;background:#102a32;color:var(--weather-color);padding:20px 18px;border:1px solid #081e25;box-shadow:inset 0 0 35px #0004}.weather-display small{font:8px var(--pixel);letter-spacing:1px}.weather-display h2{margin:5px 0;color:#edf9ef;font-size:27px}.weather-display p{font:16px var(--lcd-font);color:#b0cbcb}.weather-radar{width:76px;height:76px;flex-shrink:0;border:1px solid #608d864d;border-radius:50%;position:relative;display:grid;place-items:center;overflow:hidden;background:repeating-radial-gradient(circle,transparent 0 12px,#81aeb52b 13px 14px),linear-gradient(90deg,transparent 49%,#81aeb52b 50%,transparent 51%),linear-gradient(0deg,transparent 49%,#81aeb52b 50%,transparent 51%)}.weather-radar i{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 70%,#9af4de44 98%,#b6ffe9aa);animation:weather-sweep 8s linear infinite}.weather-radar span{font-size:38px;z-index:1;text-shadow:0 0 16px currentColor}@keyframes weather-sweep{to{transform:rotate(360deg)}}.paused .weather-radar i,.reduced-motion .weather-radar i{animation-play-state:paused}.weather-strength{height:4px;background:#27454a}.weather-strength span{display:block;height:100%;background:#7ed3b8;transition:width 1s linear}.weather-forecast{font:16px var(--lcd-font);background:#dfddd0;padding:9px 11px;border-bottom:1px solid var(--lo);color:#366566}.weather-summary{font-size:13px;line-height:1.6;margin:14px 0 12px}.weather-advice{border-left:3px solid #4d7e6e;background:#e8ecdf;padding:11px 13px}.weather-advice b{font:8px var(--pixel);color:#42685b}.weather-advice p{margin-top:5px;line-height:1.5;font-size:12px}.weather-recovery,.weather-preparation,.weather-lab{margin-top:20px}.weather-recovery h3,.weather-preparation h3,.weather-lab h3{font-size:15px;margin-bottom:6px}.weather-recovery>p,.weather-lab>p{font-size:11.5px;line-height:1.5;color:var(--muted);margin-bottom:10px}.weather-recovery-row{padding:12px 0;border-bottom:1px solid #b3ab98}.weather-recovery-row strong{font-size:12px}.weather-recovery-row small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.weather-recovery-row>div:last-child{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.weather-small{font-size:11px;line-height:1.6;color:var(--muted);margin-top:10px}.weather-preparation>div{display:flex;flex-wrap:wrap;gap:6px}.weather-preparation .button{font-size:11px}.weather-event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.weather-event-grid button{padding:13px 7px;background:#162e34;border:1px solid #315058;box-shadow:inset 0 0 25px #0002;display:flex;flex-direction:column;align-items:center;gap:5px;color:#e1eae4;transition:background .15s}.weather-event-grid button:hover{background:#26474d}.weather-event-grid button[aria-pressed=true]{outline:2px solid #5cb69b;outline-offset:-2px;background:#23433f}.weather-event-grid button>span{font-size:29px;color:var(--weather-color);line-height:1.15;text-shadow:0 0 18px #ffffff28}.weather-event-grid strong{font-size:11px}.weather-event-grid small{font:7px var(--pixel);color:#8da7a9;margin-top:3px}.weather-room-note{background:#e8e8d9;border-left:3px solid #4e8b9d;padding:9px;margin:10px 0}.weather-room-note p{font-size:11px;line-height:1.5;margin:5px 0}.weather-room-note>b{font-size:12px}@media(max-width:650px){.weather-alert{left:8px;right:auto;top:48px;font-size:13px;padding:5px 7px}.weather-display{padding:13px 10px;gap:12px}.weather-display h2{font-size:22px}.weather-radar{width:58px;height:58px}.weather-event-grid{grid-template-columns:repeat(2,1fr)}.weather-recovery-row .button{font-size:11px}}.shortcut-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-top:14px}.shortcut-list>span{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}.modal form label{display:block;font-size:12px;color:var(--muted)}.modal form input{display:block;width:100%;margin:6px 0 14px;padding:9px;font-size:15px;background:#fff;border:1px solid var(--dk);box-shadow:var(--pressed)}pre{white-space:pre-wrap;font-size:11px;color:var(--bad)}.budget-section .section-label{margin-top:4px}.budget-row{display:grid;grid-template-columns:96px 1fr 90px;align-items:center;gap:10px;font-size:12.5px;margin:3px 0}.budget-bar{height:10px;background:var(--lcd-bg);border:1px solid var(--dk)}.budget-bar i{display:block;height:100%}.budget-bar i.positive{background:#62e06a}.budget-bar i.negative{background:#ff6a4a}.budget-row b{text-align:right;font:400 17px var(--lcd-font)}.budget-total{display:flex;justify-content:space-between;align-items:baseline;margin:10px 0 0;padding:6px 10px;background:var(--lcd-bg);color:var(--lcd);border:1px solid var(--dk);box-shadow:inset 2px 2px #000;font:400 8px var(--pixel)}.budget-total span{font:400 9px var(--pixel);color:#5fae66}.budget-total b{font:400 26px var(--lcd-font)}.budget-total b.negative{color:#ff7a5a}.chart{width:100%;height:120px;display:block;background:var(--lcd-bg);border:1px solid var(--dk);box-shadow:inset 2px 2px #000}.chart .line{fill:none;stroke:var(--amber);stroke-width:2;vector-effect:non-scaling-stroke}.chart .bar-up{fill:#3fae4a}.chart .bar-down{fill:#d0503c}.chart-legend{display:flex;gap:14px;font-size:11px;color:var(--muted);margin:5px 0 4px}.chart-legend i{display:inline-block;width:10px;height:3px;vertical-align:middle;margin-right:3px}.chart-legend i.line{background:var(--amber)}.chart-legend i.bar-up{background:#3fae4a;height:8px}.star-table{display:flex;flex-direction:column;gap:4px}.star-tier{display:grid;grid-template-columns:76px 1fr auto;gap:10px;align-items:center;padding:6px 9px;background:var(--paper);border:1px solid var(--lo);font-size:12px}.star-tier b{color:var(--gold);text-shadow:1px 1px 0 var(--dk);font-size:14px}.star-tier em{font:400 16px var(--lcd-font);font-style:normal;color:var(--good)}.star-tier.met{opacity:.55}.star-tier.met span{text-decoration:line-through}.star-tier.next{border:2px solid var(--gold);background:#fffbe8}.focus-mode .build-panel,.focus-mode .inspector-panel,.focus-mode .goal-card{display:none}.focus-mode .game-layout{grid-template-columns:1fr}@media(min-width:1700px){.game-layout{grid-template-columns:300px minmax(300px,1fr) 320px}.room-art{height:78px}}@media(max-width:1280px){.hud-stat small{display:none}.lcd{min-width:118px}.lcd strong{font-size:23px}.brand small{display:none}.hud{gap:7px}}@media(max-width:1200px){.game-layout{grid-template-columns:226px minmax(300px,1fr) 256px}.header-actions .button span,.lcd em{display:none}.lcd{min-width:0}.brand strong{font-size:14px}.room-name{font-size:10.5px}}@media(max-width:980px){.game-layout{grid-template-columns:210px minmax(300px,1fr)}.inspector-panel{position:absolute;right:58px;top:116px;width:270px;max-height:calc(100dvh - 190px);display:none;box-shadow:var(--bevel),6px 6px #0006;z-index:8}body.inspector-open .inspector-panel{display:flex}.hud-stat:nth-of-type(2),.hud-stars{display:none}.goal-card{width:200px}.goal-card p{display:none}}@container (max-width:460px){.goal-card,.map-block{display:none}.build-hint{max-width:calc(100% - 24px);bottom:60px}.overlay-tools>span{display:none}}@media(max-width:650px){.topbar{height:54px;padding:0 8px;gap:8px}.brand>span:last-child{display:none}.brand-mark{width:36px;height:36px}.hud{margin-left:0;gap:5px}.lcd.amber,.hud-stat,.demand,.lcd small,.header-actions #sound,.header-actions #budget-button{display:none}.game-layout{grid-template-columns:150px minmax(170px,1fr)}.categories{grid-template-columns:repeat(3,1fr);padding:6px}.category{padding:6px 0}.category span,.build-panel #catalog-count,.room-price small{display:none}.room-name{min-height:0;padding:2px 6px}.time-controls .speed-group button{min-width:30px}.catalog{grid-template-columns:1fr}.search kbd,.tool-button span,.tool-button kbd,.ticker-label{display:none}.bottom-right #floor-jump{font-size:0;gap:0}.inspector-panel{right:8px;top:100px;width:min(270px,calc(100vw - 16px))}.tutorial{width:calc(100% - 24px)}.modal{max-height:94vh}#modal-content{padding:12px}.shortcut-list{grid-template-columns:1fr}}@media(max-width:650px){.bottom-bar{height:auto;flex-wrap:wrap;gap:5px 8px;padding:5px 8px}.time-controls{flex-basis:100%}.speed-readout{margin-left:auto}.bottom-right{flex-shrink:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}#ticker-text{transform:translateY(-50%)}}.services-panel{position:absolute;right:12px;top:52px;width:340px;max-width:calc(100% - 24px);max-height:calc(100% - 64px);display:flex;flex-direction:column;box-shadow:var(--bevel),4px 4px #0004;z-index:5}.services-body{overflow-y:auto;padding:2px 10px 10px;scrollbar-width:thin}.services-split{justify-content:space-between}.services-split>span{display:flex;align-items:center;gap:6px}.services-split select{font:400 11px DM Sans,sans-serif;letter-spacing:0;background:#fff;border:1px solid var(--dk);box-shadow:var(--pressed);padding:2px 4px;color:var(--ink)}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.service-tile{position:relative;display:flex;gap:7px;align-items:flex-start;padding:7px 8px;background:var(--paper);border:1px solid var(--lo);box-shadow:var(--pressed)}.service-tile small{display:block;font:700 8px var(--pixel);letter-spacing:.3px;color:var(--muted)}.service-tile strong{display:block;font:400 22px var(--lcd-font);line-height:1;margin:2px 0}.service-tile p{font-size:10.5px;line-height:1.3;color:var(--muted)}.tile-icon{width:24px;height:24px;display:grid;place-items:center;flex-shrink:0;background:var(--room-color,var(--chrome-2));border:1px solid var(--dk);box-shadow:var(--bevel)}.tile-icon svg{width:14px;height:14px}.state-dot{position:absolute;right:6px;top:6px;width:9px;height:9px;border:1px solid var(--dk);background:#62e06a;box-shadow:inset 1px 1px #fff8}.service-tile.good strong{color:var(--good)}.service-tile.warn .state-dot{background:var(--gold)}.service-tile.warn strong{color:#a87418}.service-tile.bad .state-dot{background:#ff6a4a}.service-tile.bad strong{color:var(--bad)}.service-tile.bad{background:#fff0ea}.service-tile.idle .state-dot{background:#b8b2a2}.service-summary{display:flex;gap:6px;align-items:flex-start;font-size:11.5px;line-height:1.4;margin-top:6px;padding:6px 8px;border:1px solid var(--dk)}.service-summary svg{width:13px;height:13px;margin-top:1px;flex-shrink:0}.service-summary.good{background:#d4f0c8;color:#1f6a2c}.service-summary.warn{background:#fff1c4;color:#7a5410}.capacity-meter{margin:8px 0}.capacity-meter>div{gap:6px}.capacity-meter>div>b{white-space:nowrap}.capacity-meter small{display:block;font-size:10px;line-height:1.4;margin-top:3px}.capacity-meter.electricity .meter-track>span{background:linear-gradient(180deg,#ffe07a,#e0a82c)}.capacity-meter.climate .meter-track>span{background:linear-gradient(180deg,#89c9e8,#3786b8)}.capacity-meter.over .meter-track>span{background:linear-gradient(180deg,#ff9a7a,#d0503c)}.utility-explainer,.utility-weather,.utility-totals-note{font-size:11px;line-height:1.45;color:var(--muted);margin:7px 0}.utility-explainer b{color:var(--ink)}.utility-weather{padding:6px 8px;border-left:3px solid var(--blue);background:var(--paper)}.utility-weather svg{width:13px;height:13px;vertical-align:-2px}.utility-circuits{margin:10px 0;border:1px solid var(--lo);background:var(--chrome-2);padding:7px}.utility-circuits summary{cursor:pointer;font-size:11.5px;font-weight:600}.utility-circuits summary:focus-visible{outline:2px dashed var(--blue);outline-offset:2px}.utility-circuit{margin-top:7px;background:var(--paper);padding:7px;border:1px solid var(--lo)}.utility-circuit.short{border-left:3px solid var(--bad)}.circuit-heading strong,.circuit-heading>span{display:block;font-size:11px;line-height:1.4}.circuit-heading>span{font-weight:500}.utility-circuit dl{margin:6px 0}.utility-circuit dl>div{display:flex;justify-content:space-between;gap:6px;font-size:11px;line-height:1.5}.utility-circuit dd{margin:0;white-space:nowrap;font-weight:600}.utility-circuit p,.plant-utility-info>p{font-size:11px;line-height:1.45}.plant-utility-info{margin:9px 0}.utility-build{margin-top:5px}.services-panel .small-copy{margin:-4px 0 8px;font-size:11px}.services-panel .small-copy svg{width:13px;height:13px;vertical-align:-2px}.clean-job{padding:7px 8px;margin-bottom:8px;background:var(--paper);border:1px solid var(--lo);box-shadow:var(--pressed)}.clean-head{display:flex;gap:7px;align-items:center}.clean-head strong{display:block;font-size:12.5px}.clean-head small{display:block;font-size:11px;color:var(--muted)}.clean-job .progress{margin:7px 0 5px}.clean-job p{font-size:11px;color:var(--muted);margin-bottom:6px}.clean-actions{display:flex;gap:6px}.clean-actions .button{flex:1}.methods{display:grid;gap:6px;margin:8px 0}.method-card{padding:7px 8px 3px;background:var(--chrome-2);border:1px solid var(--dk);box-shadow:var(--bevel)}.method-card.chosen{background:#fff6d4;box-shadow:var(--bevel),inset 0 0 0 2px var(--gold)}.method-head{display:flex;gap:7px;align-items:center}.method-head>div{flex:1;min-width:0}.method-head strong{display:block;font-size:12.5px}.method-head small{display:block;font-size:10.5px;color:var(--muted)}.method-state{font:700 7.5px var(--pixel);padding:3px 4px;border:1px solid var(--dk)}.method-state.good{background:#62e06a}.method-state.warn{background:var(--gold)}.method-state.idle{background:var(--chrome)}.method-card ul{list-style:none;padding:0;margin:6px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:2px 8px}.method-card li{font-size:10.5px;line-height:1.3;padding-left:11px;position:relative}.method-card li.pro:before{content:"+";position:absolute;left:0;color:var(--good);font-weight:800}.method-card li.con:before{content:"−";position:absolute;left:0;color:var(--bad);font-weight:800}.method-card .text-button{font-size:11px;padding:5px 0}.method-note{font-size:10.5px;color:#a87418;margin-top:4px}.services-panel .settings-row{font-size:12.5px}.services-panel .settings-row small{display:block;font-size:10.5px;color:var(--muted)}.services-panel .rent-control input{width:100%;accent-color:var(--blue)}.services-panel .rent-control>div{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.fee-note{margin-top:10px!important}.services-link{margin:6px 0 2px}.rig-info b{display:flex;align-items:center;gap:5px}.rig-info b svg{width:13px;height:13px}@media(max-width:650px){.services-panel{position:fixed;left:8px;right:8px;width:auto;max-width:none;top:64px;max-height:calc(100dvh - 154px)}.service-grid,.method-card ul{grid-template-columns:1fr}}.street-badge{position:relative}.modebar{display:flex;align-items:center;gap:12px;flex-shrink:0;min-height:48px;padding:5px 14px;background:#ddd7c6;border-bottom:2px solid #2c2a26;z-index:5}.mode-switch{display:flex;gap:3px}.mode-switch button{padding:7px 13px;font:inherit;font-weight:700;background:#eee8d8;border:1px solid #827d70;cursor:pointer}.mode-switch button[aria-pressed=true]{background:#1d2a4a;color:#fff4cd;border-color:#1d2a4a}.mode-description{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.mode-description strong,.mode-description small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-description strong{font-size:11px}.mode-description small{font-size:10px}.mode-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mode-options button{display:flex;flex-direction:column;align-items:flex-start;white-space:normal}.mode-options small{font-size:11px;line-height:1.5;margin-top:8px}#mode-compact{display:none}.city-list{max-height:46vh;overflow:auto}#recovery-form{margin-top:20px;display:grid;gap:10px}#recovery-code{display:block;width:100%;box-sizing:border-box;margin:8px 0;font-family:monospace}.visit-banner{top:124px}@media(max-width:650px){.modebar{gap:7px;padding:5px 8px;min-height:45px}.mode-switch{display:none}#mode-compact{display:block;padding:6px 8px}.mode-description strong{font-size:10px}.mode-description small{font-size:9px}#online-neighbourhood{padding:6px;font-size:10px}.mode-options{grid-template-columns:1fr}}.street-badge:after{content:"";position:absolute;right:3px;bottom:3px;width:7px;height:7px;border-radius:50%;background:#62b04f;border:1px solid #1d2a4a}.street-badge.offline:after,.street-badge.syncing:after{background:#e8b23c}.street-badge.lost:after{background:#e8503a}.street-status{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:#62b04f}.street-status.offline,.street-status.syncing{background:#e8b23c}.street-status.lost{background:#e8503a}.street-status.idle{display:none}.street-invite{display:flex;gap:6px;margin-bottom:12px}.street-invite input{flex:1;min-width:0;margin:0!important;font-size:12px!important}.street-table{width:100%;border-collapse:collapse;font-size:13px}.street-table th{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 8px 4px}.street-table td{padding:8px;background:var(--chrome-2);border-top:1px solid var(--dk);vertical-align:middle}.street-table tr.me td{background:#fff7d6}.street-table td strong{display:block}.street-table em{font-size:10px;font-style:normal;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.street-table small{display:block;font-size:11px;color:var(--muted)}.street-table td:nth-child(n+2){white-space:nowrap}.street-effects{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:5px}.street-effects li{display:flex;gap:10px;font-size:12.5px;line-height:1.35}.street-effects b{flex:0 0 84px;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding-top:2px}.street-crown{display:inline-block;vertical-align:middle;color:#c9971c}.street-crown svg{width:14px;height:14px}#street-join-form{margin-top:14px;display:flex;flex-direction:column;gap:2px}#street-join-form .button{margin:0;align-self:flex-start}#street-code{text-transform:uppercase;letter-spacing:4px;font-family:Silkscreen,monospace;max-width:220px}.visit-banner{position:fixed;top:58px;left:50%;transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:12px;max-width:92vw;background:#1d2a4a;color:#fff;border:2px solid var(--gold);box-shadow:4px 4px #0006;padding:8px 8px 8px 16px;font-size:13px}.visit-banner[hidden]{display:none}body.visiting .build-panel{opacity:.35;pointer-events:none}.thermal-help{margin:0 0 11px;padding:6px 8px;border:1px solid var(--dk);font-size:11.5px;line-height:1.4}.thermal-help.bad{background:#fbd9cf;color:#7a2a18}.thermal-help.warn{background:#fff1c4;color:#7a5410}.thermal-help p{margin:3px 0 0}.thermal-help svg{width:13px;height:13px;vertical-align:-2px}.sign-shop-button{margin:8px 10px 0;padding:12px;border:1px solid #8d6ab5;border-radius:7px;color:#fff0fc;background:linear-gradient(115deg,#271a3f,#152c3a);font-weight:700;cursor:pointer;text-align:left}.sign-shop-button small{display:block;color:#9fdde4;font-size:10px;margin-top:5px}.sign-intro{background:radial-gradient(ellipse at top right,#86336560,transparent),#101323;color:#f9ecfa;padding:24px;border-radius:10px;margin-bottom:16px}.sign-intro>span{color:#6ff5ea;font-size:10px;letter-spacing:3px}.sign-intro h2{color:#fff!important;margin:10px 0!important}.sign-intro p{color:#c6c7dc;line-height:1.6}.sign-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.sign-filters .active{background:#39264c;color:#fff;border-color:#bd6bba}.sign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.sign-card{text-align:left;background:#101320;color:#e5e8f4;border:1px solid #34364d;border-radius:9px;padding:8px;cursor:pointer;min-width:0;transition:border-color .2s,transform .2s}.sign-card:hover,.sign-card:focus-visible{border-color:#67e9e2;transform:translateY(-2px);box-shadow:0 0 20px #5fe8df22}.sign-card canvas{width:100%;height:auto;display:block;border-radius:5px}.sign-card-title{display:block;font-weight:700;margin:8px 3px}.sign-card-title small{display:block;font-weight:400;color:#a8abc3;font-size:10px;margin-top:4px}.sign-card-price{display:flex;justify-content:space-between;gap:5px;margin:10px 3px}.sign-card-price strong{color:#78edd3}.sign-card>small{display:block;font-size:10px;color:#a8abc3;margin:3px;line-height:1.6}.sign-inspector{padding:14px 0;border-top:1px solid #bbb3a2;margin-top:12px}.sign-inspector p{font-size:11px;line-height:1.6}@media(max-width:480px){.sign-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.sign-card{transition:none}.sign-card:hover{transform:none}}.sign-search{display:flex;flex-direction:column;gap:6px;margin:12px 0;font-size:12px}.sign-search input{width:100%;padding:10px;box-sizing:border-box}.sign-review{position:sticky;top:0;z-index:2;background:#e9e4d3;border:1px solid #a9a18c;box-shadow:0 4px 12px #0002;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.sign-review small{display:block;margin-top:5px;font-size:11px}.sign-review p{font-size:11px;line-height:1.5;margin:6px 0}.sign-review>button{flex-shrink:0}.sign-card.selected{border:2px solid #69e3ce;padding:7px;box-shadow:0 0 0 2px #69e3ce33}.sign-help{font-size:11px;line-height:1.6;margin:12px 0}.sign-help summary{cursor:pointer}.sign-filters{margin-top:8px}#build-hint .sign-filters{margin-bottom:0}#build-hint .button{pointer-events:auto;padding:5px 8px;font-size:11px}@media(max-width:650px){.sign-review{flex-direction:column;align-items:stretch}.sign-review>button{width:100%}#build-hint .sign-filters{gap:4px}}.category[data-category=Architecture]{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:7px}.architecture-note{grid-column:1 / -1;font-size:11px;line-height:1.5;padding:3px 7px;color:var(--ink-muted,#716b5e);margin:0 0 4px}.architecture-art{height:100px;background:linear-gradient(#b4d1d5,#e0d8bb)}.architecture-art canvas{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.architecture-installed{display:grid;gap:4px;margin-top:10px}.architecture-installed small{font-size:11px;line-height:1.4}.street-cleanup{padding:8px;background:#fff1c4;color:#704b11;border:1px solid #b48b2f}.street-visits{margin-top:14px;padding-top:10px;border-top:1px solid var(--dk)}.street-visits h3{margin:0 0 8px}.street-visits ol{list-style:none;padding:0;max-height:180px;overflow:auto}.street-visits li{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:12px}.street-row strong{overflow-wrap:anywhere}#street-copy-link{width:100%}@media(max-width:600px){.visit-banner{top:108px;width:calc(100% - 20px);max-width:none;flex-wrap:wrap;padding:8px;font-size:12px}.visit-banner .button{margin-left:auto}.street-row{padding:8px;gap:6px}.street-invite{flex-wrap:wrap}.street-invite input{flex-basis:180px}}.city-map{position:relative;width:100%;margin:12px 0 8px;background:#9cbf6e;border:2px solid var(--dk);box-shadow:var(--pressed)}.city-map svg{position:absolute;inset:0;width:100%;height:100%;display:block}.city-map .road-edge{fill:none;stroke:#cfc8b4;stroke-width:30;stroke-linejoin:round}.city-map .road{fill:none;stroke:#55575c;stroke-width:22;stroke-linejoin:round}.city-map .road-line{fill:none;stroke:var(--gold);stroke-width:1.5;stroke-dasharray:6 6}.map-lot{position:absolute;box-sizing:border-box;display:flex;align-items:flex-end;justify-content:center;padding:0 0 11px;margin:0;background:#ddd6c3;border:1px solid #8f8875;font:inherit;color:inherit}button.map-lot{cursor:pointer}button.map-lot:hover{background:var(--hi)}button.map-lot:focus-visible{outline:2px solid var(--blue);outline-offset:1px;z-index:2}.map-lot small{position:absolute;left:0;right:0;bottom:1px;font:8px/1 var(--pixel);text-align:center;color:var(--muted)}.map-lot.free{background:#b7cf92;border:1px dashed #5f7a3d}.map-lot.free small{color:#4c6331}.map-tower{display:block;width:58%;height:var(--h);min-height:6px;border:1px solid var(--dk);box-shadow:3px 0 #0003;background:repeating-linear-gradient(90deg,transparent 0 3px,var(--c) 3px 6px),repeating-linear-gradient(0deg,var(--c) 0 3px,#fff6c8 3px 5px)}.map-lot.building .map-tower{background:repeating-linear-gradient(45deg,var(--gold) 0 4px,var(--dk) 4px 8px)}.map-lot.mine{background:#fff4c4;border:2px solid var(--gold)}.map-lot.mine:before{content:"YOU";position:absolute;top:-9px;left:50%;transform:translate(-50%);padding:1px 3px;font:8px/1 var(--pixel);background:var(--gold);color:var(--dk);border:1px solid var(--dk);z-index:1}.map-lot.picked{box-shadow:0 0 0 2px var(--blue)}.map-detail{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:8px 10px;background:var(--chrome-2);box-shadow:var(--bevel)}.map-detail span{display:flex;flex-direction:column;gap:3px;min-width:0}.map-detail strong{overflow-wrap:anywhere}.map-detail small{font-size:11px;color:var(--muted)}.tower-name{display:flex;align-items:center;justify-content:space-between;gap:8px}.tower-name h2{min-width:0;overflow-wrap:anywhere}.tower-name .icon-button{flex:none}.tower-name .icon-button svg{width:14px;height:14px}.tower-owner{margin:-4px 0 8px;font-size:12px;color:var(--muted)}#rename-form{display:grid;gap:8px}#rename-form input{width:100%;box-sizing:border-box}#rename-form label small{font-weight:400;opacity:.7}#rename-form .button{justify-self:start}.recovery-state{font-size:12px;padding:8px 10px;border:1px solid var(--lo);background:var(--hi);margin:0 0 10px}.recovery-state.ok{border-color:var(--good)}.recovery-state.warn{border-color:var(--bad)}.recovery-code-box{border:2px solid var(--gold);background:var(--hi);padding:10px;margin:0 0 10px}.recovery-code-box .modal-actions{margin-top:6px}.recovery-nudge{border:2px solid var(--gold);background:var(--hi);padding:10px;margin:8px 0;display:grid;gap:8px}.recovery-nudge p{margin:0;font-size:12px;line-height:1.5}.recovery-nudge .button{justify-self:start}.save-state-line{display:flex;align-items:center;gap:6px;font-size:12px;margin:0 0 10px}.version-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:0 0 12px}.version-card{display:grid;gap:3px;padding:10px;border:1px solid var(--lo);background:var(--hi);font-size:12px}.version-card strong{font-size:14px}.version-card small{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.version-card .muted{color:var(--muted)}.version-card.ahead{border:2px solid var(--good)}.version-card.empty{opacity:.75}.mode-options.two{grid-template-columns:repeat(2,1fr)}.device-step{display:grid;gap:6px;padding:10px 0;border-top:1px solid var(--lo)}.device-step h3{margin:0;font-size:13px}.device-step p{margin:0}.device-step .button{justify-self:start}.code-row{display:flex;gap:6px}.code-row input{flex:1;min-width:0;font-family:monospace}.button.wide{width:100%;justify-content:center;padding:10px;margin:0 0 12px}.more-options{margin-top:10px;border-top:1px solid var(--lo);padding-top:6px;font-size:12px}.more-options summary{cursor:pointer;color:var(--blue);font-weight:600;padding:4px 0}.more-options[open]{display:grid;justify-items:start;gap:4px}.save-state-line{font-weight:600}.ruin-card{margin-top:10px;padding:10px;border:2px solid var(--bad);border-radius:6px;background:color-mix(in srgb,var(--bad) 10%,transparent);display:grid;gap:8px}.ruin-card strong{display:flex;align-items:center;gap:6px;color:var(--bad)}.ruin-card p{margin:0}
