:root{
  --brand:#8140a0;--brand-2:#5c2373;--ink:#3a1749;--space:#2b1136;--space-2:#4a2260;
  --mint:#57e6c8;--mint-deep:#0fa79e;--rose:#f4718a;--gold:#f2c15c;
  --mist:#f9f3fc;--mist-2:#f9f7fc;--line:#e3dfee;--line-dark:#4a2f5c;
  --muted:#6b6383;--muted-dark:#c9bfe0;
  --font-display:"Space Grotesk",system-ui,sans-serif;--font-body:"Manrope",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;line-height:1.5}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.v-wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.v-section{position:relative;overflow:hidden;padding:88px 0}
@media(min-width:768px){.v-section{padding:112px 0}}
.v-dark{color:#fff;background:radial-gradient(900px 500px at 85% -10%,rgb(0 244 241/.14),transparent 60%),radial-gradient(800px 600px at 0% 100%,rgb(158 101 156/.30),transparent 65%),linear-gradient(160deg,var(--space-2),var(--space))}
.v-grid::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--line-dark) 1px,transparent 1px),linear-gradient(90deg,var(--line-dark) 1px,transparent 1px);background-size:48px 48px;opacity:.32;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}
.v-light{background:#fff}.v-mist{background:var(--mist-2)}
.v-h1{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;font-size:clamp(44px,7vw,84px);line-height:1.02;margin:0}
.v-h2{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;font-size:clamp(32px,4.5vw,52px);line-height:1.08;margin:0}
.v-h3{font-family:var(--font-display);font-weight:700;font-size:18px;margin:0}
.v-kicker{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.2em;margin:0}
.v-lead{font-size:17px;line-height:1.6;margin:0}
@media(min-width:768px){.v-lead{font-size:19px}}
.v-muted{color:var(--muted)}.v-muted-d{color:var(--muted-dark)}.v-mint{color:var(--mint)}
.v-prose{max-width:66ch}
.v-small{font-size:13px;line-height:1.6;color:var(--muted);margin:0}
.v-dark .v-small{color:var(--muted-dark)}
.v-dark p{color:rgba(255,255,255,.85)}
.v-dark .v-h2,.v-dark .v-h1,.v-dark .v-h3{color:#fff}
.v-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:12px 20px;font-size:15px;font-weight:600;border:1px solid transparent;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s,border-color .2s;will-change:transform}
.v-btn:hover{transform:translateY(-2px)}
.v-btn:active{transform:translateY(0)}
.v-btn-primary{background:var(--brand);color:#fff}.v-btn-primary:hover{background:var(--brand-2);box-shadow:0 0 24px rgb(129 64 160/.45)}
.v-btn-secondary{border-color:rgba(255,255,255,.4);color:#fff}.v-btn-secondary:hover{border-color:#fff}
.v-light .v-btn-secondary,.v-mist .v-btn-secondary{border-color:rgba(58,23,73,.35);color:var(--ink)}
.v-btn-mint{background:var(--mint);color:var(--space)}.v-btn-mint:hover{box-shadow:0 0 28px rgb(87 230 200/.5)}
.v-btn-omint{border-color:var(--mint);color:var(--mint)}.v-btn-omint:hover{background:rgb(87 230 200/.1)}
.v-btn-orose{border-color:var(--rose);color:var(--rose)}.v-btn-orose:hover{background:rgb(244 113 138/.1)}
.v-card{border-radius:16px;border:1px solid var(--line);background:#fff;padding:22px;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s}
.v-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgb(58 23 73/.35);border-color:#d3c6e4}
.v-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.v-badge i{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}
.v-badge.live{color:var(--mint-deep)}.v-badge.dev{color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.v-badge.dev i{background:var(--brand);opacity:.6}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.v-dark :focus-visible{outline-color:var(--mint)}
/* reveal system */
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0ms)}
[data-reveal="left"]{transform:translateX(-28px)}[data-reveal="right"]{transform:translateX(28px)}[data-reveal="scale"]{transform:scale(.96)}
.in>[data-reveal],.in[data-reveal],[data-reveal].in{opacity:1;transform:none}
.v-stagger>*{--d:calc(var(--i,0)*90ms)}
.pulse-dot{animation:v-pulse 2s ease-in-out infinite}@keyframes v-pulse{0%,100%{opacity:.35}50%{opacity:1}}
.spin-slow{animation:v-spin 60s linear infinite;transform-origin:center}@keyframes v-spin{to{transform:rotate(360deg)}}
.v-float{animation:v-float 6s ease-in-out infinite}@keyframes v-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.v-glow{animation:v-glow 3s ease-in-out infinite}@keyframes v-glow{0%,100%{filter:drop-shadow(0 0 6px rgb(129 64 160/.4))}50%{filter:drop-shadow(0 0 18px rgb(129 64 160/.8))}}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important;transition:none!important}.pulse-dot,.spin-slow,.v-float,.v-glow{animation:none!important}}
.no-js [data-reveal]{opacity:1;transform:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.v-2col{display:grid;gap:48px;align-items:center}
@media(min-width:900px){.v-2col{grid-template-columns:1fr 1fr}.v-2col.c55{grid-template-columns:55fr 45fr}.v-2col.c45{grid-template-columns:45fr 55fr}.v-2col.c40{grid-template-columns:2fr 3fr}}
.v-cards{display:grid;gap:18px}
@media(min-width:640px){.v-cards.c2{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.v-cards.c3{grid-template-columns:repeat(3,1fr)}.v-cards.c5{grid-template-columns:repeat(5,1fr)}}
.v-skip{position:absolute;left:-999px;top:8px;z-index:10000}.v-skip:focus{left:8px;background:var(--mint);color:var(--space);padding:8px 16px;border-radius:12px;font-weight:600}
