@font-face{font-family:Stage;src:url('assets/stage-brush.woff2') format('woff2');font-display:swap}@font-face{font-family:DM;src:url('assets/DMSerifDisplay-Regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--ivory:#eadbc2;--red:#b71c18}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0d0909;color:var(--ivory);font-family:'Microsoft YaHei','PingFang SC',sans-serif}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #f7cba7;outline-offset:6px}button:hover,a:hover{color:#fff3e2}.world{isolation:isolate;position:relative;min-height:700px;height:100svh;overflow:hidden;background:#0d0909}.scenery{position:absolute;inset:-1.5%;z-index:-3;transform:translate3d(var(--pan-x,0px),var(--pan-y,0px),0) scale(1.025);transition:transform 1.4s cubic-bezier(.18,.65,.28,1);will-change:transform}.scenery img{width:100%;height:100%;object-fit:cover;display:block}.stage-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#05030370,transparent 22%,transparent 68%,#05030388)}header{position:absolute;left:4%;right:4%;top:32px;display:flex;align-items:center;justify-content:space-between;z-index:4}.signature{font-family:DM,serif;font-size:24px;letter-spacing:.16em;padding:6px 0;text-shadow:0 2px 8px #000}.signature span{font-family:Stage,serif;font-size:16px;letter-spacing:.2em;display:block;text-align:center;opacity:.75;margin-top:3px}.motion{height:42px;width:42px;border:1px solid #b790714d;border-radius:50%;background:#120a0a80}.motion svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.4;fill:none;vertical-align:middle}.play-mark{display:none}.is-paused .play-mark{display:block}.is-paused .pause-mark{display:none}.title-wrap{position:absolute;inset:8% 8% 20%;pointer-events:none}.title-wrap canvas{width:100%;height:100%;display:block;opacity:0;transition:opacity .85s ease}.type-ready .title-wrap canvas{opacity:1}.title-fallback{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;transition:opacity .5s}.title-fallback h1{font-family:Stage,serif;font-weight:400;font-size:clamp(42px,7.5vw,130px);line-height:1.2;margin:0;color:#ecd8b9;text-shadow:1px 2px #a58665,2px 4px #64422c,3px 6px #44251c,5px 9px 5px #060202}.title-fallback h1 span{display:block}.title-fallback p{font-family:DM,serif;font-size:clamp(10px,1.2vw,19px);letter-spacing:.27em;margin-top:28px}.type-ready .title-fallback{opacity:0}.portals{position:absolute;bottom:11.5%;left:50%;transform:translateX(-50%);width:min(760px,78%);display:grid;grid-template-columns:repeat(4,1fr);gap:22px;z-index:3}.portals a{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;letter-spacing:.09em;font-size:14px;border-top:1px solid #dcbda680;border-bottom:1px solid #dcbda640;background:linear-gradient(#130909b0,#130909d9);box-shadow:0 7px 20px #0005;transition:background .3s,transform .3s,border-color .3s}.portals a:hover{background:#601311;transform:translateY(-4px);border-color:#efc4a5}.portals i{font:18px DM,serif;opacity:.65;margin-left:10px}.world footer{position:absolute;bottom:20px;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;letter-spacing:.12em;font-size:10px;color:#e2bdaa80}.world footer button{font-size:10px;letter-spacing:.13em;padding:8px;color:inherit}
 dialog{border:1px solid #a7806259;color:var(--ivory);width:min(480px,calc(100% - 32px));max-height:calc(100svh - 40px);padding:48px 38px 34px;background:linear-gradient(135deg,#271716,#100b0b);box-shadow:0 25px 100px #0009;overflow:auto}dialog::backdrop{background:#080303b3;backdrop-filter:blur(9px)}dialog[open]{animation:dialog-in .3s ease both}@keyframes dialog-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.dialog-close{position:absolute;right:14px;top:9px;width:34px;height:34px;font-size:28px;color:#bba28a}.dialog-kicker{color:#ba917b;font-size:13px;letter-spacing:.25em}h2{font-family:Stage,serif;font-size:42px;font-weight:400;margin:10px 0 22px}.subline{font-size:13px;line-height:1.9;color:#bda791;margin-bottom:28px}.action{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:17px 19px;background:#981b17;border:1px solid #d4a27945;font-size:15px;letter-spacing:.06em;transition:background .2s}.action:hover{background:#b6231e}.action span{font-size:12px;color:#e1b4a2}.quiet-link{display:block;font-size:12px;line-height:1.7;color:#bda791;margin-top:22px}.avatar{height:100px;width:100px;object-fit:cover;border-radius:50%;border:1px solid #7f5843;margin-bottom:10px}.contact-line{display:grid;grid-template-columns:45px 1fr 30px;align-items:center;gap:10px;width:100%;padding:22px 0;border-top:1px solid #8e665433}.contact-line span,.contact-line small{font-size:12px;color:#a68c78}.contact-line strong{font-size:20px;font-weight:400;text-align:left;letter-spacing:.03em}.qr-crop{width:240px;height:240px;max-width:100%;margin:16px auto 24px;background:#fff;overflow:hidden;border:8px solid white}.qr-crop img{width:100%;height:100%;object-fit:cover;object-position:50% 55.5%;transform:scale(1.47)}.fine{font-size:11px;color:#9f8874;margin:18px 0 0;line-height:1.8}#credits-dialog p{font-size:13px;line-height:1.9;color:#bda791}.toast{position:fixed;z-index:20;bottom:25px;left:50%;transform:translate(-50%,16px);max-width:90%;padding:12px 22px;background:#eadbc2;color:#221410;border-radius:2px;opacity:0;pointer-events:none;transition:.2s;font-size:13px;box-shadow:0 6px 35px #0009}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-aspect-ratio:19/9){.world{min-height:540px}.title-wrap{inset:7% 15% 23%}.portals{bottom:10%}}
@media(min-width:701px) and (max-width:1000px){.portals{width:88%;gap:12px}.portals a{padding:0 11px;font-size:13px}.portals a span{white-space:nowrap}.portals i{margin-left:5px}}
@media(max-width:700px){.world{min-height:670px}header{top:24px;left:24px;right:24px}.signature{font-size:21px}.signature span{font-size:13px}.scenery{inset:-.5%}.scenery img{object-position:50% 50%}.title-wrap{inset:15% 1% 30%}.title-fallback h1{font-size:clamp(43px,11.8vw,82px)}.title-fallback p{font-size:10px;letter-spacing:.14em;margin-top:18px}.portals{bottom:11%;width:76%;grid-template-columns:1fr 1fr;gap:15px 14px}.portals a{height:48px;font-size:12px;padding:0 13px}.world footer{bottom:14px;left:24px;right:24px;font-size:9px}dialog{padding:42px 26px 28px}h2{font-size:37px}.contact-line strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.scenery{transform:none!important}}

/* Keep the approved sculptural title from its first visible frame. */
.title-fallback{opacity:0}.type-unavailable .title-fallback{opacity:1}.type-unavailable .title-wrap canvas{opacity:0}.title-wrap canvas{transition:opacity .45s ease}.is-paused *, .is-paused *::before,.is-paused *::after{animation-play-state:paused!important}
@view-transition{navigation:auto}::view-transition-old(root){animation:theatre-away .2s ease both}::view-transition-new(root){animation:theatre-arrive .45s ease both}@keyframes theatre-away{to{opacity:0}}@keyframes theatre-arrive{from{opacity:0;transform:scale(1.015)}to{opacity:1;transform:none}}

.title-art-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}.type-unavailable .title-art-fallback{opacity:1}.type-unavailable .title-fallback{opacity:0}@media(max-width:700px){body:not([data-room]) .title-art-fallback{width:118%;max-width:none;left:-9%}}
