/* One continuous frame; no duplicate backdrop or offset layer. */
.landing .video-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;transform:none;filter:none;mask-image:none;-webkit-mask-image:none;pointer-events:none}
video::-webkit-media-controls,video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}
.hero-link{position:relative;isolation:isolate;padding:14px 18px;margin-left:-18px;transform-origin:left center;transition:transform .25s ease,opacity 1s ease;color:#fff}
.hero-link:before{content:'';position:absolute;inset:0;z-index:-1;background:#ffffff2b;border:1px solid #ffffff45;transform:skewX(-14deg);opacity:0;transition:opacity .25s}
.hero-link:hover,.hero-link:focus-visible,.hero-link.is-selected{transform:scale(1.07)}
.hero-link:hover:before,.hero-link:focus-visible:before,.hero-link.is-selected:before{opacity:1}
.ecosystem-page{animation:none}
.ecosystem-tile{animation:tile-arrive 1.8s ease both}
.ecosystem-tile:nth-child(2){animation-delay:.8s}.ecosystem-tile:nth-child(3){animation-delay:1.6s}.ecosystem-tile:nth-child(4){animation-delay:2.4s}.ecosystem-tile:nth-child(5){animation-delay:3.2s}.ecosystem-tile:nth-child(6){animation-delay:4s}
@keyframes tile-arrive{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
.tile-copy h2{transform-origin:left bottom;transition:transform .4s ease}
.ecosystem-tile.is-selected>img,.ecosystem-tile:active>img{transform:scale(1.045)}
.ecosystem-tile.is-selected h2,.ecosystem-tile:active h2,.ecosystem-tile:focus-visible h2{transform:scale(1.035)}
.events .tile-copy a{display:inline-block;padding:5px 0;text-decoration:underline;text-underline-offset:4px}
@media(hover:hover){.ecosystem-tile:hover h2{transform:scale(1.035)}}
@media(max-width:700px){.landing .video-frame video{inset:0;width:100%;height:100%;object-position:75% top}.hero-copy{top:24%}.ecosystem-tile>img{object-fit:cover}.hero-link{font-size:16px}}
@media(prefers-reduced-motion:reduce){.ecosystem-tile{animation:none}.hero-link,.tile-copy h2{transition:none}}

.landing .video-frame{position:absolute;inset:0;overflow:hidden;background:#b9bec6}

/* Landing header scale and stable contrast over moving clouds. */
.landing header .logo{width:270px;flex-shrink:0}
.landing header nav{font-size:36px;line-height:1.15;font-weight:500}
.landing .hero:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.42),rgba(0,0,0,.15) 48%,transparent 78%)}
.landing .hero h1,.landing .hero-link{color:#fff;text-shadow:0 2px 12px #0006}
@media(max-width:700px){.landing header{gap:20px;flex-wrap:wrap;padding-top:36px}.landing header .logo{width:202.5px}.landing header nav{font-size:33px;flex-basis:100%;text-align:right}.landing .hero-copy{top:29%}.landing .hero:after{background:linear-gradient(90deg,#0006,#0002 75%,transparent)}}
