:root{--ink:#293d36;--muted:#829088;--green:#397c62;--green-dark:#245c48;--green-soft:#e9f0e5;--paper:#fbfaf5;--line:#e8e9df;--gold:#cba763;--danger:#ba6757;--sidebar:234px;--header:86px;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--paper)}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #d6a954;outline-offset:3px}button{border:0}svg{width:22px;height:22px;display:block;flex-shrink:0}a{color:var(--green)}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:32px 20px 0;background:#fbfaf6;display:flex;flex-direction:column;z-index:20;border-right:1px solid #e4e7dd}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);padding:0 6px 30px}.brand-mark{width:40px;height:50px;display:flex;align-items:center}.brand-mark svg{width:43px;height:51px}.brand strong{font-family:Georgia,serif;font-size:35px;letter-spacing:-2px;line-height:1}.brand-dot{color:var(--gold)}.brand-city{display:block;font-size:9px;font-weight:700;letter-spacing:5px;margin:9px 0 0 3px}.sidebar-caption{font-size:8px;letter-spacing:1.8px;color:#a5aca4;font-weight:700;padding:0 14px 16px}nav{display:flex;flex-direction:column;gap:5px}.nav-item{background:transparent;border-radius:11px;text-align:left;padding:13px 14px;display:flex;gap:12px;align-items:center;color:#7c8981;font-size:12px;font-weight:550;transition:.2s}.nav-item svg{width:19px;height:19px;opacity:.85}.nav-item:hover{background:#f0f2e9;color:var(--green)}.nav-item.active{background:#e9efe5;color:var(--green-dark);font-weight:700}.nav-item.active:after{content:"";margin-left:auto;width:5px;height:5px;border-radius:50%;background:var(--green)}.sidebar-spacer{flex:1;min-height:14px}.city-project-tile{background:#f0f1e7;border:1px solid #e6e9db;border-radius:13px;padding:16px 15px 14px;text-align:left;display:flex;flex-direction:column;position:relative;overflow:hidden}.project-eyebrow{font-size:7px;font-weight:800;letter-spacing:1.1px;color:#94a28e}.project-tile-art{height:65px;display:block;margin:2px -4px 1px}.project-tile-art svg{width:100%;height:100%}.city-project-tile>strong{font-family:Georgia,serif;font-size:15px;letter-spacing:-.4px;font-weight:400}.project-tile-copy{font-size:9px;color:#929b8b;margin:5px 0 12px}.progress-track{display:block;height:5px;background:#dce2d1;border-radius:10px;overflow:hidden}.progress-track>span{height:100%;display:block;background:#82a47f;transition:width .5s}.project-percent{font-size:8px;color:#8e9a87;margin-top:7px}.profile-tile{background:transparent;border-top:1px solid var(--line);margin:23px 0 0;padding:18px 3px;display:flex;align-items:center;gap:10px;text-align:left}.avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;height:36px;width:36px;flex-shrink:0;font-family:Georgia,serif;font-weight:700;color:#5a745d;background:#e3e9d7}.avatar-owner{background:linear-gradient(145deg,#dbd5ba,#efeadb);border:3px solid white;box-shadow:0 1px 7px #263e3712;color:#7b7459}.profile-tile strong{font-size:11px;display:block}.profile-tile small{display:block;color:#97a095;font-size:9px;margin-top:4px}.profile-chevron{margin-left:auto;font-size:23px;color:#a9afa5}.local-note{font-size:8px;color:#9da69d;display:flex;gap:6px;align-items:center;padding:0 3px 15px}.local-note>i{height:5px;width:5px;background:#94ad8a;border-radius:50%}.local-note>button{margin-left:auto;background:none;color:#8f9c90;font-size:14px}.game-shell{height:100%;margin-left:var(--sidebar)}.topbar{height:var(--header);display:flex;align-items:center;justify-content:space-between;padding:0 31px;background:#fbfaf6;border-bottom:1px solid #e0e6dc;position:relative;z-index:12}.district{display:flex;align-items:center;gap:13px}.district-icon{height:40px;width:40px;background:#f1f2e9;border-radius:11px;display:grid;place-items:center;color:#8c9c85}.district-icon svg{width:21px}.district-kicker{font-size:7px;font-weight:700;color:#9aa698;letter-spacing:1.5px}.district h1{font-size:15px;margin:5px 0 0;font-weight:650;letter-spacing:-.3px}.district-chevron{margin-left:7px;color:#b0b7ab;font-size:14px}.resource-bar{display:flex;align-items:center;gap:25px}.resource-item{display:flex;align-items:center;gap:9px;background:none;text-align:left}.resource-item small{display:block;font-size:7px;color:#99a494;letter-spacing:1px;font-weight:700}.resource-item strong{display:block;font-size:15px;letter-spacing:-.2px;margin-top:4px}.resource-item>span{color:#8c9b81}.resource-item svg{width:20px;height:22px}.coin-icon{height:30px;width:30px;border-radius:50%;background:#e7bc61;border:3px solid #f4d486;box-shadow:0 0 0 1px #d8af56;color:#fff7dc!important;display:grid;place-items:center;font-family:Georgia,serif;font-weight:bold;font-size:17px}.coins{border-left:1px solid var(--line);padding:0 0 0 23px}.coins strong{color:#8c713f}.level-pill{display:flex;align-items:center;gap:8px;text-align:left;background:none;border-left:1px solid var(--line);padding-left:24px}.level-pill>span{background:#e8eee0;color:#6a8c5c;width:31px;height:35px;display:grid;place-items:center;font-weight:800;font-size:12px;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%)}.level-pill small{display:block;font-size:7px;color:#9ca48f;letter-spacing:1px}.level-pill strong{display:block;font-size:11px;margin-top:3px}.mobile-brand{display:none}.city-stage{height:calc(100% - var(--header));position:relative;isolation:isolate;background:#b9d5cb;overflow:hidden}#city-canvas{display:block;width:100%;height:100%;outline:none;touch-action:none;cursor:grab}.stage-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #cfe3d00a;z-index:1}.city-status{position:absolute;top:24px;left:26px;display:flex;gap:10px;align-items:center;padding:10px 13px;border-radius:11px;background:#fbfcf1e8;box-shadow:0 4px 20px #294a3910;z-index:3;backdrop-filter:blur(8px)}.weather-icon{color:#c6a96b}.weather-icon svg{height:24px;width:24px}.city-status strong{font-size:12px;font-weight:600}.city-status small{display:block;font-size:8px;color:#94a08f;margin-top:3px}.status-divider{height:23px;width:1px;background:#e3e8db;margin:0 3px}.happiness{display:flex;gap:4px;align-items:center;color:#7e9a65}.happiness>span{font-size:21px}.happiness strong{font-size:10px}.save-status{position:absolute;left:27px;top:94px;display:flex;align-items:center;gap:5px;color:#627e6c;font-size:8px;z-index:2;background:#edf4e599;padding:5px 8px;border-radius:20px}.save-status i{height:4px;width:4px;background:#7d9e75;border-radius:50%}.save-status.pending{color:#9c7c4d}.save-status.error{color:#a95348;background:#fff0e9}.save-status.error i{background:#ba6757}.chapter-pill{position:absolute;top:31px;left:50%;transform:translateX(-50%);display:flex;gap:8px;align-items:center;padding:9px 13px;border-radius:20px;background:#f6f9ebce;color:#7c8b6f;box-shadow:0 1px 6px #2e4e3010;z-index:2;white-space:nowrap}.chapter-pill i{height:5px;width:5px;background:#a5b485;border-radius:50%}.chapter-pill span{font-size:7px;letter-spacing:1px;font-weight:700}.chapter-pill b{font-size:9px;font-weight:500}.map-controls{position:absolute;left:26px;top:135px;z-index:5;display:flex;flex-direction:column;gap:4px;background:#fafbf1e8;backdrop-filter:blur(8px);padding:5px;border-radius:11px;box-shadow:0 4px 18px #24452f12}.map-controls button{width:31px;height:30px;background:transparent;border-radius:7px;display:grid;place-items:center;font-size:20px;color:#6e846e}.map-controls button:hover{background:#e6eddf}.map-controls button svg{width:17px;height:17px}.map-controls>span{height:1px;background:#e1e8da;margin:2px 6px}.map-caption{position:absolute;bottom:33px;left:29px;z-index:2;display:flex;flex-direction:column;color:#4e7665;pointer-events:none;text-shadow:0 1px 1px #e1eee1}.map-caption-line{width:32px;height:1px;background:#83a28a;margin-bottom:10px}.map-caption strong{font-size:11px;letter-spacing:3.4px;font-weight:600}.map-caption>span:last-child{font-family:Georgia,serif;font-style:italic;font-size:11px;margin-top:7px;color:#6d8d77}.detail-panel{position:absolute;right:26px;top:24px;width:297px;max-height:calc(100% - 165px);z-index:6;overflow:auto;border-radius:15px;background:var(--paper);box-shadow:0 9px 35px #274e3b20;border:1px solid #fff8;scrollbar-width:thin;scrollbar-color:#cbd5bd transparent}.detail-panel:empty{display:none}.panel-head{padding:21px 22px 14px;position:relative;border-bottom:1px solid var(--line)}.panel-kicker{font-size:7px;font-weight:800;letter-spacing:1.7px;color:#94a18b;margin-bottom:8px}.panel-head h2{font-family:Georgia,serif;letter-spacing:-.7px;font-weight:400;font-size:24px;line-height:1.2;margin:0;padding-right:10px}.panel-head p{color:#96a08e;font-size:9px;line-height:1.65;margin:9px 0 0}.close-button{position:absolute;right:14px;top:15px;height:24px;width:24px;display:grid;place-items:center;border-radius:50%;background:#efefe6;color:#99a18f;font-size:17px}.panel-body{padding:18px 21px}.panel-body>p{font-size:11px;line-height:1.8;color:#8a9783;margin:0 0 16px}.welcome-illustration{height:107px;margin:-18px -21px 16px;background:#e8eddf;overflow:hidden;position:relative;display:flex;justify-content:flex-end;align-items:center}.welcome-illustration img{width:119px;height:130px;object-fit:cover;object-position:50% 18%;mix-blend-mode:multiply;position:relative;z-index:1;align-self:flex-end;margin-right:6px;transform:translateY(10px);border-radius:40%}.welcome-illustration:before{content:"✦";position:absolute;font-size:87px;color:#d8dfca;left:14px;top:11px;font-family:Georgia}.welcome-illustration:after{content:"ADA TEMPAT\A UNTUK CERITAMU.";white-space:pre;font-family:Georgia,serif;color:#8d9f79;font-size:15px;line-height:1.4;position:absolute;left:24px;top:32px}.quote-card{font-family:Georgia,serif;font-size:13px;line-height:1.7;color:#67805c}.quote-by{font-family:Inter,"Segoe UI",sans-serif;font-size:8px;color:#9fa68e;margin-top:9px;letter-spacing:.3px}.button{display:flex;justify-content:center;align-items:center;gap:7px;width:100%;min-height:38px;border-radius:8px;padding:10px 12px;font-size:10px;font-weight:650;background:var(--green);color:#fffef7;text-decoration:none;transition:background .2s,transform .2s}.button:hover{background:#2f6c54;transform:translateY(-1px)}.button svg{width:15px;height:15px}.button.secondary{background:#eaf0e2;color:#66865b;border:1px solid #dfe7d5}.button.secondary:hover{background:#dfe8d4}.button.ghost{background:transparent;color:#839375;border:1px solid #e0e6d8}.button.gold{background:#c6a265;color:#fffbed}.button-row{display:flex;gap:7px;margin-top:11px}.button-row .button{flex:1}.section-label{font-size:7px;font-weight:800;color:#a0a893;letter-spacing:1.2px;display:flex;justify-content:space-between;margin:20px 0 10px}.steps{list-style:none;padding:0;margin:17px 0 19px;display:grid;gap:12px}.steps li{display:flex;gap:10px;align-items:center}.step-num{height:22px;width:22px;border-radius:50%;border:1px solid #dde5d2;display:grid;place-items:center;color:#9ba88d;font-size:8px}.steps li.done .step-num{background:#e6eddc;border-color:#e6eddc;color:#6d925c}.steps strong{display:block;font-size:10px;font-weight:600}.steps small{display:block;font-size:8px;color:#a2ab96;margin-top:4px}.panel-footer{padding:12px 21px;border-top:1px solid var(--line);font-size:8px;line-height:1.6;color:#a6ad9d;background:#f6f6ee}.panel-footer strong{color:#859378;font-weight:500}.building-hero{height:106px;margin:-18px -21px 15px;background:#e9eedf;display:grid;place-items:center}.building-hero svg{width:130px;height:100px}.building-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.building-meta>div{background:#f0f2e9;border-radius:8px;padding:10px 11px}.building-meta small{font-size:7px;color:#a0aa94;display:block;text-transform:uppercase;letter-spacing:.6px}.building-meta strong{display:block;font-size:10px;margin-top:5px;font-weight:600}.tag{display:inline-block;background:#ecf0e3;color:#81916d;border-radius:5px;padding:5px 7px;font-size:7px;font-weight:700;letter-spacing:.5px}.residents-list,.jobs-list{display:grid;gap:8px}.resident-row{display:flex;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid #eeeee4;background:none;text-align:left;width:100%}.resident-row .avatar{width:30px;height:30px;font-size:12px;border:2px solid #fff}.resident-row strong{font-size:10px;display:block;font-weight:600}.resident-row small{font-size:8px;color:#a4ac98;display:block;margin-top:4px}.resident-row>span:last-child{margin-left:auto;color:#b0b79f;font-size:16px}.search{display:flex;align-items:center;gap:7px;background:#f0f2e8;border:1px solid #e5e9db;border-radius:8px;padding:9px 11px;margin-bottom:12px}.search svg{width:14px;height:14px;color:#a3ae98}.search input{border:0;outline:0;background:none;min-width:0;width:100%;font-size:10px;color:#637957}.search input::placeholder{color:#a8b29b}.job-card{background:#f1f3e9;border:1px solid #e7eadb;border-radius:11px;padding:14px}.job-card.selected{border-color:#b4c8a2;background:#eff4e7}.job-top{display:flex;gap:10px;align-items:center}.job-icon{height:35px;width:35px;display:grid;place-items:center;border-radius:9px;background:#fff9;color:#94a47e}.job-icon svg{width:20px}.job-top h3{font-size:11px;margin:0 0 4px}.job-top small{font-size:8px;color:#99a48b}.job-card p{font-size:9px;color:#95a187;line-height:1.6;margin:10px 0}.reward{font-size:8px;color:#b1955f;display:flex;justify-content:space-between;align-items:center;margin:10px 0}.job-card .button{min-height:30px;padding:7px;font-size:9px}.selected-label{margin-left:auto;color:#7e9a66;background:#e1ebd5;border-radius:20px;padding:4px 6px;font-size:7px;font-weight:600}.wallet-total{font-family:Georgia,serif;font-size:37px;color:#9f8351;display:flex;gap:9px;align-items:center;margin:3px 0 8px}.wallet-total .coin-icon{font-size:20px;height:37px;width:37px}.muted-text{font-size:9px;line-height:1.6;color:#a0aa93}.history-list{display:grid;gap:3px}.history-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eceee2;padding:11px 0;font-size:9px;gap:8px}.history-row small{display:block;font-size:7px;color:#a9b19b;margin-top:4px}.history-row .amount{font-weight:600;color:#7d9d68;white-space:nowrap}.history-row .amount.negative{color:#c29b7c}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shop-card{padding:12px 9px;border:1px solid #e5e9da;border-radius:9px;background:#f2f4eb;text-align:center}.shop-card>span:first-child{display:grid;place-items:center;height:39px}.shop-card svg{height:32px;width:32px;stroke-width:1.3}.shop-card strong{font-size:9px;display:block;margin:7px 0 5px}.shop-card small{display:block;font-size:8px;color:#b39962;margin-bottom:9px}.shop-card button{font-size:8px;min-height:25px;padding:6px}.owned-count{font-size:7px;color:#8da079;display:block;margin-bottom:8px}.project-meter{background:#e6eddb;height:8px;border-radius:10px;overflow:hidden;margin:13px 0 8px}.project-meter>span{height:100%;background:#82a474;display:block}.project-numbers{display:flex;align-items:center;justify-content:space-between;font-size:10px;margin-bottom:16px}.project-numbers span{font-size:8px;color:#a4ae97}.contribution-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:13px}.contribution-options button{padding:9px 4px;font-size:9px;background:#eef2e4;border:1px solid #e1e7d5;border-radius:7px;color:#8da175}.contribution-options button:hover{background:#dfe9d4}.vote-option{display:flex;align-items:center;gap:8px;width:100%;padding:10px;margin-bottom:6px;border:1px solid #e5e9da;border-radius:7px;background:#f4f5ed;font-size:9px;text-align:left;color:#859773}.vote-option .vote-dot{width:12px;height:12px;border:1px solid #c8d3ba;border-radius:50%}.vote-option.selected{background:#eaf0df;border-color:#b5c9a0}.vote-option.selected .vote-dot{border:4px solid #86a370}.news-card{border-bottom:1px solid #e9ecdf;padding-bottom:16px;margin-bottom:16px}.news-card:last-child{border:0;margin:0;padding:0}.news-card small{font-size:7px;letter-spacing:1px;color:#abb397;font-weight:700}.news-card h3{font-family:Georgia,serif;font-size:19px;font-weight:400;letter-spacing:-.5px;line-height:1.3;margin:8px 0}.news-card p{font-size:10px;line-height:1.7;color:#97a38c;margin:0}.message-card{font-size:10px;line-height:1.65;border-bottom:1px solid #ebeee1;padding:12px 0;color:#8b9b7e}.message-card strong{font-size:9px;color:#718364}.message-card small{font-size:7px;color:#b0b89f;margin-left:7px}.message-card p{margin:6px 0 0}.compose-message textarea,.name-input{resize:vertical;width:100%;padding:10px;border:1px solid #e2e7d7;background:#f1f4e9;border-radius:7px;font-size:10px;color:#738665;outline:0}.compose-message textarea:focus,.name-input:focus{border-color:#a5bf91}.compose-message .button{margin-top:7px}.profile-card-avatar{width:64px;height:64px;font-size:28px;margin:0 auto 13px}.profile-card-title{text-align:center;font-family:Georgia,serif;font-size:26px}.profile-card-sub{text-align:center;font-size:9px;color:#a0ac91;margin:6px 0 20px}.xp-track{height:6px;border-radius:10px;background:#e1e8d6;overflow:hidden}.xp-track>span{display:block;background:#9db77c;height:100%}.stat-row{display:flex;justify-content:space-between;font-size:10px;padding:10px 0;border-bottom:1px solid #e9ecdf}.stat-row>span{color:#a0aa92}.small-link{background:none;padding:0;color:#8ca177;font-size:9px;text-decoration:underline}.map-hint{text-align:center;font-size:8px;color:#5c7f69;margin-bottom:11px;text-shadow:0 1px #ebf4e0}.map-hint span{margin:0 8px;color:#a3bc9a}.bottom-wrap{position:absolute;left:calc(50% - 65px);bottom:28px;transform:translateX(-50%);z-index:7;pointer-events:none}.build-dock{display:flex;align-items:center;gap:7px;padding:8px;background:#fbfcf0ed;border:1px solid #ffffffb0;box-shadow:0 8px 28px #2b523a22;border-radius:13px;backdrop-filter:blur(12px);pointer-events:auto}.dock-tool{height:54px;min-width:56px;padding:6px 8px;background:none;border:1px solid transparent;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:7px;color:#99a48d;white-space:nowrap}.dock-tool svg{width:22px;height:22px}.dock-tool:hover{background:#edf2e2}.dock-tool.active{background:#e3ecd7;border-color:#ccdabb;color:#648453}.dock-tool small{font-size:6px;color:#b7aa79}.dock-separator{height:32px;width:1px;background:#e0e6d4;margin:0 2px}.attribution-pill{position:absolute;right:29px;bottom:17px;z-index:1;font-size:7px;color:#72947a}.attribution-pill span{margin-left:4px;color:#a0ad6d}.build-banner{position:absolute;left:50%;top:90px;transform:translateX(-50%);padding:10px 12px;border-radius:8px;background:#fcf8e8;box-shadow:0 3px 14px #334d2b19;font-size:10px;z-index:8;white-space:nowrap;align-items:center;gap:13px}.build-banner:not([hidden]){display:flex}.build-banner button{background:#eee8d5;border-radius:5px;padding:5px 8px;font-size:8px;color:#978d69}.build-banner kbd{font:inherit;color:#b3a987;margin-left:3px}.toast-stack{position:fixed;top:101px;left:calc(50% + var(--sidebar)/2);transform:translateX(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#fbfbf2;border:1px solid #e4e9d9;border-radius:10px;padding:12px 18px;font-size:11px;box-shadow:0 6px 25px #2547311f;animation:toastIn .3s ease;color:#617c53;display:flex;gap:9px;align-items:center}.toast svg{width:16px;height:16px}.toast.error{color:#b16c54;border-color:#e7d4c0}.toast.reward{background:#f9f1d7;color:#9d7d42;border-color:#edd6a3}@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{position:fixed;inset:0;background:#1e3b2f55;backdrop-filter:blur(7px);z-index:80;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.modal{width:510px;max-width:100%;max-height:90vh;overflow:auto;border-radius:19px;background:#fbfaf4;box-shadow:0 20px 100px #152e3c33;position:relative}.modal .panel-head{padding:27px 28px 19px}.modal .panel-head h2{font-size:30px}.modal .panel-body{padding:22px 28px 27px}.modal .close-button{right:20px;top:20px}.work-game{padding:17px;background:#eef2e5;border:1px solid #e1e7d7;border-radius:12px}.work-game h3{font-size:12px;margin:0 0 7px}.work-game>p{font-size:10px;line-height:1.7;color:#8b9a7c;margin:0 0 15px}.work-progress{display:flex;gap:6px;align-items:center;margin:14px 0}.work-progress i{height:5px;flex:1;border-radius:10px;background:#d6dfc9}.work-progress i.done{background:#8eaf72}.work-timer{font-size:9px;color:#9bab88;display:flex;justify-content:space-between;margin:10px 0}.work-targets{display:flex;justify-content:center;gap:11px;margin:20px 0}.work-target{width:93px;height:98px;border:1px solid #dce4ce;border-radius:11px;background:#fffdf2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;font-size:9px;color:#82936e;transition:.15s;position:relative}.work-target svg{width:35px;height:35px;color:#c0aa7c}.work-target:hover{transform:translateY(-4px);box-shadow:0 5px 10px #3d653b0b}.work-target.done{background:#e3ecd6;border-color:#b6cd9c}.work-target.done:after{content:"✓";position:absolute;top:4px;right:7px;color:#739759}.work-target.done svg{opacity:.4}.lab-lights{display:flex;justify-content:center;gap:15px;margin:24px 0}.lab-light{width:62px;height:62px;border-radius:50%;border:5px solid #ffffff99;box-shadow:0 3px 9px #4c5b4420;transition:.12s}.lab-light:hover,.lab-light.lit{filter:brightness(1.25);transform:scale(1.07);box-shadow:0 0 0 5px #fff5,0 6px 15px #4c5b4420}.garden-bed{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:276px;margin:15px auto}.garden-spot{height:66px;background:#d9dfbd;border:1px dashed #c1cda8;border-radius:8px;display:grid;place-items:center;color:#8b9c65}.garden-spot svg{width:32px;height:32px}.garden-spot.done{background:#e9efda;color:#c9a34c;border-style:solid}.minigame-result{border-radius:12px;padding:24px;background:#eff3e5;text-align:center}.minigame-result>svg{margin:0 auto 12px;width:45px;height:45px;color:#d5ad55}.minigame-result h3{font-family:Georgia,serif;font-size:27px;font-weight:400;margin:4px 0 9px}.minigame-result p{font-size:11px;color:#8f9f7b;line-height:1.8}.reward-pills{display:flex;justify-content:center;gap:9px;margin:19px 0}.reward-pills span{font-size:12px;padding:9px 14px;border-radius:7px;background:#e7ebd7;color:#8e9d6e}.reward-pills span:first-child{background:#f2e8c8;color:#ad8c43}.empty-state{text-align:center;padding:24px 12px;font-size:10px;color:#a0ad92;line-height:1.8}.credit-link{display:block;font-size:10px;padding:7px 0;color:#779268;line-height:1.6}.boot{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8f7f0;transition:opacity .35s}.boot.hide{opacity:0;pointer-events:none}.boot-logo{font-family:Georgia,serif;font-size:62px;letter-spacing:-4px;color:#345d49;text-align:center}.boot-logo>span{color:#c9ac6c}.boot-logo small{display:block;font-family:"Segoe UI",sans-serif;font-size:10px;letter-spacing:9px;margin-top:8px;margin-left:10px;color:#849479}.boot-loader{height:2px;width:95px;overflow:hidden;background:#e0e6d6;margin-top:40px;border-radius:8px}.boot-loader:after{content:"";width:35px;display:block;height:100%;background:#91a87b;animation:load 1.1s infinite ease-in-out}.boot p{font-size:10px;color:#9aab89;margin-top:17px}@keyframes load{from{transform:translateX(-40px)}to{transform:translateX(100px)}}body.night .city-stage{background:#263f47}body.night .map-caption,body.night .map-hint,body.night .attribution-pill{color:#aec6aa;text-shadow:none}body.night .save-status{background:#fbfcf0df}body.night .chapter-pill{background:#fbfcf0df}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}
@media(min-width:1600px){:root{--sidebar:258px;--header:96px}.sidebar{padding:40px 24px 0}.brand strong{font-size:39px}.nav-item{padding:16px;font-size:13px}.sidebar-caption{font-size:9px}.detail-panel{width:330px;right:32px;top:30px}.panel-head{padding:25px 25px 17px}.panel-head h2{font-size:27px}.panel-body{padding:22px 25px}.panel-body>p,.quote-card{font-size:13px}.welcome-illustration{margin:-22px -25px 18px;height:130px}.welcome-illustration img{height:150px;width:135px}.welcome-illustration:after{font-size:18px;top:39px}.button{font-size:11px;min-height:42px}.steps{gap:16px}.steps strong{font-size:11px}.steps small{font-size:9px}.city-project-tile{padding:19px}.city-project-tile>strong{font-size:17px}.project-tile-art{height:80px}.topbar{padding:0 40px}.district h1{font-size:17px}.resource-item strong{font-size:18px}.dock-tool{height:64px;min-width:66px;font-size:8px}.dock-tool svg{width:26px;height:26px}.bottom-wrap{bottom:34px}.map-caption{bottom:40px}}
@media(max-width:1150px){:root{--sidebar:195px}.sidebar{padding:26px 14px 0}.brand{gap:8px;padding-left:4px}.brand strong{font-size:29px}.brand-mark svg{width:36px}.brand-city{font-size:8px;letter-spacing:4px}.sidebar-caption{font-size:7px;letter-spacing:1px}.nav-item{font-size:11px;padding:12px 10px;gap:9px}.city-project-tile{padding:12px}.city-project-tile>strong{font-size:13px}.topbar{padding:0 22px}.resource-bar{gap:15px}.coins{padding-left:15px}.level-pill{padding-left:15px}.district h1{font-size:13px}.detail-panel{width:270px;right:18px;top:20px}.panel-head{padding:19px 18px 13px}.panel-body{padding:16px 18px}.welcome-illustration{margin:-16px -18px 14px}.chapter-pill{display:none}.bottom-wrap{left:48%;bottom:23px}.dock-tool{min-width:48px;padding:5px;font-size:6px}.map-caption{bottom:29px}.attribution-pill{display:none}.city-status{left:20px;top:20px}.map-controls{left:20px}.save-status{left:20px}.map-hint{font-size:7px}}
@media(max-width:860px){:root{--sidebar:76px;--header:72px}.sidebar{padding:22px 10px 0}.brand{padding:0 10px 23px}.brand>span:last-child,.sidebar-caption,.nav-item>span,.city-project-tile,.profile-tile>span:not(.avatar),.local-note{display:none}.brand-mark{height:34px;width:33px}.brand-mark svg{width:32px;height:36px}.nav-item{padding:12px;justify-content:center}.nav-item svg{height:22px;width:22px}.nav-item.active:after{display:none}.profile-tile{justify-content:center;margin:15px 0 7px}.sidebar-spacer{min-height:0}.topbar{padding:0 18px}.district-kicker{font-size:6px}.district-icon{height:32px;width:32px}.district h1{font-size:12px}.population{display:none}.resource-bar{gap:16px}.resource-item small{font-size:6px}.coins{border:0;padding:0}.resource-item strong{font-size:14px}.level-pill{padding-left:16px}.level-pill>div{display:none}.detail-panel{width:263px;right:14px;max-height:calc(100% - 155px)}.bottom-wrap{left:50%;bottom:21px}.map-caption{display:none}.city-status{left:15px;top:20px}.map-controls{left:15px}.save-status{left:15px}.toast-stack{left:calc(50% + 38px)}.build-banner{font-size:9px;top:85px}}
@media(max-width:600px){:root{--sidebar:0px;--header:68px}.sidebar{display:none}.game-shell{margin-left:0}.topbar{padding:0 14px;gap:10px}.mobile-brand{display:block;background:none;font-family:Georgia,serif;font-size:23px;letter-spacing:-2px;color:#497557;padding:0}.mobile-brand>span{color:#c5a366}.district{gap:0;flex:1}.district-icon{display:none}.district-kicker{font-size:5px;letter-spacing:1px}.district h1{font-size:11px}.district-chevron{margin-left:2px}.resource-bar{gap:12px}.coins{gap:6px}.coin-icon{height:24px;width:24px;font-size:13px;border-width:2px}.resource-item strong{font-size:12px}.level-pill{padding-left:11px}.level-pill>span{height:29px;width:25px;font-size:10px}.city-status{left:13px;top:15px;padding:8px 10px;gap:8px}.city-status strong{font-size:11px}.city-status small{font-size:7px}.weather-icon svg{height:20px;width:20px}.save-status{left:auto;right:13px;top:24px;font-size:6px;padding:5px 6px}.map-controls{left:13px;top:89px;gap:2px}.map-controls button{width:29px;height:28px}.detail-panel{top:auto;bottom:107px;right:12px;width:260px;max-height:53%;border-radius:13px}.detail-panel .panel-head{padding:15px 16px 12px}.panel-head h2{font-size:22px}.panel-body{padding:14px 16px}.welcome-illustration{height:79px;margin:-14px -16px 12px}.welcome-illustration img{height:95px;width:90px}.welcome-illustration:after{font-size:12px;top:22px}.quote-card{font-size:11px}.steps{gap:9px;margin:12px 0}.steps strong{font-size:9px}.steps small{font-size:7px}.panel-footer{font-size:7px;padding:10px 16px}.button{min-height:34px;font-size:9px}.bottom-wrap{bottom:15px;width:calc(100% - 24px);left:50%}.build-dock{justify-content:space-between;padding:6px;gap:1px;border-radius:12px}.dock-tool{min-width:0;flex:1;height:50px;font-size:6px;padding:3px}.dock-tool svg{width:20px;height:20px}.dock-tool small{font-size:6px}.dock-separator{margin:0;width:1px}.map-hint{font-size:6px;margin-bottom:8px;white-space:nowrap}.map-hint span{margin:0 4px}.toast-stack{left:50%;top:79px;width:calc(100% - 28px)}.toast{font-size:10px;padding:10px 13px}.modal-backdrop{padding:12px}.modal{border-radius:14px}.modal .panel-head{padding:22px 22px 17px}.modal .panel-body{padding:19px 22px 23px}.modal .panel-head h2{font-size:26px}.work-target{width:74px;height:83px}.work-targets{gap:7px}.lab-light{width:55px;height:55px}.build-banner{top:73px;font-size:8px;max-width:calc(100% - 20px);white-space:normal}.building-hero{height:80px;margin:-14px -16px 12px}.building-hero svg{height:80px}.panel-head p{font-size:8px}.shop-card strong{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
