:root{color:#f9f4e9;font-synthesis:none;background:#1d2e2a;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}.app,.world{position:fixed;inset:0}.world canvas{width:100%;height:100%;display:block}.vignette{pointer-events:none;background:linear-gradient(90deg,#1226238c,#0000 48%,#141f1a1a),linear-gradient(#fff5d91f,#0000 75%,#15231d6b);position:fixed;inset:0}.topbar{z-index:3;justify-content:space-between;align-items:center;padding:31px 48px;display:flex;position:fixed;top:0;left:0;right:0}.brand{color:#fff7e8;letter-spacing:2px;text-shadow:0 2px 8px #253b2c;align-items:center;gap:12px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.brand small{letter-spacing:1px;opacity:.7;margin-top:5px;font:10px DM Mono;display:block}.brand-icon{background:#42644d;border:1px solid #96b286;border-radius:11px;place-items:center;width:39px;height:39px;display:grid}.top-actions{align-items:center;gap:22px;display:flex}.day{letter-spacing:.8px;color:#fff9e8;align-items:center;gap:8px;font:11px DM Mono;display:flex}.icon-button,.close-button{color:#fff7e8;cursor:pointer;background:#2b4537ad;border:1px solid #f0ebd359;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.welcome{z-index:2;max-width:575px;position:fixed;top:24%;left:9%}.eyebrow{letter-spacing:1.4px;color:#ffdf8b;align-items:center;gap:9px;font:11px DM Mono;display:flex}.eyebrow span,.live-dot{background:#f2c96e;border-radius:50%;width:6px;height:6px;display:inline-block}.welcome h1{color:#fff8ec;letter-spacing:-2px;text-shadow:0 3px 15px #345341;margin:21px 0;font:400 58px/1.05 Libre Baskerville,serif}.welcome h1 em{color:#f6cb77}.welcome p{color:#f5f0dc;margin:0 0 27px;font-size:16px;line-height:1.75}.welcome-buttons{align-items:center;gap:25px;display:flex}.primary{color:#2f3b2c;cursor:pointer;background:#e5ad58;border:0;border-radius:7px;align-items:center;gap:12px;padding:14px 19px;font-weight:700;display:flex;box-shadow:0 5px 15px #2c231233}.primary:hover{background:#f1c66f}.primary:disabled{opacity:.6;cursor:wait}.text-button{color:#fff2d6;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:9px 0;font-weight:600;display:flex}.welcome-facts{color:#f1e7ce;letter-spacing:.5px;gap:22px;margin-top:53px;font:11px DM Mono;display:flex}.welcome-facts span{align-items:center;gap:8px;display:flex}.scene-caption{color:#fff3db;letter-spacing:1.5px;align-items:center;gap:10px;font:10px DM Mono;display:flex;position:fixed;bottom:28px;left:48px}.caption-detail{opacity:.65}.intro-footer{color:#f8edcf;letter-spacing:1px;gap:28px;font:10px DM Mono;display:flex;position:fixed;bottom:28px;right:48px}.intro-footer span:last-child{opacity:.7;align-items:center;gap:7px;display:flex}.journey{z-index:2;color:#fff9eb;position:fixed;top:128px;left:54px}.journey h2{margin:12px 0 2px;font:28px Libre Baskerville}.journey p{color:#f8eed8;margin:0}.house-progress{align-items:center;gap:7px;margin-top:22px;display:flex}.house-progress span{color:#e5e2c8;background:#536f56aa;border:1px solid #fff5dc66;border-radius:8px;place-items:center;width:29px;height:29px;display:grid}.house-progress span.met{color:#38452f;background:#eab766;border-color:#ffe4a4}.house-progress small{opacity:.8;margin-left:6px;font:10px DM Mono}.hud-right{z-index:2;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;top:116px;right:48px}.map-button,.save-state{color:#fff7e7;cursor:pointer;background:#2f4637c7;border:1px solid #fbf1d461;border-radius:8px;align-items:center;gap:8px;padding:10px 13px;display:flex}.map-button kbd{margin-left:10px}.save-state{color:#f8edcf;padding:7px 11px;font:10px DM Mono}.camera-controls{z-index:2;gap:5px;display:flex;position:fixed;bottom:115px;right:48px}.camera-controls button,.touch-controls button{color:#fff3da;cursor:pointer;background:#304e40c7;border:1px solid #c7d2ae77;border-radius:7px;place-items:center;width:39px;height:36px;display:grid}.interaction{z-index:2;background:#23362aeb;border:1px solid #d9d5b965;border-radius:10px;align-items:center;gap:12px;min-width:390px;max-width:calc(100% - 30px);padding:10px 12px;display:flex;position:fixed;bottom:66px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #21362c55}.talk-icon{color:#38482f;background:#dda958;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.interaction strong,.interaction small{display:block}.interaction strong{font-size:13px}.interaction small{opacity:.68;margin-top:4px;font:10px DM Mono}.interaction>div:nth-child(2){flex:1}.interaction button{color:#314331;cursor:pointer;background:#f4dfaa;border:0;border-radius:6px;align-items:center;gap:7px;padding:8px 12px;font-weight:700;display:flex}.interaction button:not(.interact-ready){opacity:.8}.interaction kbd,.map-button kbd,.keyboard-hint kbd{border:1px solid #748771;border-radius:3px;padding:3px 5px;font:10px DM Mono}.keyboard-hint{z-index:2;color:#f7ecd3;opacity:.78;gap:15px;font:10px DM Mono;display:flex;position:fixed;bottom:27px;left:50%;transform:translate(-50%)}.keyboard-hint span{align-items:center;gap:4px;display:flex}.touch-controls{display:none}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#16261d70;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{color:#334438;background:#f7f2e5;border-radius:12px;width:min(475px,100%);max-height:calc(100vh - 40px);padding:35px;position:relative;overflow:auto;box-shadow:0 22px 70px #26382c66}.modal.wide{width:min(760px,100%)}.modal h2{color:#324637;margin:10px 0;font:27px Libre Baskerville}.modal>p{color:#637263;line-height:1.6}.modal .close-button{color:#677464;background:0 0;border-color:#d7d9c9;width:32px;height:32px;position:absolute;top:17px;right:17px}.modal form{gap:17px;margin-top:24px;display:grid}.modal label{gap:7px;font-size:12px;font-weight:700;display:grid}.modal input,.modal select{color:#334438;background:#fffdf8;border:1px solid #ccd2bd;border-radius:6px;padding:12px}.soft-note{color:#647361;background:#e8ebdc;border-radius:7px;align-items:flex-start;gap:10px;padding:12px;font-size:12px;line-height:1.5;display:flex}.modal .primary{justify-content:center;width:100%}.control-list{border-top:1px solid #daddcb;border-bottom:1px solid #daddcb;grid-template-columns:1fr 1fr;gap:12px;padding:17px 0;font-size:13px;display:grid}.control-list strong{text-align:right;color:#687968;font:11px DM Mono}.family-grid{grid-template-columns:1fr 1fr;gap:11px;margin:22px 0;display:grid}.family-card{background:#fbf8ed;border:1px solid #dfe2d2;border-radius:8px;gap:12px;padding:13px;display:flex}.house-number{color:#fff;border-radius:8px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:45px;height:45px;display:flex}.house-number b{font:9px DM Mono}.family-card h3{margin:0;font:15px Libre Baskerville}.family-card small{color:#7d8872;font-size:10px}.family-card p{margin:7px 0 0;font-size:11px}.family-card p span{color:#899581;font:9px DM Mono}.direction{color:#a07c4f;margin-top:10px;font:9px DM Mono;display:block}.resident-heading{align-items:center;gap:14px;margin:20px 0;display:flex}.portrait{color:#fff;border:4px solid #fff;border-radius:13px;place-items:center;width:58px;height:58px;font:25px Libre Baskerville;display:grid;box-shadow:0 2px 8px #5b6c5155}.resident-heading h3{margin:0 0 7px;font:19px Libre Baskerville}.resident-heading small{color:#71806f;margin-top:6px;font:10px DM Mono;display:block}.status-badge{color:#60705e;background:#e3e8d7;border-radius:4px;padding:4px 7px;font:10px DM Mono}.modal blockquote{color:#566453;background:#edf0e3;border-left:3px solid #d5a65d;margin:0;padding:18px;font:italic 16px/1.55 Libre Baskerville}.affinity{margin:19px 0 7px}.affinity>span{color:#bb7849;align-items:center;gap:6px;font:10px DM Mono;display:flex}.affinity b{color:#6b7869;margin-left:auto}.affinity>div{background:#e3e4d6;border-radius:8px;height:7px;margin-top:8px;overflow:hidden}.affinity i{background:#d8985f;border-radius:8px;height:100%;transition:width .3s;display:block}.friend-note{background:#e8ebdc;border-radius:5px;padding:10px;font:11px DM Mono!important}.dialogue-actions{gap:8px;margin:17px 0;display:grid}.dialogue-actions button{color:#425242;text-align:left;cursor:pointer;background:#fffdfa;border:1px solid #d7dccb;border-radius:6px;align-items:center;gap:9px;padding:11px;font-size:12px;display:flex}.dialogue-actions button:hover{border-color:#c79456}.dialogue-actions button.romance{color:#a26541;background:#f9e9d1;border-color:#e3bc8c}.dialogue-actions button span{margin-left:auto;font:10px DM Mono}.error-banner,.toast{z-index:20;color:#63482e;background:#fff2d3;border-radius:7px;align-items:center;gap:14px;padding:11px 15px;font-size:12px;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 3px 15px #394e3766}.error-banner button{color:#9b683c;cursor:pointer;background:0 0;border:0;text-decoration:underline}.toast{top:auto;bottom:150px}.app:focus{outline:none}@media (width<=800px){.topbar{padding:18px 20px}.brand{font-size:13px}.brand small,.day,.intro-footer,.scene-caption{display:none}.welcome{top:22%;left:24px;right:24px}.welcome h1{letter-spacing:-1px;font-size:39px}.welcome p{font-size:14px}.welcome-buttons{display:block}.welcome-buttons .text-button{margin-top:11px}.welcome-facts{margin-top:34px;display:block}.welcome-facts span{margin-top:8px}.journey{top:84px;left:20px}.journey h2{font-size:22px}.journey p{font-size:13px}.hud-right{top:83px;right:20px}.map-button{font-size:11px}.save-state{display:none}.interaction{width:calc(100% - 30px);min-width:0;bottom:93px}.keyboard-hint{display:none}.camera-controls{bottom:205px;right:20px}.touch-controls{z-index:3;grid-template-rows:repeat(2,42px);grid-template-columns:repeat(3,42px);gap:4px;display:grid;position:fixed;bottom:105px;left:20px}.touch-controls button:first-child{grid-column:2}.family-grid{grid-template-columns:1fr}.modal{padding:27px 21px}.welcome-facts{font-size:10px}.vignette{background:linear-gradient(90deg,#12262361,#0000 80%),linear-gradient(#fff5d91a,#0000 65%,#15231d80)}@media (height<=650px){.welcome{top:17%}.welcome h1{font-size:36px}.welcome-facts{margin-top:20px}.journey{top:72px}.interaction{bottom:53px}.touch-controls{bottom:60px}.camera-controls{bottom:140px}}}
