/* Full-section scenes: the media canvas sits behind the reading layer. */
.hero-sticky,.story-sticky,.story-reverse .story-sticky,.page-hero{isolation:isolate;background:var(--ink)}
.hero-visual,.story-media,.page-hero-grid>div:last-child{position:absolute;inset:0;width:100%;height:100%;margin:0;pointer-events:none;z-index:0;opacity:1!important;transform:none!important}
.hero-visual::before,.story-media::before,.page-hero-grid>div:last-child::before{content:'';position:absolute;inset:0;background-image:var(--ambient-image);background-size:cover;background-position:center;opacity:.22;filter:blur(22px) saturate(.75);transform:scale(1.06);pointer-events:none}
.hero-visual .media-frame,.story-media .media-frame,.page-hero .media-frame{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0;background:transparent!important;border:0;box-shadow:none;transform:none!important;overflow:hidden}
.hero-visual .media-frame>img,.hero-visual .media-frame>video,.story-media .media-frame>img,.story-media .media-frame>video,.page-hero .media-frame>img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:contain;object-position:center;transform:none;mask-image:linear-gradient(0deg,transparent 0%,#000 17%,#000 83%,transparent 100%);-webkit-mask-image:linear-gradient(0deg,transparent 0%,#000 17%,#000 83%,transparent 100%);mask-composite:add;-webkit-mask-composite:source-over}
.hero-visual .media-frame::after,.story-media .media-frame::after,.page-hero .media-frame::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#0b101115 0%,#0b101130 27%,#0b101185 43%,#0b1011eb 58%,#0b1011f5 100%),linear-gradient(0deg,#0b1011 0%,transparent 18%,transparent 83%,#0b1011 100%)}
.story-reverse .media-frame::after{background:linear-gradient(90deg,#0b1011f5 0%,#0b1011eb 42%,#0b101185 57%,#0b101130 73%,#0b101115 100%),linear-gradient(0deg,#0b1011 0%,transparent 18%,transparent 83%,#0b1011 100%)}
.hero-copy,.story-copy,.page-hero-grid>div:first-child,.hero-bottom,.breadcrumb{position:relative;z-index:3}
.page-hero:has(img[src*="scene-1.webp"]){--ambient-image:url(/assets/media/scene-1.webp)}.page-hero:has(img[src*="scene-2.webp"]){--ambient-image:url(/assets/media/scene-2.webp)}.page-hero:has(img[src*="scene-3.webp"]){--ambient-image:url(/assets/media/scene-3.webp)}.page-hero:has(img[src*="scene-4.webp"]){--ambient-image:url(/assets/media/scene-4.webp)}
.hero-visual .media-frame>img,.hero-visual .media-frame>video,.story-media .media-frame>img,.story-media .media-frame>video,.page-hero .media-frame>img{height:auto;aspect-ratio:16/9;top:50%;bottom:auto;transform:translateY(-50%)}
.hero-copy h1,.story-copy h2,.page-hero h1{text-shadow:0 2px 20px #0005}.hero-description,.hero-detail,.story-copy>p,.feature-list,.service-detail p{color:#d3d7d3}.story-copy{transform:none}.reading-mode .hero-visual,.reading-mode .story-media{transform:none!important}
@media(max-width:760px){
 .hero-visual::before,.story-media::before,.page-hero-grid>div:last-child::before{opacity:.16;filter:blur(15px)}
 .hero-visual .media-frame>img,.hero-visual .media-frame>video,.story-media .media-frame>img,.story-media .media-frame>video,.page-hero .media-frame>img{inset:auto 0 45px;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center bottom;transform:none;mask-image:linear-gradient(0deg,transparent 0%,#000 15%,#000 82%,transparent 100%);-webkit-mask-image:linear-gradient(0deg,transparent 0%,#000 15%,#000 82%,transparent 100%)}
 .hero-visual .media-frame::after,.story-media .media-frame::after,.story-reverse .media-frame::after,.page-hero .media-frame::after{background:linear-gradient(0deg,#0b101133 0%,#0b101110 18%,#0b1011d9 39%,#0b1011e8 100%)}
 .hero-grid{padding-bottom:245px}.story-sticky,.story-reverse .story-sticky{padding-bottom:255px}
}
@media(prefers-reduced-motion:reduce){body:not(.motion-preview) .hero-visual::before,body:not(.motion-preview) .story-media::before{transform:none}body:not(.motion-preview) .hero-visual .media-frame>video,body:not(.motion-preview) .story-media .media-frame>video{display:none}}
