/* Static/no-JS composition first. Motion is progressive enhancement. */
.scene-defs { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.botanical-journey { position: relative; background: #192018; }
.journey-sticky { position: relative; overflow: hidden; }
.journey-forest { height: 100svh; min-height: 600px; position: relative; overflow: hidden; color: #f5f1e7; }
.forest-plane { position: absolute; inset: -20px 0; }
.forest-plane img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.forest-plane .journey-dusk { opacity: 0; }
.forest-atmosphere, .forest-bough, .forest-nightfall { display: none; pointer-events: none; }
.forest-shade { position: absolute; inset: 0; background: linear-gradient(10deg, #0b160bc2, transparent 58%); }
.journey-forest h2 { position: absolute; left: var(--gutter); bottom: 14%; font-size: clamp(84px, 9.5vw, 156px); line-height: .86; letter-spacing: -.045em; }
.journey-line { position: absolute; width: 1px; height: 64px; background: #f5f1e770; left: var(--gutter); bottom: 3%; }
.journey-detail { position: relative; min-height: 800px; height: 100svh; background: #293324; overflow: hidden; }
.journey-macro { position: absolute; inset: 0; }
.journey-macro img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.journey-paper { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--paper); }
.paper-compact { display: none; }
.details-copy { position: absolute; z-index: 1; left: var(--gutter); bottom: 14%; width: 49%; }
.details-copy h2 { font-size: clamp(66px, 7.3vw, 118px); line-height: .95; letter-spacing: -.05em; }
.details-copy h2 em { white-space: nowrap; }
.details-copy p { font-size: clamp(17px, 1.5vw, 22px); margin-top: 28px; line-height: 1.4; }
.scroll-scenes .botanical-journey:not(.journey-static) { height: 350svh; }
.scroll-scenes .botanical-journey:not(.journey-static) .journey-sticky { position: sticky; top: 0; height: 100svh; min-height: 600px; }
.scroll-scenes .botanical-journey:not(.journey-static) .journey-forest { height: 100%; }
.scroll-scenes .botanical-journey:not(.journey-static) .forest-plane { transform: translateY(var(--forest-y, 0px)); }
.scroll-scenes .botanical-journey:not(.journey-static) .journey-dusk { opacity: var(--dusk, 0); }
.scroll-scenes .botanical-journey:not(.journey-static) .forest-atmosphere { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
.scroll-scenes .botanical-journey:not(.journey-static) .forest-nightfall { display: block; position: absolute; inset: 0; background: linear-gradient(180deg, #191d373d, #07161f4d); opacity: var(--dusk, 0); }
.forest-sunlight { opacity: var(--sunlight, 1); mix-blend-mode: screen; }
.forest-mist { opacity: var(--mist, 0); }
.forest-fireflies { opacity: var(--night-life, 0); }
.forest-water { opacity: calc(.12 + var(--night-life, 0) * .65); }
.sunlight-drift { animation: sunlight-breath 17s ease-in-out infinite alternate; }
.mist-drift { animation: mist-crossing 19s ease-in-out infinite alternate; }
.water-glint { stroke-width: 1.2; animation: water-flow var(--cycle) ease-in-out var(--delay) infinite; }
.firefly-flight { animation: firefly-flight var(--cycle) ease-in-out var(--delay) infinite alternate; }
.firefly-pulse { animation: firefly-glow var(--glow-cycle) ease-in-out var(--delay) infinite; }
.scroll-scenes .botanical-journey:not(.journey-static) .forest-bough { display: block; position: absolute; width: 116%; height: 100%; left: -8%; bottom: -6%; transform: translate(var(--bough-x, 8%), var(--bough-y, 10%)); filter: brightness(var(--bough-light, 1)); }
.forest-bough img { width: 100%; height: 100%; object-fit: cover; object-position: bottom; transform-origin: 88% 100%; animation: bough-breath 11s ease-in-out infinite alternate; }
.forest-atmosphere *, .forest-bough img { animation-play-state: paused; }
.atmosphere-live .forest-atmosphere *, .atmosphere-live .forest-bough img { animation-play-state: running; }
@keyframes sunlight-breath { from { opacity: .3; transform: translateX(-8px); } to { opacity: .7; transform: translateX(10px); } }
@keyframes mist-crossing { from { opacity: .4; transform: translateX(-25px); } to { opacity: .8; transform: translateX(24px); } }
@keyframes water-flow { 0%, 100% { opacity: 0; transform: translateX(-3px); } 45% { opacity: .8; } 80% { opacity: .12; transform: translateX(var(--drift)); } }
@keyframes firefly-flight { 0% { transform: translate(0, 0); } 55% { transform: translate(var(--flight-x), var(--flight-y)); } 100% { transform: translate(4px, -7px); } }
@keyframes firefly-glow { 0%, 22%, 100% { opacity: 0; } 48% { opacity: .88; } 74% { opacity: .16; } }
@keyframes bough-breath { from { transform: translateY(2px) rotate(-.4deg); } to { transform: translateY(-3px) rotate(.5deg); } }
.scroll-scenes .botanical-journey:not(.journey-static) .journey-forest h2 { opacity: var(--world-title-opacity, 1); transform: translateY(var(--world-title-y, 0px)); }
.scroll-scenes .botanical-journey:not(.journey-static) .journey-line { opacity: var(--world-title-opacity, 1); }
.scroll-scenes .botanical-journey:not(.journey-static) .journey-detail { position: absolute; inset: 0; height: 100%; min-height: 0; background: none; }
.scroll-scenes .botanical-journey:not(.journey-static) .journey-macro { clip-path: url(#macro-aperture); }
.scroll-scenes .botanical-journey:not(.journey-static) .journey-paper { transform: translateY(var(--paper-y, 110%)); }
.scroll-scenes .botanical-journey:not(.journey-static) .details-copy { opacity: var(--detail-opacity, 0); transform: translateY(var(--detail-y, 34px)); }
.imagery-note { margin-right: auto; max-width: 520px; }
.imagery-note summary { cursor: pointer; min-height: 32px; list-style: none; display: flex; align-items: center; gap: 10px; }
.imagery-note summary::-webkit-details-marker { display: none; }
.imagery-note summary::after { content: '+'; }
.imagery-note[open] summary::after { content: '−'; }
.imagery-note p { font-size: 13px; line-height: 1.6; padding: 12px 24px 8px 0; color: #c0b4c4; }
@media (max-width: 1050px) and (min-width: 761px) {
  .details-copy h2 { font-size: 7.1vw; }
}
@media (max-width: 760px) {
  .journey-forest { min-height: 650px; }
  .forest-plane img { object-position: center; }
  .journey-forest h2 { font-size: clamp(78px, 16.5vw, 118px); bottom: 16%; }
  .journey-detail { height: 100svh; min-height: 680px; }
  .journey-macro img { object-position: 74% center; }
  .journey-paper { width: 100%; height: 100%; top: 0; }
  .paper-wide { display: none; }
  .paper-compact { display: initial; }
  .details-copy { width: calc(100% - var(--gutter) * 2); bottom: 10%; }
  .details-copy h2 { font-size: clamp(54px, 11.8vw, 84px); }
  .details-copy p { font-size: 16px; margin-top: 20px; max-width: 260px; }
  .scroll-scenes .botanical-journey:not(.journey-static) { height: 310svh; }
  .scroll-scenes .botanical-journey:not(.journey-static) .journey-sticky { min-height: 650px; }
}
@media (prefers-reduced-motion: reduce) {
  .forest-atmosphere, .forest-bough { display: none !important; }
  .forest-atmosphere *, .forest-bough img { animation: none !important; }
}
