/* ============================================================
   WEBART TECHNOLOGY — The Intelligence Layer
   Bespoke design layer (Tailwind handles layout utilities)
   ============================================================ */

/* ---------- BRAND PALETTE ----------
   Primary Green  #81AC02
   Primary Blue   #00AEEF
   Dark Navy      #010A24
   Accent Orange  #F7941D
   Light Gray     #E4E4E4
   White          #F4F7FE
------------------------------------ */
:root{
  --green:#81AC02;
  --blue:#00AEEF;
  --navy:#010A24;
  --orange:#F7941D;
  --gray:#E4E4E4;
  --white:#F4F7FE;

  /* dark theme (default) — navy base */
  --void:#010A24;
  --ink:#04102E;
  --surface:#0A1A3C;
  --surface-2:#102450;
  --line:rgba(228,228,228,.12);
  --line-2:rgba(228,228,228,.22);
  --text:#E4E4E4;
  --text-hi:#F4F7FE;
  --text-dim:#8FA0BE;

  --plasma:#00AEEF;   /* section accent A — blue by default */
  --violet:#81AC02;   /* section accent B — green by default */
  --magenta:#F7941D;  /* accent orange */
  --amber:#F7941D;

  --glow-plasma:rgba(0,174,239,.38);
  --glow-violet:rgba(129,172,2,.38);

  /* dual-brand gradients: green and blue carry equal weight, orange only sparks */
  --grad: linear-gradient(100deg,#00AEEF 0%,#3FB37C 46%,#81AC02 84%,#F7941D 100%);
  --grad-alt: linear-gradient(100deg,#81AC02 0%,#3FB37C 46%,#00AEEF 84%,#F7941D 100%);
  --grad-soft: linear-gradient(100deg,rgba(0,174,239,.16),rgba(129,172,2,.16));
  --grad-soft-alt: linear-gradient(100deg,rgba(129,172,2,.16),rgba(0,174,239,.16));

  --r-sm:10px; --r:16px; --r-lg:24px; --r-xl:32px;
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow: 0 24px 60px -20px rgba(1,10,36,.75);
}

/* ---------- LIGHT THEME ---------- */
html[data-theme="light"]{
  --void:#F4F7FE;
  --ink:#FFFFFF;
  --surface:#FFFFFF;
  --surface-2:#E4E4E4;
  --line:rgba(1,10,36,.10);
  --line-2:rgba(1,10,36,.18);
  --text:#3A4763;
  --text-hi:#010A24;
  --text-dim:#6C7A96;
  --glow-plasma:rgba(0,174,239,.22);
  --glow-violet:rgba(129,172,2,.22);
  --grad: linear-gradient(100deg,#0090C6 0%,#369669 46%,#6E9302 84%,#E0820F 100%);
  --grad-alt: linear-gradient(100deg,#6E9302 0%,#369669 46%,#0090C6 84%,#E0820F 100%);
  --shadow: 0 24px 60px -28px rgba(1,10,36,.22);
}

/* ---------- SECTION ACCENT SCOPES ----------
   Flip the accent pair so alternating sections read green-led instead of
   blue-led. Every component below already draws from --plasma/--violet,
   so a single class rebalances an entire band without touching layout. */
.accent-green{
  --plasma:#81AC02;
  --violet:#00AEEF;
  --glow-plasma:rgba(129,172,2,.38);
  --glow-violet:rgba(0,174,239,.38);
  --grad: var(--grad-alt);
  --grad-soft: var(--grad-soft-alt);
}
html[data-theme="light"] .accent-green{
  --plasma:#6E9302;
  --violet:#0090C6;
  --glow-plasma:rgba(129,172,2,.22);
  --glow-violet:rgba(0,174,239,.22);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--void);
  color:var(--text);
  overflow-x:hidden;
  transition:background .18s var(--ease), color .18s var(--ease);
}
body.is-locked{overflow:hidden}

/* Theme switch: force one fast, uniform colour fade across every element,
   so nothing lags behind on its own slower per-component transition. */
html.theme-switching *,
html.theme-switching *::before,
html.theme-switching *::after{
  transition:background-color .18s var(--ease),
             background-image .18s var(--ease),
             color .18s var(--ease),
             border-color .18s var(--ease),
             fill .18s var(--ease),
             stroke .18s var(--ease),
             box-shadow .18s var(--ease) !important;
}
@media (prefers-reduced-motion:reduce){
  body,
  html.theme-switching *,
  html.theme-switching *::before,
  html.theme-switching *::after{transition:none !important}
}
::selection{background:var(--violet);color:#010A24}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ============ PRELOADER ============ */
.preloader{
  position:fixed;inset:0;z-index:9999;
  background:var(--void);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .7s var(--ease), visibility .7s;
}
.preloader.is-done{opacity:0;visibility:hidden}
.preloader__inner{text-align:center;width:min(320px,80vw)}
.preloader__mark{
  font-size:44px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:spinMark 2.4s linear infinite;
}
@keyframes spinMark{to{transform:rotate(360deg)}}
.preloader__label{font-size:10px;letter-spacing:.22em;color:var(--text-dim);margin:18px 0 14px}
.preloader__bar{height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.preloader__bar span{display:block;height:100%;width:0;background:var(--grad);transition:width .25s linear}

/* ============ AMBIENT ============ */
.neural-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55}
html[data-theme="light"] .neural-canvas{opacity:.4}

.grid-overlay{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(to right,var(--line) 1px,transparent 1px),
    linear-gradient(to bottom,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 20%,transparent 80%);
  opacity:.5;
}
.noise-overlay{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}
main,.footer,.navbar,.announce,.trust{position:relative;z-index:2}

.cursor-glow{
  position:fixed;top:0;left:0;width:420px;height:420px;z-index:1;pointer-events:none;
  border-radius:50%;
  background:
    radial-gradient(circle at 38% 42%,var(--glow-violet) 0%,transparent 58%),
    radial-gradient(circle at 64% 60%,var(--glow-plasma) 0%,transparent 58%);
  transform:translate(-50%,-50%);opacity:0;transition:opacity .5s;
  filter:blur(24px);
}
@media (hover:hover){.cursor-glow{opacity:.7}}

.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:0;z-index:9998;
  background:var(--grad);box-shadow:0 0 12px var(--glow-plasma);
}

/* ============ ANNOUNCE BAR ============ */
.announce{
  overflow:hidden;border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--ink) 88%,transparent);
  backdrop-filter:blur(12px);
}
.announce__track{display:flex;gap:0;white-space:nowrap;animation:ticker 44s linear infinite;width:max-content}
.announce:hover .announce__track{animation-play-state:paused}
@keyframes ticker{to{transform:translateX(-50%)}}
.announce__item{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 28px;font-size:11.5px;letter-spacing:.06em;color:var(--text-dim);
  border-right:1px solid var(--line);
}
.dot,.live-dot{
  width:6px;height:6px;border-radius:50%;background:var(--plasma);display:inline-block;flex:none;
  box-shadow:0 0 0 0 var(--glow-plasma);animation:pulseDot 2s infinite;
}
/* announce ticker alternates its pulse dots green / blue */
.announce__item:nth-child(even) .dot{background:var(--violet);box-shadow:0 0 0 0 var(--glow-violet);animation-name:pulseDotAlt}
@keyframes pulseDot{
  0%{box-shadow:0 0 0 0 var(--glow-plasma)}
  70%{box-shadow:0 0 0 7px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}
@keyframes pulseDotAlt{
  0%{box-shadow:0 0 0 0 var(--glow-violet)}
  70%{box-shadow:0 0 0 7px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}

/* ============ NAV ============ */
.navbar{
  position:sticky;top:0;z-index:900;
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease),border-color .4s var(--ease),backdrop-filter .4s;
}
.navbar.is-stuck{
  background:color-mix(in srgb,var(--void) 78%,transparent);
  backdrop-filter:blur(18px) saturate(150%);
  border-bottom-color:var(--line);
}
.brand{display:inline-flex;align-items:center;gap:10px}
.brand__mark{
  font-size:22px;line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  transition:transform .6s var(--ease);
}
.brand:hover .brand__mark{transform:rotate(180deg)}
.brand__text{display:flex;flex-direction:column;line-height:1}
.brand__text strong{font-family:'Space Grotesk',sans-serif;font-weight:700;letter-spacing:.18em;font-size:15px;color:var(--text-hi)}
.brand__text em{font-style:normal;font-size:9px;letter-spacing:.24em;color:var(--text-dim);margin-top:3px}
.brand--lg .brand__mark{font-size:30px}
.brand--lg .brand__text strong{font-size:20px}
/* logo lockup already carries the wordmark, so it stands alone */
.brand__logo{height:38px;width:auto;display:block;transition:opacity .3s}
.brand--lg .brand__logo{height:50px}
.brand:hover .brand__logo{opacity:.85}
/* navy "ART / TECHNOLOGY" text is near-invisible on the dark canvas —
   lift its luminance without washing out the green + blue brand marks */
html[data-theme="dark"] .brand__logo{filter:brightness(1.9) saturate(1.15)}

.nav-item{position:relative}
.nav-link{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 14px;font-size:13.5px;font-weight:500;color:var(--text);
  border-radius:999px;transition:color .25s,background .25s;
  background:transparent;border:0;cursor:pointer;font-family:inherit;
}
.nav-link:hover{color:var(--text-hi);background:color-mix(in srgb,var(--surface) 70%,transparent)}
.chev{width:9px;height:6px;opacity:.5;transition:transform .3s}
.nav-item.is-open .chev{transform:rotate(180deg)}
.nav-item.is-open .nav-link{color:var(--text-hi);background:color-mix(in srgb,var(--surface) 70%,transparent)}

.icon-btn{
  width:38px;height:38px;display:grid;place-items:center;border-radius:12px;
  border:1px solid var(--line);color:var(--text);background:transparent;cursor:pointer;
  transition:border-color .25s,color .25s,transform .25s;
}
.icon-btn:hover{border-color:var(--line-2);color:var(--text-hi);transform:translateY(-1px)}
.icon-btn svg{width:18px;height:18px}
html[data-theme="dark"] .ico-sun{display:none}
html[data-theme="light"] .ico-moon{display:none}

.burger{
  width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:transparent;
  display:grid;place-content:center;gap:5px;cursor:pointer;
}
.burger span{display:block;width:16px;height:1.5px;background:var(--text);transition:transform .3s var(--ease),opacity .3s}
.burger.is-open span:nth-child(1){transform:translateY(3.25px) rotate(45deg)}
.burger.is-open span:nth-child(2){transform:translateY(-3.25px) rotate(-45deg)}

/* MEGA MENU */
.mega{
  position:absolute;left:0;right:0;top:100%;
  background:color-mix(in srgb,var(--ink) 94%,transparent);
  backdrop-filter:blur(24px) saturate(160%);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
  box-shadow:var(--shadow);
}
.mega.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.mega__eyebrow{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.2em;color:var(--plasma);margin-bottom:14px}
.mega__col:nth-child(even) .mega__eyebrow{color:var(--violet)}
.mega__link{display:block;padding:10px 12px;margin-left:-12px;border-radius:10px;transition:background .2s,transform .2s}
.mega__link:hover{background:color-mix(in srgb,var(--surface) 80%,transparent);transform:translateX(3px)}
.mega__link b{display:block;font-size:14px;color:var(--text-hi);font-weight:600;margin-bottom:2px}
.mega__link span{display:block;font-size:12px;color:var(--text-dim)}
.mega__promo{
  border:1px solid var(--line);border-radius:var(--r);padding:22px;
  background:var(--grad-soft);position:relative;overflow:hidden;
}
.mega__promo--ai{background:var(--grad-soft-alt);border-color:color-mix(in srgb,var(--violet) 32%,transparent)}
.mega__promo--ai .mega__eyebrow,.mega__promo--ai .mega__cta{color:var(--violet)}
.mega__promo h4{font-family:'Space Grotesk',sans-serif;font-size:19px;color:var(--text-hi);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.mega__promo p{font-size:12.5px;line-height:1.6;color:var(--text-dim)}
.mega__cta{display:inline-block;margin-top:14px;font-size:12.5px;font-weight:600;color:var(--plasma)}
.mega__cta:hover{text-decoration:underline}

/* MOBILE MENU */
.mobile-menu{
  position:fixed;inset:0;z-index:880;
  background:color-mix(in srgb,var(--void) 97%,transparent);
  backdrop-filter:blur(20px);
  padding:120px 24px 40px;
  transform:translateX(100%);transition:transform .45s var(--ease);
  overflow-y:auto;
}
.mobile-menu.is-open{transform:translateX(0)}
.mobile-menu nav{display:flex;flex-direction:column}
.mobile-menu nav a{
  font-family:'Space Grotesk',sans-serif;font-size:26px;font-weight:600;color:var(--text-hi);
  padding:16px 0;border-bottom:1px solid var(--line);
}
.mobile-menu nav a.btn{font-size:15px;border-bottom:0}

/* ============ BUTTONS ============ */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:9px;
  padding:11px 20px;border-radius:999px;font-size:13.5px;font-weight:600;
  cursor:pointer;border:1px solid transparent;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s,color .3s;
  white-space:nowrap;
}
.btn--lg{padding:15px 28px;font-size:14.5px}
.btn__arrow{width:15px;height:15px;transition:transform .35s var(--ease)}
.btn:hover .btn__arrow{transform:translateX(4px)}
.btn--primary{
  color:#010A24;background:var(--grad);background-size:180% 100%;
  box-shadow:0 8px 30px -10px var(--glow-violet);
}
.btn--primary:hover{background-position:100% 0;box-shadow:0 14px 40px -10px var(--glow-plasma);transform:translateY(-2px)}
.btn--ghost{
  color:var(--text-hi);border-color:var(--line-2);
  background:color-mix(in srgb,var(--surface) 55%,transparent);
  backdrop-filter:blur(8px);
}
.btn--ghost:hover{border-color:var(--plasma);color:var(--text-hi);transform:translateY(-2px);box-shadow:0 12px 34px -14px var(--glow-plasma)}
.play-ico{font-size:9px;color:var(--plasma)}

/* ============ TYPE / SECTION HEADS ============ */
.section{padding:clamp(52px,6vw,88px) 0;position:relative}
.eyebrow{font-size:10.5px;letter-spacing:.22em;color:var(--plasma);margin-bottom:18px}
.h2{
  font-size:clamp(32px,4.6vw,58px);line-height:1.06;letter-spacing:-.025em;
  font-weight:700;color:var(--text-hi);
}
.grad{
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  background-size:200% 100%;animation:gradShift 8s ease infinite;
}
@keyframes gradShift{0%,100%{background-position:0 0}50%{background-position:100% 0}}
.sec-head{display:grid;gap:22px;align-items:end}
@media(min-width:900px){.sec-head{grid-template-columns:1.15fr .85fr;gap:60px}}
/* Tighten the gap between a section head and its content. The markup sets this
   with Tailwind's mt-14/mt-16; override here so it stays in one place. */
.section .mt-14{margin-top:36px}
.section .mt-16{margin-top:44px}
.sec-head__lede{font-size:16px;line-height:1.75;color:var(--text-dim);max-width:52ch}
.sec-head__lede em{color:var(--text-hi);font-style:normal;font-weight:600}
.sec-head__link{font-size:13.5px;font-weight:600;color:var(--plasma);justify-self:start}
@media(min-width:900px){.sec-head__link{justify-self:end}}
.sec-head__link:hover{text-decoration:underline}

.pill{
  display:inline-flex;align-items:center;gap:9px;
  padding:7px 14px;border:1px solid var(--line-2);border-radius:999px;
  font-size:10.5px;letter-spacing:.16em;color:var(--text-dim);
  background:color-mix(in srgb,var(--surface) 55%,transparent);
  backdrop-filter:blur(8px);margin-bottom:26px;
}

/* ============ HERO ============ */
.hero{position:relative;overflow:hidden;padding-bottom:60px}
.hero__aurora{
  position:absolute;inset:-20% -10% auto -10%;height:900px;pointer-events:none;
  background:
    radial-gradient(50% 45% at 18% 22%,var(--glow-violet) 0%,transparent 62%),
    radial-gradient(42% 40% at 78% 8%,var(--glow-plasma) 0%,transparent 60%),
    radial-gradient(34% 34% at 62% 62%,rgba(247,148,29,.18) 0%,transparent 62%);
  filter:blur(46px);
  animation:auroraFloat 18s ease-in-out infinite alternate;
}
@keyframes auroraFloat{
  0%{transform:translate3d(0,0,0) scale(1)}
  100%{transform:translate3d(-3%,3%,0) scale(1.1)}
}
.hero__title{
  font-size:clamp(38px,5vw,68px);line-height:1.05;letter-spacing:-.035em;
  font-weight:700;color:var(--text-hi);margin-bottom:26px;
}
.hero__title .line{display:block}
.hero__lede{font-size:clamp(15px,1.25vw,17.5px);line-height:1.75;color:var(--text-dim);max-width:56ch}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero__stats{
  display:grid;grid-template-columns:repeat(2,1fr);gap:22px;
  margin-top:52px;padding-top:32px;border-top:1px solid var(--line);
}
@media(min-width:640px){.hero__stats{grid-template-columns:repeat(4,1fr)}}
.stat b{
  display:block;font-family:'Space Grotesk',sans-serif;font-size:clamp(26px,2.6vw,34px);
  font-weight:700;color:var(--text-hi);letter-spacing:-.02em;line-height:1;
}
.stat span{display:block;font-size:11.5px;color:var(--text-dim);margin-top:7px}

.hero__scroll{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  display:none;flex-direction:column;align-items:center;gap:10px;
  font-size:9px;letter-spacing:.28em;color:var(--text-dim);
}
@media(min-width:1024px){.hero__scroll{display:flex}}
.hero__scroll-line{width:1px;height:44px;background:linear-gradient(to bottom,var(--violet),var(--plasma) 55%,transparent);animation:scrollLine 2s ease-in-out infinite}
@keyframes scrollLine{0%,100%{opacity:.3;transform:scaleY(.5);transform-origin:top}50%{opacity:1;transform:scaleY(1)}}

/* ---- CONSOLE ---- */
.console{
  border:1px solid var(--line-2);border-radius:var(--r-lg);
  background:color-mix(in srgb,var(--surface) 82%,transparent);
  backdrop-filter:blur(20px);box-shadow:var(--shadow);overflow:hidden;
  position:relative;
}
.console::before{
  content:'';position:absolute;inset:0;border-radius:var(--r-lg);padding:1px;
  background:linear-gradient(135deg,var(--glow-plasma),transparent 40%,transparent 60%,var(--glow-violet));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;
}
.console__bar{
  display:flex;align-items:center;gap:12px;padding:12px 16px;
  border-bottom:1px solid var(--line);
}
.console__dots{display:flex;gap:6px}
.console__dots i{width:9px;height:9px;border-radius:50%;background:var(--line-2)}
.console__dots i:first-child{background:rgba(129,172,2,.7)}
.console__dots i:nth-child(2){background:rgba(0,174,239,.7)}
.console__dots i:last-child{background:rgba(247,148,29,.6)}
.console__title{font-size:11px;color:var(--text-dim);flex:1}
.console__status{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.14em;color:var(--violet)}
.console__status .live-dot{background:var(--violet);box-shadow:0 0 0 0 var(--glow-violet);animation-name:pulseDotAlt}
.console__body{padding:18px 16px;min-height:236px;font-size:12px;line-height:1.9}
.c-line{opacity:0;animation:lineIn .4s var(--ease) forwards;color:var(--text)}
@keyframes lineIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.c-dim{color:var(--text-dim)}
.c-cy{color:var(--plasma)}
.c-vi{color:var(--violet)}
.c-ok{color:#81AC02}
.c-am{color:var(--amber)}
.c-cursor::after{content:'▌';color:var(--plasma);animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.console__foot{padding:14px 16px;border-top:1px solid var(--line)}
.meter{height:3px;background:var(--line);border-radius:3px;overflow:hidden}
.meter__fill{display:block;height:100%;width:0;background:var(--grad);border-radius:3px;transition:width 1.8s var(--ease)}
.is-metered .meter__fill{width:var(--w)}
.console__metrics{display:flex;justify-content:space-between;gap:16px;margin-top:10px;font-size:10px;color:var(--text-dim)}
.console__metrics span{white-space:nowrap}
.console__metrics b{color:var(--text-hi)}

.orbit-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;justify-content:center}
.chip{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.08em;
  padding:5px 11px;border-radius:999px;border:1px solid var(--line);color:var(--text-dim);
  background:color-mix(in srgb,var(--surface) 50%,transparent);
}
/* chips alternate a green / blue edge so the orbit row reads dual-brand */
.orbit-chips .chip:nth-child(odd){border-color:color-mix(in srgb,var(--blue) 34%,transparent)}
.orbit-chips .chip:nth-child(even){border-color:color-mix(in srgb,var(--green) 40%,transparent)}

/* ============ TRUST MARQUEE ============ */
.trust{padding:34px 0;border-block:1px solid var(--line);overflow:hidden}
.trust__label{text-align:center;font-size:9.5px;letter-spacing:.28em;color:var(--text-dim);margin-bottom:20px}
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee__track{display:flex;align-items:center;gap:0;width:max-content;animation:ticker 38s linear infinite}
.marquee__track span{
  font-family:'Space Grotesk',sans-serif;font-size:clamp(18px,2vw,26px);font-weight:600;
  color:var(--text-dim);opacity:.5;padding:0 26px;white-space:nowrap;
  transition:opacity .3s,color .3s;
}
.marquee__track span:hover{opacity:1;color:var(--text-hi)}
.marquee__track i{color:var(--plasma);opacity:.4;font-size:10px;font-style:normal}
.marquee__track i:nth-of-type(even){color:var(--violet)}

/* ============ SYSTEM CARDS ============ */
.sys-card{
  position:relative;padding:32px 28px 28px;border-radius:var(--r-lg);
  border:1px solid var(--line);overflow:hidden;
  background:color-mix(in srgb,var(--surface) 60%,transparent);
  backdrop-filter:blur(14px);
  transition:transform .5s var(--ease),border-color .4s,box-shadow .5s;
}
.sys-card:hover{transform:translateY(-6px);border-color:var(--line-2);box-shadow:var(--shadow)}
.sys-card__glow{
  position:absolute;inset:auto -30% -60% -30%;height:220px;pointer-events:none;
  background:radial-gradient(closest-side,var(--glow-plasma),transparent);
  opacity:0;transition:opacity .5s;
}
.sys-card:hover .sys-card__glow{opacity:.55}
.sys-card--hero{
  border-color:color-mix(in srgb,var(--violet) 42%,transparent);
  background:linear-gradient(160deg,rgba(129,172,2,.14),color-mix(in srgb,var(--surface) 70%,transparent));
}
.sys-card--hero .sys-card__glow{background:radial-gradient(closest-side,var(--glow-violet),transparent)}
.sys-card__idx{position:absolute;top:22px;right:24px;font-size:10px;letter-spacing:.14em;color:var(--text-dim);opacity:.6}
.sys-card__ico{
  width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:18px;
  background:var(--grad-soft);border:1px solid var(--line-2);color:var(--plasma);margin-bottom:20px;
}
/* every other card flips to the opposite brand colour: icon, bullets, link, glow */
.sys-card:nth-child(even){
  --plasma:#81AC02;--violet:#00AEEF;
  --glow-plasma:rgba(129,172,2,.38);--glow-violet:rgba(0,174,239,.38);
  --grad-soft:var(--grad-soft-alt);
}
html[data-theme="light"] .sys-card:nth-child(even){
  --plasma:#6E9302;--violet:#0090C6;
  --glow-plasma:rgba(129,172,2,.22);--glow-violet:rgba(0,174,239,.22);
}
/* third card leans green so the trio isn't two-thirds blue */
.sys-card:nth-child(3) .sys-card__ico{color:var(--violet);background:var(--grad-soft-alt)}
.sys-card:nth-child(3) .sys-card__list li::before{background:var(--violet)}
.sys-card h3{font-size:21px;font-weight:600;color:var(--text-hi);margin-bottom:11px;letter-spacing:-.01em}
.sys-card p{font-size:14px;line-height:1.7;color:var(--text-dim)}
.sys-card__list{margin:20px 0 22px;padding:0;list-style:none;border-top:1px solid var(--line)}
.sys-card__list li{
  font-size:13px;color:var(--text);padding:9px 0 9px 18px;border-bottom:1px solid var(--line);position:relative;
}
.sys-card__list li::before{content:'';position:absolute;left:0;top:16px;width:5px;height:5px;border-radius:50%;background:var(--plasma)}
.sys-card__link{font-size:13px;font-weight:600;color:var(--plasma);transition:letter-spacing .3s}
.sys-card__link:hover{letter-spacing:.02em}

/* ============ BENTO ============ */
.bento{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:768px){.bento{grid-template-columns:repeat(4,1fr)}}
.bento__cell{
  position:relative;overflow:hidden;padding:28px;border-radius:var(--r-lg);
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 55%,transparent);
  backdrop-filter:blur(12px);
  transition:transform .45s var(--ease),border-color .35s,background .35s;
  grid-column:span 1;
}
@media(min-width:768px){
  .bento__cell{grid-column:span 2}
  .bento__cell--wide{grid-column:span 2}
  .bento__cell--full{grid-column:span 4}
}
@media(min-width:1024px){
  /* true bento rhythm: 2+1+1 / 1+3 / 4 */
  .bento__cell{grid-column:span 1}
  .bento__cell--wide{grid-column:span 2}
  .bento__cell--accent{grid-column:span 3}
  .bento__cell--full{grid-column:span 4}
}
.bento__cell:hover{transform:translateY(-4px);border-color:var(--line-2)}
.bento__cell--accent{
  background:linear-gradient(140deg,rgba(0,174,239,.10),rgba(129,172,2,.10));
  border-color:color-mix(in srgb,var(--plasma) 30%,transparent);
}
/* bento numbering alternates green / blue down the grid */
.bento__cell:nth-child(even){--plasma:#81AC02;--violet:#00AEEF;--glow-plasma:rgba(129,172,2,.38);--glow-violet:rgba(0,174,239,.38)}
html[data-theme="light"] .bento__cell:nth-child(even){--plasma:#6E9302;--violet:#0090C6}
.bento__cell--accent:nth-child(even){background:linear-gradient(140deg,rgba(129,172,2,.12),rgba(0,174,239,.10))}
.bento__num{font-size:10px;letter-spacing:.2em;color:var(--plasma);margin-bottom:14px}
.bento__cell h3{font-size:20px;font-weight:600;color:var(--text-hi);margin-bottom:10px;letter-spacing:-.01em}
.bento__cell p{font-size:14px;line-height:1.7;color:var(--text-dim);max-width:60ch;position:relative;z-index:2}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px;position:relative;z-index:2}
.tags span{
  font-family:'JetBrains Mono',monospace;font-size:10px;padding:4px 9px;border-radius:6px;
  border:1px solid var(--line);color:var(--text-dim);
  background:color-mix(in srgb,var(--void) 40%,transparent);
}
.bento__art{position:absolute;pointer-events:none}
.bento__art--code{
  inset:auto -20px -20px auto;width:180px;height:180px;opacity:.16;
  background:
    repeating-linear-gradient(0deg,transparent 0 8px,var(--plasma) 8px 9px),
    repeating-linear-gradient(90deg,transparent 0 8px,var(--violet) 8px 9px);
  mask-image:radial-gradient(circle at 100% 100%,#000,transparent 70%);
}
.bento__art--pulse{
  inset:auto -40px -40px auto;width:220px;height:220px;border-radius:50%;
  border:1px solid var(--plasma);opacity:.25;
  box-shadow:0 0 0 24px rgba(0,174,239,.04),0 0 0 52px rgba(129,172,2,.03);
  animation:pulseRing 4s ease-in-out infinite;
}
@keyframes pulseRing{0%,100%{transform:scale(1);opacity:.22}50%{transform:scale(1.08);opacity:.4}}

/* ============ AI SECTION ============ */
.section--ai{overflow:hidden}
.ai-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(46% 44% at 28% 34%,var(--glow-violet) 0%,transparent 66%),
    radial-gradient(46% 44% at 74% 52%,var(--glow-plasma) 0%,transparent 66%);
  opacity:.5;filter:blur(60px);
}
.agent-lab{
  display:grid;gap:14px;
  border:1px solid var(--line-2);border-radius:var(--r-xl);padding:14px;
  background:color-mix(in srgb,var(--surface) 62%,transparent);
  backdrop-filter:blur(18px);box-shadow:var(--shadow);
}
@media(min-width:960px){.agent-lab{grid-template-columns:340px 1fr}}
.agent-lab__rail{display:flex;flex-direction:column;gap:8px}
.agent-tab{
  display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;
  padding:16px;border-radius:var(--r);border:1px solid transparent;
  background:transparent;color:var(--text);font-family:inherit;
  transition:background .3s,border-color .3s,transform .3s var(--ease);
}
.agent-tab:hover{background:color-mix(in srgb,var(--void) 40%,transparent);transform:translateX(3px)}
.agent-tab.is-active{
  background:linear-gradient(100deg,rgba(0,174,239,.12),rgba(129,172,2,.12));
  border-color:color-mix(in srgb,var(--plasma) 35%,transparent);
}
.agent-tab__ico{
  width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:11px;
  border:1px solid var(--line-2);color:var(--text-dim);font-size:15px;transition:color .3s,border-color .3s;
}
.agent-tab.is-active .agent-tab__ico{color:var(--plasma);border-color:var(--plasma);box-shadow:0 0 16px -4px var(--glow-plasma)}
/* rail tabs alternate their active colour, so the lab never reads all-blue */
.agent-tab:nth-child(even){--plasma:#81AC02;--violet:#00AEEF;--glow-plasma:rgba(129,172,2,.38);--glow-violet:rgba(0,174,239,.38)}
html[data-theme="light"] .agent-tab:nth-child(even){--plasma:#6E9302;--violet:#0090C6}
.agent-tab:nth-child(even).is-active{background:linear-gradient(100deg,rgba(129,172,2,.14),rgba(0,174,239,.10))}
.agent-tab b{display:block;font-size:14px;font-weight:600;color:var(--text-hi)}
.agent-tab em{display:block;font-style:normal;font-size:11.5px;color:var(--text-dim);margin-top:3px}

.agent-lab__stage{
  border-radius:var(--r-lg);border:1px solid var(--line);padding:22px;
  background:color-mix(in srgb,var(--void) 55%,transparent);
  display:flex;flex-direction:column;min-height:400px;
}
.agent-stage__head{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line)}
.agent-stage__head span:first-child{font-size:11.5px;color:var(--text-dim)}
.agent-stage__badge{display:inline-flex;align-items:center;gap:6px;font-size:9.5px;letter-spacing:.14em;color:var(--plasma)}
.agent-flow{list-style:none;margin:0;padding:20px 0 0;flex:1;position:relative}
.agent-flow::before{content:'';position:absolute;left:11px;top:28px;bottom:14px;width:1px;background:var(--line)}
.agent-flow li{
  position:relative;padding:0 0 20px 36px;opacity:0;transform:translateY(8px);
  animation:stepIn .5s var(--ease) forwards;
}
@keyframes stepIn{to{opacity:1;transform:none}}
.agent-flow li::before{
  content:'';position:absolute;left:6px;top:5px;width:11px;height:11px;border-radius:50%;
  background:var(--void);border:1.5px solid var(--plasma);box-shadow:0 0 10px -1px var(--glow-plasma);
}
.agent-flow li:nth-child(even)::before{border-color:var(--violet);box-shadow:0 0 10px -1px var(--glow-violet)}
.agent-flow b{display:block;font-size:14px;color:var(--text-hi);font-weight:600;margin-bottom:3px}
.agent-flow span{display:block;font-size:12.5px;color:var(--text-dim);line-height:1.6}
.agent-flow code{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--plasma);
  background:color-mix(in srgb,var(--plasma) 10%,transparent);padding:1px 6px;border-radius:5px;
}
.agent-flow li:nth-child(even) code{color:var(--violet);background:color-mix(in srgb,var(--violet) 10%,transparent)}
/* flow spine blends both brand colours */
.agent-flow::before{background:linear-gradient(to bottom,var(--plasma),var(--violet));opacity:.45}
.agent-stage__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:18px;border-top:1px solid var(--line)}
.agent-stage__kpis div{text-align:center}
.agent-stage__kpis b{display:block;font-family:'Space Grotesk',sans-serif;font-size:22px;color:var(--text-hi);font-weight:700}
.agent-stage__kpis span{display:block;font-size:10.5px;color:var(--text-dim);margin-top:4px}

.ai-strip{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--line);
}
@media(min-width:900px){.ai-strip{grid-template-columns:repeat(4,1fr)}}
.ai-strip__item{padding:22px;background:var(--void);text-align:center}
.ai-strip__item b{
  display:block;font-family:'Space Grotesk',sans-serif;font-size:28px;font-weight:700;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.ai-strip__item:nth-child(even) b{background:var(--grad-alt);-webkit-background-clip:text;background-clip:text}
.ai-strip__item span{display:block;font-size:11.5px;color:var(--text-dim);margin-top:6px;line-height:1.5}

/* ============ PROCESS ============ */
.process{position:relative}
.process__line{position:absolute;left:0;right:0;top:5px;height:1px;background:var(--line);display:none}
@media(min-width:900px){.process__line{display:block}}
.process__line span{display:block;height:100%;width:0;background:var(--grad);box-shadow:0 0 12px var(--glow-plasma);transition:width .2s linear}
.process__steps{display:grid;gap:36px}
@media(min-width:900px){.process__steps{grid-template-columns:repeat(4,1fr);gap:32px}}
.pstep{position:relative;padding-top:28px}
.pstep__dot{
  position:absolute;top:0;left:0;width:11px;height:11px;border-radius:50%;
  background:var(--void);border:1.5px solid var(--line-2);transition:border-color .4s,box-shadow .4s;
}
.pstep.is-visible .pstep__dot{border-color:var(--plasma);box-shadow:0 0 14px -2px var(--glow-plasma)}
.pstep__day{display:block;font-size:10px;letter-spacing:.18em;color:var(--plasma);margin-bottom:10px}
/* the timeline walks green → blue → green → blue across its four steps */
.pstep:nth-child(even){--plasma:#81AC02;--glow-plasma:rgba(129,172,2,.38)}
html[data-theme="light"] .pstep:nth-child(even){--plasma:#6E9302;--glow-plasma:rgba(129,172,2,.22)}
.pstep h3{font-size:22px;font-weight:600;color:var(--text-hi);margin-bottom:10px;letter-spacing:-.01em}
.pstep p{font-size:13.5px;line-height:1.75;color:var(--text-dim)}

/* ============ WORK ============ */
.work-grid{display:grid;gap:14px}
@media(min-width:700px){.work-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1060px){.work-grid{grid-template-columns:repeat(3,1fr)}}
.work-card{
  display:block;padding:14px;border-radius:var(--r-lg);border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 55%,transparent);backdrop-filter:blur(12px);
  transition:transform .45s var(--ease),border-color .35s,box-shadow .45s;
}
.work-card:hover{transform:translateY(-6px);border-color:var(--line-2);box-shadow:var(--shadow)}
.work-card__visual{
  position:relative;height:190px;border-radius:var(--r);overflow:hidden;
  display:grid;place-items:center;
  transition:filter .5s;
}
/* three blue-led and three green-led tiles, each blending toward the other brand */
.work-card__visual[data-shade="a"]{background:linear-gradient(135deg,#010A24,#00AEEF3D 58%,#81AC0233)}
.work-card__visual[data-shade="b"]{background:linear-gradient(135deg,#04102E,#81AC023D 58%,#00AEEF33)}
.work-card__visual[data-shade="c"]{background:linear-gradient(135deg,#010A24,#00AEEF38 55%,#F7941D2E)}
.work-card__visual[data-shade="d"]{background:linear-gradient(135deg,#04102E,#81AC0238 58%,#00AEEF2E)}
.work-card__visual[data-shade="e"]{background:linear-gradient(135deg,#010A24,#81AC0236 55%,#F7941D2E)}
.work-card__visual[data-shade="f"]{background:linear-gradient(135deg,#04102E,#00AEEF36 58%,#81AC0233)}
.work-card__visual::after{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(to right,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:26px 26px;
}
.work-card__glyph{
  font-family:'Space Grotesk',sans-serif;font-size:52px;font-weight:700;color:#fff;opacity:.9;
  position:relative;z-index:2;text-shadow:0 6px 30px rgba(0,0,0,.4);
  transition:transform .6s var(--ease);
}
.work-card:hover .work-card__glyph{transform:scale(1.12)}
.work-card__meta{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 8px 0}
.work-card__meta h3{font-size:17px;font-weight:600;color:var(--text-hi);margin-bottom:5px}
.work-card__meta p{font-size:12.5px;color:var(--text-dim);line-height:1.55}
.work-card__kpi{
  flex:none;text-align:right;font-family:'Space Grotesk',sans-serif;font-size:16px;font-weight:700;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.work-card:nth-child(even) .work-card__kpi{background:var(--grad-alt);-webkit-background-clip:text;background-clip:text}
.work-card__kpi em{display:block;font-style:normal;font-size:9.5px;letter-spacing:.08em;color:var(--text-dim);-webkit-text-fill-color:var(--text-dim);margin-top:3px}
.work-card .tags{padding:0 8px 6px}

/* ============ STACK ============ */
.stack-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media(min-width:640px){.stack-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.stack-grid{grid-template-columns:repeat(6,1fr)}}
.stack-item{
  padding:26px 16px;background:var(--void);text-align:center;
  transition:background .35s;position:relative;
}
.stack-item:hover{background:var(--surface)}
.stack-item::after{
  content:'';position:absolute;inset:0;opacity:0;transition:opacity .35s;
  background:radial-gradient(circle at 50% 100%,var(--glow-plasma),transparent 70%);
}
/* the stack grid hover-glow checkerboards between the two brand colours */
.stack-item:nth-child(even)::after{background:radial-gradient(circle at 50% 100%,var(--glow-violet),transparent 70%)}
.stack-item:hover::after{opacity:.3}
.stack-item b{display:block;font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:600;color:var(--text-hi);position:relative;z-index:2}
.stack-item span{display:block;font-size:10.5px;color:var(--text-dim);margin-top:5px;position:relative;z-index:2}

.ventures__grid{display:grid;gap:12px}
@media(min-width:700px){.ventures__grid{grid-template-columns:repeat(4,1fr)}}
.venture{
  position:relative;padding:22px;border-radius:var(--r);border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 50%,transparent);
  transition:transform .4s var(--ease),border-color .3s;
}
.venture:hover{transform:translateY(-4px);border-color:var(--plasma)}
.venture:nth-child(even){--plasma:#81AC02}
html[data-theme="light"] .venture:nth-child(even){--plasma:#6E9302}
.venture b{display:block;font-family:'Space Grotesk',sans-serif;font-size:16px;color:var(--text-hi);margin-bottom:5px}
.venture span{display:block;font-size:12px;color:var(--text-dim);line-height:1.5}
.venture i{position:absolute;top:20px;right:20px;font-style:normal;color:var(--text-dim);transition:color .3s,transform .3s}
.venture:hover i{color:var(--plasma);transform:translate(2px,-2px)}

/* ============ TESTIMONIALS ============ */
.rating-badge{
  display:inline-flex;align-items:center;gap:12px;padding:14px 18px;border-radius:var(--r);
  border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 55%,transparent);
  font-size:13px;color:var(--text-dim);justify-self:start;
}
@media(min-width:900px){.rating-badge{justify-self:end}}
.rating-badge b{color:var(--text-hi)}
.rating-badge__stars{color:var(--amber);letter-spacing:.1em;font-size:14px}
.quotes{position:relative}
.quote-track{display:flex;gap:16px;transition:transform .6s var(--ease)}
.quote{
  flex:0 0 100%;margin:0;padding:34px;border-radius:var(--r-lg);
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 58%,transparent);
  backdrop-filter:blur(12px);
}
@media(min-width:760px){.quote{flex:0 0 calc(50% - 8px)}}
@media(min-width:1100px){.quote{flex:0 0 calc(33.333% - 11px)}}
/* testimonials: 2 per row up to 991px, 1 per row up to 767px */
@media(max-width:991.98px){.quote{flex:0 0 calc(50% - 8px)}}
@media(max-width:767.98px){.quote{flex:0 0 100%}}
.quote blockquote{
  margin:0 0 26px;font-family:'Space Grotesk',sans-serif;font-size:17px;line-height:1.6;
  color:var(--text-hi);font-weight:500;letter-spacing:-.01em;
}
.quote blockquote::before{content:'“';color:var(--plasma);font-size:30px;line-height:0;vertical-align:-6px;margin-right:2px}
/* quote marks + avatars alternate; avatar wash flips gradient direction */
.quote:nth-child(even){--plasma:#81AC02;--violet:#00AEEF;--grad-soft:var(--grad-soft-alt)}
html[data-theme="light"] .quote:nth-child(even){--plasma:#6E9302;--violet:#0090C6}
.quote figcaption{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:center;padding-top:20px;border-top:1px solid var(--line)}
.av{
  grid-row:span 2;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--text-hi);
  background:var(--grad-soft);border:1px solid var(--line-2);
}
.quote figcaption b{font-size:13.5px;color:var(--text-hi);align-self:end}
.quote figcaption em{font-style:normal;font-size:11.5px;color:var(--text-dim);align-self:start}
.quotes__nav{display:flex;align-items:center;gap:14px;margin-top:26px}
.q-btn{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:transparent;
  color:var(--text);cursor:pointer;transition:border-color .3s,color .3s,transform .3s;
}
.q-btn:hover{border-color:var(--plasma);color:var(--plasma);transform:translateY(-2px)}
.quotes__dots{display:flex;gap:6px;flex:1}
.quotes__dots i{width:20px;height:2px;border-radius:2px;background:var(--line-2);cursor:pointer;transition:background .3s,width .3s}
.quotes__dots i.is-active{background:var(--plasma);width:34px}

/* ============ PRICING ============ */
.price-card{
  position:relative;padding:32px 28px;border-radius:var(--r-lg);border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 55%,transparent);backdrop-filter:blur(12px);
  display:flex;flex-direction:column;
  transition:transform .45s var(--ease),border-color .35s;
}
.price-card:hover{transform:translateY(-5px);border-color:var(--line-2)}
.price-card--feature{
  border-color:color-mix(in srgb,var(--violet) 45%,transparent);
  background:linear-gradient(160deg,rgba(129,172,2,.13),color-mix(in srgb,var(--surface) 68%,transparent));
  box-shadow:0 26px 70px -32px var(--glow-violet);
}
/* first tier reads blue, third tier green; the featured middle tier carries both */
.price-card:nth-child(3){--plasma:#81AC02;--violet:#00AEEF;--glow-plasma:rgba(129,172,2,.38);--glow-violet:rgba(0,174,239,.38)}
html[data-theme="light"] .price-card:nth-child(3){--plasma:#6E9302;--violet:#0090C6}
.price-card--feature{
  background:linear-gradient(160deg,rgba(0,174,239,.14),rgba(129,172,2,.14) 62%,color-mix(in srgb,var(--surface) 68%,transparent));
}
.price-card__ribbon{
  position:absolute;top:-1px;right:24px;padding:5px 12px;border-radius:0 0 8px 8px;
  font-size:9px;letter-spacing:.16em;color:#010A24;background:var(--grad);
}
.price-card__tag{font-size:10px;letter-spacing:.2em;color:var(--plasma);margin-bottom:18px}
.price-card__amt{
  font-family:'Space Grotesk',sans-serif;font-size:52px;font-weight:700;color:var(--text-hi);
  line-height:1;letter-spacing:-.03em;display:flex;align-items:baseline;gap:2px;
}
.price-card__amt span{font-size:24px;color:var(--text-dim)}
.price-card__amt em{font-style:normal;font-size:14px;color:var(--text-dim);font-weight:400;margin-left:4px}
.price-card__desc{font-size:13.5px;line-height:1.7;color:var(--text-dim);margin:16px 0 22px}
.price-card ul{list-style:none;margin:0 0 26px;padding:0;flex:1;border-top:1px solid var(--line)}
.price-card li{
  font-size:13px;color:var(--text);padding:10px 0 10px 22px;border-bottom:1px solid var(--line);position:relative;
}
.price-card li::before{
  content:'✦';position:absolute;left:0;top:9px;color:var(--plasma);font-size:11px;
}
.price-note{text-align:center;margin-top:32px;font-size:11px;letter-spacing:.06em;color:var(--text-dim)}

/* ============ INSIGHTS ============ */
.post{
  display:block;padding:28px;border-radius:var(--r-lg);border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 52%,transparent);
  transition:transform .45s var(--ease),border-color .35s,background .35s;
}
.post:hover{transform:translateY(-5px);border-color:var(--line-2);background:color-mix(in srgb,var(--surface) 80%,transparent)}
.post__cat{font-size:9.5px;letter-spacing:.2em;color:var(--plasma);margin-bottom:14px}
.post:nth-child(even) .post__cat{color:var(--violet)}
.post:nth-child(even):hover{border-color:color-mix(in srgb,var(--violet) 34%,transparent)}
.post:nth-child(odd):hover{border-color:color-mix(in srgb,var(--plasma) 34%,transparent)}
.post h3{font-size:19px;line-height:1.35;font-weight:600;color:var(--text-hi);margin-bottom:12px;letter-spacing:-.01em}
.post__ex{font-size:13.5px;line-height:1.7;color:var(--text-dim);margin-bottom:20px}
.post__meta{font-size:11.5px;color:var(--text-dim);padding-top:16px;border-top:1px solid var(--line);display:block}

/* ============ CTA / FORM ============ */
.section--cta{position:relative;overflow:hidden}
.cta-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(50% 50% at 15% 30%,var(--glow-plasma) 0%,transparent 60%),
    radial-gradient(45% 45% at 85% 70%,var(--glow-violet) 0%,transparent 60%);
  opacity:.45;filter:blur(60px);
}
.cta__lede{font-size:16px;line-height:1.75;color:var(--text-dim);margin:22px 0 28px;max-width:48ch}
.cta__list{list-style:none;margin:0 0 34px;padding:0}
.cta__list li{display:flex;gap:11px;font-size:13.5px;color:var(--text);padding:9px 0}
.cta__list i{font-style:normal;color:var(--plasma);font-size:11px;line-height:1.6}
.cta__contact{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cta__contact-item{
  padding:16px 18px;background:color-mix(in srgb,var(--void) 70%,transparent);
  display:flex;flex-direction:column;gap:4px;transition:background .3s;
}
a.cta__contact-item:hover{background:var(--surface)}
.cta__contact-item span{font-size:9.5px;letter-spacing:.2em;color:var(--plasma)}
.cta__contact-item:nth-child(even) span{color:var(--violet)}
.cta__list li:nth-child(even) i{color:var(--violet)}
.cta__contact-item b{font-size:14px;color:var(--text-hi);font-weight:500}

.form{
  padding:30px;border-radius:var(--r-xl);border:1px solid var(--line-2);
  background:color-mix(in srgb,var(--surface) 72%,transparent);
  backdrop-filter:blur(20px);box-shadow:var(--shadow);
}
.form__row{display:grid;gap:16px}
@media(min-width:600px){.form__row{grid-template-columns:1fr 1fr}}
.field{display:block;margin-bottom:16px;border:0;padding:0}
.field > span{display:block;font-size:11.5px;font-weight:500;color:var(--text-dim);margin-bottom:8px}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border-radius:12px;
  border:1px solid var(--line);background:color-mix(in srgb,var(--void) 60%,transparent);
  color:var(--text-hi);font-family:inherit;font-size:14px;
  transition:border-color .3s,box-shadow .3s,background .3s;
}
.field textarea{resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--text-dim);opacity:.55}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--plasma);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--plasma) 12%,transparent);
  background:color-mix(in srgb,var(--void) 85%,transparent);
}
.field input.is-error{border-color:var(--magenta);box-shadow:0 0 0 3px rgba(247,148,29,.12)}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip-check{cursor:pointer}
.chip-check input{position:absolute;opacity:0;pointer-events:none}
.chip-check span{
  display:inline-block;padding:8px 13px;border-radius:999px;border:1px solid var(--line);
  font-size:12.5px;color:var(--text-dim);transition:all .25s;
  background:color-mix(in srgb,var(--void) 50%,transparent);
}
.chip-check span:hover{border-color:var(--line-2);color:var(--text)}
.chip-check input:checked + span{
  border-color:var(--plasma);color:var(--text-hi);
  background:var(--grad-soft);
  box-shadow:0 0 18px -8px var(--glow-plasma);
}
.form__note{margin-top:14px;text-align:center;font-size:10.5px;letter-spacing:.05em;color:var(--text-dim);transition:color .3s}
.form__note.is-ok{color:#81AC02}
.form__note.is-err{color:var(--magenta)}

/* ============ FOOTER ============ */
.footer{border-top:1px solid var(--line);padding:70px 0 30px;background:color-mix(in srgb,var(--ink) 60%,transparent)}
.footer__top{display:grid;gap:20px;padding-bottom:50px;border-bottom:1px solid var(--line)}
@media(min-width:900px){.footer__top{grid-template-columns:auto 1fr;gap:70px;align-items:center}}
.footer__pitch{font-size:14.5px;line-height:1.75;color:var(--text-dim);max-width:62ch}
.footer__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 24px;padding:50px 0}
@media(min-width:900px){.footer__grid{grid-template-columns:repeat(5,1fr)}}
.footer__h{font-size:9.5px;letter-spacing:.22em;color:var(--plasma);margin-bottom:16px}
/* footer column headings alternate green / blue across the five columns */
.footer__grid > div:nth-child(even) .footer__h{color:var(--violet)}
.footer__grid a{display:block;font-size:13px;color:var(--text-dim);padding:5px 0;transition:color .25s,transform .25s}
.footer__grid a:hover{color:var(--text-hi);transform:translateX(3px)}
.footer__addr{display:block;font-size:13px;color:var(--text-dim);line-height:1.7;margin-top:10px}
.socials{display:flex;gap:8px;margin-top:16px}
.socials a{
  width:32px;height:32px;display:grid !important;place-items:center;border-radius:9px;
  border:1px solid var(--line);font-size:10.5px;font-family:'JetBrains Mono',monospace;
  transition:all .25s;padding:0 !important;
}
.socials a:hover{border-color:var(--plasma);color:var(--plasma);transform:translateY(-2px)}
.socials a:nth-child(even):hover{border-color:var(--violet);color:var(--violet)}
.footer__badges{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:24px 0;
  border-block:1px solid var(--line);font-size:11.5px;color:var(--text-dim);
}
.footer__badges i{color:var(--plasma);font-style:normal}
.footer__badges i:nth-of-type(even){color:var(--violet)}
.footer__bar{display:flex;flex-direction:column;gap:14px;padding-top:26px;font-size:11.5px;color:var(--text-dim)}
@media(min-width:800px){.footer__bar{flex-direction:row;justify-content:space-between;align-items:center}}
.footer__legal{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.footer__legal a:hover{color:var(--text-hi)}
.footer__made b{color:var(--plasma)}

/* ============ CHAT WIDGET ============ */
.chat-fab{
  position:fixed;right:22px;bottom:22px;z-index:950;
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 20px 13px 15px;border-radius:999px;border:1px solid var(--line-2);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:blur(16px);cursor:pointer;color:var(--text-hi);
  font-family:inherit;font-size:13px;font-weight:600;
  box-shadow:0 16px 40px -16px rgba(0,0,0,.6);
  transition:transform .35s var(--ease),box-shadow .35s,opacity .3s;
}
.chat-fab:hover{transform:translateY(-3px);box-shadow:0 22px 50px -18px var(--glow-violet)}
.chat-fab.is-hidden{opacity:0;pointer-events:none;transform:scale(.85)}
.chat-fab__ico{
  font-size:16px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  position:relative;z-index:2;
}
.chat-fab__ring{
  position:absolute;left:9px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;border-radius:50%;border:1px solid var(--violet);opacity:.45;
  animation:pulseRing 2.6s ease-in-out infinite;
}
@media(max-width:520px){.chat-fab__text{display:none}.chat-fab{padding:15px;border-radius:50%}.chat-fab__ring{left:8px}}

.chat-panel{
  position:fixed;right:22px;bottom:22px;z-index:960;
  width:min(390px,calc(100vw - 32px));height:min(600px,calc(100vh - 100px));
  display:flex;flex-direction:column;
  border-radius:var(--r-xl);border:1px solid var(--line-2);
  background:color-mix(in srgb,var(--ink) 96%,transparent);
  backdrop-filter:blur(24px);box-shadow:0 30px 80px -20px rgba(0,0,0,.7);
  opacity:0;visibility:hidden;transform:translateY(20px) scale(.96);transform-origin:bottom right;
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;
  overflow:hidden;
}
.chat-panel.is-open{opacity:1;visibility:visible;transform:none}
.chat-panel__head{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--line);background:var(--grad-soft)}
.chat-panel__id{display:flex;align-items:center;gap:11px}
.chat-panel__av{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:17px;
  border:1px solid var(--line-2);
  background:var(--void);
  color:var(--violet);
}
.chat-panel__id b{display:block;font-size:14px;color:var(--text-hi)}
.chat-panel__id em{display:flex;align-items:center;gap:5px;font-style:normal;font-size:9.5px;letter-spacing:.06em;color:var(--text-dim);margin-top:3px}
.chat-panel__close{background:transparent;border:0;color:var(--text-dim);font-size:14px;cursor:pointer;padding:6px;border-radius:8px;transition:color .25s,background .25s}
.chat-panel__close:hover{color:var(--text-hi);background:var(--surface)}
.chat-panel__body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px}
.chat-panel__body::-webkit-scrollbar{width:5px}
.chat-panel__body::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:5px}
.msg{max-width:86%;padding:12px 15px;border-radius:16px;font-size:13.5px;line-height:1.65;animation:msgIn .35s var(--ease)}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.msg--bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:5px;color:var(--text)}
.msg--user{align-self:flex-end;background:var(--grad);color:#010A24;border-bottom-right-radius:5px;font-weight:500}
.msg b{color:var(--text-hi)}
.msg--user b{color:#010A24}
.msg--typing{display:flex;gap:4px;align-items:center;padding:14px 16px}
.msg--typing i{width:6px;height:6px;border-radius:50%;background:var(--text-dim);animation:typing 1.2s infinite}
.msg--typing i:nth-child(2){animation-delay:.15s}
.msg--typing i:nth-child(3){animation-delay:.3s}
@keyframes typing{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.chat-panel__sugg{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 12px}
.chat-panel__sugg button{
  font-size:11.5px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);
  background:transparent;color:var(--text-dim);cursor:pointer;font-family:inherit;transition:all .25s;
}
.chat-panel__sugg button:hover{border-color:var(--plasma);color:var(--plasma)}
.chat-panel__sugg button:nth-child(even):hover{border-color:var(--violet);color:var(--violet)}
.chat-panel__input{display:flex;gap:8px;padding:14px 16px;border-top:1px solid var(--line)}
.chat-panel__input input{
  flex:1;padding:11px 14px;border-radius:999px;border:1px solid var(--line);
  background:var(--void);color:var(--text-hi);font-family:inherit;font-size:13.5px;
}
.chat-panel__input input:focus{outline:none;border-color:var(--plasma)}
.chat-panel__input button{
  width:40px;height:40px;flex:none;border-radius:50%;border:0;cursor:pointer;
  background:var(--grad);color:#010A24;font-size:15px;font-weight:700;
  transition:transform .25s;
}
.chat-panel__input button:hover{transform:translateY(-2px) scale(1.05)}

/* ============ REVEAL / MOTION ============ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
/* GSAP drives .reveal itself — drop the CSS transition so the two don't fight.
   Scoped to html.js-gsap so a failed CDN load falls back to the IO/CSS path. */
html.js-gsap .reveal{transition:none}
.tilt{transform-style:preserve-3d;will-change:transform}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition-duration:.01ms !important}
  .reveal{opacity:1;transform:none}
}

/* ============ RESPONSIVE TWEAKS ============ */
@media(max-width:640px){
  .hero{padding-bottom:30px}
  .form{padding:22px}
  .sys-card,.bento__cell,.quote{padding:24px}
  .agent-lab{padding:10px}
  .agent-lab__stage{padding:16px}
}

/* ============================================================
   RESPONSIVE — TABLET & MOBILE ONLY
   Everything below is scoped to <1024px. The desktop layout
   (>=1024px, where Tailwind's lg: breakpoint takes over) is
   never entered by these rules and is unchanged.
   ============================================================ */
@media(max-width:1023.98px){

  /* ---- ambient: cheaper + less visual noise on small screens ---- */
  .grid-overlay{background-size:44px 44px;opacity:.35}
  .cursor-glow{display:none}
  .hero__aurora{height:560px;filter:blur(38px)}
  .ai-bg,.cta-bg{filter:blur(44px);opacity:.4}

  /* ---- nav ---- */
  .announce__item{padding:8px 18px;font-size:10.5px}
  .navbar .h-\[72px\]{height:64px}
  .brand__text strong{font-size:14px;letter-spacing:.16em}
  /* mega menus are desktop-only (nav is hidden below lg) — keep them out of the way */
  .mega{display:none}
  .mobile-menu{padding:104px 22px 40px}
  .mobile-menu nav a{font-size:22px;padding:14px 0}

  /* ---- hero: single column, console below copy ---- */
  .hero__title{font-size:clamp(32px,6.4vw,48px)}
  .hero__lede{font-size:15.5px;max-width:60ch}
  .hero__stats{margin-top:40px;padding-top:26px;gap:20px}
  .console__body{min-height:200px}
  .console__metrics{flex-wrap:wrap;row-gap:6px}
  .orbit-chips{justify-content:flex-start}

  /* ---- section rhythm ---- */
  .section{padding:clamp(44px,7vw,64px) 0}
  .h2{font-size:clamp(28px,5.2vw,42px)}
  .sec-head{gap:18px}
  .section .mt-14{margin-top:30px}
  .section .mt-16{margin-top:36px}

  /* ---- agent lab: rail becomes a horizontal scroller above the stage ---- */
  .agent-lab{grid-template-columns:1fr}
  .agent-lab__rail{
    flex-direction:row;overflow-x:auto;gap:8px;
    padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  }
  .agent-lab__rail::-webkit-scrollbar{display:none}
  .agent-tab{flex:0 0 auto;min-width:220px;padding:13px 14px}
  .agent-tab:hover{transform:none}
  .agent-lab__stage{min-height:0}

  /* ---- process: vertical timeline ---- */
  .process__steps{gap:28px}
  .pstep{padding-top:24px}

  /* ---- work / pricing / posts ---- */
  .work-card__visual{height:170px}
  .price-card{padding:28px 24px}
  .price-card__amt{font-size:44px}
  .post{padding:24px}

  /* ---- footer ---- */
  .footer{padding:56px 0 26px}
  .footer__top{padding-bottom:36px}
  .footer__grid{padding:36px 0;gap:28px 20px}

  /* ---- widgets: don't let the FAB and back-to-top collide ---- */
  .chat-panel{height:min(560px,calc(100vh - 120px))}
}

/* ---------- TABLET (768–1023px) ---------- */
@media(min-width:768px) and (max-width:1023.98px){
  /* bento at md is already 4-col via the existing md: rules — keep the
     wide/accent cells from stranding a half-empty row */
  .bento__cell--accent{grid-column:span 4}

  /* hero console sits beside nothing here, so cap its width and centre it */
  .console{max-width:640px;margin-inline:auto}
  .orbit-chips{justify-content:center}

}

/* ---------- MOBILE (<768px) ---------- */
@media(max-width:767.98px){
  .hero__title{font-size:clamp(30px,8.4vw,40px);letter-spacing:-.03em}
  .hero__lede{font-size:15px}
  /* the two console metrics collide at phone widths — stack them */
  .console__metrics{flex-direction:column;gap:6px;align-items:flex-start}
  .hero__actions{gap:10px}
  .hero__actions .btn{width:100%;justify-content:center}
  .btn--lg{padding:14px 22px}

  .h2{font-size:clamp(26px,7.4vw,34px)}
  .sec-head__lede{font-size:15px}

  /* stack the KPI row instead of squeezing 3 numbers into a phone width */
  .agent-stage__kpis{grid-template-columns:repeat(3,1fr);gap:6px}
  .agent-stage__kpis b{font-size:18px}
  .agent-stage__kpis span{font-size:9.5px}
  .agent-tab{min-width:200px}

  /* horizontal-scroll marquees stay, but slow them so they're readable */
  .marquee__track{animation-duration:26s}
  .announce__track{animation-duration:30s}

  .work-card__visual{height:150px}
  .work-card__glyph{font-size:42px}
  .work-card__meta{flex-direction:column;gap:10px}
  .work-card__kpi{text-align:left}

  .price-card__amt{font-size:40px}
  .price-note{font-size:10.5px}

  .quotes__nav{gap:10px}
  .quote blockquote{font-size:15.5px;margin-bottom:20px}

  .cta__lede{font-size:15px}
  .form{padding:20px}
  .form__row{gap:0}

  .footer__grid{grid-template-columns:1fr 1fr;gap:26px 16px}
  .footer__badges{font-size:10.5px;gap:8px}
  .footer__bar{align-items:flex-start}

  /* tap targets */
  .nav-link,.mobile-menu nav a,.q-btn,.socials a{-webkit-tap-highlight-color:transparent}
  .q-btn{width:44px;height:44px}
}

/* ---------- SMALL PHONES (<420px) ---------- */
@media(max-width:419.98px){
  .hero__stats{grid-template-columns:repeat(2,1fr);gap:16px}
  .agent-stage__kpis{grid-template-columns:1fr;gap:12px}
  .agent-stage__kpis div{text-align:left;display:flex;align-items:baseline;gap:8px}
  .agent-stage__kpis span{margin-top:0}
  .footer__grid{grid-template-columns:1fr}
  .price-card__amt{font-size:36px}
  .brand__text em{display:none}
}

/* ---- touch devices: kill hover-only lift/transform so taps don't stick ---- */
@media (hover:none){
  .sys-card:hover,.bento__cell:hover,.work-card:hover,
  .price-card:hover,.post:hover,.venture:hover,
  .btn:hover,.icon-btn:hover,.q-btn:hover{transform:none}
  .work-card:hover .work-card__glyph{transform:none}
}


.quotes{
    overflow:hidden;
    width:100%;
}

.quote-track{
    display:flex;
    gap:16px;
    transition:transform .4s ease;
    will-change:transform;
}

.quote{
    flex:0 0 calc((100% - 32px)/3);
    box-sizing:border-box;
}
@media (max-width:991px){

    .quote{
        flex:0 0 calc((100% - 16px)/2);
    }

}
@media (max-width:767px){

    .quote{
        flex:0 0 100%;
    }

}