/* Motion follows the existing layout; content remains visible without JavaScript. */
:root{--motion-ease:cubic-bezier(.2,.7,.2,1)}
.reading-progress{position:fixed;left:0;right:0;top:0;height:3px;background:var(--lime);transform:scaleX(0);transform-origin:left;z-index:60;pointer-events:none}
.motion-toggle{display:none;background:transparent;border:1px solid #646c6e;color:var(--paper);font:600 10px/1.4 var(--body);padding:10px 13px;min-height:44px;cursor:pointer;white-space:nowrap}
.motion-enabled .motion-toggle,.motion-paused .motion-toggle{display:block}
.motion-toggle:hover{border-color:var(--lime);color:var(--lime)}
.motion-tools{padding:14px var(--gutter) 0;display:none;justify-content:flex-end}
.motion-enabled .motion-tools,.motion-paused .motion-tools{display:flex}
.ticker.motion-ticker{display:flex;align-items:center;gap:24px;padding-top:18px;padding-bottom:18px;overflow:hidden}
.ticker-window{flex:1;min-width:0;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent)}
.ticker-track{display:flex;width:max-content}
.ticker-group{display:flex;align-items:center;justify-content:space-between;gap:48px;padding-right:48px;min-width:max(1100px,100vw);flex-shrink:0}
.ticker-group span{white-space:nowrap}
.ticker-group b{color:var(--lime);font-size:23px;line-height:1;display:block!important}
.ticker-group[aria-hidden]{display:none}
.motion-enabled .ticker-group[aria-hidden]{display:flex}
.motion-enabled .ticker-track{animation:service-travel 38s linear infinite}
.motion-enabled .hero h1>span{animation:headline-arrive .85s var(--motion-ease) both}
.motion-enabled .hero h1>span:nth-child(1){animation-delay:.08s}
.motion-enabled .hero h1>span:nth-child(2){animation-delay:.2s}
.motion-enabled .hero h1>span:nth-child(3){animation-delay:.32s}
.motion-enabled .hero .eyebrow,.motion-enabled .service-hero .eyebrow{animation:copy-arrive .65s var(--motion-ease) both}
.motion-enabled .hero-description,.motion-enabled .service-strap{animation:copy-arrive .8s .4s var(--motion-ease) both}
.motion-enabled .hero-support{animation:copy-arrive .8s .5s var(--motion-ease) both}
.motion-enabled .hero-actions,.motion-enabled .service-hero-copy>.button{animation:copy-arrive .8s .58s var(--motion-ease) both}
.motion-enabled .hero-visual,.motion-enabled .service-hero-photo{animation:photo-arrive 1.1s .2s var(--motion-ease) both}
.motion-enabled .service-hero h1{animation:headline-arrive .9s .12s var(--motion-ease) both}
.motion-enabled .hero .dot{animation:visibility-pulse 2.6s 1.5s ease-in-out infinite}
.motion-enabled .hero .cross{animation:cross-turn 12s 2s linear infinite}
.motion-enabled .hero-image-frame{transform:translateY(var(--photo-shift,0px));will-change:transform}
.motion-enabled .motion-reveal{transition:opacity .75s var(--motion-ease),transform .75s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
.motion-enabled .motion-reveal:not(.is-visible){opacity:0;transform:translateY(32px)}
.motion-enabled .motion-reveal.is-visible{opacity:1;transform:none}
.button,.nav-contact{transition:background .2s,transform .25s var(--motion-ease),box-shadow .25s}
.button>span,.text-link>span,.service-body>a>span{display:inline-block;transition:transform .3s var(--motion-ease)}
.button:hover>span,.button:focus-visible>span,.text-link:hover>span,.service-body>a:hover>span{transform:translateX(5px)}
.button:hover{box-shadow:0 7px 22px #0002}
.profile-image>img{transition:transform .7s var(--motion-ease)}
.service:hover .profile-image img,.service:focus-within .profile-image img{transform:scale(1.035)}
.service-body>a{position:relative}
.service-body>a:after{content:'';position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--accent-ink);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--motion-ease)}
.service:hover .service-body>a:after,.service:focus-within .service-body>a:after{transform:scaleX(1)}
.contact form{transition:border-color .3s,box-shadow .3s}
.contact form:focus-within{border-color:var(--lime);box-shadow:0 0 0 1px #c8ff0026}
input,select,textarea{transition:background .25s,border-color .25s}
input:focus,select:focus,textarea:focus{background:#273034;border-color:var(--lime)}
.motion-enabled .nav-services[open] .service-menu{animation:menu-arrive .2s var(--motion-ease)}
.format-rows>div{transition:background .25s}
.format-rows>div:hover{background:#e9ece4}
@keyframes headline-arrive{from{opacity:0;transform:translateY(40px);clip-path:inset(100% 0 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}
@keyframes copy-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes photo-arrive{from{opacity:0;clip-path:inset(0 0 100%);transform:translateY(20px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}
@keyframes service-travel{to{transform:translateX(-50%)}}
@keyframes visibility-pulse{0%,100%{box-shadow:0 0 0 0 #c8ff0040}55%{box-shadow:0 0 0 7px #c8ff0000}}
@keyframes cross-turn{to{transform:rotate(360deg)}}
@keyframes menu-arrive{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.motion-paused *{animation:none!important;transition:none!important}
.motion-paused .motion-reveal{opacity:1!important;transform:none!important}
.motion-paused .hero-image-frame{transform:none;will-change:auto}
.motion-paused .reading-progress{display:none}
.motion-paused .ticker-group[aria-hidden]{display:none}
.motion-paused .ticker-track{transform:none}
.motion-paused .ticker-track,html:not(.motion-enabled) .ticker-track{width:100%}
.motion-paused .ticker-group,html:not(.motion-enabled) .ticker-group{width:100%}
.motion-paused .ticker-group,html:not(.motion-enabled) .ticker-group{min-width:0;gap:24px;flex-wrap:wrap;justify-content:flex-start;padding-right:0}
.motion-paused .ticker-window{mask-image:none}
@media(hover:hover) and (pointer:fine){.button:active{transform:translateY(0)}}
@media(max-width:1000px){.motion-enabled nav.open{animation:menu-arrive .25s var(--motion-ease)}}
@media(max-width:760px){
 .ticker.motion-ticker{gap:14px;padding-top:14px;padding-bottom:14px}
 .ticker-group{font-size:10px}
 .motion-toggle{font-size:9px;padding:10px;flex-shrink:0}
 .motion-enabled .hero-image-frame{transform:none;will-change:auto}
 .motion-paused .ticker-group{gap:12px;font-size:8px}
 .motion-paused .ticker-group b{display:none!important}
 .motion-tools{padding-top:10px}
 .motion-enabled .motion-reveal:not(.is-visible){transform:translateY(22px)}
}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important}
 .motion-reveal{opacity:1!important;transform:none!important}
 .hero-image-frame{transform:none!important;will-change:auto!important}
 .reading-progress{display:none}
 .ticker-group[aria-hidden]{display:none!important}
 .ticker-track{transform:none!important;width:100%}
 .ticker-group{min-width:0;width:100%;gap:24px;flex-wrap:wrap;justify-content:flex-start;padding-right:0}
 .ticker-window{mask-image:none}
}
