/* Only the homepage hero is enhanced. The site below keeps its original layout. */
.home-page .architectural-hero { display:block; position:relative; min-height:150svh; padding:0; overflow:clip; background:var(--surface); }
.hero-stage { position:sticky; top:78px; height:calc(100svh - 78px); min-height:600px; isolation:isolate; overflow:clip; }
.hero-visual { position:absolute; inset:0 -3% 0 40%; z-index:1; }
.hero-visual canvas,.hero-visual > img { width:100%; height:100%; position:absolute; inset:0; object-fit:contain; }
.hero-visual canvas { display:block; opacity:0; transition:opacity .35s; }
.hero-visual.is-rendered canvas { opacity:1; }
.hero-visual.is-rendered > img { visibility:hidden; }
.hero-content { height:100%; display:flex; align-items:center; pointer-events:none; position:relative; z-index:2; }
.hero-content .hero-copy { width:48%; max-width:600px; transform-origin:left center; }
.architectural-hero h1 { font-size:clamp(3.6rem,5.9vw,6.6rem); line-height:1; letter-spacing:-.055em; }
.architectural-hero .eyebrow { font-size:.67rem; max-width:340px; letter-spacing:.12em; line-height:1.8; }
.architectural-hero .lead { font-size:1.06rem; max-width:370px; margin-top:26px; }
.architectural-hero .actions { gap:10px; margin-top:30px; flex-wrap:wrap; }
.architectural-hero a { pointer-events:auto; }
.architectural-hero .btn { font-size:.83rem; padding:13px 18px; min-height:46px; border-radius:5px; }
.hero-scroll { display:inline-flex; align-items:center; gap:22px; margin-top:38px; min-height:44px; font-size:.75rem; color:var(--accent-dark); }
.hero-scroll span { font-size:1.2rem; }
.hero-caption { position:absolute; bottom:26px; right:5%; left:52%; display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line-strong); padding-top:16px; font:10px/1.5 Consolas,monospace; color:var(--accent-dark); z-index:2; }
.scene-labels { position:absolute; inset:0; pointer-events:none; opacity:0; z-index:2; }
.scene-pause { display:none; background:var(--surface); color:var(--accent-dark); border:1px solid var(--line-strong); font:inherit; min-height:36px; padding:6px 10px; cursor:pointer; }
.scene-live .scene-pause { display:block; }
.is-rendered .scene-labels { opacity:1; }
.scene-labels span { position:absolute; top:0; left:0; white-space:nowrap; padding:5px 8px; color:var(--ink-soft); background:var(--surface); border-left:2px solid var(--accent); font:10px/1.4 Consolas,monospace; }
.home-page .reveal,.home-page .home-section-reveal,.home-page .process-step.reveal { opacity:1; transform:none; }
.home-page .project-media-site-preview { display:block; min-height:0; aspect-ratio:16/10; background:var(--ink); }
.project-media-site-preview img { width:100%; height:100%; object-fit:cover; object-position:top; }
.home-page #services { scroll-margin-top:115px; }
.home-page .card-number { color:var(--muted); }
@media(max-width:980px) {
 .hero-content .hero-copy { width:48%; }
 .architectural-hero h1 { font-size:clamp(3rem,6.6vw,4.4rem); }
 .hero-caption { font-size:8px; }
 .hero-caption span:last-child { display:none; }
 html:not(.js-nav) .home-page .nav-toggle { display:none; }
 html:not(.js-nav) .home-page .nav { display:flex; position:static; flex-wrap:wrap; flex-direction:row; padding:8px 0; border:0; box-shadow:none; }
 html:not(.js-nav) .home-page .nav-wrap { flex-wrap:wrap; }
}
@media(max-width:700px) {
 .home-page .architectural-hero { min-height:135svh; }
 .hero-stage { top:74px; height:calc(100svh - 74px); min-height:750px; }
 .hero-content { align-items:flex-start; padding-top:32px; }
 .hero-content .hero-copy { width:100%; max-width:500px; }
 .architectural-hero h1 { font-size:clamp(3.15rem,12vw,4.7rem); }
 .architectural-hero .eyebrow { font-size:.6rem; margin-bottom:16px; }
 .architectural-hero .lead { font-size:.95rem; margin-top:18px; max-width:330px; }
 .architectural-hero .actions { margin-top:20px; }
 .architectural-hero .btn { width:auto; font-size:.76rem; padding:10px 14px; }
 .hero-scroll { margin-top:10px; font-size:.67rem; min-height:40px; }
 .hero-visual { inset:350px -12% 18px; }
 .hero-caption { left:24px; right:24px; bottom:12px; font-size:9px; }
 .scene-labels span { font-size:8px; padding:3px 5px; }
}
@media(prefers-reduced-motion:reduce) {
 .home-page .architectural-hero { min-height:0; }
 .hero-stage { position:relative; top:0; }
 .hero-visual canvas { transition:none; }
}
