@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;background:#e4d8c4;color:#2a2218;font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}button,a{font-family:inherit}.app-root{position:relative;width:100%;height:100%;overflow:hidden}.webgl-host{position:fixed;inset:0;z-index:0}.loader{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#e4d8c4;transition:opacity .45s ease,visibility .45s ease}.loader.is-visible{opacity:1;visibility:visible}.loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-inner{width:min(340px,86vw);text-align:center;color:#2a2218;background:#f7efe0;border:4px solid #2a2218;border-radius:18px;padding:2rem 1.5rem 1.5rem;box-shadow:8px 8px #2a221826}.loader-mark{color:#8b6914;margin-bottom:.75rem}.loader-title{margin:0 0 .35rem;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:clamp(1.5rem,4vw,2rem);letter-spacing:.02em}.loader-label{margin:0 0 1.1rem;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#6a5c4c}.loader-bar{height:10px;background:#2a22181a;border:2px solid #2a2218;border-radius:999px;overflow:hidden}.loader-bar-fill{height:100%;background:linear-gradient(90deg,#8b6914,#d4b060,#a88850);transition:width .2s ease}.loader-pct{margin:.55rem 0 0;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.7rem;font-weight:700;color:#2a2218}.splash{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:#e4d8c4;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease}.splash.is-on{opacity:1;visibility:visible}.splash.is-leave{opacity:0;visibility:hidden;pointer-events:none}.splash-card{width:min(520px,92vw);text-align:center;color:#2a2218;background:#f7efe0;border:4px solid #2a2218;border-radius:18px;padding:2.25rem 1.75rem 1.75rem;box-shadow:8px 8px #2a221826}.splash-mark{color:#8b6914;margin-bottom:.65rem}.splash-title{margin:0 0 .35rem;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:clamp(1.55rem,4vw,2.05rem);letter-spacing:.02em}.splash-eyebrow{margin:0 0 1.35rem;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#6a5c4c}.splash-lang-row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.splash-lang-btn{appearance:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.35rem;min-height:44px;padding:1.15rem .75rem;border:3px solid #2a2218;border-radius:14px;background:#2a221808;color:#2a2218;box-shadow:4px 4px #2a22181f;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.splash-lang-btn .splash-lang-label{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;font-weight:700}.splash-lang-btn .splash-lang-hint{font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.68rem;letter-spacing:.06em;color:#6a5c4c}.splash-lang-btn:hover,.splash-lang-btn:focus-visible{background:#8b69141f;transform:translate(-1px,-1px);box-shadow:5px 5px #2a221829;outline:none}.splash-lang-btn:focus-visible{outline:2px solid #8b6914;outline-offset:3px}.splash-lang-btn:active,.splash-lang-btn.is-active{transform:translate(2px,2px);box-shadow:1px 1px #2a22181f;background:#8b69142e}.splash-note{margin:1.25rem 0 0;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.68rem;line-height:1.5;letter-spacing:.04em;color:#6a5c4c}.splash-card--type{width:min(640px,92vw);min-height:220px;display:flex;flex-direction:column;align-items:center}.splash-manifesto{width:100%;min-height:5.5rem;margin-bottom:1.5rem}.splash-manifesto-line{margin:.35rem 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.05rem,2.6vw,1.35rem);line-height:1.55;letter-spacing:.01em;color:#2a2218;min-height:1.55em}.splash--manifesto.lang-zh .splash-manifesto-line{letter-spacing:.04em}.splash-caret{display:inline-block;width:.55ch;height:1.05em;margin-left:.12em;vertical-align:text-bottom;background:#2a2218;animation:splash-blink .9s steps(1) infinite}@keyframes splash-blink{0%,45%{opacity:1}50%,to{opacity:0}}.splash-actions{margin-top:auto;min-height:44px}.splash-enter{appearance:none;cursor:pointer;min-height:44px;min-width:120px;padding:.65rem 1.4rem;border-radius:999px;font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif;font-size:.95rem;font-weight:600;letter-spacing:.04em;border:3px solid #2a2218;background:#8b6914;color:#f7efe0;box-shadow:4px 4px #2a221826;transition:transform .15s ease,background .15s ease,opacity .2s ease,box-shadow .15s ease}.splash-enter:hover:not(:disabled),.splash-enter:focus-visible:not(:disabled){background:#6f5410;transform:translate(-1px,-1px);outline:none}.splash-enter:focus-visible:not(:disabled){outline:2px solid #2a2218;outline-offset:3px}.splash-enter:active:not(:disabled){transform:translate(2px,2px)}.splash-enter:disabled{cursor:not-allowed;opacity:.42;box-shadow:2px 2px #2a221814;transform:none}@media (prefers-reduced-motion: reduce){.splash,.splash-lang-btn,.splash-enter{transition:none}.splash-caret{animation:none;opacity:1}}.nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;pointer-events:none}.nav>*{pointer-events:auto}.nav-brand{display:flex;align-items:center;gap:.5rem;background:#f7efe0;border:3px solid #2a2218;border-radius:999px;padding:.4rem .85rem .4rem .55rem;box-shadow:3px 3px #2a22181f}.nav-dot{width:12px;height:12px;border-radius:50%;background:#8b6914;border:2px solid #2a2218}.nav-name{font-family:Georgia,Times New Roman,serif;font-size:.95rem;font-weight:700;letter-spacing:.02em}.nav-right{display:flex;align-items:center;gap:.55rem}.nav-room{font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#2a2218;background:#d4b060;border:2px solid #2a2218;border-radius:999px;padding:.35rem .7rem}.nav-exit{appearance:none;border:3px solid #2a2218;background:#8b6914;color:#f7efe0;padding:.55rem 1rem;min-height:44px;min-width:76px;border-radius:999px;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;box-shadow:3px 3px #2a22182e;transition:transform .12s ease,box-shadow .12s ease}.nav-exit:hover,.nav-exit:focus-visible{transform:translate(-1px,-1px);box-shadow:4px 4px #2a221838;outline:none}.nav-exit:active{transform:translate(1px,1px);box-shadow:1px 1px #2a22182e}.hint{position:fixed;left:50%;bottom:1rem;transform:translate(-50%);z-index:30;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2a2218;background:#f7efe0;border:3px solid #2a2218;border-radius:999px;padding:.55rem 1rem;box-shadow:4px 4px #2a22181f;pointer-events:none;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis}.hint .hint-key{color:#8b6914}.room-panel{position:fixed;top:0;left:0;bottom:0;z-index:35;width:min(360px,90vw);padding:5.2rem 1.15rem 1.5rem;transform:translate(-110%);transition:transform .45s cubic-bezier(.22,1,.36,1);pointer-events:none}.room-panel.is-open{transform:translate(0);pointer-events:auto}.room-panel-body{background:#f7efe0;border:4px solid #2a2218;border-radius:20px;padding:1.25rem 1.15rem;box-shadow:8px 8px #2a22181f}.room-panel-body h2{margin:.35rem 0 .75rem;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:clamp(1.5rem,4vw,2rem);line-height:1.15}.room-panel-body p{margin:0 0 .75rem;color:#2a2218e0;line-height:1.6;font-size:.95rem}.eyebrow{margin:0;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8b6914}.meta-list{list-style:none;margin:1rem 0 0;padding:0;border-top:2px solid rgba(42,34,24,.15)}.meta-list li{padding:.6rem 0;border-bottom:2px solid rgba(42,34,24,.1);font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.72rem;font-weight:600;color:#6a5c4c}.contact-link{display:inline-block;margin-top:.35rem;color:#5a7a8a;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.85rem;font-weight:700;text-decoration:none;border-bottom:2px solid rgba(90,122,138,.5);padding-bottom:2px}.contact-link:hover,.contact-link:focus-visible{color:#2a2218;border-color:#2a2218;outline:none}.room-panel-hint p:last-child{color:#6a5c4c;font-size:.9rem}.project-drawer{position:fixed;right:0;top:0;bottom:0;z-index:45;width:min(400px,94vw);transform:translate(110%);transition:transform .45s cubic-bezier(.22,1,.36,1);overflow-y:auto;pointer-events:none;padding:1rem}.project-drawer.is-open{transform:translate(0);pointer-events:auto}.pet-downloads{position:fixed;left:50%;top:50%;z-index:55;width:min(360px,92vw);transform:translate(-50%,-46%) scale(.96);opacity:0;pointer-events:none;transition:opacity .28s ease,transform .28s ease}.pet-downloads.is-open{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto}.pet-downloads-inner{background:#f7efe0;border:4px solid #2a2218;border-radius:18px;padding:1.25rem 1.4rem 1.1rem;box-shadow:8px 8px #2a22181f}.pet-downloads-inner h2{margin:.15rem 0 .85rem;font-size:1.35rem}.pet-dl-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.pet-dl-list a{display:block;padding:.55rem .75rem;border:2px solid #2a2218;border-radius:10px;color:#2a2218;text-decoration:none;font-weight:600;background:#fffaf0}.pet-dl-list a:hover{background:#ffd84a}.project-drawer-inner{background:#f7efe0;border:4px solid #2a2218;border-radius:20px;padding:1.25rem;min-height:calc(100% - .5rem);box-shadow:-6px 6px #2a22181a}.project-drawer-inner h2{margin:.35rem 0 .75rem;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:clamp(1.6rem,4vw,2.1rem)}.drawer-close{appearance:none;border:3px solid #2a2218;background:#d4b060;color:#2a2218;padding:.5rem .85rem;min-height:44px;border-radius:999px;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;margin-bottom:1rem;box-shadow:3px 3px #2a22181f}.drawer-close:hover,.drawer-close:focus-visible{background:#8b6914;color:#f7efe0;outline:none}.project-summary{margin:0 0 .75rem;line-height:1.6;color:#2a2218eb}.project-detail{margin:0 0 1.1rem;line-height:1.65;color:#6a5c4c;font-size:.92rem}.tag-row{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#2a2218;background:#a88850;border:2px solid #2a2218;padding:.3rem .55rem;border-radius:999px}.room-title-3d{font-family:Georgia,Times New Roman,serif;font-size:32px;font-weight:700;color:#1a1a1a;letter-spacing:.04em;background:#fff8e7;border:3px solid #1a1a1a;border-radius:16px;padding:4px 14px;white-space:nowrap;user-select:none}.room-copy-3d{font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;color:#1a1a1a;margin-top:8px;max-width:320px;text-align:center;line-height:1.45;background:#fff8e7e6;border:2px solid #1a1a1a;border-radius:12px;padding:6px 10px}.inspect-panel{position:fixed;right:0;top:0;bottom:0;z-index:44;width:min(360px,90vw);padding:5rem 1.1rem 1.5rem;transform:translate(110%);transition:transform .45s cubic-bezier(.22,1,.36,1);pointer-events:none}.inspect-panel.is-open{transform:translate(0);pointer-events:auto}.inspect-card{background:#f7efe0;border:4px solid #2a2218;border-radius:20px;padding:1.25rem;box-shadow:-6px 6px #2a22181a}.inspect-card h2{margin:.35rem 0 .75rem;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:clamp(1.5rem,4vw,2rem)}.inspect-exit-hint{margin:0 0 .55rem;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.68rem;letter-spacing:.06em;color:#6a5c4c}.inspect-note{margin:0;line-height:1.65;color:#2a2218e0;font-size:.95rem}.inspect-audio{margin-top:1.1rem;padding-top:1rem;border-top:2px solid rgba(42,34,24,.12)}.play-btn{appearance:none;border:3px solid #2a2218;background:#8b6914;color:#f7efe0;padding:.65rem 1.2rem;min-height:44px;min-width:100px;border-radius:999px;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;box-shadow:3px 3px #2a221826}.play-btn:hover,.play-btn:focus-visible{background:#d4b060;color:#2a2218;outline:none}.audio-title{margin:.75rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:.95rem;color:#2a2218d9}.audio-note{margin:.5rem 0 0;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.72rem;letter-spacing:.04em;color:#8b6914}.crosshair{position:fixed;left:50%;top:50%;z-index:50;width:0;height:0;pointer-events:none}.crosshair.is-hidden{opacity:0}.crosshair-dot{position:absolute;left:0;top:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#2a22188c;border:1px solid rgba(247,239,224,.5);transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.crosshair.is-active .crosshair-dot{transform:scale(2.1);background:#8b6914;border-color:#2a2218;box-shadow:0 0 0 3px #8b691440}.crosshair-prompt{position:absolute;left:0;top:18px;transform:translate(-50%);margin:0;font-family:SF Mono,Cascadia Code,Consolas,ui-monospace,monospace;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2a2218;background:#f7efe0;border:2px solid #2a2218;border-radius:999px;padding:.3rem .65rem;box-shadow:3px 3px #2a22181f;white-space:nowrap}.crosshair-prompt kbd{display:inline-block;min-width:1.1em;text-align:center;color:#8b6914;font-family:inherit}@media (prefers-reduced-motion: reduce){.loader,.room-panel,.project-drawer,.inspect-panel,.loader-bar-fill,.nav-exit,.hall-enter-fade{transition:none!important}}.hall-enter-fade{position:fixed;inset:0;z-index:90;pointer-events:none;background:#0a0806;opacity:0;transition:opacity .22s ease}.hall-enter-fade.is-on{opacity:1;transition:none;animation:hall-fade-in .28s ease forwards}@keyframes hall-fade-in{0%{opacity:1}to{opacity:0}}@media (max-width: 640px){.hint{font-size:.62rem;bottom:.75rem}.room-panel{width:100%}}
