/* Static chapters remain usable without JavaScript or with reduced motion. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.journey { position:relative; background:#030708; }
.journey-stage { position:relative; }
.room-world,.entrance-camera,.journey-shade,.journey-controls,.scroll-cue,.journey-progress { display:none; }
.scene-copy { position:relative; min-height:100svh; padding:100px var(--gutter); background-position:center; background-size:cover; }
.intro-copy { background-image:linear-gradient(90deg,rgba(3,7,8,.3),transparent),url('/assets/sealed-door.webp'); }
.entry-note { margin:45px 0 0; color:var(--muted); font-size:14px; }
.gathering-copy { overflow:hidden; }
.gathering-visual { position:absolute; width:max(100%,150svh); aspect-ratio:3/2; left:50%; top:50%; transform:translate(-50%,-50%); pointer-events:none; }
.gathering-visual>img { width:100%; height:100%; display:block; image-rendering:pixelated; }
.gathering-copy::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(3,7,8,.65),transparent 45%); z-index:1; pointer-events:none; }
.gathering-copy h2,.gathering-copy p { position:relative; z-index:2; }
.watchers { position:absolute; inset:0; pointer-events:none; visibility:hidden; }
.watcher-head { position:absolute; display:block; }
.watcher-head canvas { display:block; width:100%; height:100%; image-rendering:pixelated; }
.gathering-copy h2 { font-size:clamp(32px,4.2vw,64px); }
.scene-copy h2 span { color:var(--accent); }
.gathering-copy p { color:var(--muted); font-size:17px; }
.invitation-copy { text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:end; background-image:linear-gradient(0deg,#030708 2%,rgba(3,7,8,.95) 25%,transparent 65%),url('/assets/zociety-chamber.webp'); background-size:cover,300% auto; background-position:center,50% 36%; }
.invitation-copy h2 { font-size:clamp(28px,3.8vw,54px); }
.invitation-copy>p { font-size:21px; margin:20px 0; }
.invitation-status { display:flex; align-items:center; gap:12px; color:var(--accent); padding:15px 20px; border:1px solid #355149; font-size:15px; }
.invitation-status svg { width:16px; height:16px; }
.invitation-copy .text-link { margin-top:12px; color:var(--muted); }
.motion-ready .journey-controls { display:flex; position:absolute; top:20px; left:var(--gutter); right:var(--gutter); align-items:center; justify-content:space-between; z-index:8; gap:20px; }
.motion-toggle,.skip-journey { display:inline-flex; align-items:center; gap:12px; min-height:44px; padding:8px 12px; border:1px solid #35403d; background:rgba(3,7,8,.86); color:var(--text); font:400 13px/1.4 var(--body); cursor:pointer; }
.motion-toggle:hover,.skip-journey:hover { border-color:var(--accent); color:var(--accent); }
.skip-journey svg { width:14px; height:14px; }
.motion-ready:not(.is-animated) .skip-journey { display:none; }
/* One pinned stage. Native scroll is never intercepted. */
.is-animated .journey { height:640svh; }
.is-animated .journey-stage { position:sticky; top:0; height:100svh; min-height:560px; overflow:hidden; isolation:isolate; }
.is-animated .room-world,.is-animated .entrance-camera,.is-animated .journey-shade { display:block; position:absolute; inset:0; pointer-events:none; }
.room-world { z-index:0; }
.chamber-art { position:absolute; display:block; max-width:none; image-rendering:pixelated; }
.entrance-camera { z-index:2; }
.entrance-scene { position:absolute; }
.entrance-wall { display:block; position:absolute; inset:0; width:100%; height:100%; max-width:none; z-index:2; image-rendering:pixelated; clip-path:polygon(evenodd,0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,58.5% 18.95%,58.5% 78.8%,76.05% 78.8%,76.05% 18.95%,58.5% 18.95%,0% 0%); }
.door-aperture { position:absolute; left:58.5%; top:18.95%; width:17.55%; height:59.85%; overflow:hidden; z-index:1; }
.door-leaf { position:absolute; top:0; width:50%; height:100%; overflow:hidden; }
.door-left { left:0; }
.door-right { right:0; }
.door-leaf img { position:absolute; display:block; max-width:none; image-rendering:pixelated; }
.is-animated .journey-shade { z-index:3; background:linear-gradient(180deg,rgba(3,7,8,.2),transparent 25%,transparent 60%,rgba(3,7,8,.8)); }
.journey-shade::after { content:''; position:absolute; inset:0; opacity:var(--invitation-shade,0); background:linear-gradient(0deg,#030708 0%,rgba(3,7,8,.94) 20%,rgba(3,7,8,.1) 60%,transparent 75%); }
.is-animated .scene-copy { position:absolute; inset:0; min-height:0; background:none; z-index:4; pointer-events:none; }
.is-animated .scene-copy a { pointer-events:auto; }
.is-animated .scene-copy[inert] a { pointer-events:none; }
.is-animated .intro-copy { padding-top:clamp(115px,15svh,180px); }
.is-animated .entry-note { position:absolute; bottom:35px; margin:0; }
.is-animated .gathering-copy { opacity:0; padding-top:115px; }
.is-animated .gathering-visual,.is-animated .gathering-copy::before { display:none; }
.is-animated .invitation-copy { opacity:0; padding:0 var(--gutter) 5svh; }
.is-animated .invitation-copy .text-link { margin-bottom:0; }
.is-animated .scroll-cue { display:flex; position:absolute; bottom:35px; right:var(--gutter); align-items:center; gap:18px; color:var(--text); font-size:14px; z-index:5; }
.scroll-cue svg { color:var(--accent); }
.is-animated .journey-progress { display:block; position:absolute; inset:auto 0 0; height:2px; background:#182220; z-index:7; }
.journey-progress span { display:block; width:100%; height:100%; background:var(--accent); transform:scaleX(0); transform-origin:left; }
.is-animated .journey[data-active='true'] .entrance-camera,.is-animated .journey[data-active='true'] .room-world { will-change:transform; }
@media(max-width:760px) {
  .scene-copy { padding-top:115px; }
  .intro-copy { background-position:65% center; }
  .scene-copy h1 { font-size:clamp(39px,11.7vw,76px); }
  .scene-copy h2 { font-size:clamp(26px,6.8vw,42px); }
  .gathering-visual { width:104%; top:60%; }
  .invitation-copy { padding-bottom:50px; }
  .invitation-copy>p { font-size:18px; margin:16px 0; }
  .invitation-status { font-size:14px; padding:14px 17px; }
  .is-animated .journey { height:600svh; }
  .is-animated .journey-stage { min-height:480px; }
  .is-animated .intro-copy { padding-top:112px; }
  .is-animated .intro-copy::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(3,7,8,.94),rgba(3,7,8,.56) 40%,transparent 70%); }
  .is-animated .gathering-copy { padding-top:110px; text-align:center; }
  .is-animated .invitation-copy { padding-bottom:9svh; }
  .is-animated .scroll-cue { bottom:38px; gap:8px; font-size:12px; }
  .is-animated .entry-note { font-size:12px; bottom:35px; }
  .motion-toggle,.skip-journey { font-size:12px; padding:8px; }
}
@media(max-height:650px) and (min-width:761px) {
  .is-animated .intro-copy { padding-top:90px; }
  .intro-copy h1 { font-size:64px; margin-bottom:15px; }
  .intro-copy .hero-line { font-size:20px; margin-bottom:20px; }
  .is-animated .invitation-copy h2 { font-size:34px; }
  .is-animated .invitation-copy { padding-bottom:25px; }
}
