*{box-sizing:border-box}html,body,#root,main{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Microsoft YaHei,sans-serif;color:#373a30;background:#d3c9b5}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,.scene:focus-visible{outline:2px solid #5c684c;outline-offset:5px}button{border:0;background:none}a{color:inherit;text-decoration:none}.scene{position:absolute;inset:0;touch-action:none;outline:none}.scene canvas{display:block}header{position:absolute;top:0;left:0;right:0;padding:26px 32px;display:flex;align-items:center;justify-content:flex-end;gap:10px;pointer-events:none}header>*{pointer-events:auto}.map-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:#f4eee0d9;border:1px solid #85796050;border-radius:3px;font-size:13px}.map-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4}.room-hud{position:absolute;left:32px;bottom:86px;pointer-events:none}.room-name{display:flex;align-items:baseline;gap:14px;font-family:serif;font-size:32px;text-shadow:0 1px 8px #f4eedb}.room-name small{font:12px sans-serif;letter-spacing:2px}.room-actions{display:flex;gap:10px;margin-top:15px;pointer-events:auto}.room-actions button,.room-actions a{font-size:13px;background:#f4eee0ec;border:1px solid #91816b60;padding:13px 17px;border-radius:2px;min-height:44px}.room-actions a{background:#424b3a;color:#fff9ed;border-color:#424b3a}.room-actions button:hover,.map-button:hover{background:#fffaef}footer{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:22px 32px;color:#34382c;pointer-events:none;font-size:12px;background:linear-gradient(transparent,#d8cdb780)}footer>*{pointer-events:auto}footer button{font-size:12px;padding:10px 0;text-decoration:underline;text-underline-offset:5px}.scrim{position:absolute;inset:0;background:#26282066;display:flex;justify-content:center;align-items:flex-start;overflow-y:auto;padding:3vh 3vw;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-panel{position:relative;isolation:isolate;width:min(430px,100%);margin:auto 0;padding:34px 36px 30px;filter:drop-shadow(0 12px 26px #2a271f45)}.map-paper{position:absolute;inset:0;width:100%;height:100%;z-index:-1;fill:#f8f6f0}.map-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:2px dashed #d2cfc4}.map-head h2{font-family:serif;font-size:24px;font-weight:700;letter-spacing:6px;margin:0}.map-head button{font-size:28px;width:44px;height:44px}.map-drawing{display:block;width:100%;margin:10px 0 6px}.map-spot{cursor:pointer;outline:none}.map-wash{opacity:0;mix-blend-mode:multiply;transition:opacity .45s ease}.map-spot:hover .map-wash,.map-spot:focus-visible .map-wash{opacity:.9}.map-door{transition:filter .3s ease}.map-spot:hover .map-door,.map-spot:focus-visible .map-door{filter:drop-shadow(0 0 3px var(--room-color)) drop-shadow(0 0 7px var(--room-color))}.map-label{font:700 16px serif;letter-spacing:5px;fill:#fbfaf5;stroke:#55544c;stroke-width:.9;paint-order:stroke;transition:fill .45s ease}.map-spot:hover .map-label,.map-spot:focus-visible .map-label{fill:var(--room-color)}.map-note{font:10px sans-serif;letter-spacing:2px;fill:#8a877b}.community-links a{display:flex;gap:20px;align-items:center;min-height:66px;border-bottom:1px solid #c6bdac}.community-links small{font-size:11px;color:#797966}.community-links a span:last-child{margin-left:auto}.community-links a:hover{color:#647451}.close-map{margin-top:24px;border:1px solid #b7ac98;padding:13px 20px;min-height:44px;width:100%}.flat{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;max-width:460px;margin:auto;padding:30px}.flat h1{font-family:serif;font-weight:400}.flat .community-links{width:100%}.flat>button{margin-top:30px;text-align:left;padding:12px 0}.flat~.scrim{z-index:2}@media(max-width:600px){header{padding:16px 18px}.room-hud{left:18px;bottom:88px}.room-name{font-size:28px}.room-actions{gap:8px}.room-actions button,.room-actions a{padding:12px 14px}footer{padding:16px 18px;font-size:10px}footer button{font-size:11px}.map-panel{padding:24px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.map-wash,.map-door,.map-label{transition:none}}body{background:#f5f3ec;color:#494943}header{background:none;z-index:2}.map-button{background:#f8f6eee8;border:1px solid #77776b;border-radius:0}.room-name{font-size:27px;text-shadow:none}.room-actions button,.room-actions a{background:#f5f3eced;color:#525249;border:1px solid #b1afa1;border-radius:0}.room-actions a{border-bottom:2px solid #77786b}footer{background:linear-gradient(transparent,#f5f3ece6);color:#68695e}.wall-controls{display:flex;align-items:center;gap:4px;margin:12px 0 4px;pointer-events:auto;background:#f7f5efed;border-bottom:1px solid #b5b2a6}.wall-controls button{min-width:44px;min-height:44px;padding:10px 12px;font-size:13px}.wall-controls small{font-size:10px;color:#838277;margin-left:14px}.scrim{z-index:4;background:#4c4b4133}.gallery-scrim{position:fixed;inset:0;z-index:10;background:#efede5f5;padding:20px 28px;display:flex;justify-content:center}.gallery-viewer{width:min(1200px,100%);height:100%;display:flex;flex-direction:column;min-height:0}.gallery-heading{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;font-size:13px;letter-spacing:2px}.gallery-heading button{height:44px;width:44px;font-size:30px}.slide-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px 0;overflow:auto}.slide-body img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 3px 24px #44442b12}.slide-caption{border-top:1px solid #c8c5b8;padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:18px}.slide-caption h2{font-family:serif;font-size:19px;font-weight:400;margin:0;line-height:1.5}.slide-controls{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:12px}.slide-controls button{width:44px;height:44px;border:1px solid #c0bcaf}.slide-controls a{margin-left:10px;text-decoration:underline;text-underline-offset:5px}@media(max-width:600px){.room-hud{bottom:74px}.room-name{font-size:24px}.room-actions,.wall-controls{margin-top:9px}.gallery-scrim{padding:12px 16px}.slide-caption{flex-direction:column;gap:8px;align-items:flex-start;padding-bottom:8px}.slide-caption h2{font-size:16px}.slide-controls{width:100%;justify-content:space-between}}header[hidden]{display:none}.butterfly-scene{animation:paper-world-enter .65s ease-out both}@keyframes paper-world-enter{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.butterfly-scene{animation:none}}.topic-reading{flex:1;min-height:0;overflow:auto;width:min(620px,100%);align-self:center;padding:clamp(24px,8vh,100px) 12px 30px}.topic-number{font:72px Georgia,serif;color:var(--topic-color);opacity:.45;line-height:1}.topic-kicker{font-size:12px;letter-spacing:3px;color:var(--topic-color);margin:24px 0 12px}.topic-reading h2{font:400 clamp(28px,5vw,42px)/1.4 serif;margin:0 0 26px}.topic-description{font-size:17px;line-height:2.1;max-width:32em;margin:0 0 36px;color:#62665c}.topic-reading>a{display:inline-block;padding:12px 0;border-bottom:1px solid var(--topic-color);font-size:14px;min-height:44px}@media(max-height:650px){.topic-reading{padding-top:16px}.topic-number{font-size:40px}.topic-kicker{margin-top:10px}.topic-reading h2{margin-bottom:12px}.topic-description{margin-bottom:18px;font-size:15px}}.topic-picture{min-height:130px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;border:1px dashed #aab2a2;background:#f4f3e9;margin:0 0 24px;color:var(--topic-color);font-size:12px}.topic-picture svg{width:90px;height:50px;fill:none;stroke:currentColor;stroke-width:1}.topic-picture img{max-width:100%;max-height:55vh;object-fit:contain}.journey-hud{top:26px;bottom:auto;display:flex;align-items:center;gap:18px;flex-direction:row-reverse;justify-content:flex-end}.journey-hud .room-actions{margin-top:0}.journey-hud .room-name{position:relative;isolation:isolate;padding:4px 10px 4px 2px}.journey-hud .room-name:before{content:"";position:absolute;z-index:-1;inset:28% -22px -6% -14px;background:radial-gradient(60% 70% at 38% 55%,var(--room-color) 0 35%,transparent 72%),radial-gradient(45% 60% at 72% 40%,var(--room-color) 0 25%,transparent 70%);opacity:.22;filter:blur(3px);transform:rotate(-2deg);border-radius:46% 54% 50% 42%}.room-actions .tape-button{position:relative;isolation:isolate;background:none;border:0;border-radius:0;padding:11px 24px;min-height:44px;font-family:serif;font-size:14px;letter-spacing:2px;color:#4d4e44;transform:rotate(-1.6deg);filter:drop-shadow(0 1px 1.5px #5a524026);transition:transform .2s cubic-bezier(.2,.8,.2,1)}.tape-button:before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(90deg,#ffffff1f 0 2px,transparent 2px 7px),linear-gradient(#ebe1c8eb,#e1d5b8eb);clip-path:polygon(0 6%,4% 0,7% 9%,3% 22%,6% 35%,2% 50%,5% 64%,1% 78%,5% 90%,2% 100%,98% 100%,95% 88%,99% 76%,96% 62%,100% 48%,95% 34%,99% 20%,96% 8%,100% 0)}.room-actions .tape-button:hover{background:none;transform:rotate(-.6deg) translateY(-1px)}.room-actions .tape-button:active{transform:rotate(-1deg) translateY(1px) scale(.98);transition-duration:.08s}@media(max-width:600px){.journey-hud{top:16px;left:16px;gap:12px}.journey-hud .room-name{font-size:22px}}@media(prefers-reduced-motion:reduce){.room-actions .tape-button{transition:none}}.veil{position:absolute;inset:0;z-index:3;background:#f5f3ec;opacity:0;pointer-events:none}.journey-hud.night .room-name{color:#efe6d2}.journey-hud.night .room-name:before{opacity:.35}.sound-button{position:absolute;right:32px;bottom:22px;z-index:6;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:#f8f6eee8;border:1px solid #77776b}.sound-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}.sound-button:hover{background:#fffaef}@media(max-width:600px){.sound-button{right:18px;bottom:16px}}.entrance{position:absolute;inset:0;z-index:3;background:transparent;overflow:hidden;color:#55554a;isolation:isolate}.entrance-world{position:absolute;width:max(100vw,160vh);height:max(62.5vw,100vh);left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:50% 61%;will-change:transform;pointer-events:none}.entrance-drawing{display:block;width:100%;height:100%}.front-door{position:absolute;left:41.25%;top:41%;width:17.5%;height:40%;padding:0;border:0;background:none;perspective:1000px;pointer-events:auto;cursor:pointer}.front-leaf{display:block;position:absolute;top:0;width:50%;height:100%;transform-style:preserve-3d;transition:transform 1.05s cubic-bezier(.4,0,.2,1),filter .3s ease;backface-visibility:hidden}.front-leaf svg{display:block;width:100%;height:100%;overflow:visible}.front-left{left:0;transform-origin:left center}.front-right{right:0;transform-origin:right center}.front-door:hover .front-left{transform:rotateY(-5deg)}.front-door:hover .front-right{transform:rotateY(5deg)}.front-door:hover .front-leaf{filter:brightness(1.035)}.magnet-line path,.magnet-line rect,.magnet-line circle{fill:#f7f4ec;stroke:#5d594d;stroke-width:1px}.magnet-line text{fill:#5d594d;stroke:none}.front-knob{fill:#efe9dc;transition:fill .6s ease .15s}.front-door:hover .front-knob,.front-door:focus-visible .front-knob,.is-opening .front-knob{fill:#c9a86a}.tints{mix-blend-mode:multiply}.tint{opacity:0;transform:scale(.94);transform-box:fill-box;transform-origin:50% 60%;transition:opacity .7s ease,transform 1s cubic-bezier(.2,.7,.2,1)}.hit{pointer-events:all;cursor:default}.zone:hover .tint,.is-opening .tint,.entrance:has(.front-door:hover) .zone-frame .tint,.entrance:has(.front-door:focus-visible) .zone-frame .tint{opacity:.85;transform:none}.wall-paint{opacity:.75}.wall-dab{animation:wall-dab 2.6s ease-out forwards}@keyframes wall-dab{0%{opacity:0}12%{opacity:1}55%{opacity:.85}to{opacity:0}}.magnet{transform-box:fill-box;transform-origin:50% 0}.front-door:hover .magnet{animation:magnet-wiggle .55s ease-in-out}@keyframes magnet-wiggle{25%{transform:rotate(-7deg)}60%{transform:rotate(5deg)}to{transform:rotate(0)}}.front-door:focus-visible{outline:2px dashed #757451;outline-offset:8px}.entrance-top{position:absolute;left:32px;right:32px;top:26px;display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:2px}.entrance-top button{min-height:44px;padding:0 12px;border-bottom:1px solid #a6a28f;font-size:12px;background:#f4f1e7cc}.enter-caption{position:absolute;bottom:32px;left:50%;transform:translate(-50%);padding:13px 26px;min-height:44px;background:#f8f5eadf;border:1px solid #a5a08d;font-family:serif;font-size:15px;letter-spacing:2px;white-space:nowrap}.enter-caption span{margin-left:14px}.entrance.is-opening{animation:entrance-fade 1.75s both;pointer-events:none}.is-opening .entrance-world{animation:entrance-approach 1.75s cubic-bezier(.65,0,.35,1) both}.is-opening .front-left{transform:rotateY(-100deg)}.is-opening .front-right{transform:rotateY(100deg)}.is-opening .entrance-top,.is-opening .enter-caption{opacity:0;transition:opacity .25s}@keyframes entrance-approach{0%,28%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(3.9)}}@keyframes entrance-fade{0%,68%{opacity:1}to{opacity:0}}@media(max-width:600px){.entrance-world{width:1200px;height:750px;top:48%}.entrance-top{top:18px;left:18px;right:18px;font-size:10px;letter-spacing:1px}.entrance-top button{font-size:11px}.enter-caption{bottom:30px;font-size:14px;padding:12px 22px}}@media(max-width:600px)and (min-height:860px){.entrance-world{width:1440px;height:900px}}@media(prefers-reduced-motion:reduce){.tint,.front-knob{transition:none}.tint{transform:none}.wall-dab{animation-duration:1.2s}.front-door:hover .magnet{animation:none}.entrance.is-opening{animation:entrance-fade .12s linear both}.is-opening .entrance-world{animation:none}.front-leaf{transition:none}.front-door:hover .front-leaf,.is-opening .front-leaf{transform:none}}
