:root { --vx-ease: cubic-bezier(.2,.8,.2,1); --vx-fast: 150ms; --vx-layout: 330ms; }
@view-transition { navigation:auto; }
::view-transition-group(root) { animation-duration:380ms;animation-timing-function:cubic-bezier(.16,1,.3,1); }
::view-transition-old(root) { animation:none;opacity:1;mix-blend-mode:normal; }
::view-transition-new(root) { animation:vx-page-enter 380ms cubic-bezier(.16,1,.3,1) both;mix-blend-mode:normal; }
@keyframes vx-page-enter { from { opacity:0;translate:0 7px; } to { opacity:1;translate:0 0; } }
html.vx-motion { scrollbar-gutter: stable; }
html.vx-motion :is(button,.button,summary,input,select,textarea,a) {
  transition: background-color var(--vx-fast) var(--vx-ease), color var(--vx-fast) var(--vx-ease),
    border-color var(--vx-fast) var(--vx-ease), box-shadow var(--vx-fast) var(--vx-ease), scale var(--vx-fast) var(--vx-ease);
}
@media (hover:hover) {
  html.vx-motion :is(button,.button,summary):not(:disabled):hover { scale: 1.025; }
  html.vx-motion :is(button,.button,summary):not(:disabled):active { scale: .97; }
}
html.vx-motion :is(button,.button,summary):not(:disabled):active { scale: .97; }
html.vx-motion :is(input,select,textarea):focus-visible { box-shadow: 0 0 0 3px var(--ui-brand-soft,#f7e7df); }
html.vx-motion :is(input[type=checkbox],input[type=radio]) { transition: scale 170ms var(--vx-ease),accent-color 150ms; }
html.vx-motion :is(input[type=checkbox],input[type=radio]):checked { scale: 1.07; }
html.vx-motion .toast { transition: opacity 180ms var(--vx-ease),translate 220ms var(--vx-ease),visibility 220ms; }
html.vx-motion .toast:not(.show) { opacity: 0; translate: 0 8px; }
html.vx-motion .toast.show { opacity: 1; translate: 0 0; }
html.vx-motion details > summary svg { transition: rotate 180ms var(--vx-ease); }
html.vx-motion .vx-motion-origin { transform:none!important;scale:1!important;transition:none!important; }
html.vx-motion a.service-card { transition:scale 380ms cubic-bezier(.16,1,.3,1),transform 380ms cubic-bezier(.16,1,.3,1),background-color 240ms var(--vx-ease),border-color 240ms var(--vx-ease),box-shadow 240ms var(--vx-ease); }
html.vx-motion a.service-card.vx-card-pressed { scale:.985;transform:translateY(-1px);transition-duration:110ms; }
html.vx-motion dialog[data-vx-phase] { overflow: visible; }
html.vx-motion dialog[data-vx-phase=opening]::backdrop { animation: vx-backdrop-in 240ms var(--vx-ease) both; }
html.vx-motion .vx-morph-panel { background:transparent!important;border-color:transparent!important;box-shadow:none!important; }
.vx-morph-surface { position:fixed;pointer-events:none;z-index:0;border:1px solid var(--ui-line,#d8d2c8);transform-origin:0 0;will-change:transform;contain:strict; }
.vx-morph-shared { position:fixed;pointer-events:none;z-index:3;margin:0!important;padding:0!important;text-align:left;transform:none!important;scale:1!important; }
.vx-morph-poster { position:fixed;pointer-events:none;z-index:2;margin:0!important;transition:none!important; }
.vx-morph-hidden { visibility:hidden!important; }
.vx-morph-host { position:fixed;inset:0;z-index:2147483000;pointer-events:none;isolation:isolate; }
.vx-morph-scrim { position:absolute;inset:0;background:rgba(18,22,20,.45);backdrop-filter:blur(4px); }
html.vx-motion dialog[data-vx-phase] > :not(.vx-morph-surface):not(.vx-morph-shared):not(.vx-morph-poster) { position:relative;z-index:1; }
.vx-ui-icon { width:15px;height:15px;flex-shrink:0;vertical-align:-3px;margin-right:6px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none; }
@keyframes vx-backdrop-in { from { background-color:transparent;backdrop-filter:blur(0); } }
@media (prefers-reduced-motion:reduce) {
  ::view-transition-group(root),::view-transition-old(root),::view-transition-new(root) { animation:none!important; }
  html.vx-motion a.service-card { transition:none!important;scale:1!important; }
  html.vx-motion :is(button,.button,summary,input,select,textarea,a) { transition-duration:0ms;scale:1!important; }
  html.vx-motion .toast { transition-duration:1ms;translate:none!important; }
  html.vx-motion dialog[data-vx-phase]::backdrop { animation:none!important; }
}
