/* The existing world transform drives the native SVG viewBox during travel. */
body.temple-focus .world{transform:translate(var(--temple-camera-x),var(--temple-camera-y)) scale(var(--temple-camera-scale))}
.temple-hotspot{position:absolute;z-index:3;margin:0;padding:0;border:0;background:transparent;color:var(--paper);cursor:zoom-in;border-radius:4px}
.temple-hotspot[hidden],.temple-return[hidden]{display:none!important}
.temple-hotspot:focus-visible{outline:1px solid var(--paper);outline-offset:4px}
.temple-hotspot-label{position:absolute;top:100%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;letter-spacing:.015em;line-height:1.5;opacity:0;pointer-events:none;padding-top:6px;text-shadow:0 1px 4px #101e2e;transition:opacity 150ms}
.temple-hotspot:is(:hover,:focus-visible) .temple-hotspot-label{opacity:1}
.temple-focus #doku .scene-content,.temple-focus .temple-hotspot{visibility:hidden;pointer-events:none}
.temple-focus .viewport{overflow:hidden;touch-action:none}
.temple-focus .scene-boundary{visibility:hidden}
.temple-return{position:fixed;left:clamp(24px,4vw,110px);bottom:clamp(26px,5dvh,90px);z-index:12;display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 0;background:transparent;color:var(--paper);font-size:clamp(14px,1vw,24px);border:0;border-bottom:1px solid #eee8d870;cursor:pointer;text-shadow:0 1px 8px #101e2e}
.temple-return:hover{border-bottom-color:var(--paper)}
.temple-return:focus-visible{outline:1px solid var(--paper);outline-offset:6px}
.temple-door-toggle{position:fixed;z-index:11;padding:0;border:0;background:transparent;color:var(--paper);cursor:pointer;touch-action:manipulation;border-radius:2px}
.temple-door-toggle[hidden]{display:none!important}
.temple-door-toggle:focus-visible{outline:1px solid #d9d0b1;outline-offset:4px}
.temple-door-label{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);font-size:12px;white-space:nowrap;line-height:1.4;letter-spacing:.02em;text-shadow:0 1px 4px #101e2e;opacity:0;pointer-events:none;transition:opacity 160ms}
.temple-door-toggle:is(:hover,:focus-visible) .temple-door-label{opacity:1}
@media(pointer:coarse){.temple-door-label{opacity:1}}
@media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) .temple-door-label{transition:none}}
@media(max-width:760px){.temple-return{left:20px;bottom:30px;font-size:13px;max-width:calc(100vw - 142px);text-align:left}.temple-hotspot-label{font-size:11px}}
@media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) .temple-hotspot-label{transition:none}}
