/* Enhancement is opt-in: content has its ordinary visible state without motion.js. */
html.motion{scroll-padding-top:120px}
html.motion .site-header{position:sticky;top:0;z-index:60;background:rgba(17,21,18,.68)}
html.motion[data-motion='active'] .site-header{transition:background-color .35s ease,box-shadow .35s ease,border-color .35s ease}
html.motion[data-scrolled='true'] .site-header{background:rgba(17,21,18,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 14px 35px #0003;border-color:#64704b66}
html.motion #nav a[aria-current='location']{color:var(--lime)}
html.motion #nav .nav-contact[aria-current='location']:hover{color:var(--ink)}
.motion-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:9px 12px;border:1px solid #69745b88;background:transparent;color:#d6dfca;font:8px var(--mono);letter-spacing:.5px;white-space:nowrap;flex-shrink:0}
.motion-toggle:hover{border-color:var(--lime);color:var(--lime)}
.motion-toggle:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
.motion-toggle-icon{width:10px;font-size:11px;line-height:1;text-align:center}

/* One-time reveals use compositing only; document dimensions never animate. */
html.motion[data-motion='active'] .motion-reveal{transition:opacity .65s ease var(--reveal-delay,0ms),translate .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
html.motion[data-motion='active'] .motion-reveal[data-reveal='pending']{opacity:0;translate:0 22px}
html.motion[data-motion='active'] .motion-reveal[data-reveal='visible'],html.motion[data-motion='active'] .motion-reveal:focus-within{opacity:1;translate:0 0}
html.motion[data-motion='active'] .motion-intro{animation:sk-enter .95s cubic-bezier(.19,1,.22,1) var(--intro-delay,0ms) backwards}
@keyframes sk-enter{from{opacity:0;translate:0 22px}to{opacity:1;translate:0 0}}

/* Pointer translation composes with independently authored SVG/film transforms. */
@media(hover:hover) and (pointer:fine){
  html.motion[data-motion='active'] .hero-media{translate:var(--motion-x,0px) var(--motion-y,0px);transition:translate .75s cubic-bezier(.16,1,.3,1);will-change:translate}
  html.motion[data-motion='active'][data-motion-running='true'] .motion-scene[data-motion-visible='false'] .hero-media{will-change:auto}
}

/* The single control owns all CSS graphics, including descendants and pseudo-elements. */
html.motion[data-motion='paused'],html.motion[data-motion='paused'] *,html.motion[data-motion='paused'] *::before,html.motion[data-motion='paused'] *::after,
html.motion[data-motion-running='false'],html.motion[data-motion-running='false'] *,html.motion[data-motion-running='false'] *::before,html.motion[data-motion-running='false'] *::after,
html.motion .motion-scene[data-motion-visible='false'] *,html.motion .motion-scene[data-motion-visible='false'] *::before,html.motion .motion-scene[data-motion-visible='false'] *::after{animation-play-state:paused!important}
html.motion[data-motion='paused'] .motion-reveal,html.motion[data-motion='paused'] .motion-intro{opacity:1!important;translate:0 0!important;animation:none!important;transition:none!important}
html.motion[data-motion='paused'] .hero-media{translate:0 0!important;transition:none!important;will-change:auto}
html.motion[data-motion='paused'] *,html.motion[data-motion='paused'] *::before,html.motion[data-motion='paused'] *::after{transition:none!important}
html.motion[data-motion-running='false'] .hero-media{transition:none!important;will-change:auto}
html.motion[data-motion='paused']{scroll-behavior:auto}
@media(prefers-reduced-motion:reduce){
  html:not([data-motion='active']) .motion-reveal,html:not([data-motion='active']) .motion-intro{opacity:1!important;translate:none!important;animation:none!important;transition:none!important}
  html:not([data-motion='active']) .hero-media{translate:none!important;will-change:auto}
}
@media(max-width:760px){
  html.motion{scroll-padding-top:100px}
  .hero-foot{flex-wrap:wrap;row-gap:7px;padding-block:14px;min-height:108px}
  .hero-foot .motion-toggle{margin-left:auto;min-height:40px;font-size:7px}
}
@media print{
  html.motion .site-header{position:static;background:none;box-shadow:none;backdrop-filter:none}
  .motion-toggle{display:none!important}
  .motion-reveal,.motion-intro{opacity:1!important;translate:none!important;animation:none!important;transition:none!important}
}
