:root {
  --ink: #0a1017;
  --ink-soft: #111923;
  --cream: #eee5d7;
  --cream-dim: #b9b0a4;
  --blue: #8298aa;
  --orange: #d9855f;
  --pink: #c99a98;
  --line: rgba(238, 229, 215, 0.22);
  --serif: Iowan Old Style, Baskerville, "Times New Roman", serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --mx: 0;
  --my: 0;
}

* { box-sizing: border-box; }
html { width:100%; scroll-behavior: smooth; background: var(--ink); }
body { width:100%; margin: 0; background: var(--ink); color: var(--cream); font-family: var(--serif); overflow-x: hidden; }
body.is-locked { overflow: hidden; }
button, a { color: inherit; }
button { font: inherit; }
img { display: block; max-width: 100%; }
::selection { color: var(--ink); background: var(--cream); }
.sound-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.skip-link { position: fixed; top: 1rem; left: 1rem; z-index: 1000; transform: translateY(-200%); padding: .8rem 1rem; background: var(--cream); color: var(--ink); font: .75rem var(--mono); }
.skip-link:focus { transform: none; }

.grain { position: fixed; inset: 0; z-index: 900; pointer-events: none; opacity: .045; mix-blend-mode: soft-light; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }

.eyebrow, .meta, .section-note, .poster-index, .poster-open, .about-visual figcaption, .memory-number, .memory-close, .ending-copy > p { font-family: var(--mono); letter-spacing: .22em; text-transform: uppercase; }
.eyebrow { margin: 0 0 1.5rem; font-size: .7rem; line-height: 1.5; color: rgba(238,229,215,.64); }
.meta { position: absolute; z-index: 12; display: flex; flex-direction: column; gap: .35rem; font-size: clamp(.6rem,.65vw,.74rem); line-height: 1.25; color: rgba(255,249,239,.72); text-shadow: 0 1px 14px rgba(0,0,0,.4); }
.meta-top-left { top: 2rem; left: 2rem; }
.meta-top-right { top: 2rem; right: 2rem; }
.meta-bottom-left { left: 2rem; bottom: 2rem; }
.meta-bottom-right { right: 2rem; bottom: 2rem; text-align: right; }

.hero { position: relative; width:100vw; height:100svh; min-height:max(38rem,100vh); isolation:isolate; overflow:hidden; background:#6d7180; }
.hero-scene, .hero-layer, .hero-vignette, .hero-light, .hero-fog, .particles { position: absolute; inset: 0; }
.hero-scene { inset:-2%; will-change:transform,opacity; }
.hero-layer { will-change:transform; pointer-events:none; }
.hero-sky { background:url('assets/environments/hero-sunrise.webp') center center/cover no-repeat; transform:scale(1.035); }
.hero-clouds { inset:-8%; background:radial-gradient(ellipse at 72% 12%,rgba(255,220,203,.18),transparent 30%),radial-gradient(ellipse at 42% 20%,rgba(255,235,220,.11),transparent 25%); transform:translate3d(calc(var(--mx) * 4px),calc(var(--my) * 2px),0) scale(1.08); opacity:.65; mix-blend-mode:soft-light; -webkit-mask-image:linear-gradient(to bottom,#000,transparent 56%); mask-image:linear-gradient(to bottom,#000,transparent 56%); animation:cloudDrift 28s ease-in-out infinite alternate; }
.hero-city { background-image:radial-gradient(circle,rgba(255,201,133,.8) 0 1px,transparent 1.5px); background-size:53px 31px; transform:translate3d(calc(var(--mx) * 3px),calc(var(--my) * 2px),0); -webkit-mask-image:linear-gradient(to bottom,transparent 38%,#000 49%,transparent 67%); mask-image:linear-gradient(to bottom,transparent 38%,#000 49%,transparent 67%); opacity:.11; animation:cityFlicker 7s ease-in-out infinite alternate; }
.hero-foreground { background:linear-gradient(105deg,transparent 26%,rgba(255,224,170,.07) 48%,transparent 68%); transform:translate3d(calc(var(--mx) * 8px),calc(var(--my) * 4px),0); -webkit-mask-image:linear-gradient(to bottom,transparent 56%,#000 82%); mask-image:linear-gradient(to bottom,transparent 56%,#000 82%); animation:grassBreathe 11s ease-in-out infinite alternate; }
.hero-water { background:repeating-linear-gradient(176deg,transparent 0 7px,rgba(255,220,170,.08) 8px 9px,transparent 10px 17px); transform:translate3d(calc(var(--mx) * 9px),calc(var(--my) * 5px),0); -webkit-mask-image:linear-gradient(to bottom,transparent 61%,#000 73%,transparent 96%); mask-image:linear-gradient(to bottom,transparent 61%,#000 73%,transparent 96%); opacity:.38; mix-blend-mode:screen; animation:waterShimmer 9s ease-in-out infinite alternate; }
.hero-light { background: radial-gradient(circle at 67% 35%,rgba(255,209,147,.26),transparent 21%); mix-blend-mode: screen; animation: breatheLight 8s ease-in-out infinite alternate; }
.hero-fog { inset: auto -20% 12%; height: 27%; filter: blur(26px); opacity: .2; background: radial-gradient(ellipse at 50% 50%,rgba(211,222,222,.8),transparent 65%); animation: fogDrift 17s ease-in-out infinite alternate; }
.fog-two { bottom: 25%; opacity: .1; animation-duration: 23s; animation-direction: alternate-reverse; }
.particles { opacity: .24; background-image: radial-gradient(circle,rgba(255,236,206,.9) 0 1px,transparent 1.4px); background-size: 73px 83px; -webkit-mask-image: linear-gradient(to top,#000,transparent 52%); mask-image: linear-gradient(to top,#000,transparent 52%); animation: particles 18s linear infinite; }
.hero-vignette { z-index: 4; background: linear-gradient(to bottom,rgba(7,12,18,.25),transparent 30%,transparent 65%,rgba(5,9,14,.47)), radial-gradient(ellipse at center,transparent 45%,rgba(5,9,14,.35)); }
.hero-copy { position: absolute; z-index: 10; top: 50%; left: 50%; width: min(90vw,56rem); transform: translate(-50%,-45%); text-align: center; text-shadow: 0 2px 30px rgba(8,10,13,.32); }
.hero-copy h1 { margin: 0; font-size: clamp(2.25rem,4.35vw,4.85rem); font-weight: 400; line-height: 1.01; letter-spacing: -.034em; text-wrap: balance; }
.hero-copy .eyebrow { color: rgba(255,247,234,.72); }
.scroll-cue { display: inline-flex; flex-direction: column; align-items: center; gap: .85rem; margin-top: clamp(2.5rem,6vh,5rem); color: rgba(255,247,234,.82); font: .64rem var(--mono); letter-spacing: .24em; text-decoration: none; }
.scroll-cue i { width: 1px; height: 3.4rem; overflow: hidden; background: rgba(255,255,255,.26); }
.scroll-cue i::after { content: ''; display: block; width: 100%; height: 55%; background: var(--cream); animation: scrollLine 2.3s ease-in-out infinite; }
.sound-toggle { border: 0; padding: 0; background: none; cursor: pointer; }
.sound-toggle span { transition: color .3s; }
.sound-toggle:hover span { color: #ffd6a7; }

.archive { position: relative; z-index: 2; margin-top: -1px; padding: clamp(7rem,10vw,11rem) max(3vw,1.25rem) clamp(8rem,12vw,13rem); background: linear-gradient(#0b1118 0%,#10151d 28%,#13171e 62%,#0b1118 100%); overflow: hidden; }
.archive::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg,rgba(217,133,95,.04),transparent 28%,transparent 72%,rgba(101,126,154,.045)); }
.archive-glow { position: absolute; width: 70vw; height: 70vw; top: 22%; left: 15%; border-radius: 50%; background: rgba(178,119,91,.05); filter: blur(110px); pointer-events: none; }
.section-heading { width:min(100%,112rem); margin:0 auto clamp(4rem,7vw,7rem); }
.section-heading h2, .about h2, .ending h2 { margin: 0; font-weight: 400; letter-spacing: -.05em; }
.section-heading h2 { font-size: clamp(3.2rem,8vw,8.8rem); line-height: .9; }
.section-note { margin: 2.2rem 0 0; color: var(--cream-dim); font-size: .66rem; }
.section-note span { padding: 0 .65rem; color: var(--orange); }

.poster-rail { width:min(100%,112rem); margin:auto; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:clamp(.8rem,1.45vw,1.6rem); align-items:start; }
.poster-entry { min-width:0; position:relative; }
.poster-index { display: flex; justify-content: space-between; margin-bottom: .85rem; color: rgba(238,229,215,.5); font-size: .65rem; }
.poster-card { position: relative; display: block; width: 100%; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; perspective: 900px; }
.poster-image-wrap { display: block; overflow: hidden; background: #18202b; box-shadow: 0 2.2rem 5.5rem rgba(0,0,0,.38); transform: rotateX(0deg) rotateY(0deg) scale(1); transition: transform .85s cubic-bezier(.2,.75,.15,1), box-shadow .85s; }
.poster-card img { width:100%; aspect-ratio:2/3; height:auto; object-fit:cover; transform:scale(1.015) translate3d(0,0,0); filter:saturate(.88) brightness(.92); transition:transform 1.3s cubic-bezier(.2,.75,.15,1),filter 1s; }
.poster-sheen { position: absolute; inset: 0; pointer-events: none; opacity: 0; background: linear-gradient(115deg,transparent 25%,rgba(255,226,194,.12) 50%,transparent 75%); transform: translateX(-25%); transition: opacity .8s,transform 1s; }
.poster-open { position: absolute; right: 1.25rem; bottom: 1.2rem; display: flex; align-items: center; gap: .8rem; font-size: .62rem; opacity: 0; transform: translateY(.6rem); text-shadow: 0 2px 16px #000; transition: opacity .5s, transform .5s; }
.poster-open i { font-style: normal; font-size: 1rem; }
.poster-card:hover .poster-image-wrap, .poster-card:focus-visible .poster-image-wrap { transform: rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg)) scale(1.018); box-shadow: 0 3rem 7rem rgba(0,0,0,.52); }
.poster-card:hover img, .poster-card:focus-visible img { transform: scale(1.065) translate3d(var(--image-x,0),var(--image-y,0),0); filter: saturate(1) brightness(1.03); }
.poster-card:hover .poster-sheen, .poster-card:focus-visible .poster-sheen { opacity: 1; transform: translateX(25%); }
.poster-card:hover .poster-open, .poster-card:focus-visible .poster-open { opacity: 1; transform: none; }
.poster-caption { display:block; padding-top:1.1rem; border-top:1px solid var(--line); }
.poster-caption h3 { margin:0; font:400 clamp(1.15rem,1.55vw,1.65rem)/1 var(--serif); letter-spacing:-.02em; }
.poster-caption p { margin:.65rem 0 0; max-width:16rem; color:rgba(238,229,215,.55); font-size:.82rem; line-height:1.45; font-style:italic; text-align:left; }
.tone-morning { --accent:#bed4df; }
.tone-afternoon-one { --accent:#d7c9a5; }
.tone-afternoon-two { --accent:#d69368; }
.tone-sunset { --accent:#e16f3f; }
.tone-night { --accent:#819bb5; }
.poster-entry::after { content:''; position:absolute; width:10rem; height:10rem; border-radius:50%; background:var(--accent); filter:blur(80px); opacity:.07; right:-8%; top:34%; pointer-events:none; }

.about { position: relative; min-height: 100vh; padding: clamp(7rem,12vw,13rem) max(5vw,1.25rem); display: grid; grid-template-columns: minmax(18rem,.78fr) minmax(26rem,1.22fr); gap: clamp(4rem,9vw,10rem); align-items: center; background: #e4ddd0; color: #151a19; }
.about::before { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(125deg,rgba(193,153,126,.16),transparent 35%,rgba(97,124,134,.12)); }
.about-copy, .about-visual { position: relative; z-index: 1; }
.about .eyebrow { color: rgba(21,26,25,.55); }
.about h2 { font-size: clamp(4rem,8vw,9rem); line-height: .76; }
.about h2 em { font-weight: 400; color: #6f7f7c; }
.about-text { width: min(100%,34rem); margin: clamp(4rem,7vw,7rem) 0 0 auto; }
.about-text p { margin: 0 0 1.4rem; font-size: clamp(1rem,1.35vw,1.25rem); line-height: 1.7; }
.about-text .closing-line { margin-top: 2.8rem; font-size: clamp(1.8rem,3vw,3.1rem); line-height: 1.05; font-style: italic; color: #596b6b; }
.about-visual { margin: 0; }
.about-image { overflow: hidden; box-shadow: 0 2.5rem 6rem rgba(62,49,38,.2); }
.about-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transform: scale(1.06); transition: transform 1s ease-out; }
.about-visual.is-visible img { transform: scale(1); }
.about-visual figcaption { display: flex; justify-content: space-between; padding-top: .9rem; color: rgba(21,26,25,.56); font-size: .6rem; }

.ending { position: relative; min-height: 100svh; display: grid; place-items: center; overflow: hidden; isolation: isolate; }
.ending-scene, .ending-image, .ending-haze { position:absolute; inset:0; }
.ending-scene { z-index:-2; }
.ending-image { inset:-4%; background:url('assets/environments/footer-dusk.webp') center/cover no-repeat; transform:scale(1.06); will-change:transform; }
.ending-haze { background: linear-gradient(to bottom,rgba(7,12,18,.05),rgba(6,10,16,.16) 48%,rgba(5,8,13,.65)),radial-gradient(circle at 50% 45%,transparent 25%,rgba(7,10,15,.35)); }
.ending-copy { text-align:center; width:min(90vw,65rem); text-shadow:0 2px 30px rgba(0,0,0,.45); }
.ending-copy .eyebrow { color:rgba(255,245,231,.58); }
.ending h2 { font-size:clamp(3rem,7.2vw,8rem); line-height:.95; }
.ending-copy > p:last-child { margin:2.2rem 0 0; font-size:.66rem; color:rgba(255,245,231,.66); }
.ending-left { left:2rem; bottom:2rem; }
.ending-right { right:2rem; bottom:2rem; text-align:right; }

[data-reveal] { opacity:0; transform:translateY(2.5rem); filter:blur(8px); transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.2,.75,.15,1),filter 1.2s; }
[data-reveal].is-visible { opacity:1; transform:none; filter:none; }

.memory-view { position:fixed; inset:0; z-index:950; visibility:hidden; pointer-events:none; }
.memory-view.is-open,.memory-view.is-closing { visibility:visible; }
.memory-view.is-open { pointer-events:auto; }
.memory-backdrop { position:absolute; inset:0; background:rgba(5,8,12,.94); opacity:0; backdrop-filter:blur(16px); transition:opacity .6s; }
.memory-view.is-open .memory-backdrop { opacity:1; }
.memory-stage { position:absolute; inset:0; display:grid; grid-template-columns:minmax(18rem,1fr) minmax(17rem,.75fr); gap:clamp(2rem,7vw,8rem); align-items:center; justify-content:center; width:min(92vw,90rem); margin:auto; }
.memory-art { justify-self:end; max-height:86vh; box-shadow:0 2rem 7rem rgba(0,0,0,.48); overflow:hidden; }
.memory-art img { width:auto; height:min(86vh,54rem); max-width:52vw; object-fit:contain; }
.memory-info { align-self:center; }
.memory-number { display:block; margin-bottom:1.8rem; color:rgba(238,229,215,.5); font-size:.72rem; }
.memory-info h2 { margin:0 0 1.5rem; font-size:clamp(3.4rem,8vw,8rem); line-height:.82; font-weight:400; letter-spacing:-.05em; }
.memory-info p { margin:0; font-size:clamp(1.1rem,2vw,1.6rem); line-height:1.3; font-style:italic; color:var(--cream-dim); white-space:pre-line; }
.memory-close { position:absolute; top:1.6rem; right:1.7rem; z-index:3; display:flex; gap:1rem; align-items:center; border:0; background:none; cursor:pointer; font-size:.65rem; color:rgba(238,229,215,.75); }
.memory-close i { font:300 1.5rem/1 var(--serif); }

.cursor { position:fixed; left:0; top:0; z-index:999; border-radius:50%; pointer-events:none; mix-blend-mode:difference; opacity:0; }
.cursor-dot { width:5px; height:5px; background:#fff; transform:translate(-50%,-50%); }
.cursor-ring { width:27px; height:27px; border:1px solid rgba(255,255,255,.72); transform:translate(-50%,-50%); transition:width .25s,height .25s,background .25s; }
body.cursor-ready .cursor { opacity:1; }
body.cursor-hover .cursor-ring { width:48px; height:48px; background:rgba(255,255,255,.08); }

@media (hover:hover) and (pointer:fine) { body,a,button { cursor:none; } }

@keyframes cloudDrift { from { transform:translate3d(calc(var(--mx) * 4px - 10px),calc(var(--my) * 2px),0) scale(1.08); } to { transform:translate3d(calc(var(--mx) * 4px + 12px),calc(var(--my) * 2px + 3px),0) scale(1.1); } }
@keyframes fogDrift { from { transform:translateX(-4%) scale(1); } to { transform:translateX(5%) scale(1.07); } }
@keyframes breatheLight { from { opacity:.72; } to { opacity:1; } }
@keyframes particles { to { background-position:21px -83px; } }
@keyframes scrollLine { 0% { transform:translateY(-105%); } 55%,100% { transform:translateY(190%); } }
@keyframes waterShimmer { from { transform:translate3d(calc(var(--mx) * 9px - 2px),calc(var(--my) * 5px),0); background-position:0 0; } to { transform:translate3d(calc(var(--mx) * 9px + 2px),calc(var(--my) * 5px + 1px),0); background-position:0 12px; } }
@keyframes cityFlicker { from { opacity:.07; } to { opacity:.14; } }
@keyframes grassBreathe { from { transform:translate3d(calc(var(--mx) * 8px - 2px),calc(var(--my) * 4px),0); } to { transform:translate3d(calc(var(--mx) * 8px + 2px),calc(var(--my) * 4px),0); } }

@media (max-width:1100px) and (min-width:801px) {
  .poster-rail { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 800px) {
  .meta-top-left,.meta-bottom-left,.ending-left { left:1rem; }
  .meta-top-right,.meta-bottom-right,.ending-right { right:1rem; }
  .meta-top-left,.meta-top-right { top:1.15rem; }
  .meta-bottom-left,.meta-bottom-right,.ending-left,.ending-right { bottom:1.15rem; }
  .hero-scene { inset:-2% -22%; }
  .hero-sky { background-image:url('assets/environments/hero-sunrise-mobile.webp'); background-position:center center; }
  .hero-copy { top:53%; width:88vw; }
  .hero-copy h1 { font-size:clamp(2.35rem,11vw,4.1rem); line-height:1; }
  .archive { padding-left:0; padding-right:0; }
  .section-heading { padding:0 1.25rem; margin-bottom:4.5rem; }
  .section-heading h2 { font-size:clamp(3.2rem,15vw,5.7rem); }
  .section-note { line-height:1.8; }
  .poster-rail { display:grid; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:78vw; gap:1rem; overflow-x:auto; padding:0 11vw 2rem; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .poster-rail::-webkit-scrollbar { display:none; }
  .poster-entry { width:auto; margin:0; scroll-snap-align:center; }
  .poster-index { padding-top:.5rem; }
  .poster-caption { display:block; }
  .poster-caption p { margin-top:.55rem; text-align:left; }
  .about { grid-template-columns:1fr; gap:4rem; }
  .about h2 { font-size:clamp(4rem,19vw,7rem); }
  .about-text { margin-top:4rem; }
  .about-visual { margin:0 -1.25rem; }
  .about-visual figcaption { padding-left:1.25rem; padding-right:1.25rem; }
  .ending-image { background-position:53% center; }
  .ending h2 { font-size:clamp(3rem,13vw,5.5rem); }
  .memory-stage { grid-template-columns:1fr; gap:1.3rem; align-content:center; width:88vw; }
  .memory-art { justify-self:center; }
  .memory-art img { height:min(67vh,41rem); max-width:86vw; }
  .memory-info { display:grid; grid-template-columns:auto 1fr; column-gap:1.2rem; align-items:end; }
  .memory-number { margin:0 0 .45rem; }
  .memory-info h2 { margin:0; font-size:clamp(2.2rem,11vw,4rem); line-height:1; }
  .memory-info p { grid-column:2; margin-top:.7rem; font-size:1rem; }
  .memory-close span { display:none; }
}

@media (hover:none), (pointer:coarse) { .cursor { display:none; } .poster-open { opacity:1; transform:none; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.15s !important; }
  .hero-clouds,.hero-city,.hero-foreground,.hero-water,.ending-image { transform:none !important; }
  [data-reveal] { opacity:1; transform:none; filter:none; }
}

/* Motion-only refinements. Artwork, typography and section geometry stay intact. */
.grain { opacity:.012; }
.hero-sky { animation:cameraBreath 34s ease-in-out infinite alternate; }
.hero-clouds { animation-duration:61s; opacity:.36; }
.hero-fog { opacity:.09; animation-duration:43s; }
.fog-two { opacity:.055; animation-duration:57s; }
.hero-light { animation:breatheLight 31s ease-in-out infinite alternate; }
.hero-city { animation-duration:39s; }
.hero-foreground { animation-duration:23s; }
.particles { opacity:.10; animation-duration:47s; }
.hero-water { background:radial-gradient(ellipse at 64% 76%,rgba(255,220,170,.13),transparent 28%),radial-gradient(ellipse at 35% 86%,rgba(194,218,225,.09),transparent 34%); animation-duration:19s; opacity:.24; }
.hero-vignette::after { content:''; position:absolute; inset:0; background:#0b1118; opacity:calc(var(--dream-scroll,0) * .66); }
.hero > .meta { opacity:calc(1 - var(--dream-scroll,0) * .9); transition:opacity .1s linear; }
.hero-copy[data-reveal] { filter:none; }
.motion-paused .hero-layer,.motion-paused .hero-light,.motion-paused .hero-fog,.motion-paused .particles { animation-play-state:paused; }
[data-reveal] { transform:translateY(12px); filter:none; transition:opacity 1.6s ease,transform 1.8s cubic-bezier(.22,.61,.36,1); }
.poster-entry[data-reveal] { transform:translateY(20px) scale(.98); transition-delay:var(--reveal-delay,0ms); }
.poster-entry.is-visible { transform:none; }
.poster-image-wrap { transition:transform 1.1s cubic-bezier(.22,.61,.36,1),box-shadow 1.1s; }
.poster-card:hover .poster-image-wrap,.poster-card:focus-visible .poster-image-wrap { transform:scale(1.018); }
.poster-card:hover img,.poster-card:focus-visible img { transform:scale(1.025) translate3d(var(--image-x,0),var(--image-y,0),0); filter:saturate(.94) brightness(.99) contrast(1.015); }
.about-image img { transition-duration:2s; }
.dream-opening { position:fixed; inset:0; z-index:1001; pointer-events:none; display:grid; place-items:center; background:#070c12; }
.dream-opening span { font: .7rem var(--mono); letter-spacing:.22em; color:rgba(238,229,215,.65); }
.dream-awake .dream-opening { animation:openingFade 1.15s .1s ease-in-out forwards; }
.dream-awake .dream-opening span { animation:openingFade .45s ease forwards; }
.dream-arriving .hero > .meta { animation:remember 1s .65s ease both; }
.dream-arriving .hero-copy > .eyebrow { animation:remember 1.2s .8s ease both; }
.dream-arriving .hero-copy h1 { animation:remember 1.25s .9s cubic-bezier(.22,.61,.36,1) both; }
.dream-arriving .scroll-cue { animation:remember 1s 1.35s ease both; }
@keyframes cameraBreath { from { transform:translate3d(calc(var(--mx) * 2px - 3px),-3px,0) scale(1.035); } to { transform:translate3d(calc(var(--mx) * 2px + 3px),3px,0) scale(1.06); } }
@keyframes breatheLight { from { opacity:.96; } to { opacity:1; } }
@keyframes cityFlicker { from { opacity:.075; } to { opacity:.085; } }
@keyframes waterShimmer { from { transform:translate3d(calc(var(--mx) * 9px - 2px),calc(var(--my) * 5px),0) scale(1); opacity:.22; } to { transform:translate3d(calc(var(--mx) * 9px + 2px),calc(var(--my) * 5px + 1px),0) scale(1.012); opacity:.26; } }
@keyframes remember { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes openingFade { to { opacity:0; } }
@media (prefers-reduced-motion:reduce) {
  .dream-opening { display:none; }
  .hero-sky,.hero-scene,.hero-copy,.poster-entry[data-reveal] { animation:none !important; }
  .hero-copy[data-reveal] { transform:translate(-50%,-45%) !important; opacity:1 !important; }
  .hero > .meta { opacity:1; }
  .hero-vignette::after { opacity:0; }
  .poster-entry[data-reveal] { transform:none; transition-delay:0ms; }
}
