:root{--ink:#203d35;--muted:#65766c;--paper:#f6f4eb;--line:#d9dfd1;--green:#285c48;--accent:#d4a65c;--white:#fffef8;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed}a{color:inherit;text-underline-offset:3px}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #bd772d;outline-offset:4px}h1,h2,p{margin:0}button{touch-action:manipulation}.skip{position:fixed;top:-80px;left:20px;background:white;padding:16px;z-index:100}.skip:focus{top:10px}.topbar{max-width:1540px;margin:auto;padding:23px 34px 21px;display:flex;justify-content:space-between;align-items:center;gap:20px}.title{display:flex;align-items:center;gap:12px}.brand-icon{color:#d5ab66;font-size:24px;text-shadow:0 2px #9a793c}h1{font-family:Fraunces,Georgia,serif;font-size:28px;font-weight:650;letter-spacing:-1px;white-space:nowrap}.tagline{font-size:12px;margin-left:12px;color:var(--muted)}.topbar nav{display:flex;align-items:center;gap:18px;font-size:12px}.topbar a{text-decoration:none}.quiet{background:none;border:0;padding:10px 3px;color:var(--ink);font-size:13px}.quiet:hover{text-decoration:underline}main{max-width:1540px;padding:0 34px;margin:auto}.hud{display:grid;grid-template-columns:1.5fr repeat(4,1fr);border:1px solid var(--line);border-radius:14px;background:var(--white);margin-bottom:18px;overflow:hidden}.day-card,.stat{padding:17px 24px}.stat{border-left:1px solid var(--line)}.day-card{background:var(--ink);color:#fff}.day-card>span{font-size:20px;font-weight:700}.day-card small{display:block;font-size:11px;margin-top:4px;color:#d1dfd5}.stat small{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.stat strong{font-size:23px;font-weight:650;font-variant-numeric:tabular-nums}.stat strong span{font-size:12px;color:var(--muted);font-weight:400}#time{font-size:16px;letter-spacing:2px;line-height:29px;color:var(--green)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 346px;gap:18px;align-items:start}.neighborhood{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#edf0e3}.map-heading{display:flex;justify-content:space-between;gap:12px;padding:22px 24px 0;position:relative;z-index:1}.map-heading h2{font-family:Fraunces,Georgia,serif;font-size:23px;font-weight:550}.map-heading p{font-size:11px;color:var(--muted);margin-top:5px}.map-heading>span{font-size:11px;background:#fffdf3cc;border:1px solid #d8dfce;border-radius:20px;padding:8px 12px;height:fit-content;white-space:nowrap}.scene{width:100%;aspect-ratio:1.45;overflow:hidden;margin-top:-8px}.scene svg{display:block;width:100%;height:100%}.scene .place-target{cursor:pointer;outline:none}.scene .place-target:hover .building,.scene .place-target:focus .building{filter:brightness(1.12)}.scene .place-target:focus .selection-ring{opacity:1;stroke:#c0792d;stroke-width:3}.selection-ring{opacity:0;transition:opacity .15s}.place-target.selected .selection-ring{opacity:1}.map-label rect{fill:#fffff3;stroke:#c6cebb;stroke-width:1}.map-label text{font-family:'DM Sans',system-ui,sans-serif;font-size:15px;fill:#28463c;font-weight:600}.place-target:hover .map-label rect,.place-target.selected .map-label rect{fill:#214b3c;stroke:#214b3c}.place-target:hover .map-label text,.place-target.selected .map-label text{fill:white}.map-caption{padding:0 23px 16px;display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted)}.map-caption span:first-child{display:flex;align-items:center;gap:7px}.player-key{display:inline-block;width:8px;height:11px;background:#dbb649;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.story{background:#fffdf5;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:16px 23px;min-height:78px}.story-icon{font-size:24px;color:#b38948}.story p{font-size:13px;line-height:1.55}.goals{padding:18px 23px 22px;background:#f6f7ee;border-top:1px solid var(--line)}.goals-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.goals h2{font-size:13px}.goals-heading>span{font-size:11px;color:var(--muted)}.goal-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.goal{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.goal i{font-style:normal;display:grid;place-items:center;border:1px solid #bdc9b5;width:18px;height:18px;flex-shrink:0;border-radius:50%;font-size:11px}.goal.done{color:var(--ink)}.goal.done i{background:var(--green);color:white;border-color:var(--green)}.controls{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:21px;min-width:0}.place-heading{display:flex;align-items:center;gap:13px;margin-bottom:19px}.place-heading>span{display:grid;place-items:center;width:44px;height:44px;background:#edf1e6;border-radius:12px;font-size:24px;flex-shrink:0}.place-heading h2{font-size:19px;font-family:Fraunces,Georgia,serif;font-weight:600}.place-heading p{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.4}.places{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:15px}.places button{font-size:10px;min-height:36px;border:1px solid var(--line);border-radius:6px;background:transparent;padding:6px 4px}.places button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.places button:hover{border-color:var(--green)}.appointment{font-size:11px;line-height:1.6;color:var(--muted);padding:0 0 13px}.appointment:empty{display:none}.appointment strong{color:var(--ink)}.action{width:100%;padding:13px;text-align:left;background:#fffef9;border:1px solid var(--line);border-radius:9px;display:block;margin-bottom:8px;transition:background .15s,transform .15s}.action:not(:disabled):hover{background:#eff2e6;border-color:#9dab8f;transform:translateY(-1px)}.action-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.action-name{font-weight:650;font-size:12px}.action-price{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.action small{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:5px}.action:disabled{background:#f4f4ed;color:#798275}.action:disabled small{color:#697564}.action.installed{background:#edf3e7}.action .reason{color:#85643d;font-size:10px}.section-label{font-size:10px;color:var(--muted);margin:18px 0 9px;font-weight:600;letter-spacing:.03em}.coverage{margin:15px 0 2px;font-size:11px;color:var(--muted)}.coverage-track{height:5px;background:#e1e6d7;margin-top:7px;border-radius:10px;overflow:hidden}.coverage-track span{height:100%;background:#8d9f76;display:block}.feedback{font-size:12px;line-height:1.5;color:#9c4f30;min-height:0}.feedback:not(:empty){padding:12px 0}.turn-in{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.primary{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;background:var(--green);color:white;border:0;border-radius:9px;padding:14px 16px;font-weight:600;font-size:12px;min-height:46px}.primary:hover{background:#173e31}.primary:disabled{background:#a1ad9b}.turn-in p{font-size:10px;line-height:1.5;color:var(--muted);text-align:center;margin-top:9px}.journal{margin-top:18px;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:16px 22px;font-size:12px}.journal summary{cursor:pointer;font-weight:600;min-height:25px;align-content:center}.journal summary span{font-size:11px;font-weight:400;color:var(--muted);margin-left:14px}.journal ol{padding-left:20px;line-height:1.7;color:var(--muted)}.journal li{padding:5px 0}footer{max-width:1540px;margin:0 auto;padding:23px 34px 30px;display:flex;gap:28px;justify-content:space-between}footer p{font-size:10px;line-height:1.6;color:var(--muted);max-width:550px}dialog{color:var(--ink);border:1px solid #d8decf;border-radius:18px;background:var(--white);padding:30px;max-width:480px;width:calc(100% - 32px);box-shadow:0 20px 100px #173b3440;max-height:calc(100dvh - 32px);overflow-y:auto}dialog::backdrop{background:#213e356e;backdrop-filter:blur(5px)}dialog h2{font-family:Fraunces,Georgia,serif;font-size:33px;line-height:1.1;font-weight:550;letter-spacing:-.5px;margin-bottom:17px}dialog p{font-size:13px;line-height:1.7;margin-bottom:15px}dialog .modal-kicker{font-size:11px;color:var(--muted);margin-bottom:12px}.modal-art{border-radius:10px;background:#e9efdf;padding:15px 20px;margin-bottom:22px;font-size:37px;display:flex;align-items:center;justify-content:center;gap:30px;color:#fff;text-shadow:0 2px #bac5b0}.modal-art span{font-size:23px;color:#cb9e45}.howto{padding-left:18px;font-size:12px;line-height:1.6;margin:20px 0}.howto li{margin:10px 0}.small{font-size:10px!important;color:var(--muted)}.event-choices{display:grid;gap:9px;margin-top:22px}.event-choices button{background:#f4f5eb;border:1px solid #d4decb;border-radius:10px;padding:15px;text-align:left;font-size:13px;font-weight:600}.event-choices button:hover{background:#e9efdd}.event-choices small{display:block;font-weight:400;font-size:11px;color:var(--muted);margin-top:6px}.event-choices button:disabled{opacity:.5}.full{width:100%;margin-top:12px}.confirm-actions{display:flex;gap:22px;align-items:center}.confirm-actions>*{width:50%}#ending-goals{margin-bottom:20px}.noscript{position:fixed;bottom:0;background:#fff3d0;padding:20px;width:100%;text-align:center}.diamond{animation:bob 2s ease-in-out infinite}.smoke{animation:smoke 3s ease-out infinite;transform-origin:center}.lake-shimmer{animation:shimmer 4s ease-in-out infinite}.bear-head{animation:sniff 3s ease-in-out infinite;transform-origin:18px 0}.player-mover{transition:transform .8s ease-in-out}.snowflake{animation:snow 7s linear infinite}.scene.snow{background:linear-gradient(#d7e2dd22,#eff5f19a)}@keyframes bob{50%{transform:translateY(-5px)}}@keyframes smoke{to{transform:translate(8px,-25px);opacity:0}}@keyframes shimmer{50%{opacity:.3}}@keyframes sniff{50%{transform:rotate(8deg)}}@keyframes snow{to{transform:translate(25px,70px);opacity:0}}@media(min-width:1550px){.scene{aspect-ratio:1.55}}@media(max-width:1150px){.tagline{display:none}.game-layout{grid-template-columns:minmax(0,1fr) 305px}.controls{padding:17px}.stat,.day-card{padding:16px 18px}.map-heading{padding:20px 18px 0}.map-caption{padding:0 18px 14px}.map-caption #map-status{display:none}.scene{aspect-ratio:1.1}.map-heading p{max-width:170px;line-height:1.5}.goal-list{gap:10px 5px}.goal{font-size:11px}}@media(max-width:800px){.topbar{padding:16px 18px;gap:10px}.topbar nav{gap:10px}.topbar nav a{display:none}.topbar h1{font-size:25px}.brand-icon{font-size:20px}main{padding:0 14px}.hud{grid-template-columns:repeat(4,1fr);margin-bottom:13px;border-radius:12px}.day-card{grid-column:1/-1;padding:12px 17px;display:flex;align-items:center;justify-content:space-between;gap:10px}.day-card>span{font-size:17px}.day-card small{margin:0}.stat{padding:12px 11px}.stat:nth-child(2){border-left:0}.stat strong{font-size:21px}.stat strong span{font-size:10px}.stat small{font-size:10px}#time{font-size:12px;letter-spacing:1px;line-height:26px}.game-layout{grid-template-columns:1fr;gap:13px}.scene{aspect-ratio:1.4}.map-heading p{max-width:none}.map-heading h2{font-size:22px}.map-heading>span{font-size:10px}.map-heading{padding:17px 17px 0}.map-caption{font-size:10px}.story{min-height:72px;padding:14px 17px}.story p{font-size:12px}.goals{padding:15px 17px 17px}.goal-list{gap:10px}.goal{font-size:11px}.controls{padding:20px}.places{grid-template-columns:repeat(6,1fr);gap:4px}.places button{font-size:10px;min-height:43px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action{margin:0;padding:13px}.action-name{font-size:12px}.section-label,.coverage{grid-column:1/-1}.action-top{flex-wrap:wrap;gap:5px}.place-heading{margin-bottom:15px}.appointment{font-size:12px}.turn-in{margin-top:18px}.primary{font-size:13px}.journal{margin-top:13px;padding:15px 17px}.journal summary span{display:none}footer{padding:20px 18px;display:block}footer p{margin-bottom:10px}dialog{padding:24px}.map-label text{font-size:17px}}@media(max-width:400px){.topbar{padding:13px}.topbar nav{gap:7px}.topbar h1{font-size:22px}.quiet{font-size:12px}.title{gap:7px}.map-heading p{font-size:10px;max-width:170px}.scene{aspect-ratio:1.2}.places{grid-template-columns:repeat(3,1fr)}.stat strong span{display:none}.action-name{font-size:11px}.goal{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
:root{--world-paper:#f6f0df}
[hidden]{display:none!important}
body{background:var(--world-paper)}
.topbar{max-width:none;height:64px;padding:12px 24px;border-bottom:1px solid #d7cfb8;background:#fbf7e9}
.topbar h1{font-size:26px}.topbar .tagline{font-size:11px}
main{position:relative;max-width:none;height:calc(100dvh - 64px);min-height:600px;padding:0;overflow:hidden;background:var(--world-paper)}
.game-layout{display:block;height:100%}
.neighborhood{position:absolute;inset:0;border:0;border-radius:0;overflow:hidden;background:var(--world-paper)}
.scene{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0;touch-action:none;cursor:grab;background:radial-gradient(ellipse at center,#e4e7ce,#f6f0df 75%)}
.scene:active{cursor:grabbing}.scene svg{width:100%;height:100%}
.scene .map-label text{font-size:54px;font-weight:650;fill:#2d443d}.scene .map-label rect{fill:#fff8df;stroke:#b6b69b;stroke-width:2}
.scene .map-label{scale:var(--map-label-scale,1);transform-box:fill-box;transform-origin:center}
.scene:not(.zoomed-in) [data-place="neighbor"] .map-label{display:none}
.scene:not(.zoomed-in) [data-place="rental"] .map-label,.scene:not(.zoomed-in) [data-place="office"] .map-label,.scene:not(.zoomed-in) [data-place="casino"] .map-label,.scene:not(.zoomed-in) [data-place="lake"] .map-label,.scene:not(.zoomed-in) [data-place="sandharbor"] .map-label,.scene:not(.zoomed-in) [data-place="glenbrook"] .map-label{display:none}
.scene .destination-halo{transition:opacity .15s}.scene .place-target:hover .destination-halo{opacity:.6}
.map-heading{position:absolute;top:21px;left:100px;right:70px;padding:0;pointer-events:none;z-index:2;align-items:start}
.map-heading h2{font-size:24px;text-shadow:0 1px #fff9e7}.map-heading p{font-size:12px;max-width:none}
.map-heading>span{background:#fff9e7;border-color:#ded0ab;color:#6e6148;box-shadow:0 2px 6px #504c3010}
.map-caption{position:absolute;top:83px;left:101px;padding:0;z-index:2;font-size:10px;pointer-events:none;display:block}
.map-caption #map-status{display:none}.map-caption .player-key{display:none}
.world-rail{position:absolute;left:13px;top:20px;display:flex;flex-direction:column;gap:5px;padding:9px 6px;background:#fff9e9ee;border:1px solid #d8c9a5;border-radius:28px;box-shadow:0 4px 12px #56492712;z-index:3}
.world-rail button{background:transparent;border:0;border-radius:16px;width:55px;min-height:57px;font-size:10px;padding:5px 1px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px}
.world-rail button>span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;border:1px solid #c5b68d;background:#eee8d0;font-size:22px;color:#41604e}.world-rail button:hover{background:#e6edda}.world-rail button:hover>span{background:#ccddbc}
.map-tools{position:absolute;right:17px;bottom:206px;display:flex;flex-direction:column;align-items:center;gap:7px;z-index:3}
.map-tools button{width:40px;height:40px;border-radius:50%;background:#fff9e9;border:1px solid #cbbb94;box-shadow:0 2px 5px #65522f15;font-size:22px}.map-tools button:hover{background:#e5edda}.map-tools button:disabled{opacity:.45}.map-tools>span{font-size:10px;background:#fff9e9;padding:4px 7px;border-radius:10px}
.minimap{position:absolute;bottom:126px;left:16px;width:170px;height:108px;padding:5px;background:#faf6e5;border:1px solid #cbbe9b;border-radius:12px;z-index:3;box-shadow:0 4px 14px #5d583319}
.minimap svg{width:100%;height:100%;display:block;background:#e1e3c8;border-radius:8px}.minimap:hover{border-color:#758565}
.compass{position:absolute;right:23px;top:79px;color:#687960;font-size:15px;pointer-events:none}
.hud{position:absolute;bottom:16px;left:16px;right:16px;z-index:5;margin:0;grid-template-columns:1.2fr .8fr 1fr .8fr .8fr 1.4fr;background:#fff9e9;border:1px solid #cfbf97;border-radius:12px;box-shadow:0 4px 18px #4d58341a;min-height:83px;overflow:hidden;align-items:center}
.hud .day-card{grid-column:auto;display:block;background:none;color:var(--ink);padding:15px 21px}.day-card small{color:#7b8066;font-size:10px}.stat{padding:13px 20px;border-color:#e1d7b9}.stat strong{font-size:22px}.stat small{font-size:10px}.hud .turn-in{border-top:0;margin:0;padding:10px 15px}.hud .turn-in p{font-size:9px;margin-top:5px}.hud .primary{background:#b8873d;box-shadow:inset 0 -3px #8e6c37;padding:12px;font-size:12px}.hud .primary:hover{background:#a77832}
.story{position:absolute;bottom:127px;left:201px;right:75px;min-height:62px;padding:12px 17px;border:1px solid #d8ccaa;border-radius:11px;background:#fff9e9ee;z-index:2;box-shadow:0 3px 8px #53492f0c}.story p{font-size:12px;line-height:1.5}.story-icon{font-size:20px}
.goals{position:absolute;bottom:202px;left:201px;right:75px;padding:16px 18px;border:1px solid #cdbf9b;border-radius:12px;background:#fff9e9;z-index:4;box-shadow:0 4px 18px #514f311a}.goals .goal-list{grid-template-columns:repeat(4,1fr)}
.controls{position:absolute;top:76px;right:17px;width:312px;max-height:calc(100% - 284px);overflow:auto;z-index:6;background:#fffbedf5;border:1px solid #b9b398;border-radius:13px;padding:22px 18px 18px;box-shadow:0 8px 32px #253d352b;scrollbar-width:thin}
.controls .place-heading{padding-right:24px}.controls .places{margin-top:14px}.controls .action{background:#fffdf3}.controls .action:disabled{background:#f0efe3}.close-controls{position:absolute;right:8px;top:8px;width:30px;height:30px;border:0;border-radius:50%;background:#ecebdb;font-size:21px;line-height:1}
.controls .actions{display:block}.controls .action{margin-bottom:8px}.controls .coverage{margin-top:20px}
.journal{max-width:none;margin:12px 18px;background:#fff9e9;border-color:#d8ccaa}.journal summary{font-size:11px}
footer{max-width:none;padding:12px 24px 22px}footer p{max-width:700px}
@media(max-width:1000px){.hud{grid-template-columns:1.2fr .8fr 1fr .8fr .8fr 1.4fr}.hud .stat{padding:12px}.hud .stat strong{font-size:20px}.hud .stat strong span{display:none}.hud .day-card{padding:12px}.hud .day-card>span{font-size:18px}.hud .turn-in p{display:none}.hud .primary{font-size:11px}.hud .turn-in{padding:10px}.goals .goal-list{grid-template-columns:1fr 1fr}.map-heading h2{font-size:22px}}
@media(max-width:700px){.topbar{height:56px;padding:10px 15px}.topbar h1{font-size:23px}.topbar .tagline{display:none}.topbar nav{gap:12px}main{height:calc(100dvh - 56px);min-height:620px}.map-heading{top:15px;left:16px;right:14px;gap:8px}.map-heading h2{font-size:20px}.map-heading p{font-size:10px}.map-heading>span{font-size:9px;padding:7px 9px}.map-caption{top:65px;left:16px;font-size:9px}.world-rail{left:8px;top:97px;padding:5px 3px;gap:0}.world-rail button{width:45px;min-height:51px;font-size:9px}.world-rail button>span{width:27px;height:27px;font-size:19px}.compass{right:17px;top:71px;font-size:12px}.map-tools{right:12px;bottom:180px;gap:6px}.map-tools button{width:35px;height:35px}.minimap{bottom:180px;left:12px;width:114px;height:76px;padding:4px;border-radius:9px}.hud{bottom:10px;left:10px;right:10px;min-height:99px;grid-template-columns:repeat(4,1fr);grid-template-areas:'day day end end' 'cash time energy goodwill';gap:0}.hud .day-card{grid-area:day;display:block;padding:9px 13px}.day-card>span{font-size:16px!important}.day-card small{font-size:9px;margin-top:2px}.hud .stat{padding:7px 12px;border-top:1px solid #e1d7b9}.hud .stat:nth-child(2){grid-area:cash}.hud .stat:nth-child(3){grid-area:time}.hud .stat:nth-child(4){grid-area:energy}.hud .stat:nth-child(5){grid-area:goodwill}.hud .stat strong{font-size:18px}.hud #time{font-size:12px;line-height:22px}.hud .stat small{font-size:9px;margin-bottom:1px}.hud .turn-in{grid-area:end;padding:8px 10px;border:0}.hud .primary{font-size:11px;min-height:36px;padding:10px;gap:4px}.story{bottom:119px;left:12px;right:12px;min-height:47px;padding:9px 11px;gap:8px}.story p{font-size:10px;line-height:1.5}.story-icon{font-size:17px}.controls{top:91px;right:9px;left:68px;width:auto;max-height:calc(100% - 275px);padding:21px 13px 14px}.controls .place-heading h2{font-size:18px}.controls .place-heading>span{width:35px;height:35px}.controls .places{grid-template-columns:repeat(3,1fr)}.controls .action-top{flex-wrap:nowrap}.controls .action-name{font-size:12px}.controls .action{padding:12px}.controls .appointment{font-size:11px}.goals{left:68px;right:10px;bottom:182px;padding:13px}.goals .goal{font-size:10px}.goals .goal-list{gap:9px}.journal{margin:10px}footer{padding:12px 15px}.scene .map-label text{font-size:60px}}
