@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&display=swap');
:root{font-family:Arial,"PingFang SC",sans-serif;color:#343b30;background:#eee9df;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #a57b55;outline-offset:4px}[hidden]{display:none!important}#world{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:fixed;left:5%;right:5%;top:30px;display:flex;justify-content:space-between;align-items:center;z-index:5}.brand{color:#343b30;text-decoration:none;font-family:Georgia,serif;font-size:30px}.brand span{font-size:18px;color:#a58363}.brand i{font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;margin-left:12px;font-weight:400}.textbutton{border:0;background:none;color:inherit;font-size:12px;letter-spacing:.05em;padding:10px}.intro{position:fixed;left:8%;top:25%;max-width:450px;z-index:4}.eyebrow{font-size:10px;letter-spacing:.2em;color:#7c806e;display:block}h1{font-family:Georgia,'Songti SC',serif;font-size:clamp(40px,4.7vw,70px);font-weight:400;line-height:1.25;letter-spacing:-.04em;margin:24px 0}em{font-weight:400;color:#7c8965}p{font-size:14px;line-height:2;color:#797c6e}.primary{background:#3c4836;color:#f7f4eb;border:none;padding:18px 30px;border-radius:3px;letter-spacing:.1em;margin-top:24px;min-width:220px}.primary:disabled{opacity:.5;cursor:wait}.intro-foot{display:block;font-size:10px;letter-spacing:.15em;color:#939482;margin-top:20px}.title{position:fixed;left:5%;top:115px;pointer-events:none}.title h1{font-size:34px;margin:16px 0 8px}.title p{font-size:12px;margin:0}.floors{position:fixed;left:5%;top:260px;display:flex;flex-direction:column;gap:8px}.floors button{border:1px solid transparent;text-align:left;color:#7c8275;background:#eee9dfc9;padding:12px 18px;border-radius:4px;font-size:12px;min-width:135px}.floors button.active{background:#3d4937;color:white;border-color:#3d4937}.viewtools{position:fixed;right:5%;top:120px;display:flex;gap:8px}.viewtools button{background:#fff9;border:1px solid #d9d9ce;border-radius:4px;padding:10px 14px;font-size:11px;color:#6b725f}.viewtools button[aria-pressed=true]{background:#3d4937;color:white}footer{position:fixed;bottom:28px;left:5%;right:5%;display:flex;align-items:center;gap:18px}.hint{font-size:10px;color:#8b907e;margin-right:auto}footer button{border:1px solid #a7ad99;background:#eee9dfcc;padding:13px 18px;border-radius:4px;font-size:12px;color:#4a5541}footer #reveal{background:#3d4937;color:#fff;border-color:#3d4937}#room-labels{position:fixed;inset:0;pointer-events:none}.hotspot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1px solid #fff;background:#fcfbf0e8;border-radius:30px;padding:7px 12px;font-size:11px;white-space:nowrap;color:#394634;box-shadow:0 3px 15px #26301b15}.hotspot:before{content:'＋';margin-right:7px;color:#87946a}#letter{position:fixed;right:5%;top:26%;width:300px;padding:35px 28px;background:#fffdf6eb;border:1px solid #e4e1d2;box-shadow:0 12px 60px #4b4c2c12;backdrop-filter:blur(12px);border-radius:4px}#close-letter,#close-help{position:absolute;right:12px;top:10px;background:none;border:0;font-size:24px;color:#929984}#letter h2{font-family:Georgia,'Songti SC',serif;font-weight:400;font-size:25px;margin:20px 0}#letter p{font-size:13px;white-space:pre-line}.letter-sign{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;display:block;color:#8a9675;font-size:20px;margin-top:28px}#finale{position:fixed;inset:0;background:#eee9dfee;backdrop-filter:blur(10px);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}#close-finale{position:absolute;top:35px;right:5%}#finale h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(64px,9vw,116px);font-weight:400;line-height:.95;letter-spacing:-.04em;margin:32px 0}#finale p{font-size:15px;line-height:2.1}.heart{color:#a88670;font-size:38px;margin:3px}dialog{max-width:430px;width:90%;padding:35px;border:1px solid #d7d7c8;border-radius:5px;background:#fffdf6;color:#394333}dialog::backdrop{background:#242a2355;backdrop-filter:blur(5px)}dialog h2{font-weight:400;font-size:22px}dialog p{font-size:13px}dialog a{color:#78845d;font-size:12px}#error{position:fixed;bottom:15%;left:8%;background:#fff;padding:20px;z-index:20;font-size:14px;max-width:400px}@media(max-width:700px){header{top:20px}.brand i{font-size:16px}.intro{left:7%;top:15%;max-width:90%}.intro h1{font-size:42px;margin:20px 0}.intro p{font-size:12px}.intro .primary{padding:14px 23px;margin-top:13px}.intro-foot{font-size:9px}.title{top:85px}.title h1{font-size:27px}.title p{max-width:240px}.floors{left:5%;right:5%;top:auto;bottom:92px;flex-direction:row;overflow:auto;gap:4px}.floors button{white-space:nowrap;min-width:auto;padding:11px 12px;font-size:10px}.viewtools{top:175px;right:5%}.viewtools button{font-size:10px;padding:8px}.hint{display:none}footer{bottom:25px;justify-content:center;gap:8px}footer button{font-size:11px;padding:12px 16px}#letter{top:auto;bottom:150px;right:5%;width:90%;padding:20px 24px}#letter h2{margin:12px 0;font-size:22px}#letter p{font-size:12px;margin:0}.letter-sign{margin-top:12px;font-size:17px}.hotspot{font-size:10px;padding:6px 9px}}

.orientation{position:fixed;right:5%;bottom:110px;text-align:center;font-size:10px;line-height:1.7;color:#7c806e;pointer-events:none}.orientation span{font-size:22px}.walking .title,.walking .floors,.walking .viewtools,.walking .orientation,.walking footer,.walking #room-labels{display:none}#walk-panel{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);width:min(520px,90%);padding:20px 24px;background:#fffdf6ef;border:1px solid #dedbcf;border-radius:8px;backdrop-filter:blur(12px)}.walk-heading{display:flex;justify-content:space-between;align-items:center;font-size:14px}.walk-heading button{background:none;border:0;font-size:11px;color:#747d68}#walk-panel p{font-size:11px;margin:8px 0 12px}#walk-rooms,.stair-buttons{display:flex;gap:8px;flex-wrap:wrap}#walk-rooms button,.stair-buttons button{border:1px solid #c7ccb9;background:#f6f4e9;border-radius:4px;padding:9px 14px;color:#44543b;font-size:12px}.stair-buttons{margin-top:12px}.stair-buttons button{flex:1;background:#3d4937;color:white}.stair-buttons button:disabled{opacity:.3;cursor:default}.walking #letter{top:100px;max-height:35vh;overflow:auto}.viewtools{max-width:50%;flex-wrap:wrap;justify-content:flex-end}@media(max-width:700px){.viewtools{max-width:95%;top:175px}.orientation{bottom:150px;right:5%;font-size:9px}.walking #letter{top:85px;bottom:auto}.walking #walk-panel{bottom:20px;padding:16px 18px}}
