/* Full-bleed homepage only; approved image and brand artwork stay unmodified. */
.hero-immersive{padding:0}
.hero-stage{position:relative;isolation:isolate;overflow:hidden;min-height:48rem;height:96svh;background:var(--navy);color:var(--ivory);display:flex;align-items:flex-end}
.hero-stage>.project-figure{position:absolute;inset:0;margin:0;pointer-events:none}
.hero-stage>.project-figure img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:50% 46%}
.hero-stage::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,44,59,.84) 0%,rgba(20,44,59,.72) 34%,rgba(20,44,59,.40) 50%,rgba(20,44,59,.08) 68%,rgba(20,44,59,.02) 100%),linear-gradient(180deg,rgba(20,44,59,.68),transparent 24%,transparent 65%,rgba(20,44,59,.66))}
.hero-copy{position:relative;z-index:1;width:100%;max-width:42rem;margin-left:max(var(--gutter),calc((100% - var(--max))/2));padding-block:calc(var(--header-height) + var(--s5)) 9rem;padding-right:var(--s4)}
.hero-immersive .eyebrow{color:var(--ivory);font-size:.625rem;letter-spacing:.12em;max-width:35rem;margin-bottom:var(--s3)}
.hero-immersive h1{font-size:clamp(2.75rem,4vw,3.75rem);line-height:1.1;text-wrap:balance}
.hero-immersive h1 span{display:block}
.hero-copy .lead{color:var(--ivory);font-size:1rem;line-height:1.75;margin-top:var(--s3);max-width:31rem}
.hero-copy .actions{margin-top:var(--s4);gap:var(--s3)}
.hero-copy .button{background:var(--ivory);border-color:var(--ivory);color:var(--navy)}
.hero-copy .button:hover{background:transparent;color:var(--ivory)}
.hero-copy .text-link{color:var(--ivory)}
.hero-stage :focus-visible{outline-color:var(--ivory)}
.hero-stage .project-figure figcaption{position:absolute;z-index:2;right:var(--gutter);bottom:var(--s4);margin:0;text-align:right;color:var(--ivory);font-size:.6875rem;line-height:1.7;max-width:27rem}
.hero-image-title{display:block;font-size:.8125rem;margin-bottom:4px}
.hero-scroll{position:absolute;z-index:2;bottom:var(--s4);left:max(var(--gutter),calc((100% - var(--max))/2));display:flex;align-items:center;gap:var(--s2);min-height:44px;font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;transition:opacity var(--motion-base),visibility var(--motion-base)}
.hero-scroll>span[aria-hidden]{display:block;width:1px;height:32px;background:var(--bronze);transform-origin:top}
.hero-immersive .scope-line{padding-block:var(--s3);border-top:0}
.project-showcase .section-top{margin-bottom:0}
/* Reserve the same first-frame geometry before modules execute. */
html[data-page="home"] .site-header{position:fixed;inset:0 0 auto;transition:background var(--motion-base),border-color var(--motion-base),color var(--motion-base)}
.brand-mark{position:relative;display:block}
.brand-mark .brand-logo{transition:opacity var(--motion-base),visibility var(--motion-base)}
.brand-logo-ivory{position:absolute;inset:0;opacity:0}
html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open){background:transparent;color:var(--ivory);border-color:transparent}
html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open) .brand-mark>.brand-logo:not(.brand-logo-ivory){opacity:0}
html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open) .brand-logo-ivory{opacity:1}
html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open) .languages a,html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open) .languages>span{color:var(--ivory)}
html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open) .header-cta{background:transparent;border-color:rgba(245,241,232,.55);color:var(--ivory)}
html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open) :focus-visible{outline-color:var(--ivory)}
html[data-page="home"].js .site-header.scrolled,html[data-page="home"].js .site-header.menu-open{background:var(--ivory);color:var(--navy);border-bottom-color:var(--line)}
html[data-page="home"].js .site-header.scrolled~main .hero-scroll{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:1100px){
 .hero-copy{max-width:35rem;padding-bottom:9rem}
 .hero-immersive h1{font-size:clamp(2.5rem,4.4vw,3.25rem)}
}
/* Portrait art direction: keep the entire architecture, then continue into the darker copy area. */
@media(max-aspect-ratio:6/5){
 .hero-stage{height:auto;min-height:100svh;align-items:flex-start}
 .hero-stage>.project-figure img{position:absolute;top:calc(var(--header-height) - 8px);width:100%;height:auto;object-fit:contain;object-position:center;transform:none}
 .hero-stage::before{background:linear-gradient(180deg,rgba(20,44,59,.28),transparent var(--header-height),transparent calc(var(--header-height) + 48vw),var(--navy) calc(var(--header-height) + 67vw))}
 .hero-copy{max-width:42rem;margin-inline:var(--gutter);padding:calc(var(--header-height) + 66.6667vw + var(--s1)) 0 6rem}
 .hero-stage .project-figure figcaption{left:var(--gutter);right:var(--gutter);bottom:var(--s3);text-align:left;max-width:none}
 .hero-scroll{display:none}
}
@media(max-width:767px){
 html[data-page="home"]{--header-height:5rem}
 html[data-page="home"] .header-inner{display:flex;flex-wrap:nowrap;justify-content:space-between;min-height:var(--header-height);gap:var(--s2);padding-block:var(--s1)}
 html[data-page="home"] .header-inner>.brand-link{margin:0}
 html[data-page="home"] .header-inner .brand-logo{width:240px}
 html[data-page="home"] .menu-toggle{min-width:44px;justify-content:center;padding-inline:8px}
 html[data-page="home"] .menu-toggle [data-i18n]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 html[data-page="home"]:not(.js) .header-inner{flex-wrap:wrap}
 .hero-immersive h1{font-size:clamp(2rem,8.7vw,2.5rem);line-height:1.08}
 .hero-immersive .eyebrow{font-size:.5625rem;line-height:1.7;gap:12px;margin-bottom:12px}
 .hero-copy{padding-top:calc(var(--header-height) + 66.6667vw + var(--s1));padding-bottom:5rem}
 .hero-copy .lead{font-size:.875rem;line-height:1.6;margin-top:var(--s2)}
 .hero-copy .actions{flex-direction:column;align-items:flex-start;gap:8px;margin-top:18px}
 .hero-copy .actions .button{padding-block:12px;min-height:48px}
 .hero-stage .project-figure figcaption{font-size:.625rem}
}
@media(prefers-reduced-motion:reduce){.hero-stage>.project-figure img{transform:none!important}}

html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open) .menu-icon,html[data-page="home"].js .site-header:not(.scrolled):not(.menu-open) .menu-icon::after{border-color:var(--ivory)}
