/* Consistent finite transitions also work when cross-document View Transitions do not. */
@view-transition { navigation:none; }
.wq-route-wash { position:fixed;z-index:180;inset:0;pointer-events:none;opacity:0;transform:translateY(100%);background:linear-gradient(155deg,color-mix(in srgb,var(--surface) 96%,transparent),var(--bg) 64%,color-mix(in srgb,var(--a2) 14%,var(--bg))); }
html[data-wq-route="leaving"] .wq-route-wash { animation:wq-route-cover .19s cubic-bezier(.3,.7,.3,1) both; }
html[data-wq-route="leaving"] main { animation:wq-route-out .19s ease-in both; }
html[data-wq-route="entering"] main { animation:wq-route-arrive .48s cubic-bezier(.16,1,.3,1) both; }
@keyframes wq-route-cover { from{opacity:0;transform:translateY(100%)}to{opacity:.94;transform:translateY(0)} }
@keyframes wq-route-out { to{opacity:.45;filter:blur(2px);transform:translateY(-8px)} }
@keyframes wq-route-arrive { from{opacity:.35;filter:blur(3px);transform:translateY(16px)}to{opacity:1;filter:none;transform:none} }
.wq-anchor-arrival { animation:wq-anchor-arrive .72s cubic-bezier(.2,.8,.2,1) both; }
main[tabindex="-1"]:focus,:is(h1,h2,h3)[tabindex="-1"]:focus { outline:none; }
@keyframes wq-anchor-arrive { 0%{filter:blur(2px);opacity:.6}100%{filter:none;opacity:1} }
.wq-soft-reveal { opacity:0;transform:translateY(15px);filter:blur(3px);transition:opacity .65s ease var(--wq-stagger,0ms),transform .75s cubic-bezier(.2,.8,.2,1) var(--wq-stagger,0ms),filter .65s ease var(--wq-stagger,0ms); }
.wq-soft-reveal.wq-soft-visible { opacity:1;transform:none;filter:none; }
#home section:not(#contact) > .sec-head { position:relative; }
#home section:not(#contact) > .sec-head::after { content:"";position:absolute;left:0;bottom:-13px;width:min(180px,40%);height:1px;background:linear-gradient(90deg,var(--a2),transparent);transform:scaleX(var(--wq-section-read,0));transform-origin:left;transition:transform .18s linear;pointer-events:none; }
@media(prefers-reduced-motion:reduce),(forced-colors:active) {
  html { scroll-behavior:auto; }
  .wq-route-wash { display:none; }
  html[data-wq-route] main,.wq-anchor-arrival { animation:none; }
  .wq-soft-reveal { opacity:1;transform:none;filter:none;transition:none; }
  #home section:not(#contact) > .sec-head::after { transition:none;transform:none; }
}
@media print { .wq-route-wash{display:none}.wq-soft-reveal{opacity:1;transform:none;filter:none} }
