:root{font-family:"PingFang SC",system-ui,sans-serif;color:#4b493e;background:#e7dbc6}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b04e3c;outline-offset:5px}header{position:absolute;top:0;left:0;width:100%;padding:26px 38px;display:flex;justify-content:space-between;z-index:5;pointer-events:none}.brand{font:italic 26px Georgia,serif;text-decoration:none;color:#4b493e;pointer-events:auto}.brand span{display:block;font:10px system-ui;letter-spacing:3px;margin-top:9px}.controls{display:flex;gap:9px;pointer-events:auto}.controls button{height:37px;border:1px solid #7b70584a;background:#faf3e5b3;border-radius:22px;padding:0 15px;font-size:12px;backdrop-filter:blur(10px)}#room{position:relative;height:100dvh;width:100%;background:radial-gradient(ellipse at 25% 20%,#f7efda,#dbcfb9)}#canvas{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.intro{position:absolute;left:6%;top:19%;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:2.5px;color:#8b785e}h1{font:400 34px "Songti SC",serif;letter-spacing:3px;margin:15px 0}.intro p{font-size:12px;line-height:2;color:#85765e}#labels{position:absolute;inset:0;pointer-events:none}.label{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1px solid #fff7e58a;background:#f9eddbd9;color:#635139;padding:5px 10px;border-radius:3px;font-size:11px;box-shadow:0 3px 8px #54391d14;backdrop-filter:blur(6px);transition:background .2s,opacity .2s}.label:hover,.label:focus{background:#fff7e9;color:#a9533b}.label small{font:8px Georgia;letter-spacing:1px;margin-left:6px;color:#907458}#tooltip{position:absolute;transform:translate(-50%,-100%);background:#fffaee;padding:11px 16px;box-shadow:0 6px 24px #3f2d2826;border-radius:3px;font-size:12px;pointer-events:none;opacity:0;z-index:4;white-space:nowrap}#tooltip.show{opacity:1}footer{position:absolute;bottom:0;width:100%;padding:22px 38px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:10px;z-index:6;color:#6b5944}.hint{display:flex;align-items:center;gap:8px}.hint i{width:6px;height:6px;background:#778f60;border-radius:50%}#find{border:1px solid #806b4755;background:#fff5e6dc;border-radius:22px;padding:11px 22px;font-size:12px}#find span{margin-left:14px}.note{font:italic 13px Georgia}#directory{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);width:310px;z-index:8;padding:13px;background:#faf5e9;border:1px solid #b8a686;border-radius:9px;box-shadow:0 15px 50px #39220b29}#directory button{display:flex;justify-content:space-between;width:100%;padding:13px 12px;border:0;background:none;font-size:13px;text-align:left}#directory button:hover{background:#e7dec9}#directory small{color:#967d5d}#content{position:fixed;inset:0;background:#ece3d2;z-index:20}#content[hidden],#directory[hidden]{display:none}#frames,iframe{width:100%;height:100%;border:0}iframe[hidden]{display:none}#return{position:absolute;bottom:16px;left:18px;border:1px solid #98856b77;border-radius:24px;padding:11px 19px;background:#fff9edee;z-index:25;box-shadow:0 3px 15px #32200e24;font-size:12px}#toast{position:absolute;bottom:85px;left:50%;transform:translateX(-50%);background:#4c493fee;color:#fff4df;border-radius:6px;padding:12px 18px;font-size:12px;z-index:30;opacity:0;pointer-events:none}#toast.show{opacity:1}#fallback{position:absolute;top:45%;left:10%;right:10%;text-align:center}body.fallback .intro{top:25%}body.fallback #directory{display:block} @media(max-width:700px){header{padding:20px}.brand{font-size:22px}.brand span{font-size:9px;letter-spacing:2px}.controls button{padding:0 11px}.controls span{display:none}.intro{top:14%;left:7%}h1{font-size:27px;margin:10px 0}.intro p{font-size:11px}.eyebrow{font-size:8px}footer{padding:20px}.note{display:none}.hint{font-size:9px;max-width:160px;line-height:1.7}.label{font-size:10px;padding:5px 7px}.label small{display:none}#directory{bottom:75px}#return{bottom:9px;left:9px;padding:9px 13px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.screen-text{position:absolute;transform:translate(-50%,-50%);text-align:center;color:#f3f0d4;pointer-events:none;text-shadow:0 0 10px #d6f3c18a;line-height:1.6}.screen-text small{display:block;font:7px monospace;letter-spacing:2px}.screen-text strong{font:italic 19px Georgia;display:block}.screen-text span{display:block;font-size:8px;margin-top:4px}.screen-text b{display:block;font:7px monospace;letter-spacing:1px;margin-top:13px}@media(max-width:700px){.screen-text strong{font-size:12px}.screen-text small{font-size:5px}.screen-text span{font-size:5px}.screen-text b{font-size:5px;margin-top:5px}}
.intro{left:4%;top:18%}h1{font-size:28px;letter-spacing:1px}.screen-text strong{font-size:1.05em}.screen-text small{font-size:.35em}.screen-text span{font-size:.45em}.screen-text b{font-size:.38em;margin-top:.8em}@media(max-width:700px){.intro{top:14%;left:7%}.intro h1{font-size:26px}.screen-text strong{font-size:1.05em}.screen-text small{font-size:.35em}.screen-text span{font-size:.45em}.screen-text b{font-size:.38em}}
@media(max-width:700px){.label{min-height:44px;min-width:44px;display:grid;place-items:center}#tooltip{display:none}}
/* Reserve the upper-left corner for readable copy, clear of the window. */
.intro{left:3%;top:15%;padding:16px 18px;background:linear-gradient(90deg,#e7dbc6ee,#e7dbc600);border-radius:8px;max-width:240px}.label{background:#faf1e1eb;font-size:10px;padding:5px 9px;box-shadow:0 2px 8px #54391d0b}.label small{font-size:7px}.screen-text{color:#e7f1d8;text-shadow:0 0 6px #d6f3c15a}@media(max-width:700px){.intro{left:3%;top:13%;padding:12px 16px;max-width:260px;background:none}.label{font-size:10px}}
.label{transform:translate(-50%,-100%)}.label.below{transform:translate(-50%,0)}
.screen-description{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.controls{gap:6px}.controls button{padding:0 12px}.night{color:#e5d8bd}.night header .brand,.night footer{color:#f1e2c8}.night .intro{background:linear-gradient(90deg,#1b2433da,#1b243300)}.night .intro p,.night .eyebrow{color:#cfbfa7}.night .controls button{background:#282d35c9;color:#e3d5bb;border-color:#bca98755}.night .label{background:#eee2ccdc;border-color:#c2ae8566}#cat-button{border:1px solid #806b4755;background:#fff5e6dc;border-radius:22px;padding:10px 18px;font-size:12px}#cat-menu{position:absolute;right:38px;bottom:77px;z-index:8;padding:8px;background:#faf5e9;border:1px solid #b8a686;border-radius:9px;box-shadow:0 10px 30px #39220b29}#cat-menu button{display:block;width:140px;border:0;background:none;text-align:left;padding:12px;font-size:12px}#cat-menu button:hover{background:#e7dec9}#cat-menu[hidden]{display:none}@media(max-width:700px){header{padding:16px}.brand{font-size:19px}.controls button{padding:0 9px;width:32px;height:32px}.controls{gap:4px}.intro{top:12%}.hint{max-width:105px}footer{padding:15px;gap:7px}#find{padding:10px 12px}#find span{margin-left:7px}#cat-button{padding:10px 12px}#cat-menu{right:15px;bottom:68px}.night .intro{background:none}}

#directory,#cat-menu{color:#635139}.night #find,.night #cat-button{background:#282d35d9;color:#e3d5bb;border-color:#bca98755}

#photo-button{border:1px solid #806b4755;background:#fff5e6dc;border-radius:22px;padding:10px 18px;font-size:12px;color:#635139}.night #photo-button{background:#282d35d9;color:#e3d5bb;border-color:#bca98755}#photo-dialog{border:0;padding:20px;background:#f3ead8;color:#635139;border-radius:8px;max-width:min(90vw,820px);box-shadow:0 20px 90px #0006}#photo-dialog::backdrop{background:#161d26bb;backdrop-filter:blur(5px)}#photo-dialog img{display:block;max-width:100%;max-height:70dvh;object-fit:contain}#photo-dialog p{margin:15px 0 0;text-align:center;font-size:13px}#photo-close{position:absolute;top:5px;right:5px;border:0;background:#faf5e9ed;border-radius:50%;width:36px;height:36px;font-size:24px;color:#635139}@media(max-width:700px){#photo-button{padding:10px 12px}#photo-dialog{padding:12px}}
