:root { --motion-ease:cubic-bezier(.16,1,.3,1); }
.hero { overflow:clip; }
.hero-photo { transform-origin:62% 40%; }
.site-header { transition:box-shadow .25s ease; }
.site-header.is-scrolled { box-shadow:0 4px 18px rgba(21,33,29,.07); }
.site-header::after { content:''; position:absolute; bottom:-1px; left:0; width:100%; height:2px; background:var(--green); transform:scaleX(var(--reading-progress,0)); transform-origin:left; pointer-events:none; }
#site-nav > a:not(.button) { position:relative; text-decoration:none; }
#site-nav > a:not(.button)::after { content:''; position:absolute; left:0; right:0; bottom:9px; height:2px; background:var(--green); transform:scaleX(0); transform-origin:left; transition:transform .28s var(--motion-ease); }
#site-nav > a[aria-current]::after,#site-nav > a:not(.button):hover::after,#site-nav > a:not(.button):focus-visible::after { transform:scaleX(1); }
.button .icon,.text-link .icon,.project h3 .icon,.service-list .icon { transition:transform .32s var(--motion-ease); }
.button:hover .icon,.button:focus-visible .icon,.text-link:hover .icon,.text-link:focus-visible .icon,.project:hover h3 .icon,.project:focus-visible h3 .icon { transform:translateX(4px); }
.button:active { transform:translateY(1px); }
.project-media { display:block; overflow:hidden; border-radius:3px; }
.project-media img { border-radius:0; }
.project img { transition:transform 1s var(--motion-ease); }
.project:hover img { filter:none; }
.project h3 { transition:color .2s ease; }
.project:hover h3,.project:focus-visible h3 { color:var(--green); }
.service-list a { position:relative; isolation:isolate; }
.service-list a::before { content:''; position:absolute; inset:0 -16px; z-index:-1; background:var(--mint); opacity:0; transform:scaleX(.97); transform-origin:left; transition:opacity .2s ease,transform .4s var(--motion-ease); }
.service-list a:hover::before,.service-list a:focus-visible::before { opacity:1; transform:scaleX(1); }
.service-list a:hover > .icon,.service-list a:focus-visible > .icon { transform:translateX(5px); }
.feature-list li { position:relative; }
.feature-list li::after { content:''; position:absolute; bottom:-1px; left:0; width:64px; height:2px; background:var(--green); transform:scaleX(0); transform-origin:left; transition:transform .65s var(--motion-ease); }
.feature-list li.motion-arrived::after { transform:scaleX(1); }
.mini-athlete .bar-segment { transform-origin:left; }
.photo-frame { display:block; width:100%; border-radius:4px; overflow:hidden; }
.motion-disclosure > summary { list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; padding-right:0; }
.motion-disclosure > summary::-webkit-details-marker { display:none; }
.motion-disclosure > summary .icon { color:var(--green); transition:transform .3s var(--motion-ease); }
.motion-disclosure[open] > summary .icon { transform:rotate(45deg); }
html[data-motion='off'] { scroll-behavior:auto; }
html[data-motion='off'] *,html[data-motion='off'] *::before,html[data-motion='off'] *::after { animation:none!important; transition:none!important; }
html[data-motion='off'] .site-header::after { display:none; }
html[data-motion='off'] .photo-frame > img,html[data-motion='off'] .project img { transform:none!important; }
@media (hover:hover) and (pointer:fine) {
  html:not([data-motion='off']) .project:hover img,html:not([data-motion='off']) .project:focus-visible img { transform:scale(1.045); }
}
@media (max-width:760px) {
  #site-nav > a:not(.button)::after { right:auto; width:32px; bottom:7px; }
  .service-list a::before { inset-inline:-10px; }
}
@media (prefers-reduced-motion:reduce) {
  .photo-frame > img,.project img { transform:none!important; }
  .site-header::after { display:none; }
}
