@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@700&family=Orbitron:wght@700&family=Playfair+Display:ital,wght@1,400&display=swap');

:root{
  --font-sans:"Inter",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",monospace;
  --font-display:"Space Grotesk",sans-serif;
  --font-logo:"Orbitron",sans-serif;
  --font-serif:"Playfair Display",serif;
  --accent:#E6E6E6;
  --muted:#8E9299;
}

*{box-sizing:border-box;margin:0;padding:0;}

html,body{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;}

body{
  background:#000;
  color:#fff;
  font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;
  cursor:none;
  overflow-x:hidden;
}
a,button,[role=button]{cursor:none;}
::selection{background:#fff;color:#000;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}

/* ---------- Halo background ---------- */
#vexon-halo{
  position:fixed;
  inset:0;
  z-index:0;
  transform-origin:center;
  background:radial-gradient(60% 50% at 50% 22%, rgba(120,170,255,0.18), rgba(40,80,180,0.05) 40%, transparent 70%);
  will-change:transform;
}
#vexon-halo canvas{display:block;width:100%;height:100%;}

/* ---------- Content wrapper ---------- */
.vexon-content{
  position:relative;
  z-index:10;
  opacity:0;
  transition:opacity 1s ease-out;
}
.vexon-content.is-in{opacity:1;}
body.vexon-no-preloader .vexon-content{opacity:1;}

/* ---------- Custom cursor ---------- */
.vexon-cursor{
  pointer-events:none;
  position:fixed;
  inset:0;
  z-index:300;
}
.vexon-cursor__dot{
  position:fixed;top:0;left:0;
  width:10px;height:10px;border-radius:9999px;
  background:#fff;mix-blend-mode:difference;
  transform:translate(-50%,-50%);
}
.vexon-cursor__ring{
  position:fixed;top:0;left:0;
  width:40px;height:40px;border-radius:9999px;
  border:1px solid rgba(255,255,255,0.3);
  transform:translate(-50%,-50%);
  transition:width .3s,height .3s;
}
.vexon-cursor__ring.is-hover{width:80px;height:80px;}

@media (pointer:coarse){
  body{cursor:auto;}
  .vexon-cursor{display:none;}
}

/* ---------- Preloader ---------- */
.vexon-preloader{
  position:fixed;inset:0;z-index:200;background:#000;
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:2.5rem;cursor:none;
  transition:opacity .6s cubic-bezier(0.76,0,0.24,1),transform .6s cubic-bezier(0.76,0,0.24,1),filter .6s cubic-bezier(0.76,0,0.24,1);
}
.vexon-preloader.is-out{opacity:0;transform:scale(1.05);filter:blur(40px);}
.vexon-preloader__top{
  width:100%;display:flex;justify-content:space-between;
  font-family:var(--font-mono);font-size:.75rem;letter-spacing:.4em;
  color:rgba(255,255,255,0.4);
  opacity:0;transform:translateY(-20px);
  animation:vexon-fade-down .8s .1s forwards cubic-bezier(0.16,1,0.3,1);
}
.vexon-preloader__pct{color:#fff;}
.vexon-preloader__center{
  position:relative;flex:1;width:100%;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.vexon-preloader__center canvas{width:100%;height:100%;}
.vexon-preloader__bottom{display:flex;flex-direction:column;align-items:center;gap:1.5rem;}
.vexon-preloader__tag{
  font-family:var(--font-mono);font-size:.875rem;letter-spacing:.5em;color:#fff;
}
.vexon-preloader__tag span{display:inline-block;}
.vexon-preloader__sub{
  font-family:var(--font-mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.2em;color:rgba(255,255,255,0.2);
}
@keyframes vexon-fade-down{to{opacity:1;transform:translateY(0);}}

/* ---------- Nav ---------- */
.vexon-nav{
  position:fixed;top:0;left:0;width:100%;z-index:50;
  display:flex;align-items:flex-start;justify-content:space-between;
  padding:1.5rem;
}
.vexon-nav__left{display:flex;flex-direction:column;gap:1.5rem;opacity:0;transform:translateX(-20px);animation:vexon-nav-l .8s .3s forwards cubic-bezier(0.16,1,0.3,1);}
@keyframes vexon-nav-l{to{opacity:1;transform:translateX(0);}}
.vexon-logo{font-family:var(--font-logo);font-weight:700;font-size:1.5rem;letter-spacing:-0.05em;color:#fff;line-height:1;}
.vexon-nav__code{display:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);opacity:.5;}
.vexon-nav__right{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;opacity:0;transform:translateY(-10px);animation:vexon-nav-r .8s .3s forwards cubic-bezier(0.16,1,0.3,1);}
@keyframes vexon-nav-r{to{opacity:1;transform:translateY(0);}}
.vexon-nav__link{
  font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);display:flex;align-items:center;gap:.25rem;transition:color .3s;
}
.vexon-nav__link svg{transition:transform .3s;}
.vexon-nav__link:hover{color:#fff;}
.vexon-nav__link:hover svg{transform:translate(.125rem,-.125rem);}

@media (min-width:768px){
  .vexon-nav{padding:2rem 2.5rem;}
  .vexon-nav__left{gap:2.5rem;}
  .vexon-logo{font-size:1.875rem;}
  .vexon-nav__code{display:block;}
}

/* ---------- Sections shared ---------- */
section{position:relative;}

/* ---------- HERO ---------- */
.vexon-hero{min-height:100vh;display:flex;align-items:center;padding:8rem 1.5rem 10rem;}
.vexon-hero__grid{display:grid;grid-template-columns:1fr;gap:2.5rem;width:100%;}
.vexon-eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;color:var(--accent);margin-bottom:1.5rem;}
.vexon-hero h1{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  line-height:.9;letter-spacing:-0.025em;color:#fff;font-size:12vw;
}
.vexon-hero__line{display:flex;align-items:center;gap:1rem;}
.vexon-hero__line--2{color:var(--accent);}
.vexon-mask-r{-webkit-mask-image:linear-gradient(to right,rgba(0,0,0,0.15),white 85%);mask-image:linear-gradient(to right,rgba(0,0,0,0.15),white 85%);display:inline-block;color:#fff;filter:drop-shadow(0 0 15px rgba(255,255,255,0.2));}
.vexon-mask-l{-webkit-mask-image:linear-gradient(to right,white 15%,rgba(0,0,0,0.15));mask-image:linear-gradient(to right,white 15%,rgba(0,0,0,0.15));display:inline-block;color:#fff;filter:drop-shadow(0 0 15px rgba(255,255,255,0.2));}
.vexon-glow2{filter:drop-shadow(0 0 20px rgba(255,255,255,0.3));color:#fff;}

.vexon-hero__right{display:flex;flex-direction:column;justify-content:flex-end;gap:2rem;padding-top:3rem;padding-bottom:3rem;}
.vexon-hero__meta{display:flex;align-items:center;justify-content:space-between;}
.vexon-hero__a{font-size:1.875rem;font-weight:300;color:var(--accent);letter-spacing:-0.05em;}
.vexon-hero__a span{font-family:var(--font-mono);font-weight:700;}
.vexon-hero__idx{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;color:var(--accent);}
.vexon-hero__desc{max-width:20rem;font-size:.75rem;line-height:1.6;color:var(--accent);}
.vexon-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;}

.vexon-btn{
  position:relative;overflow:hidden;border-radius:2px;background:rgba(0,0,0,0.6);
  backdrop-filter:blur(64px);padding:.75rem 1.5rem;font-size:12px;font-weight:500;
  letter-spacing:.025em;color:#fff;border:1px solid rgba(255,255,255,0.3);transition:background .3s;
}
.vexon-btn:hover{background:rgba(0,0,0,0.8);}
.vexon-btn span{position:relative;z-index:10;text-transform:uppercase;letter-spacing:.1em;}
.vexon-btn .br{position:absolute;width:1rem;height:1rem;transition:transform .3s;}
.vexon-btn .br-tr{top:0;right:0;border-top:2px solid rgba(255,255,255,0.6);border-right:2px solid rgba(255,255,255,0.6);}
.vexon-btn .br-bl{bottom:0;left:0;border-bottom:2px solid rgba(255,255,255,0.6);border-left:2px solid rgba(255,255,255,0.6);}
.vexon-btn:hover .br{transform:scale(1.1);}
.vexon-btn-text{font-size:12px;font-weight:500;color:#fff;transition:opacity .3s;}
.vexon-btn-text:hover{opacity:.7;}

@media (min-width:768px){
  .vexon-hero{padding:5rem 2.5rem;}
  .vexon-hero h1{font-size:8vw;}
  .vexon-hero__line--2{gap:2rem;}
  .vexon-eyebrow{font-size:11px;}
  .vexon-hero__a{font-size:2.25rem;}
  .vexon-hero__idx{font-size:11px;}
  .vexon-hero__desc{font-size:.875rem;}
  .vexon-hero__actions{gap:1.5rem;}
  .vexon-btn{padding:1rem 2rem;font-size:14px;}
  .vexon-btn-text{font-size:14px;}
  .vexon-hero__right{padding-bottom:5rem;gap:3rem;}
}
@media (min-width:1024px){
  .vexon-hero__grid{grid-template-columns:repeat(12,1fr);}
  .vexon-hero__left{grid-column:span 8;display:flex;flex-direction:column;justify-content:center;}
  .vexon-hero__right{grid-column:span 4;transform:translateY(58px);}
  .vexon-hero h1{font-size:7vw;}
}

/* ---------- DiamondStar ---------- */
.vexon-diamond{display:inline-block;width:.8em;height:.8em;transform-style:preserve-3d;animation:vexon-spin 3s linear infinite;color:#fff;}
.vexon-diamond svg{width:100%;height:100%;display:block;}
@keyframes vexon-spin{from{transform:rotateY(0);}to{transform:rotateY(360deg);}}

/* ---------- ABOUT ---------- */
.vexon-about{
  min-height:100vh;background:rgba(0,0,0,0.4);backdrop-filter:blur(64px);
  border-top:1px solid rgba(255,255,255,0.05);
  display:flex;flex-direction:column;justify-content:center;padding:5rem 1.5rem;
}
.vexon-about__intro{margin-bottom:5rem;display:grid;grid-template-columns:1fr;gap:3rem;}
.vexon-about__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--accent);opacity:.5;text-transform:uppercase;}
.vexon-about__head{font-family:var(--font-display);margin-bottom:2rem;font-size:1.875rem;font-weight:500;line-height:1.15;color:#fff;letter-spacing:-0.025em;}
.vexon-about__para{max-width:42rem;font-size:.875rem;line-height:1.6;color:var(--accent);opacity:.6;font-weight:300;}

.vexon-cards{display:grid;grid-template-columns:1fr;gap:1rem;}
.vexon-card{
  position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:.375rem;
  background:rgba(0,0,0,0.1);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.1);
}
.vexon-card__br{position:absolute;width:1.25rem;height:1.25rem;z-index:40;}
.vexon-card__br-tr{top:0;right:0;border-top:2px solid rgba(255,255,255,0.4);border-right:2px solid rgba(255,255,255,0.4);}
.vexon-card__br-bl{bottom:0;left:0;border-bottom:2px solid rgba(255,255,255,0.4);border-left:2px solid rgba(255,255,255,0.4);}
.vexon-card__idx{position:absolute;z-index:40;top:1rem;left:1rem;font-family:var(--font-mono);font-size:10px;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:.1em;}
.vexon-card__imgwrap{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.vexon-card__img{height:100%;width:100%;object-fit:cover;opacity:.6;transition:opacity .7s;will-change:transform;}
.vexon-card:hover .vexon-card__img{opacity:.9;}
.vexon-card__hit{position:absolute;inset:0;z-index:30;}
.vexon-card__caption{
  position:absolute;inset-inline:0;bottom:0;height:50%;z-index:10;
  background:linear-gradient(to top,rgba(0,0,0,0.9),rgba(0,0,0,0.2) 50%,transparent);
  padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;pointer-events:none;
}
.vexon-card__title{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:#fff;letter-spacing:-0.025em;}
.vexon-card__desc{margin-top:.5rem;font-size:.875rem;line-height:1.6;color:var(--accent);opacity:.7;font-weight:300;}
.vexon-chip{
  position:absolute;z-index:50;left:0;top:0;pointer-events:none;
  padding:.375rem .75rem;border-radius:9999px;background:#fff;color:#000;
  font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;
  box-shadow:0 25px 50px -12px rgba(0,0,0,0.6);display:flex;align-items:center;gap:.375rem;
  border:1px solid rgba(0,0,0,0.1);white-space:nowrap;opacity:0;transform:scale(0);
  transition:opacity .2s,transform .2s;
}
.vexon-chip.is-on{opacity:1;transform:scale(1);}
.vexon-card.is-active{cursor:none;}

@media (min-width:768px){
  .vexon-about{padding:5rem 2.5rem;}
  .vexon-about__head{font-size:3rem;}
  .vexon-about__para{font-size:1rem;}
  .vexon-cards{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:1024px){
  .vexon-about__intro{grid-template-columns:repeat(12,1fr);}
  .vexon-about__intro-l{grid-column:span 4;}
  .vexon-about__intro-r{grid-column:span 8;}
  .vexon-about__head{max-width:56rem;}
}

/* ---------- MISSION ---------- */
.vexon-mission{position:relative;z-index:10;border-top:1px solid rgba(255,255,255,0.05);background:#000;font-family:var(--font-sans);}
.vexon-mission__top{display:grid;grid-template-columns:1fr;border-bottom:1px solid rgba(255,255,255,0.05);}
.vexon-mbox{padding:2rem;}
.vexon-mbox-1{min-height:200px;display:flex;flex-direction:column;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,0.05);}
.vexon-mbox-1 .logo{font-family:var(--font-logo);font-size:1.25rem;font-weight:700;letter-spacing:-0.05em;color:#fff;opacity:.8;}
.vexon-mbox-1 .est{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.3em;color:#fff;opacity:.4;}
.vexon-mbox-2{display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid rgba(255,255,255,0.05);}
.vexon-mbox-2 .label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.4em;color:#fff;opacity:.3;margin-bottom:1rem;}
.vexon-mbox-2 h3{font-family:var(--font-display);font-weight:700;line-height:.9;text-transform:uppercase;letter-spacing:-0.025em;color:#fff;font-size:12vw;}
.vexon-mbox-2 h3 .row{display:flex;flex-wrap:wrap;align-items:center;column-gap:1rem;}

.vexon-mission__bottom{display:grid;grid-template-columns:1fr;}
.vexon-mbox-3{display:none;}
.vexon-mbox-4{display:flex;flex-direction:column;gap:1.5rem;border-bottom:1px solid rgba(255,255,255,0.05);}
.vexon-dotbox{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:2px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.05);}
.vexon-dot{width:.25rem;height:.25rem;border-radius:9999px;background:#fff;animation:vexon-pulse 2s ease-in-out infinite;}
@keyframes vexon-pulse{0%,100%{opacity:1;}50%{opacity:.2;}}
.vexon-mbox-4 .t{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:#fff;opacity:.4;}
.vexon-mbox-5{display:flex;flex-direction:column;justify-content:center;}
.vexon-mbox-5 p{max-width:36rem;font-size:.875rem;font-weight:300;line-height:1.6;color:#fff;opacity:.6;}
.vexon-philo{margin-top:2rem;display:flex;align-items:center;gap:.5rem;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:#fff;transition:opacity .3s;background:none;border:none;}
.vexon-philo svg{transition:transform .3s;}
.vexon-philo:hover{opacity:.7;}
.vexon-philo:hover svg{transform:translate(.125rem,-.125rem);}

@media (min-width:768px){
  .vexon-mission__top{grid-template-columns:repeat(4,1fr);}
  .vexon-mbox-1{border-bottom:none;}
  .vexon-mbox-2{grid-column:span 3;}
  .vexon-mbox-2 h3{font-size:8vw;}
  .vexon-mission__bottom{grid-template-columns:repeat(4,1fr);}
  .vexon-mbox-3{display:block;}
  .vexon-mbox-4{border-bottom:none;}
  .vexon-mbox-5{grid-column:span 2;}
  .vexon-mbox-5 p{font-size:1rem;}
}
@media (min-width:1024px){
  .vexon-mbox-2{padding:3rem;}
  .vexon-mbox-2 h3{font-size:7vw;}
  .vexon-mbox-5{padding:3rem;}
}

/* ---------- Marquee ---------- */
.vexon-marquee{width:100%;overflow:hidden;border-top:1px solid rgba(255,255,255,0.05);padding:3rem 0;}
.vexon-marquee__track{display:inline-flex;white-space:nowrap;animation:vexon-marquee 40s linear infinite;}
.vexon-marquee:hover .vexon-marquee__track{animation-play-state:paused;}
.vexon-marquee__item{margin:0 2rem;font-size:32px;font-weight:700;letter-spacing:-0.05em;color:rgba(255,255,255,0.2);transition:all .3s;cursor:default;}
.vexon-marquee__item:hover{transform:scale(1.1);color:#fff;}
@keyframes vexon-marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (min-width:768px){
  .vexon-marquee{padding:5rem 0;}
  .vexon-marquee__item{margin:0 4rem;font-size:48px;}
}

/* ---------- Footer ---------- */
.vexon-footer{position:relative;z-index:10;width:100%;padding:5rem 1.5rem 3rem;background:#000;}
.vexon-footer__blur{position:absolute;inset-inline:0;top:0;height:10rem;z-index:-10;backdrop-filter:blur(16px);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,1) 0%,rgba(0,0,0,1) 40%,rgba(0,0,0,0.8) 60%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to top,rgba(0,0,0,1) 0%,rgba(0,0,0,1) 40%,rgba(0,0,0,0.8) 60%,rgba(0,0,0,0) 100%);}
.vexon-footer__inner{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem;}
.vexon-footer__logo{font-family:var(--font-logo);font-weight:700;font-size:1.5rem;letter-spacing:-0.05em;color:#fff;opacity:.8;}
.vexon-footer__copy{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:#fff;opacity:.4;}
@media (min-width:768px){.vexon-footer{padding:4rem 2.5rem;}}

/* ---------- Inner page ---------- */
.vexon-page{position:relative;z-index:10;min-height:100vh;padding:10rem 1.5rem 6rem;display:flex;flex-direction:column;align-items:center;}
.vexon-page__inner{width:100%;max-width:48rem;}
.vexon-page__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--accent);opacity:.5;text-transform:uppercase;margin-bottom:1.5rem;}
.vexon-page h1{font-family:var(--font-display);font-weight:700;text-transform:uppercase;line-height:.95;letter-spacing:-0.025em;color:#fff;font-size:9vw;margin-bottom:1rem;}
.vexon-page__sub{font-size:1rem;color:var(--accent);opacity:.7;font-weight:300;margin-bottom:2.5rem;max-width:36rem;}
.vexon-page__hero{width:100%;border-radius:.5rem;overflow:hidden;border:1px solid rgba(255,255,255,0.1);margin-bottom:3rem;aspect-ratio:16/9;}
.vexon-page__hero img{width:100%;height:100%;object-fit:cover;opacity:.85;}
.vexon-prose{font-size:1rem;line-height:1.8;color:var(--accent);font-weight:300;}
.vexon-prose h2{font-family:var(--font-display);color:#fff;font-size:1.75rem;margin:2.5rem 0 1rem;letter-spacing:-0.02em;}
.vexon-prose h3{font-family:var(--font-display);color:#fff;font-size:1.25rem;margin:2rem 0 .75rem;}
.vexon-prose p{margin-bottom:1.25rem;}
.vexon-prose a{color:#fff;text-decoration:underline;text-underline-offset:3px;}
.vexon-prose ul,.vexon-prose ol{margin:0 0 1.25rem 1.25rem;}
.vexon-prose li{margin-bottom:.5rem;}
.vexon-page__back{margin-top:3rem;display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:#fff;opacity:.6;transition:opacity .3s;}
.vexon-page__back:hover{opacity:1;}
@media (min-width:768px){
  .vexon-page{padding:12rem 2.5rem 8rem;}
  .vexon-page h1{font-size:4.5rem;}
}

/* TextEffect spans */
.vexon-te{display:inline-block;}
.vexon-te span{display:inline-block;opacity:0;filter:blur(12px);white-space:pre;transition:opacity .5s ease,filter .5s ease;}
.vexon-te span.is-in{opacity:1;filter:blur(0);}

/* itemVariants / cardVariants reveal */
.vexon-rv{opacity:0;transform:translateY(100px) scale(.9) rotateX(15deg);filter:blur(10px);transition:opacity .8s cubic-bezier(0.16,1,0.3,1),transform .8s cubic-bezier(0.16,1,0.3,1),filter .8s cubic-bezier(0.16,1,0.3,1);}
.vexon-rv.is-in{opacity:1;transform:none;filter:blur(0);}
.vexon-rv--card{transition-duration:1.6s;}
