:root{--ease:cubic-bezier(.2,.78,.2,1)}
html.motion-ready .hero-copy>*{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s var(--ease);transition-delay:var(--hero-delay,0s)}
html.motion-ready .hero-copy>:nth-child(2){--hero-delay:.22s}
html.motion-ready .hero-copy>:nth-child(3){--hero-delay:.46s}
html.motion-ready .hero-photo{clip-path:inset(10% 0 0 0 round 190px 20px 20px 20px);opacity:.18;transform:translateY(26px) scale(1.025);transition:clip-path 1.2s var(--ease) .34s,opacity 1.1s ease .34s,transform 1.2s var(--ease) .34s}
html.motion-ready.motion-start .hero-copy>*{opacity:1;transform:none}
html.motion-ready.motion-start .hero-photo{clip-path:inset(0 round 190px 20px 20px 20px);opacity:1;transform:none}
.hero-note{opacity:0;transform:translateY(14px);transition:opacity .7s ease 1.05s,transform .7s var(--ease) 1.05s}
html.motion-ready.motion-start .hero-note{opacity:1;transform:none}
.soft-reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .85s var(--ease);transition-delay:var(--delay,0ms)}
.soft-reveal.on{opacity:1;transform:none}
.image-reveal{clip-path:inset(0 0 12% 0);opacity:.2;transform:scale(1.025);transition:clip-path 1s var(--ease),opacity .8s ease,transform 1s var(--ease)}
.image-reveal.on{clip-path:inset(0);opacity:1;transform:none}
a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(hover:hover) and (pointer:fine){.nav-cta,.button-primary{transition:background .25s,transform .3s var(--ease),box-shadow .3s}.nav-cta:hover,.button-primary:hover{background:#245b59;box-shadow:0 10px 22px rgba(23,60,63,.16);transform:translateY(-3px)}.links a,.text-link{transition:color .25s}.links a:hover,.text-link:hover{color:var(--green)}.service-card{transition:border-color .3s,box-shadow .35s,transform .35s var(--ease)}.service-card:hover{border-color:rgba(47,111,108,.3);box-shadow:0 18px 45px rgba(23,60,63,.08);transform:translateY(-5px)}}
@media(max-width:899px){html.motion-ready.motion-start .hero-photo{clip-path:inset(0 round 120px 16px 16px 16px)}}
