/* Ventega intro: the original HTML wordmark is the single final component. */
#ventegaIntro{display:none}
html.vt-intro-show #ventegaIntro{
  position:fixed;inset:0;z-index:2147483647;display:block;overflow:hidden;
  pointer-events:auto;isolation:isolate;
}
#ventegaIntro .vi-intro-backdrop{
  position:absolute;inset:0;z-index:0;opacity:1;
  background:
    radial-gradient(58% 48% at 50% 47%,rgba(139,92,246,.25),transparent 72%),
    radial-gradient(42% 55% at 14% 88%,rgba(109,63,224,.15),transparent 74%),
    radial-gradient(38% 48% at 91% 8%,rgba(178,124,255,.12),transparent 74%),
    linear-gradient(135deg,#040207,#08030f 48%,#0e0519 74%,#040207);
  transition:opacity .72s cubic-bezier(.22,.72,.2,1);
}
html[data-theme="light"] #ventegaIntro .vi-intro-backdrop{
  background:
    radial-gradient(58% 48% at 50% 47%,rgba(147,104,216,.15),transparent 72%),
    radial-gradient(46% 56% at 7% 84%,rgba(211,170,91,.16),transparent 76%),
    radial-gradient(40% 50% at 94% 12%,rgba(192,160,225,.18),transparent 74%),
    linear-gradient(135deg,#fffdf9,#f8f1e8 48%,#f5effa 76%,#fffdfa);
}
html.vi-backdrop-fading #ventegaIntro .vi-intro-backdrop{opacity:0}
html{scrollbar-gutter:stable}
html.vt-intro-show{overflow-x:hidden!important;overflow-y:scroll!important}
html.vt-intro-show body{overflow:hidden!important}

.vi-hero-lockup-slot{
  width:min(840px,92vw);min-height:159px;margin:0 auto 30px;
  position:relative;z-index:2;
}
#start .hero-site{padding-top:clamp(50px,7vh,78px)}
.vi-lockup{position:relative;width:100%;text-align:center;transform-origin:50% 50%}
.vi-lockup .wordmark-hero{line-height:1.55;margin-bottom:30px}
.vi-lockup .slogan-hero{line-height:1.55;margin-bottom:0;white-space:nowrap}
html[data-theme="light"] .vi-lockup .wordmark-hero{color:#24202b;text-shadow:0 0 26px rgba(109,63,224,.12)}

/* During the intro a pixel-matched clone of the original lockup is animated.
   The real Hero lockup never leaves its measured layout slot. */
.vi-intro-clone{
  position:fixed;z-index:2;margin:0;will-change:transform,opacity;
  transform-origin:50% 50%;pointer-events:none;
}
.vi-intro-clone .wordmark-hero{color:#f8f5ff;text-shadow:0 0 16px rgba(248,245,255,.14),0 0 48px rgba(139,92,246,.4)}
.vi-intro-clone .wordmark-hero span{filter:drop-shadow(0 0 10px rgba(167,139,250,.3)) drop-shadow(0 0 22px rgba(217,70,239,.18))}
.vi-intro-clone .vi-wordmark-source{color:transparent!important;text-shadow:none!important;opacity:0;transition:opacity .34s ease}
.vi-intro-clone .vi-wordmark-source span{background:none!important;color:transparent!important;filter:none!important}
.vi-drawing-svg{
  position:absolute;z-index:3;overflow:visible;pointer-events:none;opacity:1;transition:opacity .5s ease;
  /* Same three-layer glow as the permanent Hero wordmark, so the swap from
     drawing to real logo is invisible. */
  filter:
    drop-shadow(0 0 10px rgba(248,245,255,.22))
    drop-shadow(0 0 34px rgba(139,92,246,.62))
    drop-shadow(0 0 78px rgba(139,92,246,.34));
}
html[data-theme="light"] .vi-drawing-svg{
  filter:drop-shadow(0 0 24px rgba(198,143,31,.24)) drop-shadow(0 0 62px rgba(236,188,74,.18));
}
/* The glyphs are real <text> in the live font: the traced outline is the
   actual letterform, and the filled end state equals the final logo. */
.vi-outline-glyph{
  fill:transparent;
  stroke:#f8f5ff;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:var(--vi-trace) var(--vi-trace);stroke-dashoffset:var(--vi-trace);
  paint-order:stroke fill;opacity:0;
  will-change:stroke-dashoffset,fill,opacity;
}
.vi-outline-glyph.vi-outline-ai{stroke:url(#viAiGradient)}
html[data-theme="light"] .vi-outline-glyph{stroke:#24202b}
html[data-theme="light"] .vi-outline-glyph.vi-outline-ai{stroke:url(#viAiGradient)}
html.vt-intro-running .vi-outline-glyph{
  animation:viTraceGlyph 1.02s cubic-bezier(.62,0,.24,1) var(--vi-delay) forwards,
            viFillOutline .5s ease var(--vi-fill-delay) forwards;
}
html.vt-intro-running .vi-outline-glyph.vi-outline-ai{
  animation:viTraceGlyph 1.02s cubic-bezier(.62,0,.24,1) var(--vi-delay) forwards,
            viFillOutlineAi .5s ease var(--vi-fill-delay) forwards;
}
.vi-intro-clone .slogan-hero{opacity:0;transform:translate3d(0,16px,0)}
html.vt-intro-running .vi-intro-clone .slogan-hero{animation:viSloganOriginal .68s ease 2.08s forwards}
.vi-intro-aura{
  position:absolute;z-index:-1;left:50%;top:31%;width:78%;height:49%;
  transform:translate(-50%,-50%) scale(.76);border-radius:50%;opacity:0;
  background:radial-gradient(ellipse,rgba(139,92,246,.2) 0%,rgba(139,92,246,.08) 40%,rgba(178,124,255,.03) 62%,transparent 79%);
}
html.vt-intro-running .vi-intro-aura{animation:viOriginalGlow 1.25s cubic-bezier(.2,.7,.2,1) 1.55s forwards}
.vi-intro-clone.vi-source-visible .vi-wordmark-source{color:#f8f5ff!important;text-shadow:0 0 16px rgba(248,245,255,.14),0 0 48px rgba(139,92,246,.4)!important;opacity:1}
.vi-intro-clone.vi-source-visible .vi-wordmark-source span{
  color:transparent!important;background:linear-gradient(92deg,#A78BFA,#D946EF)!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  filter:drop-shadow(0 0 10px rgba(167,139,250,.3)) drop-shadow(0 0 22px rgba(217,70,239,.18))!important;
}
html[data-theme="light"] .vi-intro-clone.vi-source-visible .vi-wordmark-source{
  color:#24202b!important;text-shadow:0 0 24px rgba(109,63,224,.15)!important;
}
.vi-intro-clone.vi-source-visible .vi-drawing-svg{opacity:0}
.vi-intro-clone.vi-handoff-active .wordmark-hero,
.vi-intro-clone.vi-handoff-active .wordmark-hero span,
.vi-intro-clone.vi-handoff-active .vi-drawing-svg{transition:color .5s ease,text-shadow .5s ease,filter .5s ease,opacity .12s linear}
/* During the handoff the clone's glow settles onto the exact final Hero
   values (site-ui.css overrides), so the commit swap has zero visible
   glow difference. */
.vi-intro-clone.vi-handoff-active .vi-wordmark-source{
  text-shadow:0 0 10px rgba(248,245,255,.22),0 0 34px rgba(139,92,246,.62),0 0 78px rgba(139,92,246,.34)!important;
}
.vi-intro-clone.vi-handoff-active .vi-wordmark-source span{filter:none!important}
html[data-theme="light"] .vi-intro-clone.vi-handoff-active .vi-wordmark-source{
  color:#24202b!important;
  text-shadow:0 0 24px rgba(198,143,31,.24),0 0 62px rgba(236,188,74,.18)!important;
}
html[data-theme="light"] .vi-intro-clone.vi-handoff-active .vi-wordmark-source span{filter:none!important}

@keyframes viTraceGlyph{
  0%{stroke-dashoffset:var(--vi-trace);opacity:0;stroke-width:2.1px}
  8%{opacity:1}
  100%{stroke-dashoffset:0;opacity:1;stroke-width:1.6px}
}
@keyframes viFillOutline{0%{fill:transparent;stroke-opacity:1}100%{fill:#f8f5ff;stroke-opacity:0}}
@keyframes viFillOutlineAi{0%{fill:transparent;stroke-opacity:1}100%{fill:url(#viAiGradient);stroke-opacity:0}}
@keyframes viSloganOriginal{to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes viOriginalGlow{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.76)}
  58%{opacity:.5;transform:translate(-50%,-50%) scale(1.09)}
  100%{opacity:.32;transform:translate(-50%,-50%) scale(1)}
}

/* Global content release: ONE class (vt-intro-content-ready) frees the hero
   group and the whole rest of the page in the same frame. The hero content
   lives in ONE wrapper with ONE transition – no child delays anywhere. */
.vi-hero-rest{opacity:1;transform:none}
html.vt-intro-show .vi-hero-rest{transition:opacity .45s ease,transform .45s ease}
html.vt-intro-show:not(.vt-intro-content-ready) .vi-hero-rest{opacity:0!important;transform:translate3d(0,12px,0)!important}

@media(max-width:650px){
  #start .hero-site{padding-top:clamp(88px,11vh,96px)}
  .vi-hero-lockup-slot{width:min(350px,92vw);min-height:124px;margin-bottom:28px}
  .vi-lockup .wordmark-hero{font-size:clamp(30px,9vw,36px);letter-spacing:.24em;line-height:1.45;margin-bottom:24px}
  .vi-lockup .slogan-hero{font-size:clamp(10px,3vw,13px);letter-spacing:.22em;line-height:1.55;white-space:normal;max-width:350px;margin-inline:auto}
}
@media(prefers-reduced-motion:reduce){
  html:not(.motion-force) .vi-outline-glyph,
  html:not(.motion-force) .vi-intro-clone .slogan-hero,
  html:not(.motion-force) .vi-intro-aura{animation:none!important}
}

/* Light theme fills with the light-mode wordmark colour. */
html[data-theme="light"].vt-intro-running .vi-outline-glyph:not(.vi-outline-ai){
  animation:viTraceGlyph 1.02s cubic-bezier(.62,0,.24,1) var(--vi-delay) forwards,
            viFillOutlineLight .5s ease var(--vi-fill-delay) forwards;
}
@keyframes viFillOutlineLight{0%{fill:transparent;stroke-opacity:1}100%{fill:#24202b;stroke-opacity:0}}
