@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900;1000&display=swap";:root{color:#14376f;font-synthesis:none;--navy:#103471;--blue:#286bef;background:#cde6ff;font-family:Nunito,sans-serif;font-weight:700}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation;transition:transform .15s,background .15s}button:disabled{cursor:default}button:active:not(:disabled){transform:translateY(3px)}button:focus-visible,[role=button]:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #ffc63e}h1,h2,h3,p{margin:0}p{line-height:1.55}svg{flex-shrink:0}.sprite{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.app-shell{isolation:isolate;background:radial-gradient(at 20% 20%,#edf8ff,#0000 55%),linear-gradient(#b6d9fc,#e7f4ff);width:100%;height:100dvh;position:relative;overflow:hidden}.eyebrow{letter-spacing:1.7px;color:#7391bc;font-size:10px;font-weight:900}.primary-button,.secondary-button{border:2px solid #fff;border-radius:15px;justify-content:center;align-items:center;gap:11px;min-height:47px;padding:11px 23px;font-size:15px;font-weight:1000;line-height:1.15;display:inline-flex}.primary-button{color:#fff;text-shadow:0 2px #1249a843;background:linear-gradient(#4085ff,#2364db 65%,#174aa5);border-color:#639aff #3471df #2455b1;box-shadow:0 5px #123d8d,0 9px 17px #18458b29}.primary-button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px)}.primary-button:disabled{color:#f0f4fa;text-shadow:none;background:linear-gradient(#bac5d6,#9daabd);border-color:#c6d0df;box-shadow:0 4px #8b99af}.secondary-button{background:#f9fcff;border-color:#dce7f9;box-shadow:0 3px #c4d6f2}.secondary-button:hover:not(:disabled){background:#eaf3ff}.secondary-button:disabled{opacity:.4}.screen-topbar{z-index:3;pointer-events:none;justify-content:space-between;align-items:center;padding:25px 30px;display:flex;position:absolute;inset:0 0 auto}.screen-topbar>*{pointer-events:auto}.brand{color:var(--navy);letter-spacing:2px;align-items:center;gap:8px;font-size:29px;font-weight:1000;line-height:1;display:flex}.brand>svg{color:#47a755;background:#fff9;border-radius:13px;width:43px;height:43px;padding:6px}.brand small{letter-spacing:3px;margin-bottom:5px;font-size:8px;display:block}.fullscreen-button{background:#ffffffed;border:2px solid #deebff;border-radius:30px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:8px 17px;font-size:12px;font-weight:900;display:flex}.menu-backdrop{z-index:-1;position:absolute;inset:0;overflow:hidden}.menu-backdrop>img{object-fit:cover;object-position:center 55%;width:100%;height:100%}.sky-wash{background:linear-gradient(#b9dfffee,#d9edffbd 42%,#e0f2ff38 66%,#073e688c);position:absolute;inset:0}.welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:95px 20px 24px;display:flex}.title-emblem{letter-spacing:1.8px;background:#e5f3ffb5;border:1px solid #fff9;border-radius:30px;align-items:center;gap:7px;margin-bottom:17px;padding:7px 14px;font-size:10px;font-weight:900;display:flex}.game-title{letter-spacing:-1.5px;filter:drop-shadow(0 5px #143570);margin:0 0 26px;font-weight:1000;line-height:.96}.game-title>span,.game-title>strong,.game-title>em{paint-order:stroke fill;-webkit-text-stroke:7px #123570;display:block}.game-title>span{color:#fff;font-size:clamp(33px,4.7vw,65px)}.game-title>strong{color:#81d952;margin:10px 0 7px;font-size:clamp(55px,8.8vw,122px);font-weight:1000}.game-title>em{color:#6daaf9;font-size:clamp(53px,7.9vw,108px);font-style:normal}.welcome-subtitle{color:#123c6c;text-shadow:0 1px 8px #f0faff;font-size:19px;font-weight:900}.start-button{text-transform:uppercase;letter-spacing:1px;border-radius:45px;min-width:275px;min-height:73px;margin-top:25px;font-size:25px}.welcome-links{gap:13px;margin-top:25px;display:flex}.welcome-links .secondary-button{background:#f3faffed;border-color:#fff;border-radius:14px;min-height:52px;box-shadow:0 3px #398ac047}.welcome-links button:first-child svg{color:#ee608b}.welcome-links button:last-child svg{color:#e1a829}.welcome-caption{color:#fff;text-shadow:0 2px 6px #144b6d;justify-content:center;align-items:center;gap:7px;margin-top:27px;font-size:14px;font-weight:900;display:flex}.overlay-page{place-items:center;height:100%;padding:86px 20px 25px;display:grid;overflow:hidden}.game-panel{color:#183a70;background:#fff;border:3px solid #fff;border-radius:27px;box-shadow:0 16px 42px #254b7b26}.instruction-card{width:100%;max-width:750px;max-height:100%;padding:34px 38px;overflow:auto}.instruction-card h2,.help-dialog h2{color:#2864dc;margin:4px 0 11px;font-size:33px;font-weight:1000}.instruction-card>p,.help-dialog>p{color:#60779b;font-size:14px}.instruction-steps{flex-direction:column;gap:17px;margin:22px 0;display:flex}.instruction-step{align-items:center;gap:17px;padding-left:41px;display:flex;position:relative}.instruction-step>span{color:#438fc0;background:#f1f7ff;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.instruction-step:nth-child(2)>span{color:#e7ad2b}.instruction-step:nth-child(3)>span{color:#df6e9a}.instruction-step:nth-child(4)>span{color:#d29d25}.instruction-step small{background:var(--navy);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:900;display:grid;position:absolute;top:8px;left:0}.instruction-step h3{margin-bottom:3px;font-size:16px;font-weight:900}.instruction-step p{color:#5b7396;font-size:13px;font-weight:600}.fit-legend{flex-wrap:wrap;gap:9px;display:flex}.fit-legend>span{background:#f0f5ff;border-radius:20px;align-items:center;gap:7px;padding:8px 11px;font-size:11px;display:flex}.fit-legend i{border-radius:3px;width:10px;height:10px;transform:rotate(45deg)}.legend-green{background:#70b737}.legend-neutral{background:#c8deae}.legend-amber{background:#e4ae56}.instruction-note{margin-top:15px;color:#7890af!important;font-size:10px!important}.dialog-actions{justify-content:space-between;gap:14px;margin-top:23px;display:flex}.game-page{flex-direction:column;gap:13px;height:100%;padding:16px 17px 15px;display:flex}.game-hud{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;min-height:60px;display:flex}.hud-left{align-items:center;gap:12px;display:flex}.menu-button{color:#fff;background:#103471;border:1px solid #174583;border-radius:15px;place-items:center;width:54px;height:54px;display:grid;box-shadow:0 4px #092658}.hud-score{color:#fff;background:#103471;border-radius:36px;align-items:center;gap:10px;min-height:59px;padding:8px 19px 8px 8px;display:flex}.hud-leaf{color:#4eb764;background:#fff;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.hud-score small{color:#c3d9fa;font-size:10px;display:block}.hud-score strong{font-size:26px;font-weight:1000;line-height:1.05;animation:.24s ease-out score-bump;display:block}.hud-score strong>span{color:#bfd6f8;font-size:11px;font-weight:700}.hud-count{background:#fff;border:2px solid #fff9;border-radius:28px;min-height:58px;padding:8px 18px;box-shadow:0 3px #b9d4f06b}.hud-count>span{color:#5c7bad;font-size:10px;display:block}.hud-count>strong{color:#4ba651;font-size:23px;font-weight:1000;line-height:1.1;display:block}.hud-count small{color:#83a880;font-size:13px}.hud-title{text-align:right;padding-right:5px}.hud-title>strong{font-size:20px;font-weight:1000;line-height:1.2;display:block}.hud-title>span{color:#5e7ca5;margin-top:3px;font-size:11px;display:block}.game-layout{flex:1;grid-template-columns:minmax(0,1fr) clamp(310px,28vw,390px);gap:17px;min-height:0;display:grid}.city-workspace{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.map-toolbar{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:0 2px 6px;display:flex}.location-badge{letter-spacing:1.5px;background:#ffffffa6;border:1px solid #fff;border-radius:25px;align-items:center;gap:7px;padding:8px 12px;font-size:12px;font-weight:1000;display:flex}.live-dot{background:#57b260;border-radius:50%;width:5px;height:5px;margin-left:3px}.map-tools{gap:7px;display:flex}.map-tools>button{color:#1b427d;background:#fff;border:2px solid #fff;border-radius:10px;place-items:center;width:37px;height:35px;padding:0;display:grid;box-shadow:0 3px #afc8e678,0 4px 9px #29609b12}.map-tools>button:disabled{opacity:.4}.map-tools .fullscreen-button span{display:none}.map-stage{flex:1;min-height:0;position:relative;overflow:hidden}.map-frame{transform-origin:50%;width:1000px;height:671.141px;position:absolute;top:50%;left:50%}.map{isolation:isolate;background:#c7ddaa;border-radius:18px;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 7px #698b8d30,0 20px 42px #2c587324}.map-background{object-fit:cover;object-position:center top;z-index:-2;width:100%;height:135%;position:absolute;inset:0}.map:after{content:"";pointer-events:none;z-index:-1;background:linear-gradient(#d9e8b50a,#8bab5b09);position:absolute;inset:0}.plot-grid{perspective:1200px;grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 11px;width:72%;height:64%;display:grid;position:absolute;top:17%;left:14%}.plot{background:linear-gradient(145deg,#f7ffe671,#d9edb755);border:1px dashed #fbfff0de;border-radius:8px;min-width:0;min-height:0;transition:background .18s,box-shadow .18s;position:relative;box-shadow:0 5px #516d4317,0 8px 14px #4d753c0d}.plot-hit{text-align:left;color:#486c3f;background:0 0;border:0;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:5px;display:flex;position:absolute;inset:0}.plot-number{font-size:max(11px,calc(8px / var(--map-scale)));color:#4e7038;font-weight:900;position:absolute;top:5px;left:7px}.plot-plus{opacity:.42;margin-top:-5px}.tags{flex-wrap:wrap;gap:4px 5px;display:flex}.tags>span{align-items:center;gap:3px;line-height:1.25;display:inline-flex}.plot .tags{font-size:max(10px,calc(7px / var(--map-scale)));justify-content:center;gap:2px;position:absolute;bottom:5px;left:3px;right:3px}.plot .tags>span{white-space:nowrap;color:#426035;background:#f7ffe9d1;border-radius:3px;padding:2px 3px}.plot .tags svg{width:12px;height:12px}.plot.available{border:1px dashed #70944a;box-shadow:0 0 0 2px #eff7de25}.plot.good-fit{background:linear-gradient(130deg,#e0f9b7ba,#d4ef9ba6);border-color:#678d39}.plot.poor-fit{background:#f2d8a69c;border-color:#ae8142}.plot.over{z-index:5;background:#e8ffb6d6;box-shadow:0 0 0 3px #4e773a}.plot.blocked{background:#ebc0a7a3;box-shadow:0 0 0 3px #b47449}.plot.occupied{background:#eff8dd55;border-style:solid;border-color:#eaffd0bd}.placed-building{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;z-index:2;flex-direction:column;justify-content:end;align-items:center;animation:.25s ease-out building-arrive;display:flex;position:absolute;inset:-13% 0 26%}.placed-building .sprite{object-fit:contain;filter:drop-shadow(0 5px 3px #3e592c20);width:120%;height:calc(100% - 13px);max-height:100%}.placed-building>span{font-size:max(10px,calc(7px / var(--map-scale)));text-align:center;color:#345638;background:#fcfff3f2;border:1px solid #e5efd7bd;border-radius:3px;max-width:95%;padding:3px 4px;font-weight:800;line-height:1.1;box-shadow:0 2px 5px #25381f09}.placed-building.selected .sprite{filter:drop-shadow(0 0 5px #f3ffb3)}.dragging{opacity:.35}.drag-preview{pointer-events:none;filter:drop-shadow(0 13px 8px #2a462e3b);flex-direction:column;align-items:center;width:150px;height:145px;display:flex}.drag-preview .sprite{height:120px}.drag-preview>span{background:#fff;border:2px solid #b3cbf0;border-radius:7px;padding:5px 8px;font-size:11px}.map-bottom{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;min-height:37px;padding:10px 7px 1px;display:flex}.map-bottom>span{color:#5476a0;align-items:center;gap:7px;font-size:11px;display:flex}.progress-dots{gap:5px;display:flex}.progress-dots>span{background:#b8cce3;border:1px solid #fff;border-radius:50%;width:7px;height:7px}.progress-dots>.filled{background:#62b33e}.palette{background:#fff;border:3px solid #fff;border-radius:25px;flex-direction:column;gap:10px;min-height:0;padding:17px 13px 16px;display:flex;overflow:hidden;box-shadow:0 6px #b2cae785,0 12px 22px #3d699e15}.palette-heading{justify-content:space-between;align-items:center;gap:8px;padding:0 2px;display:flex}.palette-heading h2{font-size:17px;font-weight:1000}.count-pill{color:#5b78a9;white-space:nowrap;background:#edf3fe;border:1px solid #dbe6f7;border-radius:20px;padding:4px 8px;font-size:10px}.palette-intro{color:#6c83a6;margin-top:-5px;font-size:11px}.filters{flex-shrink:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;display:grid}.filters button{color:#567399;background:#f1f5fe;border:2px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:57px;padding:9px 2px;font-size:10px;font-weight:900;display:flex}.filters button>span{font-size:8px}.filters button.active{color:#286af0;background:#fff;border-color:#2870f4;box-shadow:0 2px #d2e2ff}.filters button:nth-child(2) svg{color:#6fac3f}.filters button:nth-child(3) svg{color:#875cba}.filters button:nth-child(4) svg{color:#e2aa35}.palette-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bccde5 #f3f7ff;flex:1;min-height:0;padding:1px 3px 4px 1px;overflow:auto}.building-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.building-card{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y;background:linear-gradient(145deg,#f6faff,#edf3ff);border:2px solid #d6e3f7;border-radius:14px;min-width:0;padding:7px 7px 9px;transition:border-color .16s,background .16s;position:relative}.building-card:hover:not(.placed){background:#e7f1ff;border-color:#83b1fa}.building-card.selected{background:#e6f6dc;border-color:#6bb249;box-shadow:inset 0 0 0 1px #99cd75}.card-art{place-items:center;height:71px;display:grid;position:relative}.card-art .sprite{width:112px;max-width:100%;height:76px}.category-dot{position:absolute;top:0;left:0}.grip{color:#b3c5df;position:absolute;top:0;right:0}.building-name{text-align:center;min-height:28px;margin-top:5px;font-size:12px;font-weight:900;line-height:1.18;display:block}.building-category{text-align:center;color:#7994b6;margin-top:4px;font-size:9px;display:block}.building-card.placed{opacity:.5;cursor:default}.placed-label{color:#397a2f;background:#ddf1d1;border-radius:4px;align-items:center;gap:2px;padding:2px 4px;font-size:9px;display:flex;position:absolute;bottom:1px;right:0}.building-detail{background:#f2f6ff;border:1px solid #e1eafa;border-radius:12px;margin-top:10px;padding:12px;position:relative}.detail-heading{justify-content:space-between;align-items:center;gap:5px;display:flex}.detail-heading strong,.building-detail>strong{font-size:12px;font-weight:900}.building-detail p{color:#6b84a8;margin-top:5px;font-size:11px;line-height:1.5}.building-detail .tags{color:#4476a8;font-size:10px}.micro-label{letter-spacing:1px;color:#7994b0;margin:8px 0 5px;font-size:8px;font-weight:1000;display:block}.tip-icon{display:none}.building-detail .avoid-hint{color:#b9843d;font-size:10px}.text-button{color:#285caa;background:#fff;border:1px solid #c8daf4;border-radius:7px;align-items:center;gap:5px;margin-top:9px;padding:6px 8px;font-size:11px;font-weight:800;display:flex}.palette-foot{color:#8ba0be;justify-content:center;align-items:center;gap:5px;margin:9px 0 0;font-size:9px;display:flex}.return-target{outline-offset:-3px;outline:3px solid #64b447}.panel-toggle{display:none}.panel-impact{background:#f1f6ff;border:1px solid #e7effc;border-radius:15px;flex-shrink:0;padding:12px}.impact-heading{color:#2665df;justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px;display:flex}.impact-heading>span{align-items:center;gap:5px;font-size:13px;font-weight:1000;display:flex}.impact-heading small{color:#8ca1be;font-size:9px}.score-cards{grid-template-columns:1fr 1fr;gap:12px 10px;display:grid}.dim-0{--dim:#55ae4e;--dim-bg:#e7f5df;color:var(--dim)}.dim-1{--dim:#8b6ac2;--dim-bg:#f0e9fb;color:var(--dim)}.dim-2{--dim:#e4aa36;--dim-bg:#fff4d9;color:var(--dim)}.dim-3{--dim:#4088c5;--dim-bg:#e4f1fc;color:var(--dim)}.score-card{align-items:center;gap:6px;min-width:0;display:flex;position:relative}.score-icon{background:var(--dim-bg);border-radius:8px;flex-shrink:0;place-items:center;width:25px;height:29px;display:grid}.score-icon svg{width:16px}.score-card-content{flex:1;min-width:0}.score-card-heading{color:#5b7294;justify-content:space-between;align-items:center;gap:3px;margin-bottom:3px;font-size:9px;display:flex}.score-card-heading strong{color:var(--dim);white-space:nowrap;font-size:12px;font-weight:1000}.score-card-heading small{color:#9aaac0;font-size:7px}.score-track{background:#dae5f2;border-radius:5px;height:5px;overflow:hidden}.score-track>span{background:var(--dim);border-radius:5px;height:100%;transition:width .3s;display:block}.score-delta{color:#4c9634;background:#e5f2db;border-radius:5px;padding:0 3px;font-size:8px;font-weight:900;animation:.25s score-bump;position:absolute;top:-9px;right:-2px}.score-delta.negative{color:#c18431;background:#fff0df}.impact-scroll{scrollbar-width:thin;overscroll-behavior:contain;max-height:105px;overflow:auto}.notice{color:#627b9e;margin-top:11px;font-size:11px;line-height:1.45}.feedback-details{color:#6c82a1;margin-top:7px;font-size:10px}.feedback-details summary{cursor:pointer;color:#3476c4;align-items:center;gap:4px;display:flex}.feedback-details ul{margin:6px 0 0;padding-left:15px;line-height:1.6}.results-button{text-transform:uppercase;letter-spacing:.5px;border-radius:30px;flex-shrink:0;width:100%;min-height:48px;font-size:15px}.results-page{text-align:center;scrollbar-width:thin;width:590px;max-width:100%;max-height:100%;padding:27px 32px 25px;overflow:auto}.victory-stars{color:#e6ae27;filter:drop-shadow(0 3px #bc79184d);justify-content:center;align-items:center;gap:30px;display:flex}.victory-stars>svg:nth-child(2){width:64px;height:64px}.victory-stars>svg:first-child{transform:rotate(-15deg)}.victory-stars>svg:last-child{transform:rotate(15deg)}.result-hero h1{color:#fbc943;text-shadow:0 3px #133974;paint-order:stroke fill;-webkit-text-stroke:3px #173f78;text-transform:uppercase;margin-top:9px;font-size:46px;font-weight:1000}.result-hero>p{color:#6982a4;margin:7px 0 17px;font-size:14px}.result-total{background:#eff7ff;border:2px solid #dae9fc;border-radius:15px;max-width:310px;margin:0 auto 12px;padding:12px 10px}.result-total>span{letter-spacing:1.6px;color:#4e76af;font-size:10px;font-weight:1000;display:block}.result-total strong{color:#4fa745;font-size:58px;font-weight:1000;line-height:1.1}.result-total small{color:#6380a5;margin-left:5px;font-size:18px}.rating{color:#467937;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:900;display:flex}.best-result{color:#b39139;align-items:center;gap:4px;margin-top:5px;font-size:10px;display:inline-flex}.results-page>.score-cards{text-align:left;background:#f3f7fd;border-radius:14px;gap:16px;margin-top:22px;padding:17px 15px}.results-page .score-card-heading{font-size:12px}.results-page .score-card-heading strong{font-size:16px}.result-insights{text-align:left;color:#58779f;border:1px solid #dbe6f7;border-radius:12px;margin-top:17px;padding:11px 13px;font-size:12px}.result-insights summary{cursor:pointer;color:#2e68b5;justify-content:space-between;align-items:center;font-weight:900;display:flex}.result-insights p{margin-top:9px;font-size:11px}.result-insights ul{padding-left:16px;font-size:11px;line-height:1.7}.result-insights small{color:#8a9db4;font-size:10px;display:block}.result-buildings{grid-template-columns:1fr 1fr;gap:5px;margin:13px 0;display:grid}.result-buildings>div{background:#f3f7ff;border-radius:5px;align-items:center;gap:5px;font-size:10px;display:flex}.result-buildings .sprite{width:50px;height:45px}.result-actions{justify-content:center;gap:10px;margin-top:21px;display:flex}.result-actions button{flex:1;padding:10px 12px;font-size:13px}.educational-note{color:#9cabc0;margin-top:15px;font-size:8px;display:block}dialog.game-panel{scrollbar-width:thin;max-width:calc(100vw - 30px);max-height:90dvh;padding:32px;position:fixed;overflow:auto}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0d315b65}.help-dialog{width:700px}.dialog-close{color:#6a88af;background:#f0f5ff;border:1px solid #dce8fa;border-radius:50%;place-items:center;width:31px;height:31px;display:grid;position:absolute;top:13px;right:14px}.help-dialog>.eyebrow{padding-right:20px}.help-dialog>.primary-button{margin:22px 0 5px auto;display:flex}.menu-dialog{text-align:center;width:365px}.menu-dialog h2,.best-dialog h2,.reset-dialog h2{color:#2863d5;margin:8px 0;font-size:30px;font-weight:1000}.menu-dialog>p,.best-dialog>p,.reset-dialog>p{color:#7390b5;font-size:13px}.menu-options{flex-direction:column;gap:12px;margin-top:24px;display:flex}.best-dialog{text-align:center;width:390px}.best-dialog>svg{color:#e7b030}.best-dialog>strong{color:#57a844;font-size:51px;font-weight:1000}.best-dialog>strong>small{color:#8aa3c3;font-size:17px}.best-dialog>.primary-button{margin-top:23px}.reset-dialog{width:430px}.reset-dialog>svg{color:#4678c7}.reset-dialog .dialog-actions button{padding:11px 16px;font-size:12px}.save-warning{z-index:100;background:#fff4d2;border:2px solid #edd68c;border-radius:12px;align-items:center;gap:10px;width:max-content;max-width:90vw;padding:12px 16px;font-size:12px;display:flex;position:fixed;bottom:15px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #29446620}.save-warning button{background:0 0;border:0;place-items:center;padding:0;display:grid}@keyframes score-bump{0%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes building-arrive{0%{opacity:.4;translate:0 -8px}to{opacity:1;translate:0}}@media (height>=850px) and (width>=1000px){.palette{gap:14px;padding:21px 17px}.card-art{height:91px}.card-art .sprite{width:130px;height:96px}.building-name{font-size:13px}.building-card{padding:9px}.panel-impact{padding:16px}.impact-scroll{max-height:130px}.game-page{padding:20px 23px}.game-layout{gap:23px}}@media (height<=730px) and (width>=761px){.palette{gap:7px;padding:12px 10px}.palette-heading h2{font-size:15px}.palette-intro{font-size:10px}.filters button{min-height:49px;padding:6px 1px}.card-art{height:59px}.card-art .sprite{width:93px;height:64px}.building-name{min-height:25px;font-size:11px}.building-category{font-size:8px}.panel-impact{padding:10px}.impact-heading{margin-bottom:8px}.impact-scroll{max-height:62px}.game-page{gap:10px;padding:12px}.results-button{min-height:44px;font-size:13px}.game-title>strong{font-size:min(8.4vw,91px)}.game-title>span{font-size:46px}.game-title>em{font-size:75px}.game-title{margin-bottom:15px}.welcome{padding-top:73px}.title-emblem{display:none}.welcome-subtitle{font-size:17px}.start-button{min-height:65px;margin-top:20px}.welcome-links{margin-top:21px}.welcome-caption{margin-top:22px}.instruction-card{padding:25px 32px}.instruction-steps{gap:12px;margin:15px 0}.instruction-step p{font-size:12px}.instruction-card h2{font-size:30px}.results-page{padding:22px 28px}.victory-stars>svg:nth-child(2){height:43px}.result-hero h1{font-size:37px}.result-total strong{font-size:45px}.result-total{padding:8px}.result-hero>p{margin:4px 0 10px}.results-page>.score-cards{margin-top:15px;padding:12px}.result-actions{margin-top:15px}}@media (width<=1000px){.hud-title>strong{font-size:16px}.hud-title>span{font-size:10px}.game-layout{grid-template-columns:minmax(0,1fr) 295px;gap:11px}.hud-left{gap:8px}.hud-title{max-width:280px}.map-bottom>span{font-size:9px}.map-bottom .progress-dots{display:none}}@media (width<=760px) and (orientation:portrait){.screen-topbar{padding:18px}.brand{font-size:22px}.brand>svg{width:35px;height:35px}.brand small{letter-spacing:2px;font-size:6px}.fullscreen-button{min-height:33px;padding:7px 10px;font-size:10px}.welcome{padding:82px 15px 28px}.title-emblem{letter-spacing:1px;gap:4px;margin-bottom:27px;padding:6px 9px;font-size:7px}.title-emblem svg{width:13px}.game-title>span{-webkit-text-stroke-width:5px;font-size:39px}.game-title>strong{-webkit-text-stroke-width:5px;margin:12px 0;font-size:clamp(45px,11.5vw,84px)}.game-title>em{-webkit-text-stroke-width:5px;font-size:70px}.game-title{filter:drop-shadow(0 4px #123570);letter-spacing:-1.7px;margin-bottom:23px}.welcome-subtitle{max-width:260px;font-size:14px}.start-button{min-width:242px;min-height:67px;margin-top:28px;font-size:21px}.welcome-links{gap:9px;margin-top:24px}.welcome-links .secondary-button{border-radius:13px;gap:7px;min-height:47px;padding:10px 13px;font-size:12px}.welcome-links svg{width:17px}.welcome-caption{max-width:270px;margin-top:30px;font-size:11px;line-height:1.5}.welcome-caption svg{width:16px}.overlay-page{padding:78px 12px 16px}.instruction-card{padding:24px 19px}.instruction-card h2,.help-dialog h2{font-size:27px}.instruction-card>.eyebrow,.help-dialog>.eyebrow{font-size:8px}.instruction-card>p,.help-dialog>p{font-size:12px}.instruction-steps{gap:15px;margin:20px 0}.instruction-step{align-items:start;gap:9px;padding-left:31px}.instruction-step>span{background:0 0;width:26px;height:29px}.instruction-step>span>svg{width:22px}.instruction-step small{width:24px;height:24px;font-size:10px;top:1px}.instruction-step h3{font-size:13px}.instruction-step p{font-size:11px}.fit-legend{gap:5px}.fit-legend>span{gap:5px;padding:6px 8px;font-size:8px}.instruction-note{font-size:9px!important}.dialog-actions{gap:9px;margin-top:20px}.dialog-actions button{padding:10px 13px;font-size:12px}.game-page{gap:6px;padding:10px 8px 8px}.game-hud{gap:0;min-height:50px}.hud-title{display:none}.hud-left{justify-content:space-between;gap:8px;width:100%}.menu-button{border-radius:12px;width:43px;height:43px}.menu-button svg{width:24px}.hud-score{gap:7px;min-height:47px;padding:5px 13px 5px 5px}.hud-leaf{width:33px;height:33px}.hud-leaf svg{width:20px}.hud-score small{font-size:8px}.hud-score strong{font-size:23px}.hud-score strong>span{font-size:9px}.hud-count{min-height:46px;padding:6px 12px}.hud-count>span{font-size:8px}.hud-count>strong{font-size:21px}.game-layout{flex-direction:column;gap:6px;display:flex}.city-workspace{flex:1;min-height:0}.map-toolbar{min-height:30px;padding:0 3px 1px}.location-badge{letter-spacing:1px;padding:5px 9px;font-size:9px}.location-badge svg{width:12px}.map-tools{gap:6px}.map-tools>button{border-radius:8px;width:30px;height:29px}.map-tools>button svg{width:16px}.map-bottom{min-height:23px;padding:2px 5px}.map-bottom>span{gap:4px;font-size:9px}.map-bottom svg{width:12px}.palette{border-radius:20px;flex-shrink:0;gap:6px;height:41dvh;min-height:240px;max-height:390px;padding:5px 10px 9px}.panel-expanded .palette{height:58dvh;max-height:none}.panel-toggle{color:#7797c3;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:17px;min-height:17px;padding:0;display:flex;position:relative}.panel-toggle>span{background:#c3d6f1;border-radius:8px;width:36px;height:4px}.panel-toggle svg{position:absolute;top:0;right:0}.panel-expanded .panel-toggle svg{rotate:180deg}.palette-heading h2{font-size:13px}.palette-heading{min-height:19px;padding:0 2px}.count-pill{padding:2px 7px;font-size:8px}.palette-intro{display:none}.filters{gap:4px}.filters button{border-radius:7px;flex-direction:row;gap:3px;min-height:31px;padding:4px 1px;font-size:9px}.filters button svg{width:13px;height:13px}.filters button>span{font-size:7px}.building-grid{scrollbar-width:thin;scroll-snap-type:x proximity;gap:7px;padding-bottom:5px;display:flex;overflow-x:auto}.building-card{scroll-snap-align:start;touch-action:pan-x;border-radius:10px;flex:0 0 91px;padding:3px 5px 5px}.card-art{height:46px}.card-art .sprite{width:75px;height:51px}.building-name{min-height:21px;margin-top:2px;font-size:9px}.building-category{margin-top:2px;font-size:7px}.category-dot svg,.grip{width:9px}.placed-label{font-size:6px}.building-detail{margin-top:5px;padding:8px}.building-detail>p,.building-detail .micro-label,.building-detail .avoid-hint{display:none}.building-detail>strong,.building-detail .detail-heading strong{font-size:10px}.building-detail .tags{margin-top:4px;font-size:9px}.text-button{margin-top:5px;padding:5px 8px;font-size:10px}.palette-foot{display:none}.panel-impact{border-radius:9px;padding:7px 9px}.impact-heading{display:none}.score-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.score-icon{display:none}.score-card-heading{margin-bottom:2px;font-size:7px;line-height:1.2;display:block}.score-card-heading strong{float:right;font-size:10px}.score-card-heading small{display:none}.score-track{height:4px}.score-delta{font-size:6px;top:-5px;right:0}.impact-scroll{max-height:35px}.notice{margin-top:7px;font-size:9px;line-height:1.35}.feedback-details{font-size:9px}.results-button{border-radius:22px;min-height:37px;padding:7px 12px;font-size:12px}.panel-expanded .building-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:0;display:grid;overflow:visible}.panel-expanded .building-detail>p,.panel-expanded .building-detail .micro-label,.panel-expanded .building-detail .avoid-hint{display:block}.panel-expanded .impact-scroll{max-height:85px}.plot .tags{font-size:calc(7px / var(--map-scale));flex-direction:column;align-items:center}.plot .tags svg{width:calc(8px / var(--map-scale));height:calc(8px / var(--map-scale))}.placed-building{inset:-9% 0 46%}.placed-building .sprite{flex:1;height:0;min-height:0}.placed-building>span{font-size:calc(7px / var(--map-scale));flex-shrink:0;padding:3px 4px}.results-page{padding:24px 20px}.result-hero h1{font-size:41px}.result-hero>p{font-size:12px}.results-page>.score-cards{grid-template-columns:1fr 1fr;gap:15px;padding:13px}.results-page .score-icon{display:grid}.results-page .score-card-heading{font-size:10px;display:flex}.results-page .score-card-heading strong{font-size:14px}.results-page .score-card-heading small{font-size:7px;display:inline}.result-actions button{gap:6px;padding:10px 9px;font-size:11px}.result-actions button svg{width:16px}.rating{font-size:11px}.educational-note{font-size:7px}.result-insights{font-size:11px}dialog.game-panel{padding:27px 20px}.menu-dialog h2,.best-dialog h2,.reset-dialog h2{font-size:27px}}@media (orientation:landscape) and (height<=500px){.game-page{gap:5px;padding:7px}.game-hud{min-height:41px}.menu-button{border-radius:10px;width:39px;height:37px}.hud-score{gap:6px;min-height:39px;padding:4px 11px 4px 4px}.hud-leaf{width:29px;height:29px}.hud-score strong{font-size:18px}.hud-score small{font-size:7px}.hud-count{min-height:38px;padding:4px 12px}.hud-count>strong{font-size:17px}.hud-count>span{font-size:7px}.hud-title>strong{font-size:13px}.hud-title>span{font-size:8px}.game-layout{grid-template-columns:minmax(0,1fr) 265px;gap:9px}.map-toolbar{min-height:27px;padding-bottom:2px}.location-badge{padding:4px 9px;font-size:9px}.map-tools>button{width:29px;height:26px}.map-tools>button svg{width:16px}.map-bottom{min-height:22px;padding:3px}.map-bottom>span{font-size:8px}.palette{border-radius:15px;gap:5px;padding:8px}.palette-heading h2{font-size:12px}.palette-intro{display:none}.filters button{min-height:33px;padding:3px;font-size:9px}.filters button svg{width:13px;height:13px}.filters button>span{font-size:7px}.building-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.building-card{padding:3px}.card-art{height:34px}.card-art .sprite{height:37px}.building-name{min-height:19px;margin-top:3px;font-size:7px}.building-category,.grip,.category-dot{display:none}.panel-impact{padding:7px}.impact-heading{display:none}.score-cards{gap:8px}.score-card-heading{font-size:8px}.score-icon{width:19px;height:20px}.score-icon svg{width:13px}.impact-scroll{max-height:33px}.notice{margin-top:5px;font-size:8px}.results-button{min-height:31px;padding:6px 9px;font-size:10px}.welcome{padding:39px 10px 9px}.screen-topbar{padding:12px 19px}.brand{font-size:22px}.brand small{font-size:6px}.brand>svg{width:33px;height:33px}.game-title>span{-webkit-text-stroke-width:4px;font-size:29px}.game-title>strong{-webkit-text-stroke-width:4px;margin:5px 0;font-size:58px}.game-title>em{-webkit-text-stroke-width:4px;font-size:45px}.game-title{filter:drop-shadow(0 3px #123570);margin-bottom:9px}.title-emblem{display:none}.welcome-subtitle{font-size:12px}.start-button{min-width:205px;min-height:40px;margin-top:12px;font-size:17px}.welcome-links{gap:9px;margin-top:13px}.welcome-links .secondary-button{gap:5px;min-height:32px;padding:5px 13px;font-size:10px}.welcome-links svg{width:14px}.welcome-caption{margin-top:12px;font-size:9px}.overlay-page{padding:63px 20px 12px}.instruction-card{padding:22px 28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.menu-backdrop>picture{width:100%;height:100%;display:block}.menu-backdrop>picture>img{object-fit:cover;object-position:center 55%;width:100%;height:100%;display:block}.portrait-game-backdrop{display:none}@media (orientation:portrait) and (width>=761px){.portrait-game-backdrop{z-index:0;pointer-events:none;display:block;position:absolute;inset:0;overflow:hidden}.portrait-game-backdrop>img{object-fit:cover;object-position:center;filter:saturate(.92);width:100%;height:100%}.portrait-game-backdrop>div{background:linear-gradient(#d9edffb8,#d9edff8f 36%,#b9ddf0a8 68%,#0b426b66);position:absolute;inset:0}.screen-game .game-page{z-index:1;gap:12px;padding:18px;position:relative}.screen-game .game-hud{min-height:64px}.screen-game .hud-title{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffc9;border-radius:16px;padding:9px 15px}.screen-game .game-layout{flex-direction:column;gap:12px;display:flex}.screen-game .city-workspace{flex:1;min-height:380px}.screen-game .map-stage{min-height:0}.screen-game .map{border:3px solid #ffffffd9;box-shadow:0 9px #6386a838,0 22px 45px #173f6530}.screen-game .map-background{object-fit:fill;height:100%}.screen-game .map-toolbar{padding:0 3px 5px}.screen-game .map-bottom{padding:8px 5px 0}.screen-game .map-bottom>span,.screen-game .map-bottom .progress-dots,.screen-game .location-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffd9}.screen-game .palette{-webkit-backdrop-filter:blur(18px)saturate(1.15);backdrop-filter:blur(18px)saturate(1.15);background:#fffffff0;border-color:#ffffffed;border-radius:26px 26px 20px 20px;flex-shrink:0;gap:9px;height:clamp(310px,34dvh,660px);min-height:310px;max-height:none;padding:10px 14px 14px}.screen-game .game-page.panel-expanded .palette{height:min(58dvh,1100px)}.screen-game .panel-toggle{color:#7797c3;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:22px;min-height:22px;padding:0;display:flex;position:relative}.screen-game .panel-toggle>span{background:#bfd1ea;border-radius:8px;width:54px;height:5px}.screen-game .panel-toggle svg{position:absolute;top:2px;right:2px}.screen-game .game-page.panel-expanded .panel-toggle svg{rotate:180deg}.screen-game .palette-scroll{overflow-y:auto}.screen-game .building-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.screen-game .building-card{padding:6px}.screen-game .card-art{height:68px}.screen-game .card-art .sprite{height:73px}.screen-game .building-name{min-height:26px;font-size:11px}.screen-game .panel-impact{padding:10px}.screen-game .impact-scroll{max-height:72px}}@media (orientation:portrait) and (width>=761px) and (height<=1200px){.screen-game .palette{gap:6px;height:36dvh;min-height:340px;padding:7px 12px 10px}.screen-game .panel-toggle{height:18px;min-height:18px}.screen-game .palette-heading h2{font-size:14px}.screen-game .palette-intro{display:none}.screen-game .filters button{min-height:42px;padding:5px 2px}.screen-game .filters button svg{width:15px;height:15px}.screen-game .filters button>span{font-size:7px}.screen-game .building-grid{gap:7px}.screen-game .building-card{padding:3px 5px 5px}.screen-game .card-art{height:48px}.screen-game .card-art .sprite{height:52px}.screen-game .building-name{min-height:21px;margin-top:2px;font-size:9px}.screen-game .building-category{margin-top:2px;font-size:7px}.screen-game .game-page:not(.panel-expanded) .panel-impact{display:none}.screen-game .game-page.panel-expanded .panel-impact{display:block}.screen-game .panel-impact{padding:7px 9px}.screen-game .impact-heading{display:none}.screen-game .score-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.screen-game .score-icon{display:none}.screen-game .score-card-heading{margin-bottom:2px;font-size:7px;line-height:1.2;display:block}.screen-game .score-card-heading strong{float:right;font-size:10px}.screen-game .score-card-heading small{display:none}.screen-game .impact-scroll{max-height:32px}.screen-game .notice{margin-top:6px;font-size:9px;line-height:1.3}.screen-game .results-button{min-height:38px;padding:7px 12px;font-size:12px}}@media (width>=1001px) and (height>=520px) and (orientation:landscape){.game-page{position:relative}.city-workspace{position:static}.map-stage.full{z-index:0;flex:none;position:absolute;inset:0}.map-stage.full:after{content:"";pointer-events:none;background:linear-gradient(#0b2b5a38,#0000 16% 80%,#0b2b5a30);position:absolute;inset:0}.map-stage.full .map{box-shadow:none;background:0 0;border-radius:0;overflow:visible}.map-stage.full .map-frame{transform-origin:0 0;width:1536px;height:1024px;top:0;left:0}.map-stage.full .map-background{object-fit:fill;z-index:-2;height:100%}.map-stage.full .map:after{display:none}.map-stage.full .plot-grid{width:44%;height:38%;top:19%;left:25%}.map-stage.compact .plot .tags{gap:3px;font-size:0}.map-stage.compact .plot .tags>span{padding:3px 4px}.game-hud,.map-toolbar,.map-bottom,.palette{z-index:2;position:relative}.game-hud{pointer-events:none}.game-hud>*{pointer-events:auto}.game-hud .hud-title{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb8;border-radius:16px;padding:8px 16px}.map-bottom{pointer-events:none;margin-top:auto;padding:0}.map-toolbar{pointer-events:none}.map-toolbar>*{pointer-events:auto}.map-bottom>span,.map-bottom .progress-dots{pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffc7;border-radius:20px;padding:7px 12px}.location-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffd6}.palette{-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);background:#ffffffd1;border-color:#ffffffb8}.panel-impact{background:#f1f6ffcc}.map-stage.full .plot-number,.map-stage.full .plot-plus,.map-stage.full .plot .tags{transition:opacity .2s}.map-stage.full .map:not(.is-dragging) .plot:not(.available):not(.over):not(.blocked):not(:hover):not(:focus-within){box-shadow:none;background:0 0;border-color:#0000}.map-stage.full .map:not(.is-dragging) .plot:not(.available):not(.over):not(.blocked):not(:hover):not(:focus-within) :is(.plot-number,.plot-plus,.tags){opacity:0}.map-stage.full .plot:hover:not(.occupied){border-color:#fbfff0}}
