/* Same-origin document snapshots keep the landscape visible until the room is ready. */
@view-transition { navigation: auto; }
::view-transition-group(root) { animation-duration: 720ms; }
::view-transition-old(root) { animation: none; opacity: 1; }
::view-transition-new(root) { animation: scene-in 720ms cubic-bezier(.22,.61,.36,1) both; }
::view-transition-image-pair(root) { isolation: isolate; }
::view-transition-old(root),::view-transition-new(root) { mix-blend-mode: normal; }
@keyframes scene-in { from { opacity: 0; } to { opacity: 1; } }
html[data-navigating] a { cursor: progress; }
@media(prefers-reduced-motion:reduce) {
  @view-transition { navigation: none; }
  ::view-transition-group(root),::view-transition-old(root),::view-transition-new(root) { animation: none; }
}


/* Settle the homepage onto its still before changing documents. */
.home-leaving .hero-identity,.home-leaving .motion-toggle,.home-leaving .cinemagraph{opacity:0;transition:opacity 160ms ease}

/* A stationary copy of the outgoing artwork avoids unreliable root snapshots. */
.island-arrival{position:fixed;inset:0;z-index:10000;pointer-events:none;overflow:hidden;background:#bddfe8;animation:island-dissolve 550ms cubic-bezier(.22,.61,.36,1) both paused}
.island-arrival[data-time-of-day=night]{background:#071932}
.island-arrival img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:0% 50%;filter:saturate(.90)}
.island-arrival[data-time-of-day=night] img{filter:saturate(.93)}
@keyframes island-dissolve{from{opacity:1}to{opacity:0}}
/* Show the room first, pause 120ms, then reveal the reader and its projection. */
.gentle-arriving #display,.gentle-arriving .projection-room,.gentle-arriving .projector-shimmer,.gentle-arriving .projection-dock{animation:reader-dissolve 220ms ease-out 670ms both paused;pointer-events:none}
.gentle-running .island-arrival,.gentle-running #display,.gentle-running .projection-room,.gentle-running .projector-shimmer,.gentle-running .projection-dock{animation-play-state:running}
@keyframes reader-dissolve{from{opacity:0}to{opacity:1}}
@media(max-aspect-ratio:6/5){
 .island-arrival img{object-position:58% 50%}
 .island-arrival::after{content:'';position:absolute;inset:0;background:linear-gradient(125deg,#f4fbf4c9,transparent 44%)}
 .island-arrival[data-time-of-day=night]::after{background:linear-gradient(125deg,#06162bce,transparent 60%)}
}
@media(prefers-reduced-motion:reduce){
 .island-arrival{display:none}
 .home-leaving .hero-identity,.home-leaving .motion-toggle,.home-leaving .cinemagraph{opacity:1;transition:none}
 .gentle-arriving #display,.gentle-arriving .projection-room,.gentle-arriving .projector-shimmer,.gentle-arriving .projection-dock{animation:none;pointer-events:auto}
}

/* Between room pages only the reading content changes; the room never crossfades. */
.reader-leaving .inner-workspace{opacity:0;transition:opacity 160ms ease}
.reader-arriving .inner-workspace{animation:reader-content-in 360ms ease both}
@keyframes reader-content-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.reader-leaving .inner-workspace{opacity:1;transition:none}.reader-arriving .inner-workspace{animation:none}}
