@font-face{font-family:Inter;src:url(./inter-400-Dx4kXJAl.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(./fraunces-600-Cn88bXme.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--bg: #0b141b;--panel: rgba(18, 29, 36, .82);--panel-strong: rgba(14, 24, 30, .92);--ink: #f3eee2;--ink-soft: #dfe6df;--muted: #9fada6;--gold: #f2c14e;--gold-soft: #ffdd8a;--green: #8ed08a;--teal: #6fbfcf;--red: #ef8c7a;--line: rgba(255, 255, 255, .085);--line-strong: rgba(255, 255, 255, .16);--shadow: 0 22px 50px rgba(0, 0, 0, .42);--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-title: "Fraunces", Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}body{user-select:none}button{font-family:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}#app{position:fixed;inset:0}#game{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none;background:#17475f}#game.panning{cursor:grabbing}#game.placing{cursor:crosshair}.atmosphere{position:fixed;inset:0;z-index:2;pointer-events:none;background:radial-gradient(120% 70% at 50% -12%,rgba(255,226,160,.14),transparent 55%),radial-gradient(100% 65% at 50% 118%,rgba(3,9,13,.55),transparent 62%),linear-gradient(180deg,rgba(5,12,17,.18),transparent 22%,transparent 78%,rgba(5,12,17,.34));box-shadow:inset 0 0 180px #040a0e8c}#ui{position:fixed;inset:0;z-index:10;pointer-events:none;color:var(--ink)}#ui .panel,#ui .topbar,#ui .palette,#ui .finance-panel,#ui .account-panel,#ui .menu-panel,#ui button,#ui input{pointer-events:auto}.hidden{display:none!important}.glass,.panel{background:linear-gradient(180deg,#202f37b8,#0d171de0);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow),inset 0 1px #ffffff0e;background:linear-gradient(180deg,#1c2a32ed,#0d171df5)}.panel{padding:14px}.panel h3,.map-head span,.family-head span{margin:0;font-size:10.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}.panel-sub{margin:4px 0 0;font-size:11.5px;color:var(--muted);line-height:1.45}.topbar{position:absolute;top:14px;left:14px;right:14px;min-height:66px;display:flex;align-items:center;gap:14px;padding:9px 12px;border-radius:19px;background:linear-gradient(180deg,#223139d1,#0c151be6);border:1px solid var(--line);box-shadow:var(--shadow),inset 0 1px #ffffff12;background:linear-gradient(180deg,#212f37f5,#0c151bf7);z-index:30}.brand{display:flex;align-items:center;gap:11px;min-width:188px}.brand-mark{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:grid;place-items:center;background:radial-gradient(circle at 32% 26%,#a8e6b3,#4d9d7a 42%,#1d5c6d);box-shadow:0 6px 16px #0000004d,inset 0 1px #ffffff59}.brand-mark svg{width:27px;height:27px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.brand h1{margin:0;font-family:var(--font-title);font-size:20px;font-weight:600;letter-spacing:.2px;line-height:1}.brand p{margin:4px 0 0;font-size:9.5px;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted)}.resources{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0}.res{display:flex;align-items:center;gap:7px;padding:5px 9px 5px 5px;min-width:80px;border-radius:12px;background:#ffffff0b;border:1px solid rgba(255,255,255,.055);transition:background .2s ease}.res:hover{background:#ffffff13}.res-icon{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:9px;background:#00000038}.res-icon svg{width:17px;height:17px}.res-meta{display:flex;flex-direction:column;line-height:1.1;min-width:0}.res-value{font-size:13.5px;font-weight:700;letter-spacing:.2px;white-space:nowrap;font-variant-numeric:tabular-nums}.res-rate{margin-top:2px;font-size:9.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.res-rate.pos{color:var(--green)}.res-rate.neg{color:var(--red)}.res.pop .res-value{color:#cfe9ff}.res.happy .res-value{color:#ffd6a8}.timebox{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:190px}.date-label{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);white-space:nowrap}.time-row{display:flex;align-items:center;gap:8px}.day-progress{width:112px;height:3px;border-radius:3px;background:#ffffff1a;overflow:hidden}.day-progress i{display:block;height:100%;width:0%;background:linear-gradient(90deg,#d9a63e,var(--gold-soft));border-radius:3px;transition:width .2s linear}.speed-group{display:flex;align-items:center;gap:2px;padding:3px;border-radius:10px;background:#0000003d;border:1px solid rgba(255,255,255,.05)}.speed-btn{width:32px;height:24px;border-radius:7px;font-size:10.5px;font-weight:700;color:var(--muted);display:grid;place-items:center;transition:all .16s ease}.speed-btn:hover{color:var(--ink);background:#ffffff12}.speed-btn.active{color:#241d0f;background:linear-gradient(180deg,#f6d27a,#e0b34e);box-shadow:0 3px 10px #00000040}.top-actions{display:flex;align-items:center;gap:5px;padding-left:6px;border-left:1px solid var(--line)}.icon-btn{position:relative;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:var(--muted);border:1px solid transparent;transition:all .18s ease}.icon-btn svg{width:18px;height:18px}.icon-btn:hover{color:var(--ink);background:#ffffff12;border-color:var(--line)}.icon-btn.active{color:var(--gold-soft);background:#f2c14e1f;border-color:#f2c14e4d}.cheat-pill{height:34px;min-width:36px;padding:0 10px;border-radius:11px;font-size:17px;font-weight:700;line-height:1;color:#241d0f;background:linear-gradient(180deg,#ffe28d,#e3b64e);border:1px solid rgba(255,235,170,.65);box-shadow:0 0 0 3px #f2c14e1f,0 4px 12px #00000040;transition:filter .15s ease,transform .15s ease}.cheat-pill:hover{filter:brightness(1.07);transform:translateY(-1px)}#ui.cheat-mode .topbar{border-color:#f2c14e59;box-shadow:var(--shadow),inset 0 1px #ffffff12,0 0 0 1px #f2c14e1f}#ui.cheat-mode .res:not(.pop):not(.happy) .res-value{color:var(--gold-soft)}.res-rate.cheat{color:var(--gold-soft)!important}.menu-state{font-size:10px;font-weight:600;color:var(--muted);white-space:nowrap}.menu-state.on{color:var(--gold-soft)}.kv b.cheat{color:var(--gold-soft)!important}.left-col,.right-col{position:absolute;top:96px;bottom:188px;display:flex;flex-direction:column;gap:12px;z-index:20;pointer-events:none}.left-col{left:14px;width:280px}.right-col{right:14px;width:262px}.left-col .panel,.right-col .panel{pointer-events:auto}.quests-panel{flex:1;min-height:150px;display:flex;flex-direction:column;padding:14px 12px 8px;overflow:hidden}.quests-panel.collapsed{flex:0 0 auto;min-height:0;padding:12px}.quests-panel.collapsed .panel-head{padding-bottom:0}.quests-panel.collapsed .quest-list{display:none}.family-panel.collapsed{padding:12px 14px}.family-panel.collapsed .family-head{margin-bottom:0}.family-panel.collapsed .family-body{display:none}.panel-toggle{flex:0 0 18px;width:18px;height:18px;border-radius:6px;color:var(--muted);font-size:11px;line-height:1;transition:all .15s ease}.panel-toggle:hover{color:var(--gold-soft);background:#ffffff0f}.quests-panel .panel-head{justify-content:flex-start}.quests-panel .panel-head h3{flex:1}.family-head{gap:7px}.family-head .panel-toggle+span{flex:1}.family-head .count{margin-left:auto}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 3px 8px}.panel-head .count{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}.quest-list{overflow-y:auto;padding-right:3px;margin-right:-3px;flex:1}.quest{display:flex;gap:9px;padding:8px 5px;border-top:1px solid rgba(255,255,255,.045);transition:opacity .2s ease}.quest:first-child{border-top:0}.quest-check{width:19px;height:19px;flex:0 0 19px;margin-top:1px;border-radius:50%;border:1.5px solid rgba(255,255,255,.22);display:grid;place-items:center;color:transparent;font-size:10px;font-weight:800;transition:all .2s ease}.quest.done .quest-check{background:linear-gradient(180deg,#9fdb98,#6bb268);border-color:#8ecb87;color:#14301c}.quest-body{min-width:0;flex:1}.quest-title{font-size:12px;font-weight:600;line-height:1.25}.quest-desc{margin-top:2px;font-size:10.5px;line-height:1.35;color:var(--muted)}.quest-reward{display:inline-block;margin-top:4px;font-size:9.5px;font-weight:600;color:#e9c877;background:#f2c14e1a;border:1px solid rgba(242,193,78,.16);padding:1px 6px;border-radius:999px}.quest.done{opacity:.48}.quest.done .quest-title{text-decoration:line-through;text-decoration-color:#ffffff40}.family-panel{flex:0 0 auto;padding:13px 14px 14px}.family-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.family-avatars{display:flex;align-items:center;gap:6px;margin-bottom:9px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;border:2px solid rgba(255,255,255,.16);box-shadow:0 4px 10px #00000040;background:linear-gradient(145deg,#5b8fc4,#355f8c)}.avatar.partner{background:linear-gradient(145deg,#d8899e,#a44f68)}.avatar.child{width:27px;height:27px;font-size:10.5px;background:linear-gradient(145deg,#d9b46a,#a9803d)}.avatar.empty{background:#ffffff0f;border-style:dashed;border-color:#fff3;color:#ffffff59;font-weight:500}.family-status{font-size:11.5px;line-height:1.45;color:var(--muted);margin-bottom:10px}.family-status b{color:var(--ink-soft);font-weight:600}.family-btn{width:100%;padding:9px 10px;border-radius:11px;font-size:11.5px;font-weight:600;color:#2a2110;background:linear-gradient(180deg,#f6d27a,#dfb04a);box-shadow:0 6px 16px #00000040;transition:transform .15s ease,filter .15s ease}.family-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.family-btn:disabled{cursor:default;color:#fff6;background:#ffffff12;box-shadow:none;transform:none}.family-children{margin-top:8px;font-size:10.5px;line-height:1.5;color:var(--muted)}.map-panel{flex:0 0 auto;padding:12px}.map-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:0 2px}.map-head .count{font-size:10px;color:var(--muted)}#minimap{display:block;width:100%;aspect-ratio:1;border-radius:12px;border:1px solid var(--line);background:#0e2029;cursor:pointer;image-rendering:pixelated}.map-actions{display:flex;gap:5px;margin-top:8px}.map-actions button{flex:1;height:29px;border-radius:8px;background:#ffffff0d;border:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:600;display:grid;place-items:center;transition:all .16s ease}.map-actions button:hover{color:var(--ink);background:#ffffff1a}.expand-btn{width:100%;margin-top:8px;padding:9px 8px;border-radius:10px;font-size:11px;font-weight:700;color:#2a2110;background:linear-gradient(180deg,#f6d27a,#dfb04a);display:flex;align-items:center;justify-content:center;gap:6px;transition:filter .15s ease}.expand-btn:hover{filter:brightness(1.06)}.expand-btn:disabled{color:#fff6;background:#ffffff12;cursor:default;filter:none}.info-panel{flex:1;min-height:120px;overflow-y:auto;padding:13px 14px}.info-empty{display:flex;flex-direction:column;gap:9px;height:100%;justify-content:center;align-items:center;text-align:center;color:var(--muted);padding:10px 4px}.info-empty svg{width:34px;height:34px;opacity:.4}.info-empty p{margin:0;font-size:11px;line-height:1.5}.info-head{display:flex;gap:10px;align-items:center;margin-bottom:8px}.info-icon{width:42px;height:42px;flex:0 0 42px;border-radius:11px;background:#00000038;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.info-icon canvas{width:40px;height:40px}.info-icon svg{width:21px;height:21px;opacity:.8}.info-head h4{margin:0;font-family:var(--font-title);font-size:16px;font-weight:600;line-height:1.15}.status{display:inline-flex;align-items:center;gap:4px;margin-top:3px;font-size:9.5px;font-weight:600;letter-spacing:.3px;padding:2px 7px;border-radius:999px;border:1px solid transparent}.status.ok{color:#b9ecb4;background:#78c8781c;border-color:#78c87833}.status.warn{color:#ffcf9e;background:#e6a0501c;border-color:#e6a05038}.status.build{color:#c9dbff;background:#78a0e61c;border-color:#78a0e633}.info-desc{margin:0 0 9px;font-size:11px;line-height:1.55;color:var(--muted)}.info-stats{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px}.stat-chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:3px 7px;border-radius:7px;background:#ffffff0e;border:1px solid var(--line);color:var(--ink-soft)}.stat-chip.good{color:#b9ecb4;background:#78c87817;border-color:#78c87829}.stat-chip.bad{color:#ffb7a8;background:#dc645a17;border-color:#dc645a29}.port-trade{margin:8px 0 4px;padding:8px;border-radius:10px;border:1px solid rgba(242,193,78,.18);background:#f2c14e0b}.port-trade-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:3px}.port-trade-head b{color:var(--gold-soft);font-size:10.5px}.port-trade-head span{color:var(--muted);font-size:9px}.port-trade-row{display:flex;align-items:center;gap:6px;padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}.port-trade-good{width:64px;flex:0 0 64px;color:var(--ink-soft);font-size:10px;font-weight:600;text-transform:capitalize}.port-trade-prices{flex:1;display:flex;flex-direction:column;min-width:0;line-height:1.25}.port-trade-prices b{color:var(--ink-soft);font-size:9.5px;font-weight:600}.port-trade-prices small{color:var(--muted);font-size:8.5px}.port-trade-row button{flex:0 0 auto;padding:4px 6px;border-radius:6px;border:1px solid var(--line);background:#ffffff0d;color:var(--ink-soft);font-size:9px;font-weight:600;transition:all .16s ease}.port-trade-row button:hover{border-color:#f2c14e4d;background:#f2c14e1a;color:var(--gold-soft)}.port-trade-row button:disabled{opacity:.38;cursor:not-allowed}.info-actions{display:flex;gap:6px}.info-actions button{flex:1;height:30px;border-radius:8px;font-size:10.5px;font-weight:600;background:#ffffff0f;border:1px solid var(--line);color:var(--ink-soft);transition:all .16s ease}.info-actions button:hover{background:#ffffff1c}.info-actions button.danger{color:#ffc0b3;border-color:#e6786459;background:#dc5a4b24}.info-actions button.confirm{color:#2a1110;background:linear-gradient(180deg,#f09a84,#d76f5b);border-color:transparent}.info-terrain{margin-top:8px;font-size:10.5px;color:var(--muted);line-height:1.5}.bottom{position:absolute;left:14px;bottom:14px;width:min(940px,calc(100vw - 286px));z-index:25;pointer-events:none}.palette{pointer-events:auto;padding:9px 11px 11px;border-radius:20px;background:linear-gradient(180deg,#202f37cc,#0c151beb);border:1px solid var(--line);box-shadow:0 -10px 40px #00000052,inset 0 1px #ffffff0f;background:linear-gradient(180deg,#1f2d35f5,#0c151bfa)}.bottom.collapsed{width:min(448px,calc(100vw - 28px))}.bottom.collapsed .palette{padding:6px 7px;border-radius:16px}.palette-collapsed{display:none;align-items:center;gap:6px}.bottom.collapsed .palette-collapsed{display:flex}.bottom.collapsed .palette-expanded{display:none}.palette-expand{flex:1;min-width:0;display:flex;align-items:center;gap:9px;padding:3px 5px 3px 3px;border-radius:12px;text-align:left;transition:background .16s ease}.palette-expand:hover{background:#ffffff0e}.palette-expand-icon{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:10px;color:#20382b;background:linear-gradient(180deg,#f2d88c,#c99c43);box-shadow:inset 0 1px #ffffff52}.palette-expand-icon svg{width:17px;height:17px}.palette-expand-copy{display:flex;flex-direction:column;min-width:0;line-height:1.15}.palette-expand-copy b{color:var(--ink);font-size:11.5px;font-weight:700}.palette-expand-copy small{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9.5px}.palette-expand-chevron{margin-left:auto;padding-right:3px;color:var(--gold-soft);font-size:12px;line-height:1}.palette-collapse{flex:0 0 25px;width:25px;height:25px;border-radius:8px;color:var(--muted);font-size:13px;line-height:1;transition:all .16s ease}.palette-collapse:hover{color:var(--gold-soft);background:#ffffff0f}.palette-collapsed .demolish-toggle.compact{flex:0 0 auto;padding:6px 8px}.palette-collapsed .demolish-toggle.compact span{display:inline}.palette-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;min-height:24px}.cats{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.cat{padding:5px 10px;border-radius:999px;font-size:10.5px;font-weight:600;color:var(--muted);border:1px solid transparent;transition:all .16s ease;white-space:nowrap}.cat:hover{color:var(--ink);background:#ffffff0f}.cat.active{color:#241d0f;background:linear-gradient(180deg,#f6d27a,#dfb04a);box-shadow:0 3px 10px #00000038}.demolish-toggle{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:#ffffff0a;color:var(--muted);font-size:10.5px;font-weight:600;transition:all .16s ease}.demolish-toggle svg{width:13px;height:13px}.demolish-toggle:hover{color:#ffc0b3;border-color:#e6786459;background:#dc5a4b1a}.demolish-toggle.active{color:#2a1110;background:linear-gradient(180deg,#f09a84,#d76f5b);border-color:transparent;box-shadow:0 3px 10px #00000040}#ui.demolish-mode .palette{border-color:#e6786452}#game.demolishing{cursor:crosshair}.palette-hint{flex:1;text-align:right;font-size:10px;color:var(--muted);line-height:1.35;max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-hint b{color:var(--gold-soft);font-weight:600}.build-list{display:flex;gap:7px;overflow-x:auto;overflow-y:hidden;padding-bottom:3px;min-height:103px;scrollbar-width:thin}.build-btn{flex:0 0 auto;width:82px;min-height:100px;padding:5px 5px 6px;border-radius:13px;border:1px solid rgba(255,255,255,.065);background:#ffffff09;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;transition:all .16s ease;position:relative}.build-btn:hover{background:#ffffff13;border-color:#ffffff24;transform:translateY(-2px)}.build-btn.active{border-color:#f2c14ebf;background:#f2c14e1f;box-shadow:0 0 0 1px #f2c14e38,0 10px 22px #00000040;transform:translateY(-2px)}.build-btn.unaffordable{opacity:.62}.build-btn.unaffordable .cost-line{color:var(--red)}.build-btn.locked{opacity:.38}.build-btn canvas{width:46px;height:46px;display:block;filter:drop-shadow(0 4px 5px rgba(0,0,0,.25))}.build-name{font-size:10px;font-weight:600;line-height:1.15;text-align:center;margin-top:1px}.cost-line{font-size:9px;color:var(--muted);text-align:center;line-height:1.2;margin-top:1px;font-variant-numeric:tabular-nums}.build-tag{position:absolute;top:3px;right:4px;font-size:8px;font-weight:700;color:var(--gold-soft);background:#0006;border-radius:5px;padding:1px 4px}.tooltip{position:fixed;z-index:300;width:238px;padding:11px 13px;border-radius:12px;background:#0a1217f5;border:1px solid var(--line-strong);box-shadow:0 18px 40px #00000073;pointer-events:none;font-size:11px;line-height:1.5;color:var(--ink-soft)}.tooltip h5{margin:0 0 3px;font-family:var(--font-title);font-size:14px;font-weight:600;color:var(--ink)}.tooltip .tt-desc{color:var(--muted);margin-bottom:6px}.tooltip .tt-cost{color:#f0cf85;font-weight:600}.tooltip .tt-need{margin-top:5px;color:#ffc09d;font-size:10px}.toasts{position:absolute;top:94px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;z-index:90;pointer-events:none;width:min(440px,calc(100vw - 40px))}.toast{display:flex;align-items:flex-start;gap:8px;padding:9px 13px 9px 10px;border-radius:11px;font-size:11.5px;line-height:1.4;color:var(--ink-soft);background:#0d161cf0;border:1px solid var(--line-strong);border-left:3px solid var(--gold);box-shadow:0 14px 32px #0006;animation:toast-in .35s cubic-bezier(.2,.8,.2,1);width:fit-content;max-width:100%}.toast.good{border-left-color:var(--green)}.toast.warn{border-left-color:var(--red)}.toast.out{animation:toast-out .3s ease forwards}.toast-ico{width:15px;height:15px;flex:0 0 15px;margin-top:1px;color:var(--gold)}.toast.good .toast-ico{color:var(--green)}.toast.warn .toast-ico{color:var(--red)}.finance-panel{position:absolute;top:92px;right:290px;width:330px;padding:16px;z-index:60;border-radius:18px;animation:pop-in .24s cubic-bezier(.2,.8,.2,1)}.finance-panel h3{margin:0 0 3px;font-family:var(--font-title);font-size:19px;font-weight:600}.finance-sub{margin:0 0 14px;font-size:10.5px;color:var(--muted);line-height:1.45}.tax-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.tax-row span{font-size:11px;color:var(--muted);font-weight:600}.tax-row b{font-family:var(--font-title);font-size:22px;font-weight:600;color:var(--gold-soft)}.tax-slider{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:5px;background:linear-gradient(90deg,#f2c14eb3,#ffffff1a);outline:none;margin:4px 0 8px}.tax-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:17px;height:17px;border-radius:50%;background:linear-gradient(180deg,#ffe6a3,#e2b44f);border:2px solid rgba(30,25,12,.5);box-shadow:0 2px 8px #00000059;cursor:grab}.tax-slider::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:#f5d27c;border:2px solid rgba(30,25,12,.5);cursor:grab}.tax-note{font-size:10.5px;color:var(--muted);line-height:1.5;margin-bottom:13px}.tax-note b{color:var(--gold-soft)}.finance-divider{height:1px;background:var(--line);margin:11px 0}.kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0;font-size:11.5px;color:var(--muted)}.kv b{color:var(--ink-soft);font-weight:600;font-variant-numeric:tabular-nums}.kv b.pos{color:#a9e3a5}.kv b.neg{color:#ffb4a5}.menu-panel{position:absolute;top:88px;right:14px;width:242px;padding:7px;z-index:70;border-radius:15px;animation:pop-in .2s cubic-bezier(.2,.8,.2,1)}.menu-panel button{width:100%;text-align:left;padding:9px 11px;border-radius:9px;font-size:11.5px;color:var(--ink-soft);display:flex;align-items:center;justify-content:space-between;gap:8px;transition:background .15s ease}.menu-panel button:hover{background:#ffffff12}.menu-panel button.danger{color:#ffb9a9}.menu-panel .menu-sep{height:1px;margin:5px 8px;background:var(--line)}.menu-foot{padding:7px 11px 5px;font-size:9.5px;color:var(--muted);line-height:1.5}.neighbors-panel{position:absolute;top:92px;right:290px;width:350px;max-height:calc(100vh - 300px);overflow-y:auto;padding:18px;z-index:63;border-radius:18px;animation:pop-in .24s cubic-bezier(.2,.8,.2,1)}.neighbors-panel h3{margin:0 0 3px;font-family:var(--font-title);font-size:20px;font-weight:600}#neighbors-list{display:flex;flex-direction:column;gap:8px}.neighbor-card{padding:10px;border-radius:11px;background:#ffffff0a;border:1px solid var(--line)}.neighbor-head{display:flex;justify-content:space-between;gap:8px;font-size:11.5px}.neighbor-head b{color:var(--ink-soft)}.neighbor-head span{font-size:9.5px;color:var(--muted)}.neighbor-bar{height:5px;border-radius:5px;background:#ffffff14;overflow:hidden;margin:6px 0}.neighbor-bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#6fbfcf,#8ed08a)}.neighbor-demand{font-size:10px;color:var(--muted);margin-bottom:7px}.neighbor-demand b{color:var(--ink-soft)}.neighbor-card .account-primary{width:100%;height:30px;font-size:10.5px}@media(max-width:1000px){.neighbors-panel{top:132px;right:14px}}@media(max-width:760px){.neighbors-panel{left:8px;right:8px;width:auto;top:132px}}.photo-ui{position:fixed;top:14px;left:50%;transform:translate(-50%);display:none;align-items:center;gap:7px;padding:7px;border-radius:13px;background:#0c151be6;border:1px solid var(--line-strong);box-shadow:0 15px 35px #0006;z-index:500;pointer-events:auto}.photo-ui button{height:32px;padding:0 12px;font-size:11px}#ui.photo-mode>*:not(.photo-ui){opacity:0!important;pointer-events:none!important}#ui.photo-mode .photo-ui{display:flex}.family-btn.secondary{margin-top:6px;background:#ffffff12;color:var(--ink-soft);box-shadow:none;border:1px solid var(--line)}.family-btn.secondary:hover{background:#ffffff1f}.menu-panel{max-height:calc(100vh - 170px);overflow-y:auto}.dashboard-panel{position:absolute;top:92px;right:290px;width:368px;max-height:calc(100vh - 300px);overflow-y:auto;padding:17px;z-index:64;border-radius:18px;animation:pop-in .24s cubic-bezier(.2,.8,.2,1)}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:3px}.dash-head h3{margin:0;font-family:var(--font-title);font-size:21px;font-weight:600}.age-badge{padding:4px 9px;border-radius:999px;font-size:9.5px;font-weight:700;letter-spacing:.5px;color:#241d0f;background:linear-gradient(180deg,#f6d27a,#dfb04a)}.dash-weather{font-size:10px;color:var(--muted);letter-spacing:.4px;margin-bottom:11px}.dash-badge{position:absolute;top:6px;right:6px;min-width:13px;height:13px;padding:0 3px;border-radius:7px;background:#d76f5b;color:#fff;font-size:8px;font-style:normal;font-weight:700;display:grid;place-items:center;border:1px solid rgba(20,20,20,.3)}.dash-alerts{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.dash-alert{display:flex;align-items:flex-start;gap:7px;padding:7px 9px;border-radius:9px;font-size:10.5px;line-height:1.4;color:var(--ink-soft);background:#ffffff0b;border:1px solid var(--line)}.dash-alert.warn{color:#ffd0b8;background:#dc78501a;border-color:#dc785033}.dash-alert.ok{color:#b9ecb4;background:#78c87817;border-color:#78c87829}.dash-alert-dot{width:6px;height:6px;flex:0 0 6px;margin-top:4px;border-radius:50%;background:var(--gold)}.dash-alert.warn .dash-alert-dot{background:#e08c6a}.dash-alert.ok .dash-alert-dot{background:var(--green)}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.dash-card{padding:8px 10px;border-radius:10px;background:#ffffff0a;border:1px solid var(--line);display:flex;flex-direction:column;gap:1px}.dash-card span{font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.dash-card b{font-size:15px;font-weight:700;color:var(--ink)}.dash-card small{font-size:9px;color:var(--muted)}.dash-bars{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}.dash-bars>div{display:flex;align-items:center;gap:7px;font-size:9.5px;color:var(--muted)}.dash-bars span{width:64px;flex:0 0 64px}.dash-bars i{flex:1;height:5px;border-radius:5px;background:#ffffff14;overflow:hidden}.dash-bars i b{display:block;height:100%;width:0;border-radius:5px;background:linear-gradient(90deg,#6fbfcf,#8ed08a);transition:width .35s ease}.dash-bars em{width:48px;flex:0 0 48px;font-style:normal;text-align:right;color:var(--ink-soft);font-variant-numeric:tabular-nums}.dash-age-line{font-size:10.5px;line-height:1.45;color:var(--muted);padding:8px 10px;border-radius:9px;background:#f2c14e0f;border:1px solid rgba(242,193,78,.13);margin-bottom:10px}.dash-age-line b{color:var(--gold-soft)}.dash-economy{display:flex;flex-direction:column;gap:4px;padding:9px 10px;border-radius:10px;background:#0000002e;border:1px solid var(--line);margin-bottom:9px}.dash-economy>div{display:flex;justify-content:space-between;gap:10px;font-size:10.5px;color:var(--muted)}.dash-economy b{font-weight:600;color:var(--ink-soft);font-variant-numeric:tabular-nums}.dash-economy b.pos{color:#a9e3a5}.dash-economy b.neg{color:#ffb4a5}.dash-family{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:10px;background:#ffffff09;border:1px solid var(--line);margin-bottom:9px}.dash-family span{font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.dash-family b{font-size:11.5px;color:var(--ink-soft)}.dash-family em{font-style:normal;font-size:9.5px;color:var(--muted);line-height:1.4}.dash-footer{font-size:9px;color:var(--muted);text-align:center;padding-top:5px;border-top:1px solid var(--line)}@media(max-width:1000px){.dashboard-panel{top:132px;right:14px}}@media(max-width:760px){.dashboard-panel{left:8px;right:8px;width:auto;top:132px;max-height:calc(100vh - 300px)}}.account-panel{position:absolute;top:92px;right:290px;width:350px;max-height:calc(100vh - 300px);overflow-y:auto;padding:18px;z-index:66;border-radius:18px;animation:pop-in .24s cubic-bezier(.2,.8,.2,1)}.account-panel h3{margin:0 0 3px;font-family:var(--font-title);font-size:20px;font-weight:600}.account-btn{position:relative}.account-server{display:flex;align-items:center;gap:6px;margin:9px 0 2px;padding:7px 8px;border-radius:8px;background:#ffffff09;border:1px solid var(--line);font-size:9.5px;line-height:1.35;color:var(--muted)}.account-server span{flex:1;min-width:0;overflow-wrap:anywhere}.account-server-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#8c9aa2;box-shadow:0 0 5px #8c9aa259}.account-server-dot.ok{background:var(--green);box-shadow:0 0 6px #8ed08aa6}.account-server-dot.error{background:#e58b78;box-shadow:0 0 6px #e58b7880}.account-server .account-link{width:auto;flex:0 0 auto;margin:0;padding:2px 5px;color:var(--gold-soft);font-size:9px}.account-server .account-link:hover{color:var(--ink);background:#ffffff0f}.account-advanced{margin-top:13px;padding-top:9px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.account-advanced summary{color:var(--muted);font-weight:600;cursor:pointer;user-select:none}.account-advanced summary:hover{color:var(--ink)}.account-advanced-note{margin:7px 0 0;line-height:1.45}.account-advanced code{color:var(--gold-soft);font-size:9.5px;overflow-wrap:anywhere}.account-advanced .text-input,.account-advanced .account-secondary{margin-top:7px}.account-chip{display:flex;align-items:center;gap:8px;height:38px;padding:0 11px 0 5px;border-radius:999px;border:1px solid var(--line);background:#ffffff09;color:var(--muted);transition:all .18s ease}.account-chip:hover{color:var(--ink);background:#ffffff12;border-color:#f2c14e3d}.account-chip.connected{border-color:#8ed08a47;background:#8ed08a14}.account-chip-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;color:#122028;background:linear-gradient(180deg,#f3d58e,#d9ae55);font-family:var(--font-title);font-size:14px;font-weight:700;line-height:1}.account-chip-avatar svg{width:15px;height:15px}.account-chip.connected .account-chip-avatar{background:linear-gradient(180deg,#a9dba2,#79b878)}.account-chip-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;min-width:0}.account-chip-text b{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:11px;font-weight:600}.account-chip-text small{margin-top:2px;color:var(--muted);font-size:8.5px;white-space:nowrap}.account-chip .account-dot{top:5px;right:5px}.account-dot{position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--green);border:1.5px solid #122028;box-shadow:0 0 6px #8ed08aa6}.field-label{display:block;margin:10px 0 5px;font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}.text-input{width:100%;height:35px;padding:0 11px;border-radius:9px;border:1px solid var(--line);background:#00000038;color:var(--ink);font-family:var(--font-ui);font-size:12px;outline:none;pointer-events:auto;transition:border-color .16s ease,background .16s ease}.text-input:focus{border-color:#f2c14e8c;background:#0000004d}.text-input::placeholder{color:#ffffff47}.account-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.account-primary,.account-secondary{height:34px;border-radius:9px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:filter .15s ease,background .15s ease}.account-primary{color:#241d0f;background:linear-gradient(180deg,#f6d27a,#dfb04a);box-shadow:0 5px 12px #00000038}.account-secondary{color:var(--ink-soft);background:#ffffff0f;border:1px solid var(--line)}.account-primary:hover:not(:disabled),.account-secondary:hover:not(:disabled){filter:brightness(1.07)}.account-primary:disabled,.account-secondary:disabled{opacity:.5;cursor:default}.account-link{width:100%;margin-top:8px;padding:7px;font-size:10.5px;color:var(--muted);border-radius:7px}.account-link:hover{color:#ffb7a8;background:#dc5a4b14}.account-message{min-height:14px;margin-top:9px;font-size:10.5px;line-height:1.4;color:var(--muted)}.account-message.error{color:#ffb4a5}.account-message.ok{color:#b9ecb4}.account-profile{display:flex;align-items:center;gap:10px;margin-bottom:13px;padding:10px;border-radius:12px;background:#ffffff0a;border:1px solid var(--line)}.account-profile .avatar{width:38px;height:38px;flex:0 0 38px;background:linear-gradient(145deg,#4d9d7a,#1d5c6d)}.account-profile-text{display:flex;flex-direction:column;gap:2px;min-width:0}.account-profile-text b{font-size:13px;font-weight:700}.account-profile-text span{font-size:9.5px;color:var(--muted);line-height:1.35}.account-check{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:10.5px;color:var(--muted);cursor:pointer}.account-check input{accent-color:var(--gold);width:14px;height:14px}.account-foot{margin-top:13px;padding-top:10px;border-top:1px solid var(--line);font-size:9.5px;line-height:1.5;color:var(--muted)}@media(max-width:1000px){.account-panel{top:132px;right:14px}}@media(max-width:760px){.account-panel{left:8px;right:8px;width:auto;top:132px;max-height:calc(100vh - 300px)}}.modal-backdrop{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:#050b0fa3;backdrop-filter:blur(7px);animation:fade-in .25s ease}.modal-card{width:min(620px,100%);max-height:88vh;overflow-y:auto;border-radius:23px;background:linear-gradient(180deg,#1b2b34,#0e1a21);border:1px solid rgba(255,255,255,.1);box-shadow:0 45px 120px #000000a6,inset 0 1px #ffffff12;animation:modal-in .38s cubic-bezier(.16,.9,.25,1);position:relative}.modal-accent{height:3px;background:var(--accent, var(--gold));border-radius:23px 23px 0 0}.modal-art{position:relative;height:214px;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.06)}.modal-art svg{width:100%;height:100%;display:block}.modal-art .art-fade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,27,34,.92))}.modal-content{padding:25px 30px}.modal-kicker{font-size:9.5px;font-weight:700;letter-spacing:2.2px;text-transform:uppercase;color:var(--accent, var(--gold));margin-bottom:7px}.modal-card h2{margin:0;font-family:var(--font-title);font-size:clamp(25px,4vw,33px);font-weight:600;line-height:1.08;letter-spacing:-.2px}.modal-sub{margin:6px 0 0;font-size:11.5px;letter-spacing:.3px;color:var(--muted)}.modal-body{margin-top:15px;color:var(--ink-soft);font-size:13px;line-height:1.68}.modal-body p{margin:0 0 10px}.modal-body p:last-child{margin-bottom:0}.modal-choices{display:flex;flex-direction:column;gap:8px;margin-top:20px}.modal-choice{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px 15px;border-radius:12px;background:#ffffff0b;border:1px solid var(--line);color:var(--ink-soft);font-size:12.5px;font-weight:600;transition:all .16s ease}.modal-choice:hover:not(:disabled){background:#ffffff17;border-color:#fff3;transform:translate(2px)}.modal-choice.primary{color:#251d0e;background:linear-gradient(180deg,#f7d580,#e0b24a);border-color:#ffe9aa80;box-shadow:0 8px 24px #00000040}.modal-choice.primary:hover:not(:disabled){filter:brightness(1.05)}.modal-choice:disabled{opacity:.4;cursor:not-allowed}.choice-hint{font-size:10.5px;font-weight:400;color:#ffffff8f}.modal-choice.primary .choice-hint{color:#251d0ead}.modal-icon{width:58px;height:58px;margin:24px 0 0;border-radius:17px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent, var(--gold)) 18%,transparent);border:1px solid color-mix(in srgb,var(--accent, var(--gold)) 35%,transparent);color:var(--accent, var(--gold))}.modal-icon svg{width:27px;height:27px}.modal-icon+.modal-kicker{margin-top:16px}.confirm-card{width:min(420px,100%);padding:26px 26px 22px;border-radius:20px;background:linear-gradient(180deg,#1b2b34,#0e1a21);border:1px solid rgba(255,255,255,.1);box-shadow:0 40px 100px #000000a6;animation:modal-in .3s cubic-bezier(.16,.9,.25,1);text-align:center}.confirm-card h2{margin:0 0 8px;font-family:var(--font-title);font-size:25px;font-weight:600}.confirm-card p{margin:0 0 18px;font-size:12px;line-height:1.6;color:var(--muted)}.confirm-actions{display:flex;gap:8px}.confirm-actions button{flex:1;padding:11px;border-radius:10px;font-size:12px;font-weight:600;background:#ffffff0f;border:1px solid var(--line)}.confirm-actions button.primary{color:#241d0f;background:linear-gradient(180deg,#f6d27a,#dfb04a);border-color:transparent}.confirm-actions button.danger{color:#2a1110;background:linear-gradient(180deg,#f09a84,#d76f5b);border-color:transparent}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:6px}*::-webkit-scrollbar-thumb:hover{background:#ffffff3d}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{to{opacity:0;transform:translateY(-6px)}}@keyframes soft-pulse{0%,to{opacity:.45}50%{opacity:.9}}.mobile-controls{position:absolute;right:10px;bottom:200px;display:none;flex-direction:column;gap:6px;z-index:24;pointer-events:auto}.mobile-controls button{width:38px;height:38px;border-radius:12px;background:#0e181edb;border:1px solid var(--line-strong);color:var(--ink-soft);font-size:17px;font-weight:600;display:grid;place-items:center;box-shadow:0 8px 18px #0000004d}.mobile-controls button:active{background:#f2c14e33}@media(max-width:1000px){.topbar{flex-wrap:wrap;gap:8px;padding:8px 10px;min-height:0}.brand{flex:1;min-width:0}.brand p{display:none}.resources{order:4;flex-basis:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.timebox{order:2;min-width:0;align-items:flex-end}.top-actions{order:3;border-left:0;padding-left:0}.left-col,.right-col{display:none}.bottom{left:14px;width:calc(100vw - 28px)}.toasts,.finance-panel,.menu-panel{top:132px}.mobile-controls{display:flex}}@media(max-width:520px){.cheat-pill{display:none!important}}@media(max-width:760px){.mobile-controls{display:flex}}@media(max-width:1320px){.res{min-width:68px;padding:4px 7px 4px 4px}.res-rate{font-size:9px}.brand{min-width:168px}.timebox{min-width:170px}.day-progress{width:88px}.left-col{width:258px}.right-col{width:244px}.finance-panel{right:270px}}@media(max-width:1120px){.res-rate{display:none}.resources{gap:5px}.res{min-width:0;gap:5px;padding:4px 6px 4px 4px}.res-icon{width:24px;height:24px;flex-basis:24px}.res-icon svg{width:15px;height:15px}.res-value{font-size:12.5px}.day-progress{display:none}.timebox{min-width:150px}.res{min-width:62px}.brand p{display:none}.brand{min-width:150px}.top-actions .icon-btn{width:33px}.account-chip{width:38px;padding:0;justify-content:center}.account-chip-text{display:none}.date-label{font-size:9.5px}}@media(max-width:980px){.left-col{display:none}.right-col{width:228px}.finance-panel{right:14px}.resources{justify-content:flex-start;overflow-x:auto;padding-bottom:2px}}@media(max-width:760px){.topbar{top:8px;left:8px;right:8px;flex-wrap:wrap;gap:8px;padding:8px;min-height:0}.brand{min-width:0;flex:1}.brand h1{font-size:17px}.brand-mark{width:34px;height:34px;flex-basis:34px}.resources{order:4;flex-basis:100%;justify-content:flex-start}.timebox{order:2;min-width:0;align-items:flex-end}.day-progress{display:none}.top-actions{order:3;border-left:0;padding-left:0}.right-col{display:none}.bottom{left:8px;bottom:8px;width:calc(100vw - 16px)}.palette{padding:7px 8px 8px;border-radius:16px}.palette-hint,.demolish-toggle span{display:none}.demolish-toggle{padding:6px 8px}.build-btn{width:72px;min-height:92px}.build-btn canvas{width:40px;height:40px}.toasts{top:128px}.finance-panel{top:128px;right:8px;left:8px;width:auto}.menu-panel{top:128px;right:8px}.modal-content{padding:20px}.modal-art{height:160px}}@media(max-height:760px)and (min-width:981px){.left-col,.right-col{bottom:176px}.quests-panel{min-height:120px}.family-panel{padding:10px 12px 11px}.family-avatars{margin-bottom:6px}.info-panel{min-height:100px}.map-panel{padding:9px}.expand-btn{padding:7px 8px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
