/* Full-screen looping video hero. */
.home-hero--scroll{display:block;height:100svh;min-height:100svh;padding:0;overflow:hidden}
.scroll-hero-stage{position:relative;width:100%;height:100%;overflow:hidden;isolation:isolate;background:var(--color-dark-green)}
.hero-scroll-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}

/* A constant dark veil keeps the message legible over every frame. */
.scroll-hero-finale{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:clamp(1.5rem,5vw,5rem);background:rgba(7,20,15,.15)}
.scroll-hero-message{display:flex;flex-direction:column;align-items:center;gap:clamp(1.5rem,3vh,2rem);width:100%;animation:hero-content-in 700ms var(--ease-out) both}
.scroll-hero-finale h1{max-width:20ch;margin:0;font-family:"Spline Sans",sans-serif;font-weight:500;font-size:calc(clamp(2.35rem,5.4vw,5.75rem) + 5pt);line-height:1.12;letter-spacing:-.045em;text-align:center;text-wrap:balance;color:var(--color-off-white)}
.scroll-hero-finale .hero-kerning-r{padding-inline-end:.04em}
@keyframes hero-content-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* Quiet editorial details stay above the video and overlay. */
.scroll-hero-stage::after{content:"";position:absolute;inset:auto 0 0;height:180px;z-index:2;pointer-events:none;background:linear-gradient(transparent,rgba(7,20,15,.35))}
.scroll-hero-footer{position:absolute;z-index:3;left:clamp(1.25rem,4vw,4rem);right:clamp(1.25rem,4vw,4rem);bottom:max(clamp(1.5rem,4vh,3rem),env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:1.5rem;color:var(--color-off-white)}
.scroll-hero-caption{min-width:0;margin:0;font-family:"Spline Sans",sans-serif;font-size:clamp(.625rem,.85vw,.75rem);font-weight:500;line-height:1.65;letter-spacing:.22em}
.scroll-hero-caption span{display:block}
.scroll-hero-caption--right{justify-self:end;text-align:right}

/* Primary hero action. */
.scroll-hero-projects{display:inline-flex;align-items:center;justify-content:center;gap:.85rem;min-height:50px;padding:.2rem .3rem .2rem 1.5rem;border:1px solid rgba(255,255,255,.72);border-radius:var(--radius-pill);background:#fff;box-shadow:0 10px 30px rgba(7,20,15,.16),inset 0 1px 0 rgba(255,255,255,.9);color:var(--color-dark-green);font-family:"Spline Sans",sans-serif;font-size:1rem;font-weight:500;line-height:1.4;white-space:nowrap;transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,transform 160ms var(--ease-out),box-shadow 180ms ease}
.scroll-hero-projects svg{width:42px;height:42px;padding:11px;border-radius:50%;background:#A9D88F;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform 180ms var(--ease-out),background-color 180ms ease,color 180ms ease}
.scroll-hero-projects:focus-visible{outline:2px solid var(--color-off-white);outline-offset:5px}
.scroll-hero-projects:active{transform:scale(.97)}

@media(hover:hover) and (pointer:fine){
  .scroll-hero-projects:hover{background:#7FB464;border-color:#7FB464;color:#fff;box-shadow:0 12px 34px rgba(7,20,15,.2)}
  .scroll-hero-projects:hover svg{background:#fff;color:var(--color-dark-green);transform:translateX(2px)}
}

@media(max-width:720px){
  .scroll-hero-finale{padding:2rem 1.5rem}
  .scroll-hero-finale h1{font-size:min(calc(clamp(2.25rem,9vw,3.5rem) + 15pt),calc((100vw - 3rem)/5.5));line-height:1.16;letter-spacing:-.035em}
  .scroll-hero-finale .hero-title-line{display:block;white-space:nowrap}
  .scroll-hero-footer{left:1rem;right:1rem;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem}
  .scroll-hero-caption{font-size:clamp(.5625rem,2.5vw,.625rem);letter-spacing:.12em;line-height:1.65}
  .hero-scroll-video{object-position:center}
}

@media(prefers-reduced-motion:reduce){
  .scroll-hero-message{animation:none}
  .scroll-hero-projects,.scroll-hero-projects svg{transition:none}
  .scroll-hero-projects:active{transform:none}
}
