/* One continuous, quiet atmosphere. The resident's established glass stays intact. */
html { scrollbar-gutter: stable; }
.sw-body--full { --sw-dur: 420ms; }
.sw-atmosphere { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.sw-water-bubbles { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
/* A promoted stage must not turn the oversized wall-grain into a body scrollbar. */
.act--act-aquarium .room-wall { overflow: hidden; }
.sw-aquarium-prewarm { position: fixed; inset: 0; visibility: hidden; pointer-events: none; contain: layout style paint; }
.sw-aquarium-prewarm .aquarium { min-height: 100svh; }
.sw-stage--moving { will-change: opacity, transform; }
.sw-stage--move-fade,.sw-stage--move-iris,.sw-stage--move-slide-left,.sw-stage--move-slide-right {
  clip-path: none; transition: opacity 440ms cubic-bezier(.22,.68,.25,1), transform 440ms cubic-bezier(.22,.68,.25,1);
}
.sw-stage--out { transition-duration: 360ms; }
.sw-stage--primed { opacity: .001 !important; transition: none !important; }
.sw-stage--move-iris.sw-stage--out,.sw-stage--move-iris.sw-stage--in { clip-path: none; }
.sw-stage--move-slide-left.sw-stage--out { transform: translateX(-12px); }
.sw-stage--move-slide-right.sw-stage--out { transform: translateX(12px); }
.sw-masthead { transition-duration: 360ms; }
.sw-motion { margin-left: auto; border: 0; background: transparent; color: var(--sw-pale-faint); font: inherit; letter-spacing: .1em; min-height: 44px; cursor: pointer; }
.sw-motion:hover { color: var(--sw-brass-lit); }
.sw-tour { display: flex; justify-content: flex-end; margin: 2rem 0 .5rem; padding-bottom: env(safe-area-inset-bottom,0px); }
.sw-tour__door { display: inline-flex; align-items: center; gap: .8rem; min-height: 48px; max-width: 100%; padding: .7rem .25rem .7rem .9rem; background: transparent; border: 0; border-bottom: 1px solid rgba(171,144,91,.36); color: #c0ad81; font: .72rem/1.6 var(--sw-mono); letter-spacing: .09em; text-align: left; cursor: pointer; transition: color 240ms, border-color 240ms; }
.sw-tour__door:hover { color: #e3d7b5; border-color: #ae9565; }
.sw-tour__door span { font-size: 1.4rem; line-height: 1; }
button.is-leaving { color: #e4d7af; opacity: .72; }
.act--act-aquarium .sw-tour { margin: 0 0 0 auto; padding: 0; }
.act--act-aquarium .sw-tour__door { min-height: 44px; font-size: .65rem; }
.act--act-aquarium .is-immersion .sw-tour { visibility: hidden; pointer-events: none; }
.corridor { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 52rem; margin-inline: auto; gap: clamp(1.25rem,3vw,2rem); }
.corridor .window { width: 100%; min-width: 0; }
.corridor .window__plate { aspect-ratio: 4 / 3; }
.corridor .window__card { min-height: 5rem; display: flex; align-items: center; }
.window.is-visited .window__index::after { content: " ·"; color: #b6b694; }
.corridor.is-arriving .window { animation: sw-case-awake 700ms cubic-bezier(.22,.68,.25,1) both; animation-delay: calc(80ms + (var(--window-order) - 1) * 170ms); }
.corridor.is-awaiting .window { opacity: 0; transform: translateY(7px) scale(.985); }
@keyframes sw-case-awake { from { opacity: .08; transform: translateY(7px) scale(.985); } to { opacity: 1; transform: none; } }
.sw-body--reduced .corridor .window { animation: none !important; opacity: 1; transform: none; }
.sw-body--reduced .sw-stage { transition: none !important; }
.sw-body--reduced .sw-stage--out { opacity: 1; transform: none; }
@media (max-width: 640px) {
  .corridor { grid-template-columns: minmax(0,1fr); max-width: 30rem; gap: 1.8rem; }
  .corridor .window__card { min-height: 4rem; }
  .sw-masthead { gap: .35rem .7rem; }
  .sw-masthead__state { flex-basis: 100%; order: 3; }
  .sw-motion { font-size: .6rem; letter-spacing: .05em; }
  .sw-masthead__door { margin-left: 0; }
  .act--act-aquarium .controls { flex-wrap: wrap; }
  .act--act-aquarium .sw-tour { flex-basis: 100%; justify-content: flex-end; margin-top: .35rem; }
  .sw-tour__door { font-size: .66rem; letter-spacing: .06em; }
}
