:root{color-scheme:dark;--bg:#101322;--panel:#1a1e32;--border:#343b55;--text:#f0eee8;--muted:#a4aec5;--gold:#f1c976;--teal:#72cabb;--purple:#baa3ef}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#24233d 0,#101322 65%);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;cursor:pointer;border-radius:5px;transition:background .15s,transform .15s}button:disabled{cursor:not-allowed;opacity:.45}button:not(:disabled):active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}h1,h2,h3,p{margin:0}h1{font:bold 16px/1.3 monospace;letter-spacing:2px}h2{font-size:19px;font-weight:650;line-height:1.25}h3{font-size:17px}.topbar{display:flex;align-items:center;gap:22px;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--border);background:#131729}.brand{display:flex;align-items:center;gap:12px}.brand-mark{border:2px solid var(--gold);box-shadow:3px 3px 0 #69513b;color:var(--gold);padding:8px;font:bold 16px monospace}.subtitle{font-size:13px;color:var(--muted)}.clock{display:flex;align-items:center;gap:16px;font:13px monospace;color:var(--muted)}.clock strong{font-size:24px;color:var(--gold)}.header-actions{display:flex;align-items:center;gap:8px}.header-actions>span{font-size:12px;margin-right:8px;color:var(--muted)}.quiet{border:1px solid var(--border);background:transparent;color:var(--text);padding:7px 12px;font-size:13px}.quiet:hover{background:#30354c}.game-layout{max-width:1740px;margin:auto;padding:24px;display:grid;grid-template-columns:218px minmax(0,1fr) 285px;gap:20px;align-items:start}.left-rail,.right-rail{display:grid;gap:18px}.panel{background:linear-gradient(140deg,#202439,#191e31);border:1px solid var(--border);border-radius:8px;padding:18px;box-shadow:0 5px 0 #080c18}.eyebrow{color:var(--muted);font:11px/1.5 monospace;letter-spacing:1.5px}.identity{display:flex;gap:8px;align-items:center;margin:12px -8px 14px}.identity canvas{width:65px;height:90px;image-rendering:pixelated}.identity p{font-size:12px;color:var(--muted);margin:5px 0}.money{font:bold 24px monospace;color:var(--gold)}.need{margin:12px 0}.need-top{display:flex;justify-content:space-between;align-items:center;font-size:13px}.need-top strong{font:12px monospace;color:var(--muted)}.meter{height:7px;background:#0e1222;border-radius:2px;margin-top:6px;overflow:hidden}.meter>span{display:block;height:100%;background:var(--teal);transition:width .3s}.need.stress .meter>span{background:#d7a1b5}.need.low .meter>span{background:#e5aa70}.dues-warning{margin-top:12px;border-top:1px solid var(--border);padding-top:8px;color:#f1b7a5;font-size:12px}.goal-panel h2{margin:8px 0}.goal-panel>p{color:var(--muted);font-size:13px}.goal{margin:16px 0}.goal-line{display:flex;justify-content:space-between;font-size:12px}.goal-line strong{color:var(--gold);font:12px monospace}.goal .meter>span{background:var(--gold)}.primary,.secondary{width:100%;padding:11px 13px;border:1px solid transparent;font-weight:650}.primary{background:var(--gold);color:#2b2419;box-shadow:0 3px 0 #8f7042}.primary:hover:not(:disabled){background:#ffdb95}.secondary{background:#2e3750;color:var(--text);border-color:#48516c}.secondary:hover:not(:disabled){background:#3c4662}.small{font-size:12px;color:var(--muted);margin-top:9px}.board-heading{display:flex;justify-content:space-between;align-items:end;margin:0 0 14px}.board-heading h2{margin-top:3px;font-size:24px}.weather{color:var(--gold);font-size:12px;padding-bottom:3px}.house-board{position:relative;aspect-ratio:3/2;overflow:hidden;border:1px solid #545471;border-radius:6px;box-shadow:0 7px 0 #080c18;background:#0e1430}.house-art{display:block;width:100%;height:100%;image-rendering:pixelated}.house-board canvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none}.room-button{position:absolute;z-index:2;background:#121729de;color:#f4e9d6;border:1px solid #62627a;padding:4px 8px;font:11px monospace;box-shadow:0 2px 0 #0005}.room-button.selected{border-color:var(--gold);color:var(--gold);background:#252331ef}.room-button:hover{background:#373148}.person-hotspot{position:absolute;background:transparent;border:0;padding:0;z-index:3;transform:translate(-50%,-100%);width:5%;height:12%;min-width:28px}.person-hotspot:focus-visible{outline-offset:0;border-radius:30%}.person-hotspot:hover{background:#fff1;border-bottom:2px solid var(--gold)}.you-label{position:absolute;transform:translate(-50%,-100%);font:9px monospace;color:var(--gold);padding:1px 4px;background:#17182de0;pointer-events:none}.scene-time{position:absolute;right:12px;bottom:10px;font:12px monospace;color:#c6c8e4;background:#11172ad9;padding:2px 7px}.scene-caption{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:12px 0 16px;gap:10px}.scene-caption>span:first-child{color:var(--gold)}.people-panel{padding:12px 16px}.people-panel #people{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.person-card{padding:5px;border:1px solid transparent;background:transparent;color:var(--text);display:flex;gap:8px;align-items:center;text-align:left;min-width:0}.person-card:hover,.person-card.selected{border-color:#5c5878;background:#333047}.person-card canvas{width:35px;height:46px;image-rendering:pixelated;flex-shrink:0}.person-card strong{display:block;font-size:13px}.person-card span{display:block;font-size:11px;color:var(--muted)}.journal{padding:16px 2px}.journal>p{font-size:14px;margin-top:6px;min-height:42px;color:#dadde8}.text-button{background:none;border:0;color:var(--gold);padding:8px 0;font-size:12px}.journal ol{padding-left:21px;margin:0;font-size:12px;color:var(--muted);max-height:180px;overflow:auto}.journal li{margin-bottom:10px}.interaction-panel{min-height:280px}.interaction-panel h2{margin:7px 0 10px}.interaction-panel>p{font-size:14px;color:#c3cada;margin-bottom:14px}.action{display:block;width:100%;text-align:left;margin-top:9px;padding:12px;background:#292e46;border:1px solid #46506b;color:var(--text);box-shadow:0 2px 0 #101321}.action:hover:not(:disabled){background:#383d56;border-color:var(--gold)}.action strong{display:block;font-size:14px}.action small{display:block;color:var(--muted);font-size:12px;margin-top:4px;font-weight:400}.action:disabled{opacity:.6}.action:disabled small{color:#d1afaa}.room-description{border-bottom:1px solid var(--border);padding-bottom:12px}.portrait-big{width:64px;height:86px;image-rendering:pixelated;float:right;margin:-8px 0 8px 10px}.condition{font-size:12px;color:var(--purple);padding:5px 0 12px}.relationship{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:12px 0}.event-tag{display:inline-block;background:#3c2f45;color:#ecc0cf;border:1px solid #72516a;padding:4px 8px;font:11px monospace;margin-bottom:8px}.event-panel{border-color:#806082;background:linear-gradient(140deg,#34253d,#211f33)}.today-panel h2{margin:6px 0}.today-panel ul{padding:0;list-style:none;font-size:13px;margin:15px 0}.today-panel li{display:flex;gap:9px;align-items:center;padding:6px 0;color:var(--muted)}.check{border:1px solid #65718c;width:15px;height:15px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--teal);flex-shrink:0}.done{color:var(--text)!important}.done .check{border-color:var(--teal);background:#72cabb15}.fiction-note{font-size:11px;line-height:1.7;text-align:center;color:var(--muted)}dialog{max-width:540px;width:calc(100% - 32px);background:#202439;color:var(--text);border:2px solid #82719d;border-radius:8px;padding:28px;box-shadow:8px 8px 0 #090d1c}dialog::backdrop{background:#080b18ca}dialog h2{font-size:26px;margin:8px 0 15px}dialog p,dialog li{font-size:15px;margin-bottom:15px}dialog ul{padding-left:20px}dialog .small{font-size:12px}dialog a{color:var(--teal)}.dialog-close{float:right;border:0;background:transparent;color:var(--muted);font-size:25px;line-height:1}.dialog-actions{display:flex;gap:12px}.win-state{border-color:var(--gold)}
@media(min-width:1600px){.game-layout{grid-template-columns:240px minmax(0,1fr) 310px}}@media(max-width:1150px){.game-layout{grid-template-columns:minmax(0,1fr) 285px;gap:18px}.left-rail{grid-column:1/-1;grid-template-columns:1fr 1fr}.identity{margin:4px 0}.player-panel{display:grid;grid-template-columns:120px 1fr;gap:0 20px}.player-panel>.eyebrow{grid-column:1/-1}#needs{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.need{margin:5px 0}.goal-panel h2{font-size:17px}.goal-panel #goals{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.goal{margin:7px 0}.goal-panel .primary{margin-top:10px;width:auto}.goal-panel>p:last-child{display:inline-block;margin-left:8px}.topbar{gap:12px}.header-actions>span{display:none}.board-heading h2{font-size:20px}}@media(max-width:760px){.topbar{padding:14px 16px;flex-wrap:wrap}.brand{flex:1}h1{font-size:13px;letter-spacing:1px}.clock{gap:8px}.clock #period{display:none}.clock strong{font-size:20px}.header-actions{width:100%;justify-content:flex-end}.header-actions>span{display:block;margin-right:auto}.game-layout{padding:16px;grid-template-columns:1fr;gap:18px}.left-rail{grid-template-columns:1fr}.player-panel{padding:12px;grid-template-columns:95px 1fr;gap:0 12px}.identity canvas{width:42px;height:70px}.identity h2{font-size:16px}.identity p{display:none}.money{font-size:18px}.goal-panel{order:2;padding:14px}.goal-panel #goals{grid-template-columns:repeat(2,1fr)}.board-heading .weather{display:none}.room-button{font-size:9px;padding:2px 4px}.house-column{grid-row:1}.left-rail{grid-row:3}.right-rail{grid-row:2;grid-template-columns:1fr}.board-heading h2{font-size:21px}.scene-caption{font-size:11px}.people-panel #people{gap:3px}.person-card{display:block;text-align:center;padding:3px}.person-card canvas{margin:auto}.person-card span{font-size:10px}.you-label{font-size:8px}.journal>p{min-height:0}.fiction-note{display:none}.interaction-panel{min-height:0}.scene-time{font-size:10px;right:5px;bottom:4px}.panel{box-shadow:0 3px 0 #080c18}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.play-controls{grid-column:2;display:flex;gap:16px;align-items:center;margin-top:-10px;padding:12px 16px;background:#1a1e32;border:1px solid #343b55;border-radius:8px}.play-controls button{background:#303850;color:#f1c976;border:1px solid #5b6282;padding:8px 14px;min-width:44px;min-height:44px;touch-action:none}.play-controls>div{text-align:center}.play-controls span{font-size:12px;color:#a4aec5}.timing-track{position:relative;height:40px;margin:25px 0;background:#0c1121;border:1px solid #67718a;overflow:hidden}#timing-target{position:absolute;width:22%;height:100%;background:#488f81}#timing-marker{position:absolute;top:0;height:100%;width:5px;background:#ffe2a3;box-shadow:0 0 0 2px #101322}#challenge-score{font:14px monospace}#challenge-dialog .text-button{display:block;margin:auto;padding:15px}@media(max-width:1150px){.play-controls{grid-column:1/-1}}@media(max-width:760px){.play-controls{grid-row:2;margin:0;flex-wrap:wrap;gap:10px}.right-rail{grid-row:3}.left-rail{grid-row:4}.play-controls span{width:100%}}
.sim-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px;padding:10px;background:#191e31;border:1px solid var(--border);border-radius:6px}.sim-toolbar button,.build-tabs button{background:#242b41;color:var(--muted);border:1px solid #414961;padding:8px 12px}.sim-toolbar button[aria-pressed=true],.build-tabs button[aria-pressed=true]{color:var(--gold);border-color:var(--gold);background:#3b3340}.view-switch,.time-controls{display:flex;gap:4px}.sim-toolbar>span{font:11px monospace;color:var(--teal);margin-left:auto}.fund-row{display:flex;justify-content:space-between;align-items:center;margin:9px 0}.fund-row>strong{color:var(--gold);font:bold 24px monospace}#budget{font:11px/1.7 monospace;color:var(--teal);margin:12px 0}.build-tabs{display:flex;gap:5px;margin:16px 0 10px}.build-tabs button{font-size:11px;padding:7px}.project-card{width:100%;text-align:left;border:1px solid #475269;background:#252d42;color:var(--text);padding:12px;margin:5px 0}.project-card strong{display:flex;justify-content:space-between;font-size:13px;gap:8px}.project-card b{color:var(--gold);white-space:nowrap}.project-card small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.project-card.built{border-color:#52897f;opacity:1;background:#203a39}.autonomy-panel{margin-top:16px}.autonomy-panel h2{margin:6px 0 14px;font-size:17px}#resident-activity{display:grid;grid-template-columns:1fr 1fr;gap:14px}.resident-row{display:flex;gap:10px}.resident-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:6px}.resident-row strong,.resident-row span,.resident-row small{display:block}.resident-row strong{font-size:13px}.resident-row span{font-size:12px;color:var(--teal)}.resident-row small{font-size:10px;color:var(--muted)}.upgrade-marker{position:absolute;pointer-events:none;transform:translate(-50%,-50%);color:#fff2bd;text-shadow:0 0 8px #ffc955;font-size:20px}.district-map{position:relative;aspect-ratio:3/2;overflow:hidden;background-color:#203b39;background-image:linear-gradient(#35524b66 1px,transparent 1px),linear-gradient(90deg,#35524b66 1px,transparent 1px);background-size:28px 28px;border:1px solid #597569;border-radius:6px;box-shadow:0 7px 0 #080c18}.map-road{position:absolute;background:#525a67;border:4px dashed #a7a49b;box-shadow:0 0 0 6px #2d333f}.map-road.horizontal{left:0;right:0;top:48%;height:7%}.map-road.vertical{top:0;bottom:0;left:48%;width:6%}.home-lot{position:absolute;left:50%;top:50%;width:34%;transform:translate(-50%,-50%);padding:12px 5px;background:#292c45;border:3px solid var(--gold);text-align:center;box-shadow:6px 6px 0 #101722}.home-lot span{display:block;font-size:35px;color:var(--gold);line-height:1}.home-lot strong{font:10px monospace}.home-lot small{display:block;font-size:10px;color:var(--muted)}.map-lot{position:absolute;transform:translate(-50%,-50%);width:29%;min-height:22%;background:#2b4944;color:#d5e6dc;border:2px dashed #71958a;padding:12px 5px;box-shadow:4px 4px 0 #172b2b}.map-lot span{font:bold 15px monospace;letter-spacing:2px;display:block}.map-lot small{display:block;font-size:10px;margin-top:6px}.map-lot.active{background:#435850;border-style:solid;border-color:var(--gold);color:var(--gold)}.map-label{position:absolute;bottom:8px;left:12px;font:10px monospace;color:#9cbaaf}[hidden]{display:none!important}@media(max-width:760px){.sim-toolbar{gap:8px}.sim-toolbar button{padding:7px 9px;font-size:12px}.sim-toolbar>span{width:100%;margin:0}.home-lot{padding:7px 2px}.home-lot strong{font-size:7px}.home-lot small{font-size:8px}.map-lot span{font-size:12px}.map-lot small{font-size:8px}#resident-activity{gap:12px}}
