/* VSN / a carried image between real documents. The page is never made inert. */
:root { --vsn-route-enhancement:1; }
.vsn-route {
  position:fixed; inset:0; z-index:2147483000; overflow:hidden;
  pointer-events:none!important; user-select:none; contain:layout paint style;
  color:var(--route-fg,#f2f0ed);
  /* A stopped script must never leave a permanent veil over the page. */
  animation:vsn-route-expire 0s 1400ms forwards;
}
.vsn-route-veil,.vsn-route-image,.vsn-route-wash { position:absolute; inset:0; }
.vsn-route-veil { background:var(--route-bg,#070708); }
.vsn-route-wash { background:radial-gradient(ellipse at 75% 25%,var(--route-color,#1fa3a6),transparent 72%); opacity:.14; }
.vsn-route-image { background-size:cover; background-position:center; will-change:transform,opacity; }
.vsn-route-image::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.04) 30%,rgba(0,0,0,.55)); }
.vsn-route-caption { position:absolute; inset:auto clamp(28px,6vw,100px) clamp(38px,7vh,90px); display:flex; align-items:baseline; justify-content:space-between; gap:24px; }
.vsn-route-caption strong { font:400 clamp(46px,10vw,150px)/.95 var(--disp,'Space Grotesk',sans-serif); letter-spacing:-.06em; }
.vsn-route-caption span { font:400 9px/1.5 var(--disp,'Space Grotesk',sans-serif); letter-spacing:.17em; text-transform:uppercase; }
.vsn-route.has-image { color:#fff; }
.vsn-route:not(.has-image) .vsn-route-caption { inset:0; flex-direction:column; align-items:center; justify-content:center; gap:25px; }
.vsn-route:not(.has-image) .vsn-route-caption strong { font-size:clamp(60px,12vw,160px); }
@keyframes vsn-route-expire { to { visibility:hidden; } }
@media(max-width:600px) { .vsn-route-caption { align-items:flex-start; flex-direction:column; gap:17px; } }
@media(prefers-reduced-motion:reduce) { .vsn-route { display:none!important; } }
