@font-face{font-family:Temple Serif;src:url(/fonts/temple-serif.ttf)format("truetype");font-weight:400 600;font-display:swap}:root{color:#485044;font-synthesis:none;-webkit-font-smoothing:antialiased;--sage:#62745b;--ink:#444e40;--muted:#858b79;--serif:"Temple Serif","Songti SC","STSong",serif;background:#e9e7da;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:wait;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:5px;outline:2px solid #7c8e6d}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}.experience{width:100%;height:100svh;position:relative;overflow:hidden}.scene{touch-action:none;position:absolute;inset:0}.scene canvas{touch-action:none;cursor:grab;display:block}.scene canvas:active{cursor:grabbing}.edge-wash{pointer-events:none;background:linear-gradient(#f3f1e6ad,#0000 23% 77%,#f1eee16b);transition:opacity 1s;position:absolute;inset:0}.is-outside .edge-wash{background:linear-gradient(90deg,#f0eee2eb 0%,#f0eee2b8 23%,#f0eee214 53%,#0000 80%)}.topbar{z-index:5;pointer-events:none;justify-content:space-between;align-items:center;padding:30px 44px;display:flex;position:absolute;top:0;left:0;right:0}.brand{pointer-events:auto;align-items:center;gap:13px;display:flex}.brand-mark{color:#687a5c;border:1px solid #7d88735c;border-radius:50%;place-items:center;width:49px;height:49px;display:grid}.brand-name{font:500 27px/1.15 var(--serif);letter-spacing:5px;color:#44513e;white-space:nowrap}.brand-name small{letter-spacing:2.9px;color:#79816e;margin-top:8px;font:8px/1.5 -apple-system,sans-serif;display:block}.seal{font:10px/1.15 var(--serif);color:#f4e9d7;letter-spacing:0;background:#a76c52d9;border-radius:2px;align-self:flex-start;margin-top:3px;margin-left:1px;padding:5px 3px}.header-right{pointer-events:auto;align-items:center;gap:22px;display:flex}.weather{color:#767f6b;letter-spacing:1px;align-items:center;gap:8px;font-size:11px;display:flex}.presence{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);letter-spacing:1px;white-space:nowrap;color:#66765a;background:#f4f3e9a3;border:1px solid #a6ad955e;border-radius:30px;align-items:center;gap:6px;padding:11px 16px;font-size:12px;display:flex}.presence b{margin-left:2px;font-weight:500}.capacity{color:#8d9580;letter-spacing:0;font-size:10px}.presence-dot{background:#7c906a;border-radius:50%;width:5px;height:5px;margin-right:4px;box-shadow:0 0 0 4px #859c6f10}.is-waiting .presence-dot{background:#b18e54}.tools{gap:5px;display:flex}.icon-button{color:#69765d;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,transform .2s;display:inline-flex}.icon-button:hover,.icon-button.is-active{background:#f8f6ecb8}.icon-button:active{transform:scale(.94)}.intro{z-index:2;max-width:480px;animation:1.4s both arrive;position:absolute;top:24.5%;left:7.2%}.eyebrow{color:#7f8771;letter-spacing:3px;align-items:center;gap:11px;font-size:11px;display:flex}.eyebrow>span{background:#8a9676;width:25px;height:1px;display:block}.intro h1{font:400 clamp(48px,4.8vw,76px)/1.3 var(--serif);letter-spacing:4px;color:#48513e;margin:25px 0 20px}.title-dot{color:#7e8a6c;margin-left:-.1em}.intro p{letter-spacing:2px;color:#7c836f;margin:0 0 33px;font-size:14px;line-height:2.2}.enter-button{color:#f5f0e4;letter-spacing:3px;background:#64765b;border-radius:4px;justify-content:space-between;align-items:center;gap:42px;padding:17px 25px 17px 29px;font-size:14px;transition:background .2s,transform .2s;display:flex;box-shadow:0 6px 22px #5263461a}.enter-button:hover{background:#526849;transform:translateY(-2px)}.enter-button:active{transform:translateY(0)}.entry-note{letter-spacing:2px;color:#929883;align-items:center;gap:8px;margin-top:20px;font-size:10px;display:flex}.entry-note>span{background:#a0aa8a;border-radius:50%;width:4px;height:4px}.landing-footer{color:#8b927c;letter-spacing:2px;justify-content:space-between;align-items:center;font-size:10px;display:flex;position:absolute;bottom:29px;left:44px;right:44px}.landing-footer>div{align-items:center;gap:9px;display:flex}.landing-footer i{background:#a7ae9866;width:1px;height:12px;margin:0 10px}.landing-footer p{margin:0}.vertical-poem{writing-mode:vertical-rl;font:11px var(--serif);letter-spacing:5px;color:#87947a;align-items:center;gap:18px;display:flex;position:absolute;top:38%;right:45px}.vertical-poem>span{background:#9fa78e77;width:1px;height:32px}.location-card{pointer-events:none;align-items:stretch;gap:14px;display:flex;position:absolute;top:127px;left:45px}.location-line{background:linear-gradient(#7d8c67,#859c7010);width:1px}.location-card small{letter-spacing:3px;color:#8b917e;font-size:9px}.location-card h2{font:400 19px var(--serif);letter-spacing:3px;color:#626f55;margin:8px 0 9px}.location-card p{color:#8c947f;letter-spacing:1px;margin:0;font-size:10px}.action-dock{z-index:5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f4e7dc;border:1px solid #fbfaf27d;border-radius:16px;gap:8px;padding:10px 13px;display:flex;position:absolute;bottom:39px;left:50%;transform:translate(-50%);box-shadow:0 8px 35px #3c4e2a12}.action-button{color:#7b826d;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:72px;height:70px;transition:background .2s,color .2s;display:flex;position:relative}.action-button>span:last-child{letter-spacing:3px;padding-left:3px;font-size:11px}.action-key{color:#a2aa91;opacity:0;font-size:8px;transition:opacity .2s;position:absolute;top:4px;right:7px}.action-button:hover{background:#e9eadb}.action-button:hover .action-key{opacity:1}.action-button.is-selected{color:#5d7351;background:#e1e6d5}.action-button.is-selected:after{content:"";background:#7a8f66;border-radius:50%;width:3px;height:3px;position:absolute;bottom:-5px}.action-hint{white-space:nowrap;font:11px var(--serif);letter-spacing:2px;color:#718062;text-shadow:0 1px 10px #f5f3e3;pointer-events:none;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}.desktop-help{color:#7d886f;letter-spacing:1px;align-items:center;gap:17px;font-size:10px;display:flex;position:absolute;bottom:34px;right:38px}.desktop-help>span{align-items:center;gap:3px;display:flex}.desktop-help>span+span{border-left:1px solid #899b6c4d;padding-left:14px}kbd{border:1px solid #91a17a6b;border-radius:3px;justify-content:center;align-items:center;min-width:15px;height:17px;font-family:inherit;font-size:8px;display:inline-flex}.desktop-help button{border:1px solid #97a2877a;border-radius:50%;width:20px;height:20px;margin-left:0;font-size:11px}.touch-controls{display:none}.calm-ui{transition:opacity 1.1s,visibility 1.1s}.is-quiet .calm-ui{opacity:0;visibility:hidden;pointer-events:none}.quiet-label{text-align:center;font:10px var(--serif);letter-spacing:3px;color:#7e8b6d;opacity:0;pointer-events:none;transition:opacity 2s;position:absolute;bottom:24px;left:0;right:0}.is-quiet .quiet-label{opacity:.6}.settings-panel{z-index:12;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#f9f7ecef;border:1px solid #ffffff80;border-radius:13px;width:305px;max-height:calc(100svh - 110px);padding:20px 23px 17px;animation:.2s panel-in;position:absolute;top:92px;right:43px;overflow:auto;box-shadow:0 12px 50px #47553818}.panel-title{font:500 18px var(--serif);letter-spacing:2px;justify-content:space-between;align-items:center;display:flex}.panel-title .icon-button{width:25px;height:25px}.panel-caption{letter-spacing:1px;color:#9a9d8a;margin:9px 0 24px;font-size:10px}.volume-row{grid-template-columns:98px 1fr 23px;align-items:center;gap:8px;margin:19px 0;display:grid}.volume-row>span{color:#7b846b;letter-spacing:1px;align-items:center;gap:8px;font-size:11px;display:flex}.volume-row small{color:#929a80;text-align:right;font-size:9px}input[type=range]{appearance:none;cursor:pointer;touch-action:pan-x;accent-color:#7a8d67;background:#d9decc;border-radius:4px;width:100%;height:3px}input[type=range]::-webkit-slider-thumb{appearance:none;background:#7b8e68;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 4px #7a8d6810}input[type=range]::-moz-range-thumb{background:#7b8e68;border:0;border-radius:50%;width:10px;height:10px}.quality-row{color:#7c866f;letter-spacing:1px;border-top:1px solid #d3d9c58c;justify-content:space-between;align-items:center;margin-top:24px;padding-top:18px;font-size:11px;display:flex}.quality-row>div{background:#e9ecdf;border-radius:5px;gap:2px;padding:3px;display:flex}.quality-row button{color:#8b957d;border-radius:3px;padding:6px 14px;font-size:10px}.quality-row button[aria-pressed=true]{color:#677b57;background:#f8f8ed;box-shadow:0 1px 4px #677b5714}.panel-foot{color:#939b83;letter-spacing:1px;border-top:1px solid #d3d9c58c;justify-content:space-between;align-items:center;margin-top:19px;padding-top:14px;font-size:9px;display:flex}.panel-foot button{padding:0;font-size:9px}.toast{z-index:30;color:#758365;text-align:center;background:#f8f6e9ed;border:1px solid #e4e6d6;border-radius:30px;max-width:calc(100% - 32px);padding:13px 22px;font-size:12px;line-height:1.7;animation:.2s panel-in;position:absolute;bottom:176px;left:50%;transform:translate(-50%);box-shadow:0 6px 30px #3a513518}.connection-card{z-index:15;text-align:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#7b896d;letter-spacing:1px;background:#f6f4e8eb;border:1px solid #fff9;border-radius:16px;min-width:250px;padding:25px 35px;font-size:12px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.little-roof{color:#869775;margin-bottom:17px;display:block}.connection-card button{color:#7d8f6d;border-bottom:1px solid #a9b59b;padding:8px 0 4px;font-size:10px}.modal-shade{z-index:40;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#4a554441;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.help-panel{color:#7f886e;background:#f5f2e6;border:1px solid #fff8;border-radius:18px;max-width:400px;padding:34px 34px 27px;position:relative}.help-panel>svg{color:#849471}.help-panel h2{font:400 25px var(--serif);letter-spacing:2px;color:#596a4e;margin:17px 0 25px}.help-panel p{color:#8a917e;letter-spacing:.5px;font-size:12px;line-height:1.9}.help-note{font:11px/1.9 var(--serif);color:#7f8d6d;border-top:1px solid #d4d9c5;margin-top:22px;padding-top:17px}.close-help{position:absolute;top:15px;right:15px}.understood{color:#f7f5e8;letter-spacing:2px;background:#718565;border-radius:5px;margin-top:22px;padding:12px 22px;font-size:12px}.diagnostics{color:#5c6c50;z-index:25;background:#faf8e7bb;padding:5px 8px;font:10px/1.5 monospace;position:absolute;bottom:12px;left:15px}.graphics-fallback{text-align:center;color:#758265;z-index:20;background:#e9e7da;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex;position:absolute;inset:0}.graphics-fallback>span{font:26px var(--serif)}.graphics-fallback p{font-size:12px}.graphics-fallback button{border:1px solid #b3bca6;margin-top:20px;padding:12px}@keyframes arrive{0%{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-in{0%{opacity:0;margin-top:-5px}to{opacity:1;margin-top:0}}@media (width>=1500px){.intro{top:26%;left:9%}.topbar{padding:35px 53px}.landing-footer{bottom:34px;left:53px;right:53px}}@media (width<=1100px){.weather{display:none}.desktop-help{gap:10px;font-size:9px;right:24px}.desktop-help>span+span{display:none}.action-dock{bottom:35px}.intro{top:25%;left:6%}.intro h1{font-size:60px}.header-right{gap:14px}.topbar{padding:25px 30px}.location-card{top:113px;left:31px}}@media (pointer:coarse){.touch-controls{display:block}.desktop-help,.action-key{display:none}.joystick{touch-action:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f5f4e4a3;border:1px solid #e9eddcc4;border-radius:50%;place-items:center;width:112px;height:112px;display:grid;position:absolute;bottom:28px;left:22px;box-shadow:0 6px 25px #5367430d}.joystick:after{content:"";pointer-events:none;border:1px solid #b5c1a24d;border-radius:50%;position:absolute;inset:17px}.joystick-knob{z-index:1;background:#e1e7d2dd;border:1px solid #fbfbee9c;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 3px 10px #6d82551a}.joystick-knob>span{background:#9aa98a;border-radius:50%;width:5px;height:5px}.joystick-n{font:9px var(--serif);color:#a0ac8f;position:absolute;top:9px}.action-dock{bottom:39px}.action-hint{bottom:151px}}@media (width<=700px){.topbar{align-items:flex-start;padding:20px 19px}.brand{gap:8px}.brand-mark{width:38px;height:38px}.brand-mark svg{width:24px;height:24px}.brand-name{letter-spacing:3px;font-size:23px}.brand-name small{letter-spacing:1.5px;margin-top:5px;font-size:6px}.seal{margin-left:-2px;padding:4px 2px;font-size:8px}.header-right{flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:184px}.presence{letter-spacing:.5px;gap:4px;padding:9px 11px;font-size:10px}.capacity{font-size:8px}.presence-dot{width:4px;height:4px;margin-right:2px}.is-inside .presence{margin-right:0}.tools{justify-content:flex-end;gap:1px;width:100%;margin-top:7px}.icon-button{width:32px;height:32px}.intro{max-width:315px;top:24%;left:27px;right:20px}.eyebrow{letter-spacing:2px;font-size:9px}.intro h1{letter-spacing:3px;margin:25px 0 20px;font-size:53px;line-height:1.37}.intro p{letter-spacing:1.5px;margin-bottom:29px;font-size:12px;line-height:2.15}.enter-button{letter-spacing:2px;gap:35px;padding:15px 23px;font-size:12px}.entry-note{letter-spacing:1px;margin-top:16px;font-size:9px}.vertical-poem{display:none}.landing-footer{letter-spacing:1px;font-size:9px;bottom:25px;left:25px;right:25px}.landing-footer p{display:none}.is-outside .edge-wash{background:linear-gradient(90deg,#f0eee4e8 0%,#f0eee4a6 36%,#f0eee426 100%)}.location-card{gap:10px;top:103px;left:22px}.location-card small{letter-spacing:2px;font-size:8px}.location-card h2{letter-spacing:2px;margin:6px 0 8px;font-size:17px}.location-card p{letter-spacing:0;font-size:9px}.action-dock{border-radius:13px;justify-content:space-around;gap:0;padding:7px 4px;bottom:29px;left:138px;right:13px;transform:none}.action-button{border-radius:7px;gap:9px;width:20%;min-width:0;height:64px}.action-button>svg{width:24px;height:24px}.action-button>span:last-child{letter-spacing:1px;padding-left:1px;font-size:10px}.action-hint{letter-spacing:1px;text-align:center;white-space:normal;width:100%;padding-left:80px;font-size:10px;bottom:128px}.joystick{width:104px;height:104px;bottom:24px;left:17px}.settings-panel{width:285px;max-height:calc(100svh - 145px);padding:18px 21px 16px;top:116px;right:17px}.panel-title{font-size:17px}.volume-row{margin:17px 0}.toast{border-radius:12px;width:max-content;max-width:calc(100% - 32px);padding:12px 18px;font-size:11px;bottom:164px}.help-panel{padding:28px 28px 24px}.help-panel h2{font-size:23px}.help-panel p{font-size:11px}.quiet-label{letter-spacing:1px;font-size:9px;bottom:25px}.connection-card{max-width:calc(100% - 40px);font-size:11px}.diagnostics{font-size:8px;bottom:7px;left:12px}}@media (height<=570px){.topbar{padding-top:13px}.intro{top:22%;left:6%}.intro h1{margin:14px 0;font-size:38px;line-height:1.25}.intro p{margin-bottom:17px;font-size:11px}.entry-note{margin-top:12px}.eyebrow{font-size:9px}.enter-button{padding:11px 22px;font-size:11px}.landing-footer{bottom:15px}.location-card{top:83px}.action-dock{padding:5px 9px;bottom:15px}.action-button{gap:6px;width:60px;height:58px}.action-button>svg{width:23px;height:23px}.action-hint{bottom:99px}.joystick{width:90px;height:90px;bottom:15px}.settings-panel{max-height:calc(100svh - 86px);top:72px}.help-panel{max-width:560px;padding:20px 25px}.help-panel>svg{display:none}.help-panel h2{margin:8px 0 14px;font-size:20px}.help-panel p{margin:7px 0;font-size:11px}.help-note{margin-top:12px;padding-top:10px}.understood{margin-top:12px;padding:9px 18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.joystick,.action-dock,.scene{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@media (pointer:coarse){.joystick{left:calc(17px + env(safe-area-inset-left,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px))}.action-dock{bottom:calc(29px + env(safe-area-inset-bottom,0px))}.action-hint{bottom:calc(128px + env(safe-area-inset-bottom,0px))}}@media (width<=700px){.topbar{padding-top:calc(20px + env(safe-area-inset-top,0px))}.location-card{top:calc(103px + env(safe-area-inset-top,0px))}.settings-panel{top:calc(116px + env(safe-area-inset-top,0px))}}
