
@font-face{font-family:MuseumKai;src:url('assets/museum_font.woff2') format('woff2');font-display:swap}
:root{--gold:#dfbd7d;--paper:#f2ede2;--ink:#302a23;--line:#b9965b55;--ui:MuseumKai,"KaiTi",serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#201d18;color:#f5ead8;font-family:var(--ui)}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #ffdb80;outline-offset:3px}button{touch-action:manipulation}button svg{pointer-events:none}button[hidden],[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}#world.dragging{cursor:grabbing}.shade{position:fixed;inset:0;background:linear-gradient(#100d0a88,transparent 24%,transparent 70%,#100d0a99);pointer-events:none}.top{position:fixed;left:28px;right:28px;top:max(20px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:flex-start;gap:24px;pointer-events:none;z-index:5}.brand{pointer-events:auto;max-width:340px}.brand small{color:#e2cfaf;letter-spacing:3px;font-size:12px}.scene-heading{margin:8px 0 3px;line-height:1.15;height:40px;width:300px;max-width:70vw;color:#f0d9a6;filter:drop-shadow(0 2px 3px #0008)}.scene-heading svg{height:100%;width:auto;max-width:100%}.brand p{margin:7px 0;color:#ece1d0;font-size:14px;text-shadow:0 2px 3px #000}.nav{pointer-events:auto;display:flex;background:#241d14cb;border:1px solid var(--line);backdrop-filter:blur(10px)}.nav button{border:0;border-bottom:2px solid transparent;padding:12px 20px;min-height:48px;background:transparent;color:#d7c9b2}.nav button.active{color:#ffe4ae;border-bottom-color:#deb970;background:#b7915422}.nav button:hover{background:#b7915433}
#spots{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}.spot{position:absolute;transform:translate(-50%,-50%);min-width:48px;min-height:48px;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:auto;color:#fff0d1;padding:0;text-shadow:0 1px 4px #000}.spot i{display:flex;justify-content:center;align-items:center;width:44px;height:44px;border:1px solid #e8c486;border-radius:50%;background:#31261cdc;font-style:normal;font-size:25px;box-shadow:0 0 12px #edc67733}.spot span{padding:3px 9px;background:#261e15d9;border:1px solid #be9d6755;font-size:15px;white-space:nowrap}.spot:hover i{background:#7b5c30;box-shadow:0 0 16px #edc67766}.spot .number{font-size:16px}.footer{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:6;max-width:calc(100vw - 20px);display:flex;gap:4px;padding:5px;background:#221b13e6;border:1px solid var(--line);backdrop-filter:blur(10px)}.control{display:flex;min-width:54px;min-height:52px;padding:6px 10px;align-items:center;justify-content:center;flex-direction:column;gap:2px;border:0;background:transparent;color:#ead7b7}.control:hover,.control[aria-pressed=true]{background:#c79e5133;color:#ffe4a7}.control b{font-size:20px;font-family:serif;line-height:1.1;font-weight:normal}.control small{font-size:12px;white-space:nowrap}.divider{width:1px;background:#bc9d6644;margin:7px 3px}.direction{position:fixed;right:28px;bottom:100px;color:#efdfc3;font-size:13px;z-index:3;background:#1f1a1599;padding:6px 12px;pointer-events:none}#fade{position:fixed;inset:0;background:#1b1813;opacity:0;pointer-events:none;z-index:20;transition:opacity .2s}#fade.active{opacity:1;pointer-events:auto}#status{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);max-width:80vw;background:#292017e8;color:#f5dfb7;border:1px solid var(--line);padding:10px 20px;z-index:70;text-align:center;font-size:15px;pointer-events:none;opacity:0;transition:opacity .2s}#status.show{opacity:1}
#welcome{position:fixed;left:50%;bottom:12%;transform:translateX(-50%);z-index:30;width:min(440px,90vw);padding:22px 28px;text-align:center;background:#251e16e8;border:1px solid #c5a66d99;box-shadow:0 16px 60px #0005;backdrop-filter:blur(8px)}#welcome p{color:#e4d5bd;font-size:15px;margin:8px 0 15px}#enter{background:#b99355;border:1px solid #dfc086;color:#1f190f;padding:11px 35px;min-height:50px;font-size:22px}.welcome-title{font-size:24px;letter-spacing:3px}#loading{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#251f17;color:#e8cb95;text-align:center}#loading p{color:#baab90}#error{position:fixed;inset:15%;z-index:90;background:var(--paper);color:var(--ink);padding:30px;overflow:auto;box-shadow:0 0 0 200px #16110bdd}#error button{padding:12px;background:#735831;color:#fff;border:0}.large-touch .control,.large-touch .nav button{min-height:60px;min-width:60px}.large-touch .spot i{width:56px;height:56px}.large-touch .spot span{font-size:18px}
dialog{padding:0;border:1px solid #a98c5c;background:var(--paper);color:var(--ink);width:min(1280px,95vw);max-width:95vw;max-height:94dvh;box-shadow:0 24px 100px #0009}dialog::backdrop{background:#100c08c9;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:15px 24px;border-bottom:1px solid #b4a08566;position:sticky;top:0;background:var(--paper);z-index:3}.dialog-head h2{margin:0;font-weight:normal;line-height:1.1;font-size:30px;color:#513b21;display:flex;align-items:center;min-width:0}.dialog-head h2 svg{height:32px;width:auto;max-width:65vw}.close{width:48px;height:48px;border:1px solid #aa8d61;background:transparent;font-size:26px;flex-shrink:0}.close:hover{background:#ddccae}.detail-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:28px;padding:24px}.detail-layout.textonly{grid-template-columns:1fr;max-width:900px;margin:auto}.viewer{height:min(53vh,520px);position:relative;overflow:hidden;background:#dfd8cc;touch-action:none;cursor:grab;border:1px solid #c9baa5}.viewer.dragging{cursor:grabbing}.viewer img{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;will-change:transform}.image-tools{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}.image-tools button,.image-tabs button,.step-buttons button{min-height:44px;min-width:44px;padding:8px 14px;background:transparent;border:1px solid #ad9062;color:#574123}.image-tools button:hover,.image-tabs button.active,.step-buttons button:hover{background:#e5d8bd}.image-tabs{display:flex;gap:8px;margin-top:12px}.image-tools output{min-width:54px;text-align:center}.copy{overflow:auto;max-height:65vh;overscroll-behavior:contain;padding-right:8px}.copy p{font-size:21px;line-height:1.85;margin:0 0 14px}.copy h3{font-weight:normal;color:#684d2a;margin:20px 0 6px;font-size:23px}.source{font-size:13px!important;color:#877356;line-height:1.6!important}.observation{background:#e7decc;border-left:3px solid #a88a55;padding:12px 15px;margin-bottom:18px;font-size:19px;line-height:1.7}.step-buttons{display:flex;justify-content:space-between;gap:12px;padding:0 24px 22px}.step-buttons span{display:flex;align-items:center;font-size:14px;color:#8c775a}.image-only{width:96vw}.image-only .detail-layout{display:block}.image-only .copy{display:none}.image-only .viewer{height:calc(87dvh - 230px)}.image-only .step-buttons{display:none}
.drawer{width:min(680px,95vw)}.drawer-body{padding:20px 24px;max-height:70dvh;overflow:auto}.catalog-list{display:flex;flex-direction:column;gap:1px}.catalog-list button{display:grid;grid-template-columns:76px 1fr 24px;align-items:center;text-align:left;gap:16px;min-height:78px;padding:12px 0;background:transparent;border:0;border-bottom:1px solid #b59b7255;color:#493923}.catalog-list button img{width:76px;height:58px;object-fit:contain;background:#ddd4c4}.catalog-list strong{display:block;font-weight:normal;font-size:21px}.catalog-list small{font-size:13px;color:#8b7659}.setting-row{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #b59b7255;font-size:19px}.setting-row input{width:25px;height:25px;accent-color:#94713f}.help-text{font-size:18px;line-height:1.9;color:#61513d}.help-text kbd{font-family:inherit;background:#e2d7c5;padding:2px 6px}.help-text p{margin:10px 0}.settings-note{font-size:14px;color:#8e7959;line-height:1.8}.overview{padding:20px;background:#e9dfcd;margin:18px 0;font-size:20px;line-height:1.9}.no-motion #fade,.no-motion #status{transition:none}.no-motion *{scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){#fade,#status{transition:none}}
@media(max-width:720px){.top{left:14px;right:14px;top:max(10px,env(safe-area-inset-top));gap:8px;flex-wrap:wrap}.brand{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:5px}.brand small{display:none}.scene-heading{height:29px;width:100%;margin:0}.brand p{font-size:12px;margin:2px 0}.nav{position:fixed;top:85px;right:12px;flex-direction:column}.nav button{padding:8px 14px;min-height:44px;font-size:15px}.footer{bottom:max(9px,env(safe-area-inset-bottom));gap:0;padding:3px}.control{min-width:43px;padding:6px;min-height:49px}.control small{font-size:10px}.control b{font-size:19px}.divider{margin:5px 2px}.direction{right:12px;bottom:79px;font-size:11px;padding:4px 8px}#status{bottom:83px;font-size:14px}.spot span{font-size:13px;max-width:150px;overflow:hidden;text-overflow:ellipsis}.spot i{width:44px;height:44px}.detail-layout{grid-template-columns:1fr;padding:16px;gap:18px}.viewer{height:34dvh;min-height:220px}.copy{max-height:none;padding:0}.copy p{font-size:19px;line-height:1.9}.dialog-head{padding:10px 14px}.dialog-head h2 svg{height:26px}.close{height:44px;width:44px}.image-tools{gap:6px}.image-tools button{padding:6px 10px}.image-tools output{min-width:48px}.step-buttons{padding:0 16px 18px}.drawer-body{padding:15px 18px}.image-only .viewer{height:calc(85dvh - 235px)}.large-touch .control{min-width:43px;min-height:56px}.large-touch .footer .control small{font-size:10px}#welcome{bottom:16%;padding:18px 20px}.welcome-title{font-size:22px}.overview{font-size:18px}.catalog-list strong{font-size:19px}}
@media(max-height:520px) and (min-width:721px){.brand p{display:none}.top{top:12px}.scene-heading{height:28px}.footer{bottom:8px}.control{min-height:43px}#welcome{bottom:20%;padding:15px}.viewer{height:45vh}.copy{max-height:52vh}}

/* v2: approved scenes, readable rubbing labels, child-friendly direct entrances. */
#status{bottom:155px}
.viewer{background:radial-gradient(ellipse at 50% 0,#e5d0a8,#bcae94);isolation:isolate}.viewer img.ink,.catalog-list img.ink{mix-blend-mode:multiply}.image-kind{font-size:17px;color:#76501f;margin:12px 0 0}.image-kind strong{font-weight:normal}.footer{gap:6px}.footer #left,.footer #auto,.footer #right,.footer #exit,.footer .divider{display:none}.control{min-width:64px}.scene-actions{position:fixed;left:0;right:0;bottom:94px;display:flex;justify-content:center;gap:18px;z-index:6;pointer-events:none}.scene-actions button{pointer-events:auto;min-height:48px;padding:9px 26px;background:#35291dec;border:1px solid #b79963;color:#f3dfba;font-size:21px;box-shadow:0 4px 16px #0002}.scene-actions button:hover{background:#6e522e}.direction{bottom:25px;font-size:12px}.brand small{display:none}.brand p{max-width:400px}.top{top:16px}.scene-heading{height:30px;width:240px;margin:0}.nav button{padding:9px 17px;min-height:44px}.shade{background:linear-gradient(#100d0a55,transparent 14%,transparent 80%,#100d0a88)}.spot.zone-hit{border:2px solid transparent;transform:none;background:transparent;min-width:0;min-height:0;border-radius:2px}.spot.zone-hit:hover{border-color:#ffe4a966;background:#ebc36911;box-shadow:0 0 20px #ffdaa844}.spot.zone-hit:focus-visible{outline:3px solid #ffe4a9;outline-offset:0}.spot.zone-hit i,.spot.zone-hit span{display:none}.advanced-controls{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.advanced-controls button{min-height:46px;padding:8px 15px;background:#e7dcc8;color:#574123;border:1px solid #ad9062}.mobile-explore{display:none;position:fixed;z-index:4;left:20px;right:20px;top:38%;max-width:460px;margin:auto}.mobile-explore p{background:#33251ced;text-align:center;font-size:22px;margin:0;padding:16px}.mobile-cats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mobile-cats button{background:#eadbc1f2;border:1px solid #bda070;color:#4a341d;min-height:95px;font-size:23px;padding:13px 7px}.mobile-cats small{display:block;font-size:16px;margin-top:7px}.mobile-look{background:#33251ced;color:#f4dfb4;border:1px solid #bda070;min-height:44px;width:100%;font-size:17px;margin-top:12px}#welcome{bottom:13%;padding:18px 24px}.welcome-title{font-size:23px}#welcome p{margin:5px 0 10px}#enter{padding:8px 35px}.catalog-list button img{background:#c9b99b}.spot span{max-width:260px;overflow:hidden;text-overflow:ellipsis}.spot:hover span{max-width:none}
@media(max-width:720px){.top{top:15px;left:14px;right:14px}.scene-heading{height:37px;width:100%;max-width:100%}.brand{max-width:none}.brand p{font-size:14px;margin-top:5px}.nav{position:static;flex-direction:row;margin-top:4px}.nav button{padding:7px 17px;font-size:16px}.footer{bottom:max(10px,env(safe-area-inset-bottom));gap:5px}.control{min-width:56px;min-height:44px;padding:4px 7px}.control small{font-size:12px}.control b{font-size:18px}.scene-actions{bottom:78px;gap:10px;padding:0 12px}.scene-actions button{font-size:18px;padding:9px 16px;min-height:46px}.direction{display:none}.mobile-explore.visible{display:block}.spot.zone-hit{display:none!important}.image-kind{font-size:16px}.brand p{max-width:none}.large-touch .control{min-width:55px}#welcome{bottom:19%;padding:18px 20px}.spot span{max-width:155px}.spot:hover span{max-width:155px}}
@media(max-height:550px){.scene-actions{bottom:67px}.scene-actions button{min-height:40px;font-size:17px;padding:6px 19px}.footer{bottom:5px}.control{min-height:42px}.top{top:9px}.brand p{display:none}.scene-heading{height:27px}.nav{margin:0}.mobile-explore{top:26%}.mobile-explore p{display:none}.mobile-cats button{min-height:60px;font-size:20px;padding:5px}.mobile-cats small{margin-top:1px;font-size:14px}.mobile-look{margin-top:6px;min-height:34px}}
