:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#173d38;background:#d6e3da;font-synthesis:none;--ink:#173d38;--muted:#657970;--lime:#d5edab;--paper:#f5f6ed;--line:rgba(32,63,53,.13)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input,select{font:inherit}button{color:inherit;cursor:pointer;border:0;background:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #409c8a;outline-offset:4px}button:hover{color:#397d61}button:disabled{opacity:.38;cursor:default}a{color:inherit;text-decoration:none}#world{display:block;width:100%;height:100%;position:fixed;inset:0;touch-action:none}#interface{position:fixed;inset:0;pointer-events:none}#interface button,#interface a,#interface input,#interface select,#interface .panel{pointer-events:auto}header{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:linear-gradient(#f4f6efd9,#f4f6ef40);gap:20px}.brand{display:flex;gap:13px;align-items:center;font-size:22px;letter-spacing:3.2px;font-weight:600}.brand small{display:block;font-size:8px;letter-spacing:2.8px;margin-top:5px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1.5px solid currentColor;border-radius:50%;font-size:31px;letter-spacing:-4px;font-weight:300;padding-right:4px}.mode-switch{display:flex;background:#f6f7f0cc;border:1px solid var(--line);padding:4px;border-radius:30px;box-shadow:0 5px 20px #27413708}.mode-switch button{padding:10px 20px;border-radius:24px;font-size:12px}.mode-switch button.active{background:var(--ink);color:#f4f6e9}.header-right{display:flex;align-items:center;gap:9px}#live-indicator{font-size:9px;letter-spacing:1.1px;margin-right:14px;white-space:nowrap}#live-indicator i{display:inline-block;width:6px;height:6px;margin-right:7px;background:#497e53;border-radius:50%}.xr-button{padding:11px 14px;background:#f5f7efbf;border:1px solid #aabcaa;border-radius:6px;font-size:11px;white-space:nowrap}.xr-button span{margin-left:12px}.xr-button.dark{background:var(--ink);color:#f5f7ef}.intro{position:absolute;left:34px;top:125px}.eyebrow{font-size:9px;letter-spacing:1.65px;font-weight:600;color:#658071}.intro .eyebrow span{margin-left:28px;opacity:.6}.intro h1{font-weight:400;font-family:Georgia,"Times New Roman",serif;font-size:clamp(35px,4vw,58px);line-height:1.02;letter-spacing:-1.8px;margin:21px 0 18px}.intro p{font-size:12px;line-height:1.7;color:#4d6a5c;margin:0}.text-link{font-size:11px;padding:16px 0;text-decoration:underline;text-underline-offset:5px}.text-link span{margin-left:16px}.system-nav{position:absolute;top:390px;left:26px;display:flex;flex-direction:column;gap:4px;max-height:calc(100vh - 560px);overflow:auto}.system-nav button{display:flex;align-items:center;gap:11px;font-size:11px;padding:9px 14px;border-radius:25px;text-align:left;background:#f3f6edb8;border:1px solid #f5f7ee60}.system-nav button span{font-size:18px;width:22px;text-align:center}.system-nav button:hover,.system-nav button.active{background:var(--ink);color:#e5f2d3}.panel{background:linear-gradient(145deg,#fbfcf3f5,#f0f4eae8);border:1px solid #ffffffae;border-radius:12px;box-shadow:0 16px 55px #233a3412;backdrop-filter:blur(18px)}#inspector{position:absolute;top:123px;right:26px;width:290px;padding:21px;max-height:calc(100vh - 320px);overflow:auto}.panel-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-top button{font-size:22px;line-height:16px;color:#6e8072}.panel h2{font-family:Georgia,serif;font-weight:400;font-size:27px;letter-spacing:-.6px;margin:0 0 10px}.panel p{color:#63776b;line-height:1.65;font-size:11px;margin:0 0 18px}.divider{height:1px;background:var(--line);margin:18px 0}.population{display:flex;gap:5px}.population button{font-size:11px;border:1px solid var(--line);border-radius:6px;flex:1;padding:10px 5px}.population button.active{background:var(--ink);color:#f4f6ed}.pair{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:12px 0;gap:8px}.pair strong{font-size:12px;font-weight:500}.positive{color:#43855e}.status-pill{background:#e4edd5;border-radius:20px;padding:5px 8px;font-size:8px;letter-spacing:1px;color:#456c41}.status-pill.warning{background:#f2dfbe;color:#97502e}.micro{font-size:9px;color:#859387}.resident-card{display:flex;align-items:center;gap:13px;margin-top:20px}.avatar{width:39px;height:39px;border-radius:50%;background:#dbc8ac;display:grid;place-items:center;font-family:Georgia;font-size:22px;color:#527360}.resident-card strong{display:block;font-size:12px;font-weight:500}.resident-card small{display:block;color:#7d8c7d;font-size:10px;margin-top:5px}.need{display:grid;grid-template-columns:67px 1fr 28px;align-items:center;gap:10px;font-size:10px;margin:10px 0;color:#63796b}.need-track{height:3px;background:#dbe3d3;border-radius:3px}.need-track i{display:block;height:100%;background:#6d9169;border-radius:3px}.inline-buttons{display:flex;gap:8px;flex-wrap:wrap}.inline-buttons button,.secondary{border:1px solid #b7c7b1;border-radius:5px;font-size:10px;padding:9px 12px}.primary{background:var(--ink);color:#f0f6e3!important;border-radius:5px;padding:11px 17px;font-size:11px}.decision{font-size:10px;line-height:1.6;color:#5d7768;padding-left:11px;border-left:2px solid #abc393;margin:12px 0}.decision time{display:block;font-size:8px;letter-spacing:.6px;color:#94a18e}.chain{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin:15px 0;font-size:10px}.chain span{background:#e7eddd;padding:6px;border-radius:4px}.view-tools{position:absolute;left:50%;bottom:157px;transform:translateX(-50%);display:flex;gap:7px}.view-tools button{background:#f4f7edde;backdrop-filter:blur(10px);padding:10px 13px;border:1px solid #ffffffa8;border-radius:6px;font-size:15px;white-space:nowrap}.view-tools span{font-size:10px;margin-left:5px}.view-tools button.active{background:var(--ink);color:#f5f6e8}.bottom-dock{position:absolute;left:26px;right:26px;bottom:40px;display:flex;align-items:center;background:#f5f7edf0;border:1px solid #ffffffc0;border-radius:12px;height:101px;box-shadow:0 10px 40px #243c3620;backdrop-filter:blur(14px)}.day-control{padding:0 26px;width:235px;flex-shrink:0}.playback{display:flex;gap:4px;margin:9px 0 5px}.playback button{padding:4px 9px;border-radius:4px;font-size:10px}.playback button.active{background:var(--ink);color:#f1f5e7}#weather{font-size:9px;color:#7a8b7a}.metric{flex:1;padding:0 25px;border-left:1px solid var(--line);min-width:0}.metric>span{display:block;font-size:10px;color:#68806c}.metric strong{display:block;font-size:23px;font-weight:400;letter-spacing:-.7px;margin:6px 0}.metric strong small{font-size:10px;letter-spacing:0;color:#778b73}.metric>div{height:3px;background:#dde6d6;max-width:170px}.metric i{display:block;height:100%;background:#659a75;width:60%;transition:width .5s}.metric.wellbeing strong{color:#467c52}.metric>small{font-size:9px;color:#7b8e73}.footer-note{position:absolute;left:32px;right:32px;bottom:14px;display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.4px;color:#49685b}.footer-note button{font-size:8px;padding:0}#selection-tag{position:absolute;left:50%;top:30%;padding:7px 12px;background:#f5f7efed;border-radius:4px;font-size:10px;transform:translateX(-50%)}#toast{position:fixed;bottom:165px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#153d3aee;color:#ecf4df;font-size:12px;border-radius:7px;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;text-align:center}#toast.visible{opacity:1}#tour{position:absolute;left:50%;top:110px;width:360px;transform:translateX(-50%);padding:23px}.tour-controls{display:flex;justify-content:space-between;align-items:center;font-size:11px}#modal{border:1px solid white;border-radius:16px;background:var(--paper);color:var(--ink);max-width:580px;width:calc(100% - 32px);padding:29px;box-shadow:0 24px 120px #102f3970;max-height:85vh}#modal::backdrop{background:#12372f66;backdrop-filter:blur(5px)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head button{font-size:28px}#modal h2{font-family:Georgia,serif;font-weight:400;font-size:32px}#modal p,#modal li{font-size:12px;line-height:1.8;color:#5f7665}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px}.setting-row select{color:var(--ink);background:#e5ecdc;border:0;padding:8px;border-radius:5px}.scenario-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.scenario-grid button{background:#e6eddd;border:1px solid #c9d7bb;padding:16px;text-align:left;border-radius:8px}.scenario-grid strong{display:block;font-size:12px}.scenario-grid small{display:block;margin-top:8px;color:#6d806c;line-height:1.5;font-size:10px}#restore-ui{position:fixed;right:22px;bottom:20px;background:#f4f6e8cc;padding:12px 20px;border-radius:25px;font-size:12px}#loading{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#e8eee0;color:#173d38;transition:opacity .5s}#loading h1{letter-spacing:7px;font-size:26px;font-weight:500;margin:28px 0 0}#loading p{font-family:Georgia,serif;font-size:22px;margin:18px 0 30px}#loading small{font-size:9px;color:#7a8b74;letter-spacing:1px}.load-line{height:2px;width:170px;background:#c9d9bb;margin-bottom:24px}.load-line::after{content:'';display:block;height:100%;width:40%;background:#47795b;animation:load 1.2s infinite alternate}@keyframes load{to{transform:translateX(150%)}}[hidden]{display:none!important}.xr-active #interface,.xr-active #toast,.xr-active #restore-ui{display:none!important}
@media(min-width:1700px){#inspector{width:315px;right:36px}.intro{left:42px;top:145px}.system-nav{left:35px;top:450px;max-height:calc(100vh - 620px)}}
@media(max-height:780px) and (min-width:900px){.intro{top:105px}.intro h1{font-size:39px;margin:15px 0}.intro p{font-size:10px}.system-nav{top:315px;max-height:calc(100vh - 475px)}.system-nav button{padding:5px 12px}#inspector{top:105px;padding:17px;max-height:calc(100vh - 280px)}.bottom-dock{height:88px}.view-tools{bottom:143px}.panel h2{font-size:24px}}
@media(max-width:1050px){header{padding:0 20px}.brand{font-size:18px}.brand-mark{width:35px;height:35px}#live-indicator{display:none}#inspector{width:248px;right:18px}.metric{padding:0 15px}.day-control{width:185px;padding:0 20px}.intro .eyebrow span{display:none}.intro h1{font-size:42px}.intro{left:25px}.system-nav{left:18px}}
@media(max-width:760px){header{height:73px;flex-wrap:wrap;padding:12px 15px;gap:8px;align-items:flex-start}.brand{font-size:15px;gap:7px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1.7px}.brand-mark{width:30px;height:30px;font-size:23px}.mode-switch{position:absolute;top:72px;left:15px}.mode-switch button{padding:8px 12px;font-size:10px}.header-right{gap:5px}.xr-button{font-size:9px;padding:9px}.xr-button span{display:none}#settings-button{padding:5px}.intro{top:132px;left:17px}.intro h1{font-size:35px;margin:12px 0}.intro p{font-size:10px}.intro .eyebrow{font-size:7px}.text-link{font-size:10px}.system-nav{left:15px;right:15px;top:auto;bottom:177px;display:flex;flex-direction:row;max-height:none;gap:5px;overflow-x:auto;padding-bottom:4px}.system-nav button{flex-shrink:0;font-size:9px;padding:7px 11px;gap:4px}.system-nav button span{font-size:14px;width:15px}#inspector{top:auto;bottom:226px;right:15px;width:224px;max-height:42vh;padding:15px}#inspector.overview{display:none}.panel h2{font-size:24px}.panel p{font-size:10px}.bottom-dock{left:12px;right:12px;bottom:32px;height:120px;flex-wrap:wrap;padding:0 5px}.day-control{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 8px;border-bottom:1px solid var(--line)}.playback{margin:0}#sim-day{font-size:8px}#weather{font-size:8px}.metric{padding:10px 8px;flex:1}.metric:nth-child(2){border:0}.metric>span{font-size:8px}.metric strong{font-size:17px;margin:4px 0}.metric strong small{font-size:8px}.metric>small{font-size:7px}.footer-note{left:15px;right:15px;bottom:11px;font-size:7px}.footer-note #controls-hint{display:none}.view-tools{bottom:153px;gap:2px;left:auto;right:14px;transform:none}.view-tools button{padding:5px 10px;font-size:13px;border-radius:4px}.view-tools span{display:none}#tour{top:118px;width:calc(100% - 30px);max-width:360px;padding:20px}#toast{bottom:230px}.metric.wellbeing{padding-right:0}.metric>div{height:2px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Explicit layers survive XR runtimes that reparent the canvas on exit. */
#world{z-index:0}#interface{z-index:1}#toast{z-index:3}#restore-ui{z-index:3}
