/* Vorani intro: a 3-second brand reveal laid over the landing page.
   Plays once per tab session (intro.js), any click, key or scroll skips it,
   and it never shows with reduced motion. Without JS it still leaves at 3s. */
.vi{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(120% 85% at 50% 40%,#231b60 0%,#100d33 46%,#06051a 100%);
  animation:vi-out .75s cubic-bezier(.7,0,.25,1) 2.25s forwards}
.vi-seen .vi{display:none}
@media (prefers-reduced-motion:reduce){.vi{display:none}}
.vi__in{display:flex;flex-direction:column;align-items:center;gap:clamp(14px,2.6vmin,22px);
  animation:vi-zoom .75s cubic-bezier(.7,0,.25,1) 2.25s forwards}
.vi__stage{position:relative;width:clamp(220px,46vmin,380px);aspect-ratio:1;display:grid;place-items:center}
.vi__glow{position:absolute;inset:-25%;border-radius:50%;opacity:0;
  background:radial-gradient(closest-side,rgba(216,178,92,.26),rgba(110,63,216,.12) 55%,transparent 75%);
  animation:vi-glow 1.4s ease-out .25s forwards}
.vi__ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;
  animation:vi-turn 3s cubic-bezier(.3,0,.2,1) forwards}
.vi__orbit{fill:none;stroke:rgba(216,178,92,.5);stroke-width:1.1;stroke-dasharray:1;stroke-dashoffset:1;
  animation:vi-draw 1s cubic-bezier(.6,0,.2,1) .1s forwards}
.vi__dots circle{fill:#E9C77A;opacity:0;transform-box:fill-box;transform-origin:center;
  animation:vi-dot .5s cubic-bezier(.2,.9,.3,1.4) calc(var(--i) * 8ms) forwards}
.vi__mark{position:relative;padding-top:.06em;font:600 clamp(110px,26vmin,230px)/1 'Cormorant Garamond',Georgia,serif;
  background:linear-gradient(110deg,#A9853A 0%,#E9C77A 28%,#FFF4D6 42%,#E9C77A 56%,#C9A04A 100%) 100% 0/260% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;opacity:0;
  filter:blur(0) drop-shadow(0 8px 30px rgba(216,178,92,.25));
  animation:vi-rise .8s cubic-bezier(.2,.8,.2,1) .35s forwards,vi-shine 1.1s ease-in-out 1s forwards}
.vi__word{display:flex;gap:.5em;margin-right:-.5em;color:#F5EFE1;font:600 clamp(15px,2.8vmin,26px)/1 Manrope,system-ui,sans-serif}
.vi__word span{opacity:0;animation:vi-letter .55s cubic-bezier(.2,.8,.2,1) calc(.95s + var(--i) * 70ms) forwards}
.vi__word span:first-child{color:#D8B25C}
.vi__line{display:block;width:clamp(120px,22vmin,200px);height:1px;transform:scaleX(0);
  background:linear-gradient(90deg,transparent,#D8B25C,transparent);
  animation:vi-line .7s cubic-bezier(.2,.8,.2,1) 1.35s forwards}
.vi__tag{margin:0;padding:0 16px;text-align:center;color:#A29BBE;opacity:0;letter-spacing:.14em;text-transform:uppercase;
  font:500 clamp(11px,1.9vmin,17px)/1.5 Manrope,system-ui,sans-serif;
  animation:vi-up .6s cubic-bezier(.2,.8,.2,1) 1.45s forwards}
.vi__tag b{color:#F1D78E;font-weight:600}
.vi--skip,.vi--skip .vi__in{animation:vi-out .35s ease forwards}

@keyframes vi-out{to{opacity:0;visibility:hidden}}
@keyframes vi-zoom{to{transform:scale(1.9);opacity:0;filter:blur(8px)}}
@keyframes vi-glow{to{opacity:1}}
@keyframes vi-turn{from{transform:rotate(-30deg)}to{transform:rotate(0)}}
@keyframes vi-draw{to{stroke-dashoffset:0}}
@keyframes vi-dot{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(2)}100%{opacity:.8;transform:scale(1)}}
@keyframes vi-rise{
  from{opacity:0;transform:translateY(22px) scale(.86);filter:blur(10px) drop-shadow(0 8px 30px rgba(216,178,92,0))}
  to{opacity:1;transform:none;filter:blur(0) drop-shadow(0 8px 30px rgba(216,178,92,.25))}}
@keyframes vi-shine{to{background-position:0 0}}
@keyframes vi-letter{from{opacity:0;transform:translateY(12px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes vi-line{to{transform:scaleX(1)}}
@keyframes vi-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
