:root{color-scheme:light;--bg: #dceef1;--surface: #f7faf7;--primary: #226b69;--primary-ink: #f7faf7;--accent: #eea35a;--accent-ink: #183638;--text: #183638;--muted: #2a4f4d;--line: #c5d9d6;--danger: #8a3d32;--font: "Source Sans 3", "Segoe UI", sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:1.0625rem;line-height:1.5;overflow-x:clip}:focus{outline:none}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.skip{position:absolute;left:12px;top:-48px;background:var(--primary);color:var(--primary-ink);padding:10px 14px;border-radius:10px;z-index:5}.skip:focus{top:12px}a{color:var(--primary)}.page{max-width:1180px;margin:0 auto;padding:20px 20px 56px}.site-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}.eyebrow{margin:0;color:var(--muted);font-size:.875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.logo{color:var(--text);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;text-decoration:none}.nav{display:flex;flex-wrap:wrap;gap:8px}.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;background:var(--surface);color:var(--text);text-decoration:none;border:1px solid var(--line)}.nav a[aria-current=page]{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}h1{margin:0 0 8px;font-size:clamp(2rem,4vw,3rem);line-height:1.12;letter-spacing:-.03em}h2{margin:0 0 8px;font-size:1.35rem;letter-spacing:-.02em}.lede{max-width:42rem;margin:0 0 20px;font-size:1.15rem}.kicker{margin:0 0 4px;color:var(--muted);font-size:.875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px;padding:0;list-style:none}.stat{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px}.stat span{display:block;color:var(--muted);font-size:.95rem}.stat strong{display:block;font-size:1.7rem;letter-spacing:-.03em;line-height:1.2}.stat small{color:var(--muted)}.callout,.win,.setup,.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin:0 0 16px}.callout,.progress-panel{border-left:6px solid var(--accent)}.progress-panel{background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--accent);border-radius:16px;padding:16px 18px 8px;margin:0 0 16px}.progress-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px}.progress-count,.progress-summary{margin:0 0 8px;font-size:1.2rem;font-weight:700}.goal-list{list-style:none;margin:12px 0;padding:0;display:grid;gap:12px}.goal-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}.goal-top strong{font-size:1.15rem}.goal-top em{font-style:normal;font-weight:700;color:var(--accent-ink);background:#fff1dc;border-radius:999px;padding:2px 8px}.goal-top em.done{background:#e7f6ef;color:var(--primary)}.meter{height:14px;margin:8px 0 6px;border-radius:999px;background:#d5e4e2;overflow:hidden}.meter.overall{height:20px}.meter-fill{display:block;height:100%;width:0;background:var(--accent);border-radius:inherit}.meter-fill.done,.meter-fill.money{background:var(--primary)}.win{background:#e7f6ef;border-color:#8fcdb0}.setup{background:#fff6ea;border-color:var(--accent)}.bench{display:grid;grid-template-columns:minmax(32rem,40rem) minmax(16rem,1fr);gap:20px;align-items:start}.bench>*{min-width:0}.tools,.actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}button,input,select,textarea{font:inherit;color:var(--text)}button{min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer}button.primary{min-height:52px;background:var(--primary);border-color:var(--primary);color:var(--primary-ink);padding-inline:18px}button.ghost{background:transparent;border-color:var(--primary);color:var(--primary)}button:disabled{cursor:not-allowed;opacity:.72}.tools button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.tools button.remove[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.blurb,.hint,.stage-caption{margin:0 0 12px;color:var(--muted)}.status{min-height:1.5em;margin:0 0 12px;font-weight:600}.grid-scroll{overflow:auto;max-width:100%;margin:0 0 16px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.city-grid{display:grid;grid-template-columns:repeat(10,minmax(44px,1fr));gap:4px;width:max(100%,476px)}.tile{width:100%;aspect-ratio:1;min-width:44px;min-height:44px;height:auto;padding:0;border-radius:8px;border:1px solid #b7d0cd;background:#fff;display:grid;place-items:center;touch-action:manipulation}.tile.road{background:#d5e4e2}.tile.house{background:#fff6ea}.tile.park{background:#e5f3ea}.tile.solar{background:#fff1dc}.tile.highlighted{box-shadow:inset 0 0 0 3px var(--primary)}.mark{display:block;width:18px;height:18px}.mark[data-kind=empty]{width:6px;height:6px;border-radius:50%;background:#c5d9d6}.mark[data-kind=road]{height:6px;border-radius:99px;background:#4f7f7c}.mark[data-kind=house]{width:16px;height:14px;background:var(--primary);clip-path:polygon(50% 0,100% 38%,100% 100%,0 100%,0 38%)}.mark[data-kind=park]{border-radius:50%;background:#2f8a62}.mark[data-kind=solar]{width:18px;height:8px;background:var(--primary);transform:rotate(-18deg);box-shadow:0 3px 0 var(--accent)}.stage-wrap{position:sticky;top:12px}.stage{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:12px}.meadow{width:100%;height:min(52vh,560px);min-height:240px;display:block;border-radius:14px;background:#dceef1;touch-action:manipulation}.stage-note{margin:0 0 8px;font-weight:600}.placed li button{flex:0 0 auto}.placed{list-style:none;padding:0;margin:0;display:grid;gap:8px}.placed li{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:8px 8px 8px 14px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.prose{max-width:46rem}.prose section{margin:0 0 28px}table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:12px;overflow:hidden}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#e7f3f2}.kits{display:grid;gap:12px;margin:0 0 20px;padding:0;list-style:none}.kit{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}.form-grid{display:grid;gap:14px;max-width:46rem}.split{display:grid;gap:14px}label{display:block;font-weight:600;margin-bottom:6px}input,select,textarea{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid #9fc4c2;background:#fff}textarea{min-height:140px;resize:vertical}.field-error,[role=alert]{color:var(--danger)}.hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.check{display:flex;align-items:flex-start;gap:10px;font-weight:600}.check input{width:1.25rem;height:1.25rem;min-height:0;margin-top:.2rem}.site-footer{margin-top:36px;color:var(--muted)}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:980px){.bench{grid-template-columns:1fr}.stage-wrap{position:static}}@media(max-width:800px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.meadow{height:240px}.kits{grid-template-columns:1fr}}@media(min-width:800px){.split{grid-template-columns:1fr 1fr}.kits,.goal-list{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
