/* One motion owner for the homepage: overlapping dissolve + independent Ken Burns image. */
:root{--carousel-duration:1800ms;--carousel-ease:linear;--ken-burns-duration:12s}
[data-hero-carousel]{touch-action:pan-y pinch-zoom}
.carousel-stage{overflow:hidden;z-index:0}
.home-hero .full-hero-shade{z-index:1}
.hero-slide{position:absolute;inset:0;overflow:hidden;visibility:hidden;opacity:0}
.hero-slide.is-current{visibility:visible;opacity:1;z-index:1}
.hero-slide img{transform-origin:var(--kb-origin,78% center);object-position:65% 48%;max-width:none}
.carousel-ready .hero-slide.is-current img,.carousel-ready .hero-slide.is-incoming img,.carousel-ready .hero-slide.is-leaving img{animation:hero-ken-burns var(--ken-burns-duration) ease-out both;will-change:transform}
.hero-slide.is-incoming{visibility:visible;z-index:2;animation:hero-crossfade-in var(--carousel-duration) var(--carousel-ease) both;will-change:opacity}
.hero-slide.is-leaving{visibility:visible;opacity:1;z-index:1}
[data-rotation=paused] .hero-slide img{animation-play-state:paused!important}
.home-hero .full-hero-inner{padding-bottom:112px}
.carousel-controls{position:absolute;right:max(5vw,calc((100vw - 1227px)/2));bottom:32px;z-index:4;display:flex;align-items:center;gap:3px;padding:7px 10px 7px 17px;border:1px solid #c6d9d34d;border-radius:8px;color:#fff;background:#123946c7;backdrop-filter:blur(16px);box-shadow:0 4px 20px #092e3912}
.carousel-controls[hidden]{display:none}
.carousel-count{display:flex;align-items:baseline;gap:6px;margin-right:10px;font-size:var(--text-small);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.carousel-count strong{font-size:var(--text-body);font-weight:500}.carousel-count>span{color:#c8d9d4}
.carousel-controls button{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:inherit;border:0;cursor:pointer;border-radius:4px;min-height:44px;transition:background 180ms ease}
.carousel-controls button:hover{background:#ffffff13}.carousel-controls button:focus-visible{outline:2px solid #e5f3df;outline-offset:2px}
.carousel-dots{display:flex;align-items:center;gap:0}
.carousel-dot{width:28px;padding:0}.carousel-dot span{width:5px;height:5px;border:1px solid #d4e3d9;border-radius:3px;transition:width 300ms var(--carousel-ease),background 200ms}
.carousel-dot[aria-current=true] span{width:19px;background:#e1eddf}
.carousel-divider{height:21px;width:1px;background:#c6d9d34d;margin-inline:8px}
.carousel-arrow{width:36px;padding:0;font-size:20px;font-family:Arial,sans-serif}
.carousel-pause{gap:7px;padding:0 10px;margin-left:4px;font-size:var(--text-small);letter-spacing:.02em}
.carousel-pause svg{width:12px;height:12px;stroke:currentColor;stroke-width:1.5;fill:none}.carousel-pause .play-icon{display:none}
.carousel-pause[data-paused=true] .pause-icon{display:none}.carousel-pause[data-paused=true] .play-icon{display:block}
.carousel-controls button:disabled{cursor:default;opacity:.6}
.carousel-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Keep the outgoing layer opaque underneath: no dark dip through the dissolve. */
@keyframes hero-crossfade-in{from{opacity:0}to{opacity:1}}
@keyframes hero-ken-burns{from{transform:scale(1.025) translate3d(.3%,0,0)}to{transform:scale(1.11) translate3d(-.7%,-.3%,0)}}
@media(max-width:940px){.carousel-controls{right:32px;bottom:26px}.home-hero .full-hero-inner{padding-bottom:122px}.hero-slide img{object-position:74% center}}
@media(max-width:680px){.home-hero .full-hero-inner{padding-top:50px;padding-bottom:112px}.carousel-controls{left:22px;right:auto;bottom:23px;gap:0;padding:3px 7px 3px 12px;max-width:calc(100% - 44px)}.carousel-count{margin-right:5px;font-size:var(--text-caption)}.carousel-count strong{font-size:var(--text-reading)}.carousel-dot{width:25px}.carousel-arrow{width:32px}.carousel-divider{margin-inline:5px}.carousel-pause{padding:0 7px;margin-left:1px;font-size:var(--text-caption)}.hero-slide img{object-position:82% center}.carousel-ready .hero-slide img{--ken-burns-duration:12s}}
@media(max-width:360px){.carousel-count{display:none}.carousel-controls{gap:2px}.carousel-arrow{width:34px}.carousel-dot{width:25px}.carousel-divider{margin-inline:5px}}
@media(prefers-reduced-motion:reduce){.carousel-ready .hero-slide img,.hero-slide.is-incoming,.hero-slide.is-leaving{animation:none!important;will-change:auto}.hero-slide img{transform:none!important}.carousel-dot span{transition:none}.carousel-pause .pause-icon,.carousel-pause .play-icon{display:none!important}}
@media print{.carousel-controls,.carousel-status{display:none!important}.hero-slide img{animation:none!important}}

/* All messages share one grid cell, reserving the longest message's height. */
.home-hero h1.hero-topic{font-family:var(--body);font-size:var(--text-small);font-weight:700;line-height:1.7;letter-spacing:.12em;text-transform:uppercase;color:#d4e8d9;margin-bottom:26px;max-width:100%;text-shadow:none}
.hero-copy-stack{display:grid;max-width:690px;width:100%}
.hero-copy{grid-area:1/1;visibility:hidden;opacity:0;pointer-events:none}
.hero-copy.is-current{visibility:visible;opacity:1;pointer-events:auto}
.hero-copy h2{font-size:clamp(48px,5.2vw,76px);line-height:1.06;letter-spacing:-.045em;color:#fff;text-wrap:initial}
.hero-copy p{font-size:18px;line-height:1.8;max-width:530px;color:#f1f5f1;margin-top:28px}
.hero-copy-link{display:inline-flex;align-items:center;gap:20px;color:#fff;font-size:var(--text-ui);font-weight:600;padding-block:12px;border-bottom:1px solid #bfd4ce;margin-top:14px;min-height:44px}
.hero-copy-link:hover{color:#d4e8d9}.hero-copy-link:focus-visible{outline:2px solid white;outline-offset:4px}
.hero-copy.is-leaving{visibility:visible;pointer-events:none;animation:hero-copy-out var(--carousel-duration) linear both}
.hero-copy.is-incoming{visibility:visible;pointer-events:none;animation:hero-copy-in var(--carousel-duration) linear both}
@keyframes hero-copy-out{0%{opacity:1}42%,100%{opacity:0}}
@keyframes hero-copy-in{0%,45%{opacity:0}100%{opacity:1}}
@media(max-width:900px){.hero-copy h2{font-size:60px}.hero-copy p{font-size:var(--text-body);max-width:470px}}
@media(max-width:680px){.home-hero h1.hero-topic{font-size:var(--text-caption);letter-spacing:.08em;margin-bottom:24px}.hero-copy h2{font-size:clamp(38px,10.4vw,57px);line-height:1.1}.hero-copy p{font-size:var(--text-body);line-height:1.75;margin-top:25px}.hero-copy-link{font-size:var(--text-ui)}.home-hero .full-hero-actions{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.hero-copy.is-incoming,.hero-copy.is-leaving{animation:none!important}}

@media(max-width:680px){.hero-copy p{font-size:var(--text-reading)}.carousel-count{display:none}.carousel-controls{flex-wrap:wrap}.carousel-pause{font-size:var(--text-small)}.home-hero h1.hero-topic{line-height:1.7;letter-spacing:.06em}}
