:where(.three-viewer){position:relative}.three-viewer__poster{position:absolute;inset:0}.three-viewer__poster img{width:100%;height:100%;position:absolute;inset:0}.three-viewer__canvas{opacity:0;width:100%;height:100%;transition:opacity var(--dur-slow) var(--ease);touch-action:pan-y;-webkit-tap-highlight-color:transparent;position:absolute;inset:0}.three-viewer[data-live=true] .three-viewer__canvas{opacity:1}.three-viewer__ghost{opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity var(--dur-base) var(--ease);position:absolute;inset:0}.three-viewer__ghost[data-show=true]{opacity:1;transition:none}.three-viewer[data-live=true] .three-viewer__poster{visibility:hidden;transition:visibility 0s var(--dur-slow)}.three-viewer:is([data-mode=detail],[data-mode=stage]) .three-viewer__canvas{cursor:grab}.three-viewer:is([data-mode=detail],[data-mode=stage]) .three-viewer__canvas:active{cursor:grabbing}.three-viewer__canvas:focus-visible{outline:2px solid var(--color-brand);outline-offset:-2px}.three-viewer__ui{pointer-events:none;opacity:0;transition:opacity var(--dur-slow) var(--ease) .2s;position:absolute;inset:0}.three-viewer__ui[data-shown=true]{opacity:1}.three-viewer__hint{border-radius:var(--radius-pill);color:#fff;font-size:var(--text-xs);white-space:nowrap;transition:opacity var(--dur-base) var(--ease);background:#0d1a149e;align-items:center;gap:6px;margin:0;padding:6px 12px;line-height:1;display:inline-flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.three-viewer__hint[data-touched=true]{opacity:0}.three-viewer__reset{border:1px solid var(--color-line);border-radius:var(--radius-pill);min-height:32px;color:var(--color-ink);font:inherit;font-size:var(--text-sm);cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffd1;padding:0 14px;position:absolute;top:12px;right:12px}.three-viewer__reset:hover{background:#fff}.three-viewer__reset:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.three-viewer__zoom{pointer-events:none;gap:6px;display:grid;position:absolute;top:52px;right:12px}.three-viewer__zoom button{border:1px solid var(--color-line);width:32px;height:32px;color:var(--color-ink);font:inherit;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffd1;border-radius:50%;font-size:18px;line-height:1}.three-viewer__zoom button:hover{background:#fff}.three-viewer__zoom button:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.three-viewer__scale{color:var(--color-ink-muted);font-size:var(--text-xs);gap:4px;display:grid;position:absolute;bottom:14px;left:14px}.three-viewer__scale span{letter-spacing:.04em;text-transform:none}.three-viewer__scale i{border:1.5px solid;border-top:0;height:6px;display:block}@media (prefers-reduced-motion:reduce){.three-viewer__canvas,.three-viewer__ghost,.three-viewer__ui,.three-viewer__hint{transition:none}}@media (max-width:600px){.three-viewer__hint{bottom:54px}}@media (pointer:coarse){.three-viewer__zoom{display:none}}
