/* Public pages only: the editing canvas never loads this stylesheet. */
@view-transition { navigation: auto; }
:root { --motion-ease: cubic-bezier(.22,1,.36,1); }
.header { view-transition-name: site-header; }
.preview-bar { view-transition-name: site-notice; }
::view-transition-group(*) { animation-duration: 200ms; animation-timing-function: ease-out; }
::view-transition-old(root) { animation: 160ms ease-in both page-out; }
::view-transition-new(root) { animation: 200ms ease-out both page-in; }
::view-transition-old(site-header),::view-transition-old(site-notice) { animation: none; opacity: 0; }
::view-transition-new(site-header),::view-transition-new(site-notice) { animation: none; }
@keyframes page-out { to { opacity: 0; } }
@keyframes page-in { from { opacity: 0; } }
.hero { overflow: clip; }
.button { transition: background 160ms ease-out,color 160ms ease-out,border-color 160ms ease-out; }
.button span,.round-arrow { transition: transform 160ms var(--motion-ease),background 160ms ease-out; }
.text-link { position: relative; }
.text-link::after { content: ''; position: absolute; left: 0; bottom: -3px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 180ms ease-out; }
.service-photo img { transition: transform 300ms var(--motion-ease); }
.service-card:hover img { transform: none; }
@media (hover:hover) and (pointer:fine) {
 .service-card:hover img,.service-card:focus-visible img { transform: scale(1.025); }
 .service-card:hover .round-arrow,.service-card:focus-visible .round-arrow,.button:hover span,.button:focus-visible span { transform: translateX(3px); }
 .text-link:hover::after,.text-link:focus-visible::after { transform: scaleX(1); }
}
.button:active { filter: brightness(.94); }
#progress-fill { width: 100%; transform-origin: left; transform: scaleX(.25); transition: transform 180ms ease-out; }
.step-list li,.step-list li span { transition: color 160ms ease-out,background 160ms ease-out,border-color 160ms ease-out; }
@media(max-width:600px) {
 ::view-transition-group(*) { animation-duration:160ms; }
 ::view-transition-old(root),::view-transition-new(root) { animation-duration:160ms; }
 #progress-fill { transition-duration:160ms; }
}
@media(prefers-reduced-motion:reduce) {
 @view-transition { navigation:none; }
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation:none!important; }
 .service-card:hover img,.service-card:focus-visible img,.button:hover span,.service-card:hover .round-arrow { transform:none; }
}
