/* ==========================================================================
   WeMind marketing site — warm-dark retro-terminal, matched to the app.
   Tokens from AgoraTheme.cs / the web app (app.css).
   ========================================================================== */
:root{
  --bg:#14120F; --panel:#1D1A17; --card:#28241F; --btn:#34302A;
  --accent:#DEA147; --line:#52493C; --text:#E6DECC; --dim:#948A78; --bright:#F7F2E6;
  --green:#79cf72; --violet:#b98be6; --rose:#d47a52;
  --maxw:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:"Space Grotesk",system-ui,-apple-system,Arial,sans-serif;
  line-height:1.68;letter-spacing:.15px;font-size:16px}
.mono,.kick,.nav a,.tag,.stat,.foot,.pill,.vk{font-family:"Space Mono","Courier New",monospace}
a{color:var(--accent);text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
h1,h2,h3{color:var(--bright);line-height:1.15;margin:0}
h1{font-size:clamp(30px,4.4vw,54px);font-weight:700;letter-spacing:-.6px}
h2{font-size:clamp(22px,2.8vw,34px);margin-bottom:10px}
p.lead{font-size:clamp(15px,1.7vw,18px);color:var(--text)}
.kick{font-size:11px;letter-spacing:2.5px;color:var(--accent);text-transform:uppercase}
.dim{color:var(--dim)}

/* nav */
header.nav{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.nav .wrap{display:flex;align-items:center;gap:18px;height:62px}
.brand{font-weight:700;font-size:22px;color:var(--bright)}
.brand b{color:var(--accent)}
header.nav .sp{flex:1}
header.nav a{color:var(--dim);font-size:13px;letter-spacing:.6px;font-family:"Space Grotesk",sans-serif;font-weight:500;text-transform:none}
header.nav a:hover{color:var(--text)}

/* buttons */
.btn{display:inline-block;cursor:pointer;border:1px solid var(--line);border-radius:12px;
  padding:14px 22px;font:inherit;font-weight:700;background:var(--btn);color:var(--text)}
.btn.gold{background:linear-gradient(180deg,#f0bd63,var(--accent));color:#241704;border-color:#f0bd63;
  box-shadow:0 0 22px rgba(222,161,71,.28)}
.btn.violet{background:color-mix(in srgb,var(--violet) 22%,var(--panel));border-color:var(--violet);color:var(--bright)}
.btn.sm{padding:10px 16px;font-size:15px}

/* sections */
section{padding:72px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 50%,transparent)}
.center{text-align:center}
.grid{display:grid;gap:18px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:1fr 1fr}
@media(max-width:820px){.g3,.g2{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px}

/* hero */
.hero{position:relative;overflow:hidden}
#constellation{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.55}
.hero .wrap{position:relative;z-index:1;padding-top:34px;padding-bottom:20px}
.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.trustline{display:flex;gap:20px;flex-wrap:wrap;margin-top:24px;color:var(--dim);font-size:15.5px}
.trustline .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}
.dot.g{background:var(--green)} .dot.a{background:var(--accent)} .dot.v{background:var(--violet)}

/* pixel avatars row */
.avatars{display:flex;gap:10px;align-items:flex-end}
.pixav{image-rendering:pixelated;shape-rendering:crispEdges}

/* verdict showcase card */
.verdict{background:var(--card);border:1px solid var(--accent);border-radius:18px;padding:22px;
  box-shadow:0 0 30px rgba(222,161,71,.12);max-width:560px}
.board{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);
  border-radius:12px;padding:10px 12px;margin-bottom:14px}
.board .status{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:1px;color:var(--green)}
.board .split{margin-left:auto;font-family:"Space Mono",monospace;font-size:12.5px;display:flex;align-items:center;gap:6px}
.splitbar{display:flex;gap:2px}.splitbar i{width:15px;height:9px;border-radius:2px;display:block}
.vk{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:1.5px;display:block;margin-bottom:3px}
.vline{margin:0 0 11px}.vv{font-size:16px}
.vk.bottom{color:var(--accent)}.vline.bottom .vv{font-size:20px;color:var(--bright);font-weight:700}
.vk.because{color:var(--green)}.vk.split{color:var(--violet)}.vk.watch{color:var(--rose)}.vk.next{color:var(--accent)}
.vsrc{border-top:1px dashed var(--line);margin-top:12px;padding-top:9px;display:flex;justify-content:space-between;
  font-family:"Space Mono",monospace;font-size:12px;color:var(--dim)}.vsrc .live{color:var(--green)}

/* feature blocks */
.feat h3{margin-bottom:6px;font-size:20px}
.diode{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:1px}
.diode.grey{background:var(--dim)}.diode.violet{background:var(--violet)}.diode.amber{background:var(--accent)}
.steps{counter-reset:s}
.step .n{font-family:"Space Mono",monospace;color:var(--accent);font-size:14.5px}

/* trust list */
.trust li{margin:0 0 10px;list-style:none;padding-left:26px;position:relative}
.trust li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}
ul.trust{padding:0;margin:0}

/* beta capture */
.beta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.beta input{flex:1;min-width:220px;background:color-mix(in srgb,var(--bg) 70%,#000);color:var(--text);
  border:1px solid var(--line);border-radius:12px;padding:14px;font:inherit}

/* logo + screenshots + problem + scam badge */
.logo-img{height:28px;display:block}
.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:860px){.shots{grid-template-columns:1fr}}
.shot{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:10px;text-align:center}
.shot img{width:100%;border-radius:14px;display:block;border:1px solid var(--line)}
.shot .cap{font-size:15.5px;color:var(--dim);margin-top:10px;padding:0 6px 8px}
.shot .cap b{color:var(--bright);display:block;margin-bottom:2px}
.prob{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:720px){.prob{grid-template-columns:1fr}}
.badge{display:inline-block;font-family:"Space Mono",monospace;font-size:12px;letter-spacing:1px;
  color:var(--rose);border:1px solid var(--rose);border-radius:8px;padding:4px 9px}

/* footer */
footer{padding:40px 0;color:var(--dim);font-size:14.5px}
footer .wrap{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
footer .sp{flex:1}
.foot{font-size:12.5px;letter-spacing:1px}


/* ==========================================================================
   AMBIENT BIO KIT — the site breathes like a biological computer.
   CSS-only, sequential, faint. three.js stays on the index hero alone.
   ========================================================================== */

/* dendritic corners: fixed, barely-there neural branches */
body{
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='420' height='420'><g fill='none' stroke='rgba(222,161,71,0.10)' stroke-width='1'><path d='M420 20 C330 60 300 40 250 110 C210 170 150 150 120 210'/><path d='M420 90 C350 120 330 170 260 190 C210 205 190 260 150 280'/><path d='M400 0 C370 70 300 90 280 150'/></g><g fill='rgba(222,161,71,0.16)'><circle cx='250' cy='110' r='2.5'/><circle cx='120' cy='210' r='2'/><circle cx='260' cy='190' r='2.5'/><circle cx='150' cy='280' r='2'/><circle cx='280' cy='150' r='2'/></g><g fill='none' stroke='rgba(222,161,71,0.10)'><circle cx='250' cy='110' r='6'/><circle cx='260' cy='190' r='6'/><circle cx='280' cy='150' r='5'/></g></svg>"),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='380' height='380'><g fill='none' stroke='rgba(222,161,71,0.09)' stroke-width='1'><path d='M0 360 C90 330 110 350 170 290 C220 240 280 260 310 200'/><path d='M20 380 C60 310 140 320 170 250'/></g><g fill='rgba(222,161,71,0.15)'><circle cx='170' cy='290' r='2.5'/><circle cx='310' cy='200' r='2'/><circle cx='170' cy='250' r='2'/></g><g fill='none' stroke='rgba(222,161,71,0.09)'><circle cx='170' cy='290' r='6'/><circle cx='310' cy='200' r='5'/></g></svg>");
  background-repeat:no-repeat,no-repeat;
  background-position:top right,bottom left;
  background-attachment:fixed,fixed;
}

/* every kicker carries a live node */
.kick:before{
  content:"";display:inline-block;width:6px;height:6px;border:1px solid var(--accent);
  border-radius:50%;margin-right:9px;vertical-align:1px;
  box-shadow:0 0 7px rgba(222,161,71,.55);
  animation:bio-node 3.4s ease-in-out infinite;
}
@keyframes bio-node{50%{box-shadow:0 0 1px rgba(222,161,71,0);opacity:.45}}

/* cards respond like tissue: a faint charge on approach */
.card,.brain,.mode,.step-card,.stat-tile,.shot{transition:border-color .3s,box-shadow .3s}
.card:hover,.brain:hover,.mode:hover,.step-card:hover,.stat-tile:hover,.shot:hover{
  border-color:color-mix(in srgb,var(--accent) 40%,var(--line));
  box-shadow:0 0 22px rgba(222,161,71,.09);
}

/* signal rail: a pulse sweeps each pipeline card in sequence */
.steps-live .step-card{position:relative;overflow:hidden}
.steps-live .step-card:after{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  transform:translateX(-100%);opacity:.55;animation:bio-rail 5.1s ease-in-out infinite;
}
.steps-live .step-card:nth-child(2):after{animation-delay:1.7s}
.steps-live .step-card:nth-child(3):after{animation-delay:3.4s}
@keyframes bio-rail{0%{transform:translateX(-100%)}30%,100%{transform:translateX(100%)}}

/* EKG: each brain shows its own activity trace */
.ekg{display:block;width:110px;height:22px;margin-top:10px;color:var(--dim)}
.ekg path{stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;
  stroke-dasharray:250;stroke-dashoffset:250;animation:bio-ekg 3.6s linear infinite}
@keyframes bio-ekg{55%{stroke-dashoffset:0}78%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}

/* stillness is a valid nervous system */
@media(prefers-reduced-motion:reduce){
  .kick:before,.steps-live .step-card:after{animation:none}
  .ekg path{animation:none;stroke-dashoffset:0}
}


/* ==========================================================================
   ATMOSPHERE — futurist bio-intelligence, sitewide. CSS-first, reduced-motion safe.
   ========================================================================== */

/* aurora: two vast, slow light fields drifting behind everything */
body::before{
  content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(42% 34% at 72% 22%, rgba(240,192,112,.075), transparent 70%),
    radial-gradient(38% 30% at 18% 78%, rgba(185,139,230,.055), transparent 70%),
    radial-gradient(30% 26% at 45% 45%, rgba(222,161,71,.045), transparent 70%);
  animation:aurora 46s ease-in-out infinite alternate;
}
@keyframes aurora{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(3%,-2%,0) scale(1.06)}
  100%{transform:translate3d(-3%,2%,0) scale(1.02)}
}

/* specimen glass: panels read as instruments, not boxes */
.card,.brain,.mode,.step-card,.stat-tile,.tier,.bf,.lm{
  background:color-mix(in srgb,var(--card) 84%,transparent);
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}

/* stats carry light */
.stat-tile b{color:#F0C070;text-shadow:0 0 20px rgba(240,192,112,.38)}

/* scroll reveal (JS adds .rv, then .in) */
.rv{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}

/* cursor bioluminescence (desktop pointers only) */
#biocursor{position:fixed;z-index:50;width:360px;height:360px;border-radius:50%;
  pointer-events:none;mix-blend-mode:screen;opacity:0;transition:opacity .5s;
  background:radial-gradient(circle,rgba(240,192,112,.10) 0%,rgba(240,192,112,.04) 40%,transparent 65%);
  transform:translate(-50%,-50%)}
body.haspointer #biocursor{opacity:1}

@media(prefers-reduced-motion:reduce){
  body::before{animation:none}
  .rv{opacity:1;transform:none;transition:none}
  #biocursor{display:none}
}
