/* Home-only portfolio: complete static gallery first, motion as an enhancement. */
.home-portfolio{background:var(--bg);padding-bottom:64px;border-bottom:1px solid var(--line);scroll-margin-top:72px}
.home-portfolio-prelude{max-width:1600px;margin:auto;padding:120px clamp(22px,4vw,64px) 22px}
.home-portfolio-prelude .eyebrow{font-size:.68rem;letter-spacing:.14em;color:#78673e;margin:0;line-height:16px}
.home-portfolio-stage{max-width:1600px;margin:auto;padding:0 clamp(22px,4vw,64px) 30px}
.home-portfolio-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px}
.home-portfolio-heading h2{font-weight:500;font-size:clamp(2.5rem,4vw,4.1rem);letter-spacing:-.06em;line-height:1.04;margin:0}
.home-portfolio-scroll{max-width:180px;font-size:.73rem;line-height:1.6;margin:0;color:var(--muted)}
.home-portfolio-scroll span{display:block;margin-top:6px;font-size:1.1rem;color:var(--ink)}
.home-portfolio-grid{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 28px}
.home-portfolio-card{display:flex;flex-direction:column;position:relative;min-width:0;background:var(--bg);transform-origin:50% 50%;color:var(--ink);translate:0 0;transition:translate 240ms cubic-bezier(.2,.7,.3,1)}
.home-portfolio-image{position:relative;aspect-ratio:1.6;overflow:hidden;min-height:0;background:#d7d4cc;flex:1}
.home-portfolio-image:after{content:'';position:absolute;inset:0;border:1px solid #00000010;pointer-events:none}
.home-portfolio-image img{width:100%;height:100%;object-fit:cover}
.home-portfolio-open{position:absolute;left:14px;bottom:14px;padding:8px 12px;background:#f6f4eff0;color:#111;font-size:.68rem;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}
@media(hover:hover){.home-portfolio-card:hover{translate:0 -4px}.home-portfolio-card:hover .home-portfolio-open{opacity:1;transform:none}}
.home-portfolio-card:focus-visible .home-portfolio-open{opacity:1;transform:none}.home-portfolio-card:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.home-portfolio-caption{display:grid;grid-template-columns:1fr auto;column-gap:10px;row-gap:4px;padding-top:13px;flex:none;min-height:54px}
.home-portfolio-caption h3{font-size:clamp(.86rem,1.15vw,1.04rem);line-height:1.25;font-weight:600;letter-spacing:-.025em;margin:0}
.home-portfolio-caption>span{font-size:1rem;line-height:1.2}.home-portfolio-caption p{grid-column:1/-1;font-size:.66rem;line-height:1.45;color:var(--muted);margin:0}
.home-portfolio-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:32px;padding-top:18px;border-top:1px solid var(--line)}
.home-portfolio-bottom p{font-size:.68rem;line-height:1.5;color:var(--muted);margin:0}.home-portfolio-bottom a{display:flex;gap:30px;align-items:center;font-size:.75rem;white-space:nowrap}.home-portfolio-bottom a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
/* Desktop: rise → spread → settled grid. The last fifth is a readable hold. */
@media(min-width:901px) and (min-height:650px) and (prefers-reduced-motion:no-preference){
 .home-portfolio.is-motion{height:calc(200svh + 222px);padding-bottom:64px}
 .home-portfolio.is-motion .home-portfolio-stage{position:sticky;top:68px;height:calc(100svh - 68px);display:flex;flex-direction:column;padding-top:24px;padding-bottom:24px;overflow:hidden}
 .home-portfolio.is-motion .home-portfolio-heading{flex:none;margin-bottom:28px;opacity:var(--portfolio-heading-opacity,1);transform:translateY(var(--portfolio-heading-y,0px))}
 .home-portfolio.is-motion .home-portfolio-heading h2{font-size:clamp(2.5rem,3.6vw,3.7rem)}
 .home-portfolio.is-motion .home-portfolio-grid{flex:1;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr));gap:28px}
 .home-portfolio.is-motion .home-portfolio-image{aspect-ratio:auto}
 .home-portfolio.is-motion .home-portfolio-card{transform:translate3d(var(--portfolio-x,0px),var(--portfolio-y,0px),0) rotate(var(--portfolio-rotate,0deg)) scale(var(--portfolio-scale,1));will-change:transform;background:transparent}
 .home-portfolio.is-motion .home-portfolio-image{box-shadow:0 var(--portfolio-shadow-y,0px) var(--portfolio-shadow-blur,0px) #00000020}
 .home-portfolio.is-motion .home-portfolio-caption{opacity:var(--portfolio-label-opacity,1);transform:translateY(var(--portfolio-label-y,0px))}
 .home-portfolio.is-motion .home-portfolio-bottom{flex:none;margin-top:24px;padding-top:15px}
 .home-portfolio.is-motion .home-portfolio-scroll{opacity:calc(1 - var(--portfolio-progress,0))}
 .home-portfolio.is-motion .home-portfolio-card:focus-visible .home-portfolio-caption{opacity:1;transform:none}
}
/* Space after the portfolio and roomier, stable service targets. */
.home-portfolio+#what-we-do{padding-top:100px}
#what-we-do .service-row-toggle{padding-top:32px;padding-bottom:32px;min-height:112px}
@media(max-width:900px){
 .home-portfolio{padding-bottom:42px}.home-portfolio-prelude{padding:64px 22px 22px}.home-portfolio-stage{padding:0 22px 24px}.home-portfolio-heading{margin-bottom:32px;align-items:start}.home-portfolio-heading h2{font-size:clamp(2.4rem,5.6vw,3.2rem)}.home-portfolio-scroll{display:none}.home-portfolio-grid{grid-template-columns:1fr;gap:42px}.home-portfolio-image{aspect-ratio:1.5}.home-portfolio-caption h3{font-size:1.04rem}.home-portfolio-caption p{font-size:.7rem}.home-portfolio-open{display:none}.home-portfolio+#what-we-do{padding-top:72px}
}
@media(max-width:540px){
 .home-portfolio-prelude{padding-left:18px;padding-right:18px}.home-portfolio-stage{padding-left:18px;padding-right:18px}.home-portfolio-heading h2{font-size:2.55rem;max-width:320px}.home-portfolio-grid{gap:40px}.home-portfolio-image{aspect-ratio:1.4}.home-portfolio-caption{padding-top:14px;min-height:54px}.home-portfolio-bottom{align-items:start;flex-direction:column;gap:16px;margin-top:34px}.home-portfolio-bottom p{font-size:.7rem}.home-portfolio-bottom a{font-size:.82rem}
}
@media(max-width:760px){#what-we-do .service-row-toggle{padding-top:28px;padding-bottom:28px;min-height:96px}}
@media(max-width:900px) and (prefers-reduced-motion:no-preference){
 .home-portfolio.has-mobile-reveals .home-portfolio-card .home-portfolio-image{opacity:.7;transform:translateY(12px);transition:opacity 380ms ease,transform 460ms cubic-bezier(.2,.7,.3,1)}
 .home-portfolio.has-mobile-reveals .home-portfolio-card.is-revealed .home-portfolio-image{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){.home-portfolio-card,.home-portfolio-open{transition:none}.home-portfolio-card{translate:none}.home-portfolio-image{opacity:1;transform:none}}
