.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .85s ease;pointer-events:none}
.hero-slide.is-active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:55% center;transform:scale(1.035);transition:transform 4.5s linear}
.hero-slideshow.is-playing .hero-slide.is-active img{transform:scale(1.1) translateY(var(--hero-y,0px))}
.hero-gallery-footer{position:absolute;right:var(--gutter);bottom:32px;z-index:3;display:flex;flex-direction:column;align-items:stretch;max-width:min(400px,85%);color:#fff}
.hero-gallery-footer .hero-project{position:static;padding:16px 20px;gap:8px 24px;background:#142025db;backdrop-filter:blur(12px)}
.hero-gallery-footer .hero-project>span{font-size:9px;letter-spacing:.13em}
.hero-gallery-footer .hero-project strong{font-size:14px;line-height:1.4}
.hero-gallery-controls{display:flex;align-items:center;justify-content:flex-end;background:#142025ed;border:1px solid #ffffff25;border-top:0;gap:4px;padding:3px 7px}
.hero-gallery-controls[hidden]{display:none}
.hero-gallery-controls button{display:grid;place-items:center;min-width:44px;min-height:44px;border:0;background:transparent;color:#fff;font-size:19px;cursor:pointer}
.hero-gallery-controls button:hover{background:#ffffff18}
.hero-gallery-controls button:focus-visible,.hero-gallery-footer a:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.hero-gallery-count{font-size:11px;letter-spacing:.15em;font-variant-numeric:tabular-nums;padding:0 10px}
.hero-facts{max-width:610px}
.hero-facts b{font-size:clamp(20px,2vw,26px);line-height:1.15;white-space:nowrap}
.hero-facts small{max-width:130px;font-size:11px}
.lightbox[open]{display:block;padding:74px 4vw 28px;overflow:auto}
.lightbox-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);gap:clamp(28px,4vw,68px);align-items:center;min-height:calc(100svh - 102px);width:100%;max-width:1700px;margin:auto}
.lightbox-visual{min-width:0;display:flex;flex-direction:column;align-items:center}
.lightbox-visual>img{display:block;width:100%;height:calc(100svh - 180px);object-fit:contain;max-height:1000px}
.lightbox-visual .lightbox-bar{width:100%;max-width:540px;padding-top:14px}
.lightbox-info{align-self:center;padding:15px 0}
.lightbox-info .eyebrow{font-size:10px;color:#afb8bc;letter-spacing:.14em}
.lightbox-info h2{font-size:clamp(26px,2.3vw,38px);line-height:1.12;margin:22px 0 28px;letter-spacing:-.035em}
.lightbox-facts{margin:0 0 26px}
.lightbox-facts>div{display:grid;grid-template-columns:70px 1fr;gap:15px;border-top:1px solid #ffffff26;padding:12px 0;font-size:12px;line-height:1.5}
.lightbox-facts dt{color:#adb6bb}
.lightbox-facts dd{margin:0}
.lightbox-summary,.lightbox-note{font-size:14px;line-height:1.75;color:#d0d5d7;white-space:pre-line}
.lightbox-note{border-top:1px solid #ffffff26;padding-top:20px;margin-top:22px;color:#fff}
@media(max-width:850px){
 .hero-gallery-footer{bottom:18px;max-width:calc(100% - 2 * var(--gutter))}
 .hero-gallery-footer .hero-project{padding:12px 15px}
 .hero-gallery-footer .hero-project strong{font-size:12px}
 .hero-slide img{object-position:center}
 .lightbox-layout{grid-template-columns:1fr;gap:12px;min-height:0}
 .lightbox[open]{padding:60px 20px 28px}
 .lightbox-visual>img{height:50svh;max-height:650px}
 .lightbox-info h2{margin:12px 0 18px}
 .lightbox-info{padding-top:12px}
 .lightbox-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-bottom:16px}
 .lightbox-facts>div{grid-template-columns:1fr;gap:3px}
 .hero-facts b{font-size:clamp(18px,4.5vw,23px)}
 .hero-facts small{font-size:10px;max-width:115px}
}
@media(prefers-reduced-motion:reduce){.hero-slide,.hero-slide img{transition:none}.hero-slideshow .hero-slide img{transform:none!important}}
body[data-animations="off"] .hero-slide,body[data-animations="off"] .hero-slide img{transition:none;transform:none!important}

/* Intro animation retains a single readable H1 and never loops. */
.hero-title-line{display:block}
.hero-word{display:inline-block;animation:hero-word-in 1s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.12s + var(--word) * .09s)}
.hero-title-line:nth-child(2) .hero-word{animation-delay:calc(.3s + var(--word) * .09s)}
.hero-copy .hero-description{animation:hero-word-in 1s .45s both}
@keyframes hero-word-in{from{opacity:0;transform:translateY(26px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
.project-video{margin:42px 0 60px;max-width:1100px}
.project-video-player{position:relative;aspect-ratio:16/9;background:#142025;overflow:hidden}
.project-video-player>img,.project-video-player iframe{width:100%;height:100%;object-fit:cover;border:0;display:block}
.project-video-player>img{opacity:.72}
.project-video-player :is(button,.project-video-external){position:absolute;inset:0;width:100%;border:0;background:linear-gradient(0deg,#0008,transparent);color:white;display:flex;align-items:center;justify-content:center;gap:18px;cursor:pointer;font:inherit;font-size:15px}
.project-video-player :is(button,.project-video-external) span{display:grid;place-items:center;width:70px;height:70px;border:1px solid #fff8;border-radius:50%;font-size:23px;background:#14202588;backdrop-filter:blur(8px);transition:transform .25s}
.project-video-player :is(button,.project-video-external):hover span{transform:scale(1.1)}
.project-video-player :is(button,.project-video-external):focus-visible{outline:3px solid var(--accent,#ffd000);outline-offset:-6px}
.project-video figcaption{padding-top:20px;display:grid;grid-template-columns:1fr auto;gap:12px 32px}
.project-video h3{font-size:clamp(20px,2.2vw,30px);margin:0 0 12px}
.project-video p{font-size:15px;line-height:1.65;margin:0 0 10px;max-width:740px}
.project-video-source{font-size:12px;line-height:1.7}
@media(max-width:650px){.project-video figcaption{grid-template-columns:1fr}.project-video-player :is(button,.project-video-external) span{width:52px;height:52px}.project-video-player :is(button,.project-video-external){font-size:13px}}
@media(prefers-reduced-motion:reduce){.hero-word,.hero-copy .hero-description{animation:none}.project-video-player :is(button,.project-video-external) span{transition:none}}
body[data-animations="off"] .hero-word,body[data-animations="off"] .hero-copy .hero-description{animation:none}

