/* ============================================================
   Plexe - the applied AI lab for your product
   Simple Mode: Apple-like product page with neutral tone
   choreography (graphite → porcelain → stone → mist → black).
   God Mode: a calm cinematic flight through the agent lab.
   ============================================================ */
:root{
  --bg:#040409; --ink:#F2F3F8; --mut:#9A9EB0; --mut-2:#5C5F71;
  --line:rgba(255,255,255,.06);
  --indigo:#5b63d6; --violet:#8f8cff;
  --acc:#9fb1e6;                 /* one restrained accent, used sparingly */
  --acc-cyan:#5fb8cf; --acc-purple:#8a7fe0;   /* muted space accents */
  --sans:"Geist","Inter",ui-sans-serif,-apple-system,sans-serif;
  --mono:"Geist Mono",ui-monospace,Menlo,monospace;
  --wrap:1080px;
  /* Simple Mode is one calm graphite "mission control" theme throughout */
  --page-bg:#0B0C12; --page-ink:#EEF0F6; --page-mut:#9498AB; --page-line:rgba(255,255,255,.07);
}
*{box-sizing:border-box;min-width:0}
html{scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:rgba(159,177,230,.28);color:#fff}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 28px}
.mono{font-family:var(--mono)}
.eyebrow{display:inline-block;font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--mut-2)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5em;padding:.9em 1.6em;border-radius:10px;
  font-weight:500;font-size:.95rem;border:1px solid transparent;cursor:pointer;
  transition:transform .2s ease,background-color .2s,border-color .2s,opacity .2s}
.btn-p{background:#fff;color:#06060c}
.btn-p:hover{transform:translateY(-1px)}
.btn-g{border-color:var(--line);color:var(--ink);background:transparent}
.btn-g:hover{border-color:rgba(255,255,255,.22)}

/* ============================================================
   NAV - calm; a soft scrim keeps it legible over light sections
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;
  background:linear-gradient(180deg,rgba(6,6,12,.62),rgba(6,6,12,0));backdrop-filter:blur(6px)}
.nav .row{display:flex;align-items:center;justify-content:space-between;height:62px}
.brand{display:inline-flex;align-items:center;gap:.5em}
.brand .mk{width:20px;height:20px;background:url("Plexe_Logo.png") center/contain no-repeat;filter:invert(1);opacity:.92}
.brand .wm{font-size:1.06rem;font-weight:600;letter-spacing:-.03em;text-shadow:0 1px 14px rgba(0,0,0,.45)}
.modeswitch{display:inline-flex;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:3px;gap:2px;
  background:rgba(8,8,16,.3)}
.modeswitch button{appearance:none;border:0;background:transparent;color:rgba(255,255,255,.6);cursor:pointer;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.5em 1em;border-radius:999px;transition:color .2s,background .2s}
.modeswitch button[aria-pressed="true"]{background:rgba(255,255,255,.14);color:#fff}
html.no-webgl .modeswitch{display:none}
.navlinks{display:flex;align-items:center;gap:26px}
.navlinks a{font-size:.9rem;color:rgba(255,255,255,.74);transition:color .2s;text-shadow:0 1px 14px rgba(0,0,0,.4)}
.navlinks a:hover{color:#fff}
.navlinks .cta{padding:.5em 1.05em;border:1px solid rgba(255,255,255,.18);border-radius:9px;color:#fff;font-size:.86rem}
.navlinks .cta:hover{border-color:rgba(255,255,255,.32)}
.navtoggle{display:none;width:44px;height:44px;margin:-8px -10px -8px 0;padding:0;cursor:pointer;
  appearance:none;background:transparent;border:0;flex-direction:column;justify-content:center;gap:5px;align-items:center}
.navtoggle span{display:block;width:20px;height:2px;border-radius:2px;background:#fff;transition:transform .25s,opacity .2s}
.nav.open .navtoggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .navtoggle span:nth-child(2){opacity:0}
.nav.open .navtoggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ============================================================
   3D layer + boot + launch + scroll track
   ============================================================ */
#scene{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;display:block;pointer-events:none}
#veil{position:fixed;inset:0;z-index:5;pointer-events:none;opacity:1;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  background:radial-gradient(130% 100% at 70% 42%,rgba(4,4,10,.1),rgba(4,4,10,.72) 92%);will-change:opacity}
#vignette{position:fixed;inset:0;z-index:6;pointer-events:none;opacity:.42;
  background:radial-gradient(120% 90% at 50% 50%,transparent 54%,rgba(1,1,6,.74) 100%)}
#scroll-track{height:660vh;pointer-events:none}

.boot{position:fixed;inset:0;z-index:120;background:#03030a;transition:opacity 1.1s ease,visibility 1.1s ease}
.boot.gone{opacity:0;visibility:hidden;pointer-events:none}

/* launch overlay - black, quiet, no neon, no HUD. A label, then acceleration. */
.launch{position:fixed;inset:0;z-index:130;display:grid;place-items:center;gap:0;pointer-events:none;
  opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s ease;background:#03030a}
.launch.on{opacity:1;visibility:visible;transition:opacity .25s ease}
.launch-brand,.launch-line{grid-column:1;justify-self:center;opacity:0}
.launch-brand{font-size:1.15rem;font-weight:600;letter-spacing:-.02em;color:#fff}
.launch-line{margin-top:10px;font-family:var(--mono);font-size:.68rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--mut)}
.launch.on .launch-brand{animation:launchLine 1s ease both}
.launch.on .launch-line{animation:launchLine 1s .08s ease both}
@keyframes launchLine{0%{opacity:0;transform:translateY(5px)}30%{opacity:1;transform:none}78%{opacity:1}100%{opacity:0}}

/* hyperspace light-burst - the "zap into light speed" on entering God Mode */
.warp{position:fixed;inset:0;z-index:135;pointer-events:none;opacity:0;will-change:opacity,transform;
  background:radial-gradient(circle at 50% 48%,rgba(240,245,255,1),rgba(150,185,255,.7) 26%,rgba(120,150,255,.18) 52%,transparent 72%)}
.warp.flash{animation:warpZap .82s cubic-bezier(.4,0,.2,1)}
@keyframes warpZap{0%{opacity:0;transform:scale(.35)}14%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.7)}}

/* ============================================================
   GOD MODE - floating typography over space (no glass cards)
   ============================================================ */
.caps{position:fixed;inset:0;z-index:30;pointer-events:none}
.cap{position:fixed;top:50%;transform:translateY(-50%) translateY(12px);max-width:440px;
  opacity:0;transition:opacity .8s ease,transform .8s ease}
.cap.active{opacity:1;transform:translateY(-50%)}
.cap.left{left:7vw}
.cap.right{right:7vw}
.cap.center{left:50%;max-width:520px;text-align:center;transform:translate(-50%,-50%) translateY(12px)}
.cap.center.active{transform:translate(-50%,-50%)}
.cap a,.cap .btn{pointer-events:auto}

.cap .eyebrow{margin-bottom:16px;color:var(--acc)}
.cap h1{font-size:clamp(2.4rem,5.2vw,3.9rem);font-weight:600;letter-spacing:-.045em;line-height:1.03;margin:0}
.cap h2{font-size:clamp(2rem,3.4vw,2.7rem);font-weight:600;letter-spacing:-.04em;line-height:1.06;margin:0}
.cap p{margin-top:16px;color:var(--mut);font-size:1.08rem;line-height:1.55;max-width:36ch}
.cap.center p{margin-left:auto;margin-right:auto}
.cap .microproof{margin-top:18px;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;color:var(--mut-2)}
.cap .cta-row{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.cap.center .cta-row{justify-content:center}

/* readability without a box: a barely-visible dark scrim + soft shadow */
.cap.info{padding:0;border:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.cap.info::before{content:"";position:absolute;inset:-34px -48px;z-index:-1;pointer-events:none;
  background:radial-gradient(62% 62% at 34% 42%,rgba(3,3,9,.62),transparent 82%);filter:blur(16px)}
.cap.center.info::before{background:radial-gradient(62% 62% at 50% 50%,rgba(3,3,9,.64),transparent 82%)}
.cap.info h1,.cap.info h2,.cap.info p{text-shadow:0 2px 34px rgba(0,0,0,.55)}
/* destination (final "Production AI, shipped.") sits over a bright mascot - lift legibility */
.cap.center.dest.info::before{inset:-64px -76px;background:radial-gradient(72% 72% at 50% 52%,rgba(3,3,9,.9),rgba(3,3,9,.6) 52%,transparent 86%)}
.cap.center.dest.info h2{text-shadow:0 2px 30px rgba(0,0,0,.85),0 1px 8px rgba(0,0,0,.7)}
.cap.center.dest.info p{color:#cdd0de;text-shadow:0 2px 26px rgba(0,0,0,.92),0 1px 6px rgba(0,0,0,.85)}
.cap.center.dest.info .microproof{color:#a7adc2;text-shadow:0 1px 10px rgba(0,0,0,.9)}

/* hero proof line (both modes) */
.proofline{margin-top:24px;font-family:var(--mono);font-size:.74rem;letter-spacing:.05em;color:var(--mut-2)}
.scroll-cue{display:block;margin-top:36px;font-family:var(--mono);font-size:.64rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--mut-2);position:relative;padding-bottom:24px}
.scroll-cue::after{content:"";position:absolute;left:6px;bottom:2px;width:1px;height:14px;
  background:linear-gradient(var(--mut),transparent);animation:cue 2.2s ease-in-out infinite}
@keyframes cue{0%{opacity:0;transform:translateY(-6px)}40%{opacity:.8}100%{opacity:0;transform:translateY(10px)}}

/* staggered child reveal - copy settles after the agent */
.cap:not(.hero)>*{opacity:0;transform:translateY(12px);
  transition:opacity .6s ease,transform .7s cubic-bezier(.16,.84,.3,1)}
.cap.active>*{opacity:1;transform:none}
.cap.active>*:nth-child(1){transition-delay:.15s}
.cap.active>*:nth-child(2){transition-delay:.27s}
.cap.active>*:nth-child(3){transition-delay:.39s}
.cap.active>*:nth-child(4){transition-delay:.51s}

/* hero (first fold): copy left, calm mascot right */
.cap.hero{left:0;right:0;top:50%;bottom:auto;max-width:none;transform:translateY(-50%)}
.cap.hero.active{transform:translateY(-50%)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.hero-copy{text-align:left;max-width:580px}
.hero-copy h1{font-size:clamp(2.4rem,4.7vw,3.8rem);font-weight:600;letter-spacing:-.045em;line-height:1.03;margin:0}
.hero-copy p{margin-top:20px;max-width:50ch;color:var(--mut);font-size:1.1rem}
.hero-copy .cta-row{margin-top:30px}
.hero-art{display:flex;justify-content:center;align-items:center;position:relative;pointer-events:none;will-change:transform}
.hero-art img{width:min(300px,78%);position:relative;z-index:1;
  filter:drop-shadow(0 26px 54px rgba(40,46,90,.4));animation:floaty 7.5s ease-in-out infinite}
.hero-art::before{content:"";position:absolute;left:50%;top:50%;width:min(380px,108%);aspect-ratio:1;
  transform:translate(-50%,-50%);border-radius:50%;z-index:0;
  background:radial-gradient(closest-side,rgba(95,99,214,.1),transparent 70%);filter:blur(22px)}
@keyframes floaty{0%,100%{translate:0 0}50%{translate:0 -8px}}

/* hero entrance after boot */
.cap.hero .hero-copy>*{opacity:0;transform:translateY(14px)}
body.booted .cap.hero .hero-copy>*{animation:heroUp .85s cubic-bezier(.16,.84,.3,1) forwards}
body.booted .cap.hero h1{animation-delay:.12s}
body.booted .cap.hero p{animation-delay:.28s}
body.booted .cap.hero .cta-row{animation-delay:.42s}
body.booted .cap.hero .proofline{animation-delay:.54s}
body.booted .cap.hero .scroll-cue{animation-delay:.68s}
@keyframes heroUp{to{opacity:1;transform:none}}
.hero-art img{opacity:0}
body.booted .hero-art img{animation:heroArtIn 1.1s .2s cubic-bezier(.16,.84,.3,1) forwards,floaty 7.5s 1.4s ease-in-out infinite}
@keyframes heroArtIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}

/* the single progress indicator - nearly invisible unless active */
.wprail{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:45;
  display:flex;flex-direction:column;gap:14px;opacity:0;transition:opacity .6s ease;pointer-events:none}
body.flying .wprail{opacity:1;pointer-events:auto}
.wprail button{width:5px;height:5px;border-radius:50%;padding:0;cursor:pointer;appearance:none;border:0;
  background:rgba(255,255,255,.16);transition:background .3s,transform .3s}
.wprail button:hover{background:rgba(255,255,255,.45)}
.wprail button.on{background:var(--acc);transform:scale(1.4)}

/* ============================================================
   MOBILE GOD MODE - vertical cinematic, one agent per screen
   ============================================================ */
#mgod{display:none;position:fixed;inset:0;z-index:48;overflow-y:auto;
  scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;
  background-color:#04040b;
  /* a real repeating star field (two tiled layers) + a soft nebula bloom */
  background-image:
    radial-gradient(60% 44% at 50% 16%,rgba(95,99,214,.16),transparent 72%),
    radial-gradient(1.4px 1.4px at 34px 46px,rgba(255,255,255,.9),transparent 52%),
    radial-gradient(1px 1px at 150px 96px,rgba(200,210,255,.7),transparent 52%),
    radial-gradient(1px 1px at 90px 180px,rgba(170,190,255,.6),transparent 52%),
    radial-gradient(1.3px 1.3px at 210px 150px,rgba(255,255,255,.8),transparent 52%),
    radial-gradient(1px 1px at 250px 60px,rgba(190,230,235,.5),transparent 52%),
    radial-gradient(1px 1px at 60px 240px,rgba(210,216,255,.55),transparent 52%);
  background-size:cover,300px 300px,300px 300px,300px 300px,300px 300px,300px 300px,300px 300px;
  background-repeat:no-repeat,repeat,repeat,repeat,repeat,repeat,repeat;
  background-attachment:fixed,scroll,scroll,scroll,scroll,scroll,scroll}
.mg-stickyback{position:fixed;top:14px;right:14px;z-index:50;cursor:pointer;
  padding:.55em 1.15em;border-radius:999px;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;
  text-transform:uppercase;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.mg-card{min-height:100svh;scroll-snap-align:start;display:grid;place-items:center;padding:92px 28px 88px;position:relative}
.mg-inner{position:relative;width:100%;max-width:440px;text-align:center}
/* soft glow behind the agent so it reads as floating in space */
.mg-mascot{position:relative;width:120px;margin:0 auto 22px;
  filter:drop-shadow(0 16px 34px rgba(0,0,0,.55)) drop-shadow(0 0 34px rgba(95,99,214,.32))}
.mg-card .eyebrow{margin-bottom:14px;color:var(--acc)}
.mg-card h1{font-size:clamp(2.4rem,11vw,3.4rem);font-weight:600;letter-spacing:-.04em;line-height:1.03;margin:0}
.mg-card h2{font-size:clamp(1.8rem,7.4vw,2.4rem);font-weight:600;letter-spacing:-.035em;line-height:1.08;margin:0}
.mg-card p{margin:16px auto 0;color:var(--mut);max-width:32ch;font-size:1.05rem}
.mg-card .microproof{margin-top:16px;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:var(--mut-2)}
.mg-card .btn{margin-top:28px}
.mg-cue{display:block;margin-top:30px;font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--mut-2)}
/* small fade/settle per card (added by JS; absent under reduced motion) */
#mgod.mg-anim .mg-card .mg-inner{opacity:0;transform:translateY(18px);
  transition:opacity .6s ease,transform .65s cubic-bezier(.16,.84,.3,1)}
#mgod.mg-anim .mg-card.in .mg-inner{opacity:1;transform:none}

/* ============================================================
   SIMPLE MODE - Apple-like product page with tone choreography
   ============================================================ */
/* one calm deep-space surface: graphite + faint fixed star dust */
#standard{position:relative;z-index:30;color:var(--page-ink);background-color:var(--page-bg);
  background-image:
    radial-gradient(1px 1px at 24px 32px,rgba(205,214,255,.45),transparent 55%),
    radial-gradient(1px 1px at 148px 96px,rgba(255,255,255,.4),transparent 55%),
    radial-gradient(1.3px 1.3px at 84px 176px,rgba(168,184,255,.32),transparent 55%),
    radial-gradient(1px 1px at 196px 224px,rgba(150,200,220,.26),transparent 55%),
    radial-gradient(1px 1px at 40px 252px,rgba(176,170,255,.24),transparent 55%);
  background-size:260px 290px;background-attachment:fixed}
/* text + dividers + buttons follow the active tone */
#standard h1,#standard h2,#standard .ex-title{color:var(--page-ink);transition:color .8s ease}
#standard .sec-head p,#standard .std-hero-copy p,#standard .std-cta p,#standard .ex-body p,
#standard .proofline,#standard .chips span,#standard .microproof{color:var(--page-mut);transition:color .8s ease}
#standard .std-sec,#standard .ex,#standard .labflow-line,#standard .chips span{border-color:var(--page-line);transition:border-color .8s ease,color .8s ease,background-color .8s ease}
#standard .btn-p{background:var(--page-ink);color:var(--page-bg);transition:background-color .8s ease,color .8s ease,transform .2s}
#standard .btn-g{border-color:var(--page-line);color:var(--page-ink);transition:border-color .8s ease,color .8s ease}

.std-hero{position:relative;overflow:hidden;min-height:92vh;display:flex;align-items:center;padding:128px 0 80px;background:transparent}
/* faint ambient glow toward the Bro */
.std-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(58% 56% at 76% 30%,rgba(95,99,214,.14),transparent 62%)}
/* one very quiet orbital line behind the Bro (clipped to an arc) */
.std-hero::after{content:"";position:absolute;right:-8%;top:50%;width:620px;height:620px;
  transform:translateY(-50%) rotate(-16deg);border-radius:50%;pointer-events:none;
  border:1px solid rgba(150,170,235,.13)}
/* focused glow behind the Plexe Bro */
.ds-bro-wrap::after{content:"";position:absolute;left:50%;top:48%;width:150%;aspect-ratio:1;z-index:-1;
  transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(95,99,214,.18),rgba(95,184,207,.07) 50%,transparent 72%);filter:blur(12px)}
.std-hero .wrap{position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:52px;align-items:center}
.std-hero-copy h1{font-size:clamp(2.5rem,5.2vw,4.1rem);font-weight:600;line-height:1.03;letter-spacing:-.045em;margin:0}
.std-hero-copy p{margin:22px 0 0;max-width:50ch;font-size:1.12rem}
.std-hero-copy .cta-row{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}

/* headline-first intro: copy settles, then the deploy console runs once */
.std-hero-copy>*{opacity:0;transform:translateY(14px)}
body.booted .std-hero-copy>*{animation:heroUp .8s cubic-bezier(.16,.84,.3,1) forwards}
body.booted .std-hero-copy h1{animation-delay:.05s}
body.booted .std-hero-copy p{animation-delay:.18s}
body.booted .std-hero-copy .cta-row{animation-delay:.32s}
body.booted .std-hero-copy .proofline{animation-delay:.44s}

/* ---- the deploy console: Plexe Bro + idea → system → deployed ---- */
.deploy-stage{position:relative;width:min(380px,92%);margin:0 auto;
  display:flex;flex-direction:column;align-items:center;gap:8px}
.ds-bro-wrap{position:relative;width:min(260px,80%)}
.ds-bro{width:100%;opacity:0;transform:scale(.94);
  filter:drop-shadow(0 26px 52px rgba(40,46,90,.4))}
body.booted .ds-bro{animation:dsBroIn 1s .55s cubic-bezier(.16,.84,.3,1) forwards}
@keyframes dsBroIn{to{opacity:1;transform:none}}
/* eye/visor glow - lights up, then breathes very slowly */
.ds-screen{position:absolute;left:35%;top:27%;width:30%;height:12%;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(120,210,230,.55),transparent 78%);opacity:0;filter:blur(6px)}
body.booted .ds-screen{animation:dsScreenIn .6s .95s ease forwards,dsScreenIdle 7s 3s ease-in-out infinite}
@keyframes dsScreenIn{to{opacity:.85}}
@keyframes dsScreenIdle{0%,100%{opacity:.78}48%{opacity:.42}52%{opacity:.42}}  /* slow breathe + a quiet blink */

/* the flow diagram beneath the Bro */
.ds-flow{display:flex;align-items:center;justify-content:center;gap:0;width:100%;max-width:300px}
.ds-block{position:relative;flex:none;border:1px solid rgba(255,255,255,.12);border-radius:12px;
  background:rgba(255,255,255,.03);opacity:0}
/* AI block - one glowing core (idea/model) */
.ds-ai{width:56px;height:56px;display:grid;place-items:center}
body.booted .ds-ai{animation:dsFade .6s .9s ease forwards}
.ds-core{width:16px;height:16px;border-radius:5px;background:var(--acc);
  box-shadow:0 0 0 rgba(159,177,230,0);opacity:.5}
body.booted .ds-core{animation:dsCoreOn .7s 1s ease forwards,dsCorePulse 5.5s 3.4s ease-in-out infinite}
@keyframes dsCoreOn{to{opacity:1;box-shadow:0 0 18px rgba(159,177,230,.7)}}
@keyframes dsCorePulse{0%,100%{box-shadow:0 0 14px rgba(159,177,230,.55)}50%{box-shadow:0 0 22px rgba(159,177,230,.85)}}
.ds-tag{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);
  font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;color:var(--mut-2)}
/* the thin connection line + a pulse that travels once, then very slowly */
.ds-link{position:relative;flex:1;height:1px;background:rgba(255,255,255,.14);margin:0 4px;min-width:40px}
.ds-pulse{position:absolute;top:50%;left:0;width:6px;height:6px;border-radius:50%;
  background:var(--acc);box-shadow:0 0 10px rgba(159,177,230,.9);transform:translate(-50%,-50%);opacity:0}
body.booted .ds-pulse{animation:dsPulseOnce 1s 1.2s ease forwards,dsPulseSlow 6s 4s linear infinite}
@keyframes dsPulseOnce{0%{opacity:0;left:0}15%{opacity:1}85%{opacity:1}100%{opacity:0;left:100%}}
@keyframes dsPulseSlow{0%{opacity:0;left:0}8%{opacity:.9}50%{opacity:.9;left:100%}58%{opacity:0;left:100%}100%{opacity:0;left:100%}}
/* product / system panel - a quiet UI skeleton with a Deployed chip */
.ds-product{width:104px;height:64px;padding:12px 12px 0;display:flex;flex-direction:column;gap:7px;justify-content:flex-start}
body.booted .ds-product{animation:dsFade .7s 1.3s ease forwards}
.ds-bar{height:5px;border-radius:3px;background:rgba(255,255,255,.18)}
.ds-bar.short{width:55%}
.ds-deployed{position:absolute;right:-8px;bottom:-12px;display:inline-flex;align-items:center;gap:5px;
  padding:.3em .6em;border-radius:999px;background:rgba(120,210,170,.14);border:1px solid rgba(120,210,170,.4);
  font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;color:#a9e6c8;opacity:0;transform:translateY(4px)}
.ds-deployed::before{content:"";width:5px;height:5px;border-radius:50%;background:#7fe0ad;box-shadow:0 0 8px rgba(127,224,173,.9)}
body.booted .ds-deployed{animation:dsDeployedIn .6s 1.85s cubic-bezier(.16,.84,.3,1) forwards}
@keyframes dsDeployedIn{to{opacity:1;transform:none}}
@keyframes dsFade{to{opacity:1}}

/* God Mode ignition: the calm deploy line becomes a launch trajectory */
body.gm-igniting .std-hero{transition:opacity .4s ease,filter .4s ease;opacity:.15;filter:brightness(1.7)}
body.gm-igniting .ds-link{background:linear-gradient(90deg,var(--acc),transparent)}
body.gm-igniting .ds-pulse{animation:none;opacity:1;left:100%;transition:left .42s cubic-bezier(.5,0,.9,.4),box-shadow .42s ease;box-shadow:0 0 26px rgba(159,177,230,1)}
body.gm-igniting .ds-screen{animation:none;opacity:1;filter:blur(8px);transform:scale(1.4)}

/* 1b · social-proof logo strip - thin, subtle, equal-height, grayscale */
.logostrip{padding:52px 0 56px;position:relative;border-top:1px solid var(--page-line)}
.logostrip .wrap{max-width:1180px}
.logostrip-title{text-align:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--page-mut);margin:0 0 32px;transition:color .8s ease}
/* two single-line rows - logos shrink to fit, never wrap to a 3rd line */
.logos{display:flex;justify-content:center;width:100%}
.logos-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(22px,3.2vw,40px) clamp(26px,4vw,56px);max-width:1000px}
.logo-cell{position:relative;flex:0 0 auto;min-width:0;display:inline-flex;align-items:center;justify-content:center;padding:6px 8px}
/* soft white glow behind a logo on hover, so even dark brand colours read in colour */
.logo-cell::before{content:"";position:absolute;inset:-45% -20%;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(closest-side,rgba(255,255,255,.9),rgba(255,255,255,.45) 46%,transparent 78%);
  filter:blur(20px);transition:opacity .3s ease}
.logo-cell:hover::before{opacity:1}
/* rest: big, crisp monochrome silhouettes; hover: reveal full brand colour */
/* brightness(0) invert(1) flattens ANY logo (multi-tone too) to a solid white
   silhouette so the whole wordmark shows; hover reveals the real brand colour */
.logos img{position:relative;max-height:48px;max-width:200px;width:auto;height:auto;object-fit:contain;
  filter:brightness(0) invert(1);opacity:.85;
  transition:opacity .3s ease,filter .3s ease,transform .3s ease}
.logo-cell:hover img{opacity:1;filter:none;transform:translateY(-1px)}
/* white-brand marks have no colour to reveal, and the white glow would hide them */
.logo-cell.light::before{display:none}

/* sections: separated by thin dividers, never boxed; generous air */
.std-sec{padding:122px 0;position:relative;border-top:1px solid var(--page-line)}
.sec-head{max-width:680px;margin:0 auto 56px;text-align:center}
.sec-head h2{font-size:clamp(2.1rem,3.8vw,3rem);font-weight:600;letter-spacing:-.04em;margin:0;line-height:1.05}
.sec-head p{margin:18px auto 0;max-width:54ch;font-size:1.1rem}

/* 2 · what plexe does - glass segmented pills + inline glass detail panel */
#secWhat{position:relative}
.indglass{max-width:1000px;margin:0 auto;display:grid;gap:26px}
:root{--ease-glass:cubic-bezier(.16,.84,.3,1)}

/* compact segmented control - small, name-only glass pills */
.ig-seg{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.ig-pill{position:relative;cursor:pointer;font:inherit;white-space:nowrap;padding:9px 18px;border-radius:999px;
  font-size:.92rem;font-weight:500;letter-spacing:-.01em;color:var(--page-mut);
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .22s var(--ease-glass),border-color .22s ease,box-shadow .22s ease,background .22s ease,color .22s ease}
.ig-pill:hover{color:var(--page-ink);border-color:rgba(255,255,255,.16)}
.ig-pill.on{color:var(--page-ink);background:rgba(255,255,255,.085);border-color:rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}

/* floating glass detail panel - full-width two-column layout */
.ig-panel{position:relative;overflow:hidden;border-radius:22px;padding:40px 44px;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.ig-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(200,210,235,.22),transparent)}
.ig-body{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.ig-eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--page-mut)}
.ig-headline{margin:16px 0 0;font-size:clamp(1.7rem,2.6vw,2.2rem);font-weight:600;letter-spacing:-.035em;
  line-height:1.08;color:var(--page-ink);max-width:14ch}
.ig-blurb{margin:14px 0 0;font-size:1rem;line-height:1.5;color:var(--page-mut);max-width:34ch}

/* quiet, integrated use cases (no boxes) */
.ig-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 30px}
.ig-uc{display:flex;align-items:center;gap:12px;color:var(--page-ink);font-size:.98rem;line-height:1.3}
.ig-uc-dot{flex:none;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.34)}

/* calm crossfade + rise + stagger on switch (180-240ms) */
.ig-panel.swap{animation:igFade .22s ease}
.ig-panel.swap .ig-left>*{animation:igUp .22s var(--ease-glass) both}
.ig-panel.swap .ig-left>*:nth-child(2){animation-delay:.04s}
.ig-panel.swap .ig-left>*:nth-child(3){animation-delay:.08s}
.ig-panel.swap .ig-uc{animation:igUp .24s var(--ease-glass) both}
.ig-panel.swap .ig-uc:nth-child(1){animation-delay:.06s}
.ig-panel.swap .ig-uc:nth-child(2){animation-delay:.105s}
.ig-panel.swap .ig-uc:nth-child(3){animation-delay:.15s}
.ig-panel.swap .ig-uc:nth-child(4){animation-delay:.195s}
@keyframes igUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes igFade{from{opacity:.45}to{opacity:1}}

/* 3 · applied AI lab model - animated production journey
   A gradient "production path" draws across the four steps; each step
   activates in turn (card glow, mascot settle, number darkens, copy lifts). */
.labflow{list-style:none;margin:0 auto;padding:0;max-width:1060px;position:relative;
  display:grid;grid-template-columns:repeat(4,1fr);gap:30px}

/* the production path + the particle that travels it once drawn */
.labflow-line{position:absolute;top:78px;left:12.5%;right:12.5%;height:2px;border-radius:2px;
  background:linear-gradient(90deg,#4fbfd4,#7f86ee 55%,#8a7ff0);opacity:.72;
  transform:scaleX(0);transform-origin:left center;transition:transform 1.35s cubic-bezier(.22,.7,.2,1)}
.labflow.drawn .labflow-line{transform:scaleX(1)}
.labflow-dot{position:absolute;top:78px;left:12.5%;width:8px;height:8px;border-radius:50%;pointer-events:none;
  background:#bdeef6;transform:translate(-50%,-50%);opacity:0;
  box-shadow:0 0 10px 2px rgba(110,200,225,.6),0 0 20px rgba(150,125,235,.45)}
.labflow.drawn .labflow-dot{animation:flowDot 5.5s 1.7s ease-in-out infinite}
@keyframes flowDot{0%{left:12.5%;opacity:0}12%{opacity:.95}88%{opacity:.95}100%{left:87.5%;opacity:0}}

/* per-step activation timing - matched to the line front passing each card */
.step{position:relative;text-align:center;padding:0 6px;--d:.12s}
.labflow .step:nth-of-type(2){--d:.45s}
.labflow .step:nth-of-type(3){--d:.78s}
.labflow .step:nth-of-type(4){--d:1.1s}

/* glassy, soft icon card - bigger, meaningful mascots */
.step-art{width:152px;height:152px;margin:0 auto 26px;display:grid;place-items:center;border-radius:34px;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);
  box-shadow:0 10px 30px rgba(0,0,0,.28);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  opacity:.5;transition:opacity .6s ease var(--d),border-color .6s ease var(--d),box-shadow .5s ease,transform .45s cubic-bezier(.16,.84,.3,1)}
.step-art img{width:112px;filter:saturate(.85) opacity(.82);transition:filter .6s ease var(--d)}
.labflow.drawn .step-art{opacity:1;border-color:rgba(125,150,235,.4);
  box-shadow:0 16px 44px rgba(0,0,0,.32),0 0 30px rgba(110,180,225,.14)}
.labflow.drawn .step-art img{filter:saturate(1) opacity(1);
  animation:broSettle .9s cubic-bezier(.16,.84,.3,1) both;animation-delay:var(--d)}
@keyframes broSettle{0%{transform:scale(.9) translateY(6px)}55%{transform:scale(1.08) translateY(-3px)}100%{transform:scale(1.04) translateY(0)}}
.step:hover .step-art{transform:translateY(-4px);border-color:rgba(125,150,235,.5);
  box-shadow:0 22px 54px rgba(0,0,0,.36),0 0 36px rgba(110,180,225,.2)}

/* number darkens + copy fades upward as its step activates */
.step-no{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;color:var(--page-mut);
  margin-bottom:10px;opacity:0;transform:translateY(12px);
  transition:opacity .7s ease var(--d),transform .7s cubic-bezier(.16,.84,.3,1) var(--d),color .6s ease var(--d)}
.step-label{margin:0;font-size:1.12rem;font-weight:600;letter-spacing:-.02em;color:var(--page-ink);opacity:0;transform:translateY(12px);
  transition:opacity .7s ease var(--d),transform .7s cubic-bezier(.16,.84,.3,1) var(--d)}
.step-body{margin:10px auto 0;max-width:24ch;font-size:.93rem;line-height:1.5;color:var(--page-mut);opacity:0;transform:translateY(12px);
  transition:opacity .7s ease var(--d),transform .7s cubic-bezier(.16,.84,.3,1) var(--d),color .6s ease}
.labflow.drawn .step-no{opacity:1;transform:none;color:var(--page-ink)}
.labflow.drawn .step-label{opacity:1;transform:none}
.labflow.drawn .step-body{opacity:1;transform:none}

/* 4 · how the lab works - one inline process line */
.flow{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  font-family:var(--mono);font-size:1.02rem;letter-spacing:.02em;color:var(--page-ink);transition:color .8s ease}
.flow span{padding:0 14px}
.flow i{font-style:normal;color:var(--page-mut);opacity:.85}
.flow i::before{content:"→"}

/* 5 · ownership / trust - three quiet proof chips */
.chips{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.chips span{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;
  padding:.65em 1.2em;border:1px solid var(--page-line);border-radius:999px}
/* Guardian Bro inside a quiet secure-orbit perimeter */
.orbit{position:relative;width:236px;height:236px;margin:0 auto 46px}
.orbit::before{content:"";position:absolute;inset:16%;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(95,99,214,.16),rgba(95,184,207,.06) 55%,transparent 74%);filter:blur(8px)}
.orbit-ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(150,170,235,.18)}
.orbit-ring-2{inset:30px;border-color:rgba(95,184,207,.14)}
.orbit-bro{position:absolute;left:50%;top:50%;width:122px;transform:translate(-50%,-50%);
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.5))}
.orbit-dot{position:absolute;left:50%;top:50%;width:0;height:0;animation:orbitSpin 18s linear infinite}
.orbit-dot::before{content:"";position:absolute;top:-118px;left:-4px;width:8px;height:8px;border-radius:50%;
  background:var(--acc-cyan);box-shadow:0 0 12px rgba(95,184,207,.85)}
@keyframes orbitSpin{to{transform:rotate(360deg)}}

/* 6 · final cta - mascot once, single primary action */
.std-cta{text-align:center;padding:128px 28px 132px;position:relative;overflow:hidden;
  border-top:1px solid var(--page-line);background:transparent}
.std-cta::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 100% at 50% 100%,rgba(95,99,214,.14),transparent 64%)}
.std-cta .wrap{position:relative}
.std-cta-art{width:96px;margin:0 auto 26px;filter:drop-shadow(0 16px 40px rgba(40,46,90,.5))}
.std-cta .eyebrow{display:block;margin-bottom:16px}
.std-cta h2{font-size:clamp(2.2rem,4.4vw,3.2rem);font-weight:600;letter-spacing:-.04em;margin:0}
.std-cta p{margin:18px auto 0;max-width:46ch;font-size:1.12rem}
.std-cta .cta-row{display:flex;gap:12px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.only-mobile{display:none}

/* scroll reveals (copy.js adds .rv / .rv-in) */
#standard .rv{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .65s cubic-bezier(.16,.84,.3,1)}
#standard .rv-in{opacity:1;transform:none}

/* ============================================================
   FOOTER
   ============================================================ */
footer{position:relative;z-index:30;background:#050509;border-top:1px solid var(--line);padding:64px 0 34px}
footer .foot{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px}
footer .brand .mk{filter:invert(1);opacity:.92}
.about{max-width:38ch}
.about p{margin-top:16px;color:var(--mut-2);font-size:.92rem}
.col h5{font-family:var(--mono);font-weight:500;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut-2);margin:0 0 14px}
.col a{display:block;color:var(--mut);font-size:.92rem;padding:5px 0}
.col a:hover{color:#fff}
.foot-base{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:48px;
  padding-top:24px;border-top:1px solid var(--line);font-size:.82rem;color:var(--mut-2)}

/* ============================================================
   MODE VISIBILITY  (plumbing - keep intact)
   ============================================================ */
#standard{display:block}
#mgod{display:none}
html:not(.mode-standard) #standard{display:none}
html.is-mobile:not(.mode-standard) #mgod{display:block}
html.is-mobile:not(.mode-standard) footer{display:none}
html.mode-standard #scene,html.mode-standard #veil,html.mode-standard #vignette,
html.mode-standard .caps,html.mode-standard .wprail,html.mode-standard #scroll-track,
html.is-mobile #scene,html.is-mobile #veil,html.is-mobile #vignette,
html.is-mobile .caps,html.is-mobile .wprail,html.is-mobile #scroll-track,
html.no-webgl #scene,html.no-webgl #veil,html.no-webgl #vignette,
html.no-webgl .caps,html.no-webgl .wprail,html.no-webgl #scroll-track{display:none}
html.no-webgl #standard,html.no-webgl.mode-standard #standard{display:block}
html.no-webgl #mgod{display:none}

/* ============================================================
   GOD MODE - mobile / portrait layout (the 3D flight runs on phones too;
   only the caption overlays are rejigged - the flight itself is unchanged)
   ============================================================ */
@media (max-width:820px){
  /* hero: one centred column, compact enough to sit in a single viewport */
  .hero-grid{grid-template-columns:1fr;gap:16px;text-align:center}
  .hero-copy{order:2;max-width:none;margin:0 auto;text-align:center}
  .hero-copy h1{font-size:clamp(2.1rem,8.4vw,2.9rem);line-height:1.04;max-width:15ch;margin:0 auto}
  .hero-copy p{font-size:1rem;max-width:34ch;margin:14px auto 0}
  .hero-copy .cta-row{justify-content:center;margin-top:22px}
  .hero-copy .proofline{margin-top:16px}
  .hero-copy .scroll-cue{margin-top:24px}
  .hero-art{order:1;margin:0 auto}
  .hero-art img{width:min(124px,32vw)}
  .hero-art::before{width:min(220px,60vw)}

  /* agent + arrival captions pin to the bottom over a scrim, so text never
     overlaps the mascot floating mid-screen */
  .cap.left,.cap.right,.cap.center{left:0;right:0;top:auto;bottom:0;max-width:none;
    text-align:left;transform:translateY(20px);
    padding:0 26px calc(34px + env(safe-area-inset-bottom))}
  .cap.left.active,.cap.right.active,.cap.center.active{transform:none}
  .cap.info::before,.cap.center.info::before{inset:auto 0 0 0;top:auto;width:auto;height:60vh;
    border-radius:0;filter:none;
    background:linear-gradient(to top,rgba(3,3,9,.95) 24%,rgba(3,3,9,.58) 52%,transparent)}
  .cap h2{font-size:clamp(1.7rem,7vw,2.2rem)}
  .cap p{max-width:36ch;font-size:1.01rem}
  .cap .cta-row{margin-top:20px}
  .cap .microproof{margin-top:14px}
  .wprail{right:10px;gap:11px}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .std-hero .wrap{gap:36px}
}
@media (max-width:820px){
  /* mobile nav drop panel */
  .navtoggle{display:inline-flex}
  .navlinks{position:absolute;top:62px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
    background:rgba(5,5,13,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    border-bottom:1px solid var(--line);padding:6px 0 12px;transform:translateY(-8px);opacity:0;visibility:hidden;
    transition:opacity .2s,transform .2s,visibility .2s}
  .nav.open .navlinks{opacity:1;visibility:visible;transform:none}
  .navlinks a{padding:0 28px;min-height:48px;display:flex;align-items:center;font-size:1rem}
  .navlinks .cta{margin:10px 28px 2px;justify-content:center;min-height:48px;border-radius:10px}
  /* Simple ⇄ God Mode toggle stays in the nav on mobile, compact */
  .modeswitch{display:inline-flex;padding:2px;gap:2px}
  .modeswitch button{padding:.5em .8em;font-size:.56rem;letter-spacing:.08em}
  .std-hero{min-height:auto;padding:104px 0 64px;text-align:center}
  .std-hero .wrap{grid-template-columns:1fr;gap:34px}
  .std-hero-copy{order:1}
  .deploy-stage{order:2;width:min(300px,86%)}   /* mascot sits below the copy */
  .ds-bro-wrap{width:min(200px,72%)}
  .std-hero-copy .cta-row{justify-content:center}
  .std-hero-copy p{margin-left:auto;margin-right:auto}
  .std-hero-copy .cta-row .btn-g{display:none}   /* God Mode entry moves to final CTA */
  .only-mobile{display:inline-flex}
  .std-sec{padding:88px 0}
  .sec-head{margin-bottom:42px}
  /* logo strip → two wrapping rows on mobile */
  .logostrip{padding:40px 0 44px}
  .logos{gap:16px}
  .logos-row{flex-wrap:wrap;gap:14px 20px}
  .logos img{max-height:40px}
  .logo-cell{padding:10px 14px}
  /* trust orbit: smaller and static on mobile (no heavy animation) */
  .orbit{width:196px;height:196px;margin-bottom:36px}
  .orbit-bro{width:100px}
  .orbit-dot{animation:none}
  .orbit-dot::before{top:-98px}
  /* industry glass → horizontal snap pill row + single-column panel */
  .indglass{gap:18px}
  .ig-seg{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:8px;padding-bottom:6px;
    scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .ig-seg::-webkit-scrollbar{display:none}
  .ig-pill{flex:none;scroll-snap-align:center}
  .ig-panel{padding:28px 22px 26px}
  .ig-body{grid-template-columns:1fr;gap:26px}
  .ig-headline{font-size:clamp(1.5rem,6.4vw,1.95rem);max-width:none}
  .ig-blurb{max-width:none}
  .ig-grid{grid-template-columns:1fr}
  /* lab flow → vertical timeline: animated line down the left, mascots beside */
  .labflow{grid-template-columns:1fr;gap:0;max-width:470px}
  .labflow-line{top:48px;bottom:48px;left:46px;right:auto;width:2px;height:auto;
    background:linear-gradient(180deg,#4fbfd4,#7f86ee 55%,#8a7ff0);
    transform:scaleY(0);transform-origin:top center;transition:transform 1.35s cubic-bezier(.22,.7,.2,1)}
  .labflow.drawn .labflow-line{transform:scaleY(1)}
  .labflow-dot{top:48px;left:46px}
  .labflow.drawn .labflow-dot{animation:flowDotV 5.5s 1.7s ease-in-out infinite}
  .step{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;text-align:left;padding:22px 0}
  .step-art{width:92px;height:92px;margin:0;border-radius:24px;grid-row:1 / span 3}
  .step-art img{width:66px}
  .step-no{margin-bottom:6px}
  .step-body{max-width:none;margin:5px 0 0}
  .step-label,.step-no,.step-body{grid-column:2}
  @keyframes flowDotV{0%{top:48px;opacity:0}12%{opacity:.95}88%{opacity:.95}100%{top:calc(100% - 48px);opacity:0}}
  footer .foot{grid-template-columns:1fr 1fr}.about{grid-column:1/-1}
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  .cap.hero .hero-copy>*{opacity:1!important;transform:none!important;animation:none!important}
  .hero-art img,.std-cta-art{opacity:1!important;animation:none!important}
  .hero-art::before{animation:none!important}
  .scroll-cue::after,.launch.on .launch-brand,.launch.on .launch-line{animation:none!important;opacity:1}
  .warp.flash{animation:none!important;opacity:0!important}
  .boot{transition:none}
  /* deploy console shows as finished, static artwork */
  .std-hero-copy>*,.ds-bro,.ds-block,.ds-core,.ds-deployed{opacity:1!important;transform:none!important;animation:none!important}
  .ds-screen{opacity:.8!important;animation:none!important}
  .ds-core{box-shadow:0 0 16px rgba(159,177,230,.6)!important}
  .ds-pulse{opacity:0!important;animation:none!important}
  /* lab flow: full path, no particle, every step shown active and static */
  .labflow-line{transform:none!important}
  .labflow-dot{display:none!important}
  .step-art,.step-art img,.step-no,.step-label,.step-body{opacity:1!important;transform:none!important;animation:none!important}
  .orbit-dot{animation:none!important}
  .ig-panel.swap,.ig-panel.swap *{animation:none!important;opacity:1!important;transform:none!important}
  /* no animated background/colour transitions; content appears immediately */
  #standard,#standard *{transition:none!important}
  #standard .rv{opacity:1;transform:none}
}

/* footer social links (LinkedIn, X) */
.social{display:flex;gap:14px;margin-top:18px}
.social a{display:inline-flex;width:22px;height:22px;color:rgba(255,255,255,.55);transition:color .2s ease}
.social a:hover{color:#fff}
.social svg{width:100%;height:100%;fill:currentColor}

/* footer legal links (bottom bar) */
.foot-legal{display:flex;gap:18px;flex-wrap:wrap}
.foot-legal a{color:var(--mut-2);transition:color .2s}
.foot-legal a:hover{color:#fff}

/* home-page press / in the news */
.press-home{padding:clamp(54px,8vw,92px) 0;position:relative;z-index:2}
.press-home-title{text-align:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mut-2);margin:0 0 30px}
.press-home-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:900px;margin:0 auto}
.press-home-card{display:flex;flex-direction:column;gap:16px;padding:28px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.025);text-decoration:none;transition:border-color .2s,background .2s}
.press-home-card:hover{border-color:rgba(255,255,255,.26);background:rgba(255,255,255,.05)}
.press-home-logo{display:block;height:22px}
.press-home-logo svg{height:100%;width:auto;fill:#fff;opacity:.92}
.press-home-q{color:rgba(255,255,255,.8);font-size:1.02rem;line-height:1.5}
@media(max-width:720px){.press-home-row{grid-template-columns:1fr}}

/* home credibility band: team pedigree + backers */
.cred{padding:clamp(36px,5.5vw,64px) 0;position:relative;z-index:2}
.cred-line{max-width:740px;margin:0 auto;text-align:center;font-weight:400;
  font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.65;color:var(--mut)}
.cred-line span{color:var(--ink)}

/* home proof stat band */
.stats{padding:clamp(48px,7vw,86px) 0 clamp(64px,9vw,112px);position:relative;z-index:2}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);max-width:900px;margin:0 auto;text-align:center;
  border-top:1px solid var(--page-line);border-bottom:1px solid var(--page-line);
  padding:clamp(28px,3.6vw,44px) 0}
.stats-row .stat{padding:0 clamp(12px,2vw,30px)}
.stats-row .stat:not(:first-child){border-left:1px solid var(--page-line)}
.stat-num{font-size:clamp(2.3rem,4.6vw,3.2rem);font-weight:600;letter-spacing:-.03em;line-height:1;
  background:linear-gradient(180deg,#ffffff,#c4c9ea);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat-label{margin-top:12px;font-size:.9rem;color:var(--mut);line-height:1.4;max-width:20ch;margin-left:auto;margin-right:auto}
@media(max-width:640px){
  .stats-row{grid-template-columns:1fr;padding:8px 0}
  .stats-row .stat{padding:26px 0;border-left:0}
  .stats-row .stat:not(:first-child){border-top:1px solid var(--page-line)}
}
