/* Original spatial composition, in the established Abundance Labs palette. */
.journey-opening{padding:145px var(--gutter) 90px;min-height:133svh;isolation:isolate}
.journey-kicker{position:relative;z-index:3;margin-bottom:22px;font-size:17px;color:var(--scene-accent);text-align:center}
.journey-opening h1{position:relative;z-index:3;text-align:center;max-width:100%;font-size:clamp(105px,17.2vw,285px);letter-spacing:-.065em;line-height:.88;font-weight:400;pointer-events:none}
.journey-opening[data-journey=approach] h1{font-size:clamp(90px,13.7vw,230px)}
.journey-air{height:47svh;position:relative;pointer-events:none}
.journey-orbit-line{position:absolute;left:12%;right:12%;height:36vh;top:7vh;border-bottom:1px dotted #8c74c54a;border-radius:50%;transform:rotate(-8deg)}
.journey-introduction{position:relative;z-index:3;display:grid;grid-template-columns:1.1fr 1fr;gap:9vw;align-items:start}
.journey-proposition{font-style:italic;letter-spacing:-.045em;font-size:clamp(42px,4.5vw,73px);line-height:1.08;color:var(--scene-accent);max-width:17ch}
.journey-intro{font-size:clamp(21px,1.7vw,26px);line-height:1.5;max-width:38ch}
.journey-enter,.exhibit-next{display:flex;align-items:center;gap:22px;min-height:56px;width:fit-content;margin-top:28px;color:var(--scene-accent);font-size:20px;line-height:1.25;padding:10px 0}
.enter-rings{position:relative;width:26px;height:26px;border:1px solid currentColor;border-radius:50%;flex:none;opacity:.9;transition:transform .4s}
.enter-rings:before{content:'';position:absolute;inset:5px;border:1px dotted currentColor;border-radius:50%}
.enter-rings:after{content:'';position:absolute;width:4px;height:4px;top:-2px;left:10px;border-radius:50%;background:currentColor}
a:hover>.enter-rings{transform:rotate(70deg) scale(1.12)}
.journey-gallery{min-height:110svh;position:relative;padding:130px 0 70px;isolation:isolate;overflow:clip}
.gallery25-heading{display:flex;justify-content:space-between;gap:25px;align-items:baseline;margin:0 var(--gutter) 45px;color:inherit}
.gallery25-heading p{font-size:28px;letter-spacing:-.035em}.gallery25-heading>span{font-size:16px;opacity:.65}
.gallery25-orbit{position:relative;height:min(67vw,650px);max-height:65svh;min-height:450px;perspective:1300px;transform-style:preserve-3d;isolation:isolate}
.gallery25-door{position:absolute;top:0;left:50%;width:29vw;max-width:450px;height:82%;min-height:360px;transform:translateX(calc(-50% + var(--slot) * 103%)) translateY(calc(var(--slot) * var(--slot) * 30px + var(--gallery-travel,0) * 1px)) rotateY(calc(var(--slot) * -26deg)) rotateZ(calc(var(--slot) * 2deg));transform-style:preserve-3d;z-index:var(--layer,10);transition:filter .4s;filter:brightness(.85);outline-offset:10px}
.gallery25-door:hover,.gallery25-door:focus-visible{filter:brightness(1.1);z-index:20}
.gallery25-portrait{position:absolute;inset:0;display:block;overflow:hidden;border-radius:48% 48% 12% 12% / 28% 28% 10% 10%;box-shadow:0 28px 70px #05030b99;transform:translateZ(0);background:#21182f}
.gallery25-portrait:after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #e9e0ff33;background:linear-gradient(180deg,transparent 55%,#151222c9)}
.gallery25-portrait img{width:100%;height:100%;object-fit:cover;display:block}
.gallery25-caption{position:absolute;left:9%;right:9%;bottom:7%;display:block;color:#fff6e8;font-size:clamp(25px,2.65vw,43px);line-height:1.06;letter-spacing:-.035em;text-shadow:0 2px 25px #0009;z-index:2}
.gallery25-caption small{display:block;font-size:13px;letter-spacing:.02em;margin-bottom:14px;color:#e0d5ff}
.gallery25-reflection{position:absolute;inset:calc(100% + 12px) 0 auto;height:36%;display:block;opacity:.18;background-position:center bottom;background-size:100% auto;transform:scaleY(-1);filter:blur(5px);mask-image:linear-gradient(transparent,#000);border-radius:35%;pointer-events:none}
.gallery25-floor{position:absolute;left:-15%;right:-15%;height:40%;bottom:0;border-radius:50%;background:radial-gradient(ellipse,#8c74c529,transparent 66%);transform:rotate(-3deg);pointer-events:none}
.gallery25-instruction{text-align:center;font-size:17px;opacity:.7;position:relative;margin:35px var(--gutter) 0}
.gallery25-controls,.gallery25-scroll-hint{display:none}
.journey-gallery:has(.gallery25-door:nth-child(5)) .gallery25-door{width:18vw;transform:translateX(calc(-50% + var(--slot) * 105%)) translateY(calc(var(--slot) * var(--slot) * 16px + var(--gallery-travel,0) * 1px)) rotateY(calc(var(--slot) * -15deg)) rotateZ(calc(var(--slot) * 1.5deg))}
.journey-gallery:has(.gallery25-door:nth-child(5)) .gallery25-caption{font-size:clamp(24px,2.2vw,35px)}
.exhibit-chapter{padding:9vh 0 12vh;min-height:160svh;position:relative;isolation:isolate}
.exhibit-visual{min-height:85svh;position:relative;--exhibit-open:1;perspective:1500px}
.exhibit-image-space{position:relative;padding:0 6vw;margin-left:13vw;height:68svh;max-height:800px;transform-style:preserve-3d}
.exhibit-image{position:relative;z-index:1;width:100%;height:100%;overflow:hidden;border-radius:42% 34% 18% 28% / 28% 30% 18% 23%;transform-origin:50% 75%;transform:rotateY(calc((1 - var(--exhibit-open)) * -15deg)) rotateZ(calc((1 - var(--exhibit-open)) * 5deg)) scale(calc(.90 + var(--exhibit-open) * .1));box-shadow:0 35px 90px #03020b66;background:#231b33}
.exhibit-image img{display:block;width:100%;height:100%;object-fit:cover}
.exhibit-image:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#15122200 38%,#15122255 70%,#151222df);border-radius:inherit}
.exhibit-shadow{position:absolute;bottom:-7%;left:20%;width:65%;height:25%;border-radius:50%;background:#05030b88;filter:blur(40px);transform:rotate(-6deg);z-index:0}
.exhibit-heading{position:relative;z-index:3;margin:-22vh var(--gutter) 0;max-width:1100px;pointer-events:none}
.exhibit-label{display:flex;gap:18px;align-items:baseline;font-size:18px;margin-bottom:24px;color:#e0d5ff}
.exhibit-label>span{font-size:13px;opacity:.7}
.exhibit-heading h2{max-width:16ch;font-size:clamp(62px,7.7vw,126px);line-height:.99;letter-spacing:-.05em;text-wrap:balance;color:#fff6e8;text-shadow:0 3px 30px #15122290}
.exhibit-reading{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1.08fr;gap:10vw;padding:5vh var(--gutter) 0}
.exhibit-image-credit{font-size:13px;line-height:1.5;opacity:.6;align-self:start;max-width:30ch;padding-top:8px}
.exhibit-image-credit a:hover{text-decoration:underline}
.exhibit-argument>p{font-size:clamp(23px,2.05vw,31px);line-height:1.45;max-width:37ch}
.exhibit-argument .disclosure{margin-top:26px;padding:24px 0;border-top:1px dotted #8c74c566;max-width:100%}
.exhibit-argument .disclosure summary{font-size:20px;line-height:1.4;min-height:48px;align-items:baseline}
.exhibit-argument .disclosure-body p{font-size:21px;line-height:1.5}
.exhibit-next{font-size:23px;margin-top:20px}.exhibit-next small{display:block;font-size:13px;opacity:.65;margin-bottom:5px}
.exhibit-chapter:nth-child(even) .exhibit-image-space{margin-left:0;margin-right:13vw}
.exhibit-chapter:nth-child(even) .exhibit-image{border-radius:34% 44% 28% 18% / 31% 27% 23% 18%;transform:rotateY(calc((1 - var(--exhibit-open)) * 15deg)) rotateZ(calc((1 - var(--exhibit-open)) * -5deg)) scale(calc(.90 + var(--exhibit-open) * .1))}
.exhibit-chapter:nth-child(even) .exhibit-heading{margin-left:25vw;max-width:1000px}
.journey-stories+.policy-ground{padding-top:22vh}
.journey-opening :is(h1,.journey-proposition,.journey-intro),.exhibit-argument{pointer-events:auto}
.journey-opening h1{pointer-events:none}

@media(min-width:901px) and (max-width:1100px){.exhibit-heading h2{font-size:7.5vw}.exhibit-reading{gap:7vw}.gallery25-orbit{min-height:400px}.gallery25-door{min-height:320px}}
@media(max-width:900px){
 .journey-opening{padding:184px var(--gutter) 80px;min-height:0}.journey-kicker{font-size:15px;margin-bottom:24px}.journey-opening h1{font-size:clamp(72px,18vw,160px)}.journey-opening[data-journey=approach] h1{font-size:clamp(52px,13.8vw,125px)}
 .journey-air{height:43svh}.journey-orbit-line{left:0;right:0;height:28vh}
 .journey-introduction{display:block}.journey-proposition{font-size:clamp(35px,8.6vw,65px);max-width:19ch;margin-bottom:32px}.journey-intro{font-size:22px;max-width:36ch}.journey-enter{font-size:19px}
 .journey-gallery{min-height:0;padding:155px 0 80px}.gallery25-heading{margin-bottom:35px;align-items:start}.gallery25-heading p{font-size:24px}.gallery25-heading>span{max-width:10ch;text-align:right;font-size:14px}
 .gallery25-orbit{display:flex;gap:22px;overflow-x:auto;overflow-y:hidden;padding:20px var(--gutter) 100px;height:auto;min-height:0;max-height:none;scroll-snap-type:x proximity;perspective:none;scrollbar-width:thin;scrollbar-color:#8c74c5 transparent;touch-action:pan-x pan-y}
 .gallery25-door,.journey-gallery:has(.gallery25-door:nth-child(5)) .gallery25-door{position:relative;inset:auto;flex:0 0 72vw;width:72vw;min-height:0;height:100vw;max-height:560px;max-width:400px;transform:none;scroll-snap-align:center;filter:none}
 .gallery25-caption,.journey-gallery:has(.gallery25-door:nth-child(5)) .gallery25-caption{font-size:clamp(27px,7vw,42px)}.gallery25-reflection{height:20%;opacity:.13}.gallery25-instruction{font-size:16px;margin-top:10px}
 .exhibit-chapter{padding:4vh 0 9vh;min-height:0}.exhibit-visual{min-height:0}.exhibit-image-space,.exhibit-chapter:nth-child(even) .exhibit-image-space{padding:0 12px;margin:0;height:61svh;max-height:680px;min-height:370px}
 .exhibit-image,.exhibit-chapter:nth-child(even) .exhibit-image{border-radius:43% 43% 16% 16% / 22% 22% 14% 14%;transform:none}
 .exhibit-heading,.exhibit-chapter:nth-child(even) .exhibit-heading{margin:-15vh var(--gutter) 0;max-width:none}.exhibit-heading h2{font-size:clamp(43px,11.2vw,82px);max-width:17ch;line-height:1.04}.exhibit-label{font-size:17px;margin-bottom:20px}
 .exhibit-reading{display:flex;flex-direction:column;gap:27px;padding:30px var(--gutter) 0}.exhibit-image-credit{font-size:12px;max-width:100%;padding:0}.exhibit-argument>p{font-size:22px;max-width:36ch}.exhibit-argument .disclosure summary{font-size:19px}.exhibit-argument .disclosure-body p{font-size:20px}.exhibit-next{font-size:21px}
 .journey-stories+.policy-ground{padding-top:14vh}
}
@media(max-width:370px){.journey-opening h1{font-size:18vw}.journey-opening[data-journey=approach] h1{font-size:13.8vw}.journey-intro,.exhibit-argument>p{font-size:21px}.exhibit-heading h2{font-size:40px}.journey-proposition{font-size:34px}}
@media(prefers-reduced-motion:reduce){.gallery25-door,.exhibit-image,.enter-rings{transition:none!important;transform:none!important}}
@media(prefers-reduced-motion:reduce) and (min-width:901px){.gallery25-orbit{display:flex;justify-content:flex-start;gap:28px;height:auto;max-height:none;min-height:0;overflow-x:auto;padding:20px var(--gutter) 100px}.gallery25-door,.journey-gallery:has(.gallery25-door:nth-child(5)) .gallery25-door{position:relative;inset:auto;flex:0 0 28vw;height:450px;min-height:0;transform:none}}

.journey-portal25{position:fixed;z-index:25;overflow:hidden;pointer-events:none;transform-origin:0 0;background:#21182f;box-shadow:0 35px 90px #03020b66;perspective:1400px}.journey-portal25 img{display:block;width:100%;height:100%;object-fit:cover}.journey-portal25:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,#15122255 70%,#151222df)}.exhibit-image.is-entering{opacity:0}

/* Phones, touch tablets and reduced-motion galleries share a flat native rail.
   Keep 3D transforms out of its scrolling/hit-testing surface. */
@media(max-width:900px),(pointer:coarse),(prefers-reduced-motion:reduce){
 .journey-gallery{min-height:0;padding-bottom:65px}
 .gallery25-heading{margin-bottom:20px}
 .gallery25-orbit{--gallery-inset:max(var(--gutter),calc((100% - 400px)/2));display:flex;justify-content:flex-start;gap:24px;width:100%;height:auto;min-height:0;max-height:none;padding:16px var(--gallery-inset) 44px;overflow-x:auto;overflow-y:hidden;perspective:none;transform-style:flat;pointer-events:auto;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gallery-inset);scrollbar-width:none;-webkit-overflow-scrolling:touch}
 .gallery25-orbit::-webkit-scrollbar{display:none}
 .gallery25-door,.journey-gallery:has(.gallery25-door:nth-child(5)) .gallery25-door{position:relative;inset:auto;flex:0 0 100%;width:100%;max-width:400px;height:min(108vw,40svh,440px);min-height:250px;max-height:none;transform:none;transform-style:flat;scroll-snap-align:center;scroll-snap-stop:always;filter:none;outline-offset:3px}
 .gallery25-portrait{transform:none}
 .gallery25-caption,.journey-gallery:has(.gallery25-door:nth-child(5)) .gallery25-caption{font-size:clamp(27px,7vw,38px);overflow-wrap:break-word}
 .gallery25-reflection{height:17%;opacity:.13}
 .gallery25-controls{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;width:min(400px,calc(100% - 2 * var(--gutter)));margin:0 auto;pointer-events:auto}
 .gallery25-controls button{min-width:88px;min-height:48px;padding:10px 17px;border:1px solid #c5b8ff66;border-radius:100px;background:#c5b8ff0d;color:inherit;font-size:16px;line-height:1.2;touch-action:manipulation}
 .gallery25-controls button:not(:disabled):hover{background:#c5b8ff26;border-color:#c5b8ff}
 .gallery25-controls button:disabled{opacity:.36;cursor:default}
 .gallery25-position{font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}
 .gallery25-instruction{margin-top:20px;font-size:15px;line-height:1.5}
 .gallery25-desktop-hint{display:none}.gallery25-scroll-hint{display:inline}
}
