/* Motion remains optional and follows the visitor's accessibility preference. */
.hero h1>.hero-line{display:block;font-size:inherit;line-height:1.12;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1>.hero-location{font-size:.68em;line-height:1.3;margin-top:16px}
.hero h1 .line-inner{display:block;font-size:inherit;line-height:inherit}
.scroll-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--red);transform:scaleX(var(--scroll-progress,0));transform-origin:left;z-index:60;pointer-events:none}
.header-inner,.brand,#navigation{transition:height .35s ease,width .35s ease}
#navigation>a{position:relative}
#navigation>a:after{content:'';position:absolute;height:2px;background:var(--red);left:17px;right:17px;bottom:22px;transform:scaleX(0);transform-origin:left;transition:transform .35s}
#navigation>a:hover:after,#navigation>a.active:after{transform:scaleX(1)}
.button{position:relative;overflow:hidden;isolation:isolate}
.button:after{content:'';position:absolute;inset:-50% auto -50% -80%;width:45%;background:linear-gradient(90deg,transparent,#ffffff26,transparent);transform:skew(-20deg);transition:left .6s;z-index:-1}
.button:hover:after{left:140%}
.button>span,.text-link>span{transition:transform .35s cubic-bezier(.2,.65,.2,1)}
.button:hover>span{transform:translate(3px,-3px)}
.text-link:hover>span{transform:translateX(7px)}
.js .reveal{transform:translate3d(0,55px,0);transition:opacity .95s cubic-bezier(.2,.65,.2,1),transform .95s cubic-bezier(.2,.65,.2,1);transition-delay:var(--reveal-delay,0ms)}
.js .reveal.visible{opacity:1;transform:translate3d(0,0,0)}
.js .about-visual.reveal{transform:translate3d(-55px,0,0)}
.js .about-copy.reveal{transform:translate3d(55px,0,0)}
.js .about-visual.reveal.visible,.js .about-copy.reveal.visible{transform:translate3d(0,0,0)}
.js .about-visual>img{clip-path:inset(0 100% 0 0);transition:clip-path 1.3s cubic-bezier(.2,.65,.2,1)}
.js .about-visual.visible>img{clip-path:inset(0 0 0 0)}
.js .about-ribbon{opacity:0;translate:-25px 15px;transition:opacity .7s .5s,translate .9s .5s}
.js .about-visual.visible .about-ribbon{opacity:1;translate:0 0}
.js .service.visible:hover{transform:translate3d(0,-7px,0);transition-delay:0ms}
.service-image img{transition:transform .6s cubic-bezier(.2,.65,.2,1)}
.ghost-word{transform:translateX(var(--word-offset,0px));will-change:transform}
.motion-ready .hero-copy>.eyebrow{animation:fade-up .8s .08s both}
.motion-ready .hero-line .line-inner{animation:line-enter 1.05s cubic-bezier(.2,.7,.2,1) both}
.motion-ready .hero-line:nth-child(1) .line-inner{animation-delay:.15s}
.motion-ready .hero-line:nth-child(2) .line-inner{animation-delay:.3s}
.motion-ready .hero-line:nth-child(3) .line-inner{animation-delay:.45s}
.motion-ready .hero .intro{animation:fade-up .95s .6s both}
.motion-ready .hero .button{animation:fade-up .95s .75s backwards}
.motion-ready .hero-car{animation:car-drive-in 2.4s .2s both;margin-top:var(--car-offset,0px);transform-origin:57% 78%;will-change:translate,rotate,scale}
.motion-ready .hero-facts>span{animation:fade-up .8s 1s backwards}
.motion-ready .hero-facts>span:nth-child(2){animation-delay:1.12s}
.motion-ready .hero-facts>span:nth-child(3){animation-delay:1.24s}
@keyframes line-enter{from{transform:translateY(115%);opacity:.1}to{transform:translateY(0);opacity:1}}
@keyframes fade-up{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
@keyframes car-drive-in{0%{opacity:1;translate:100vw 0;rotate:-.3deg;scale:.98;animation-timing-function:cubic-bezier(.12,.32,.25,1)}72%{opacity:1;translate:-9px 0;rotate:.35deg;scale:1;animation-timing-function:ease-out}86%{translate:2px 1px;rotate:-.12deg;scale:1;animation-timing-function:ease-in-out}100%{opacity:1;translate:0 0;rotate:0deg;scale:1}}
@media(max-width:800px){.js .about-copy.reveal{transform:translate3d(0,45px,0)}.motion-ready .hero-car{margin-top:0}#navigation>a:after{left:10px;right:auto;width:30px;bottom:6px}}
@media(max-width:560px){.js .service.reveal{transition-delay:0ms}.js .about-visual.reveal{transform:translate3d(0,45px,0)}.motion-ready .hero-car{animation-name:car-drive-mobile}.ghost-word{will-change:auto}}
@keyframes car-drive-mobile{0%{opacity:1;translate:115vw 0;rotate:-.3deg;scale:.98;animation-timing-function:cubic-bezier(.12,.32,.25,1)}72%{opacity:1;translate:-5px 0;rotate:.3deg;scale:1;animation-timing-function:ease-out}86%{translate:1px 1px;rotate:-.1deg;scale:1;animation-timing-function:ease-in-out}100%{opacity:1;translate:0 0;rotate:0deg;scale:1}}
.site-credit{color:#c7c7c7;font-size:9px;font-weight:500;letter-spacing:0;text-transform:none;white-space:nowrap}
.site-credit:hover{color:#fff!important}
.icon-defs{position:absolute;overflow:hidden;pointer-events:none}
.icon{display:inline-block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em;flex-shrink:0}
.button>span,.text-link>span,.contact-phone>span,.footer-call>a>span,.mobile-contact>span{display:inline-flex;align-items:center}
.utility span[aria-hidden] .icon{vertical-align:-.18em}
.about-ribbon span .icon{display:block;margin:0 auto}
.pin .icon{display:block}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready *,*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal,.js .about-visual.reveal,.js .about-copy.reveal{opacity:1;transform:none!important}.js .about-visual>img{clip-path:none}.js .about-ribbon{opacity:1;translate:0 0}.ghost-word{transform:none}.hero-car{margin-top:0!important}}
