/* Movement has a role: introduce, connect, explain, then get out of the way. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--reading-progress:0}
.site-header{position:sticky;top:0;z-index:50;background:var(--bg)}
.site-header:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(var(--reading-progress));transform-origin:left;pointer-events:none}
.site-header nav a{position:relative}
.site-header nav a:after{content:'';position:absolute;left:0;right:0;bottom:5px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
.site-header nav a:hover:after,.site-header nav a:focus-visible:after,.site-header nav a[aria-current]:after{transform:scaleX(1);transform-origin:left}
.header-cta{position:relative;isolation:isolate;overflow:hidden;transition:color .3s,border-color .3s}
.header-cta:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--accent);transform:translateY(101%);transition:transform .45s var(--ease-out)}
.header-cta:hover,.header-cta:focus-visible{color:#171b17;border-color:var(--accent)}
.header-cta:hover:before,.header-cta:focus-visible:before{transform:translateY(0)}
.header-cta:hover span,.header-cta:focus-visible span{color:#171b17}
.hero-line{display:block;overflow:clip;padding-block:.14em;margin-block:-.14em;color:var(--text)!important}
.hero-line>span{display:block}
.hero-line:nth-of-type(2)>span{color:var(--accent)}
.intro-ready .hero-line>span{animation:headline-enter 1s var(--ease-out) both;animation-delay:calc(var(--line) * 100ms)}
.intro-ready .hero-label,.intro-ready .hero-bottom{animation:content-enter .85s var(--ease-out) both;animation-delay:180ms}
.intro-ready .hero-bottom{animation-delay:400ms}
@keyframes headline-enter{from{transform:translateY(115%) rotate(1.5deg)}to{transform:translateY(0) rotate(0)}}
@keyframes content-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.hero-art{transform:translate3d(var(--scene-x,0px),calc(var(--scene-y,0px) + var(--scene-scroll,0px)),0) rotate(var(--scene-rotate,0deg));transition:transform .7s var(--ease-out);transform-origin:55% 50%}
.scene-paused .signal-routes path,.scene-paused .signal-points circle,.page-backgrounded .signal-routes path,.page-backgrounded .signal-points circle{animation-play-state:paused}
.signal-routes path{animation:none;stroke-dasharray:none}
.signal-flows{fill:none;stroke:#f8dfcc;stroke-width:3;stroke-linecap:round;opacity:.8;pointer-events:none}
.signal-flows path{stroke-dasharray:5 100;animation:signal-flow 12s linear infinite;animation-delay:var(--flow-delay,0s)}
.scene-paused .signal-flows path,.page-backgrounded .signal-flows path{animation-play-state:paused}
@keyframes signal-flow{from{stroke-dashoffset:105}to{stroke-dashoffset:0}}
.motion-ready .reveal{opacity:0;transform:translate3d(0,35px,0);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-revealed{opacity:1;transform:none}
.button{position:relative;isolation:isolate}
.button:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease-out)}
.button:hover:after,.button:focus-visible:after{transform:scaleX(1);transform-origin:left}
.button>span{transition:transform .55s var(--ease-out),background-color .3s,color .3s}
.button:hover>span,.button:focus-visible>span{transform:translate(var(--magnet-x,0px),var(--magnet-y,0px)) rotate(45deg)}
.text-link{position:relative;display:inline-block;transition:color .3s}
.text-link:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}
.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(1);transform-origin:left}
.service-selector{position:relative;transition:color .3s,padding-left .5s var(--ease-out)}
.service-selector:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .65s var(--ease-out)}
.service-selector:hover,.service-selector:focus-visible{padding-left:10px}
.service-selector:hover:after,.service-selector:focus-visible:after,.service-selector.is-active:after{transform:scaleX(1);transform-origin:left}
.service-preview{position:sticky;top:135px}
.product-section .product-visual{transform:translate3d(0,var(--product-rise,0px),0) rotate(var(--product-turn,-4deg));transition:transform .75s var(--ease-out)}
.product-section .product-visual img{transition:filter .6s;filter:saturate(.85)}
.product-section .product-visual:hover img{filter:saturate(1.1)}
.process-section{display:grid;grid-template-columns:1fr 1.05fr;gap:8vw;align-items:start}
.process-section>.section-heading{position:sticky;top:155px;margin-bottom:0}
.process-section .section-heading h2{font-size:clamp(35px,4vw,60px)}
.process-section .process{margin:0}
.process-section .process li{position:relative;grid-template-columns:35px 1fr;gap:18px 20px;min-height:210px;padding:32px 0!important}
.process-section .process li:before{content:'';position:absolute;top:-1px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(var(--step-progress,0));transform-origin:left}
.process-section .process h3{font-size:32px;color:var(--muted);transition:color .4s}
.process-section .process p{grid-column:2;font-size:15px;margin:0 0 25px;max-width:370px}
.process-section .process .step-active h3{color:var(--text)}
.process-section .process .step-active>span{color:var(--accent)}
.agency-top>span{transition:transform .8s var(--ease-out)}
.agency-banner:has(.button:hover) .agency-top>span,.agency-banner:has(.button:focus-visible) .agency-top>span{transform:translate(12px,-12px)}
.faq summary{transition:color .3s}
.faq summary:hover,.faq summary:focus-visible{color:var(--accent)}
.faq details[open]>p{animation:content-enter .45s var(--ease-out)}
.footer-brand{max-width:230px;align-self:start}
.footer-brand img{width:220px;height:auto;transition:opacity .3s}
.footer-brand:hover img{opacity:.7}
footer nav a{transition:color .25s}
input,textarea,select{transition:border-color .25s,background-color .25s}
input:hover,textarea:hover,select:hover{border-color:var(--muted)}
input:focus,textarea:focus,select:focus{border-color:var(--accent)}
@media(max-width:850px){.service-preview{top:110px}.process-section{gap:5vw}.process-section .section-heading h2{font-size:37px}.process-section .process h3{font-size:26px}.process-section .process li{min-height:200px;grid-template-columns:22px 1fr;gap:16px}.process-section>.section-heading{top:115px}}
@media(max-width:600px){.hero-art{transition:transform .5s var(--ease-out)}.service-preview{position:relative;top:auto}.process-section{display:block}.process-section>.section-heading{position:static;margin-bottom:35px}.process-section .section-heading h2{font-size:35px}.process-section .process li{min-height:155px;padding:25px 0!important;grid-template-columns:25px 1fr;gap:12px 20px}.process-section .process h3{font-size:25px}.process-section .process p{font-size:13px;margin-bottom:10px}.footer-brand img{width:190px}.motion-ready .reveal{transform:translate3d(0,22px,0)}.motion-ready .reveal.is-revealed{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready .reveal{opacity:1;transform:none;transition:none}.intro-ready .hero-line>span,.intro-ready .hero-label,.intro-ready .hero-bottom,.faq details[open]>p,.signal-flows path{animation:none}.signal-flows{display:none}.hero-art{transform:none;transition:none}.product-section .product-visual{transform:rotate(-4deg);transition:none}.process-section .process h3{color:var(--text)}.process-section .process li:before{transform:scaleX(1)}.button:hover>span,.button:focus-visible>span{transform:none}.service-selector:hover,.service-selector:focus-visible{padding-left:0}}
