:root{color-scheme:light;--ink:#40393b;--muted:#777174;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}*{box-sizing:border-box}html,body{margin:0;background:#fff;color:var(--ink)}body{-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:6px}.study-header{position:fixed;inset:0 0 auto;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:26px 40px;background:linear-gradient(#fff,rgba(255,255,255,.92),transparent)}.name{font:26px Georgia,serif;letter-spacing:-1px}.back{font-size:14px;color:var(--muted)}.journey{height:800svh}.stage{position:sticky;top:0;height:100svh;overflow:hidden}canvas{position:absolute;inset:0;width:100%;height:100%;visibility:hidden}.fallback{position:absolute;width:90%;height:65%;object-fit:contain;top:15%;left:5%}.ready canvas{visibility:visible}.ready .fallback{display:none}.hint{position:absolute;bottom:157px;left:20px;right:20px;font-size:14px;text-align:center;color:var(--muted);opacity:var(--hint,1);pointer-events:none}.controls{position:fixed;z-index:5;bottom:24px;left:40px;right:40px;display:flex;flex-direction:column;align-items:center;gap:10px}.scrub{width:min(310px,66vw);padding:0 8px;background:#ffffffed}input[type=range]{display:block;appearance:none;width:100%;height:30px;margin:0;background:transparent;cursor:ew-resize;touch-action:pan-y}input[type=range]::-webkit-slider-runnable-track{height:1px;background:linear-gradient(to right,var(--ink) var(--progress,0%),#ddd var(--progress,0%))}input[type=range]::-moz-range-track{height:1px;background:#ddd}input[type=range]::-moz-range-progress{height:1px;background:var(--ink)}input[type=range]::-webkit-slider-thumb{appearance:none;width:9px;height:9px;background:var(--ink);border:2px solid #fff;border-radius:50%;margin-top:-4px;box-shadow:0 0 0 1px var(--ink)}input[type=range]::-moz-range-thumb{width:7px;height:7px;border:1px solid #fff;background:var(--ink);border-radius:50%}.ticks{display:flex;justify-content:space-between;font:12px Georgia,serif;color:#8a8184}.buttons{width:100%;display:flex;justify-content:space-between;align-items:center;min-height:40px}.buttons button{font-size:14px;min-height:40px;padding:8px 0;border:0;background:#fffffff2;color:var(--muted)}.buttons button:hover{color:var(--ink)}.buttons button:disabled{cursor:default;opacity:.4}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.no-script{position:fixed;top:85px;left:20px;right:20px;text-align:center;font-size:14px}@media(max-width:760px){.study-header{padding:22px 24px}.name{font-size:23px}.controls{left:24px;right:24px;bottom:18px}.journey{height:760svh}}@media(max-height:500px){.study-header{padding:14px 24px}.controls{bottom:8px;gap:0}.scrub{width:220px}.buttons{min-height:30px}.buttons button{min-height:30px;padding:4px}.hint{bottom:100px}}

/* Discrete scene navigation applies only to the standalone perspective study. */
body[data-navigation="scenes"]{height:100svh;overflow:hidden;overscroll-behavior:none}
[data-navigation="scenes"] .journey{height:100svh}
[data-navigation="scenes"] .stage{touch-action:pinch-zoom}
[data-navigation="scenes"] #position{display:none}
.scene-controls{display:flex;flex-direction:column;align-items:center;gap:8px}
#scene-caption{font-size:14px;color:var(--muted);margin:0;min-height:20px}
.scene-selector{display:flex;align-items:center;gap:18px}
.scene-steps{display:flex;gap:4px}
.scene-selector button{border:0;background:transparent;min-width:40px;min-height:40px;font-size:14px;color:var(--muted);padding:8px}
.scene-steps button{font-family:Georgia,serif;border-radius:50%;transition:background .2s,color .2s}
.scene-steps button[aria-current="step"]{background:#ebe8e9;color:var(--ink)}
.scene-selector button:disabled{cursor:default}.previous:disabled,.next:disabled{opacity:.3}
[aria-busy="true"]~.hint{opacity:0}
@media(max-width:440px){.scene-selector{gap:6px}.scene-steps{gap:0}.scene-selector button{min-width:36px}}
@media(prefers-reduced-motion:reduce){.scene-steps button{transition:none}}
