/* Ask Your Genes — shared visual language, lifted from comt_story_northstar.html
   so the product and the north-star creative feel like one thing. */
:root{
  --bg:#06080c; --bg2:#0a0e15; --panel:#0e141d; --panel2:#121a25;
  --ink:#eef4fb; --muted:#8896a8; --faint:#56627450;
  --cyan:#33e1ff; --blue:#5b8cff;
  --purple:#b79bff; --gold:#ffce5c; --helios:#f5c451;
  --green:#4fe6a8; --red:#ff6b86;
  --grid:rgba(120,180,255,0.045); --line:rgba(255,255,255,0.07);
  --mono:'JetBrains Mono',monospace; --body:'Hanken Grotesk',sans-serif; --disp:'Anton',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:#000;color:var(--ink);font-family:var(--body);
  -webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden;
}

/* ---- background field: same grid + glow as the slides ---- */
.bg-field{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(120% 70% at 50% -10%, #0f1722 0%, var(--bg) 55%, #04060a 100%);}
.bg-field::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:34px 34px;mask-image:radial-gradient(circle at 50% 20%,#000 25%,transparent 80%);}
.bg-field::after{content:"";position:absolute;width:680px;height:680px;left:50%;top:-120px;transform:translateX(-50%);
  border-radius:50%;background:radial-gradient(circle, rgba(51,225,255,.14) 0%, transparent 65%);}

main{position:relative;z-index:1;max-width:980px;margin:0 auto;padding:0 22px 100px}

/* ---- top bar ---- */
.nav{display:flex;justify-content:space-between;align-items:center;padding:26px 4px 0;
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.nav .brand{display:flex;align-items:center;gap:9px;color:var(--ink)}
.nav .brand .sun{width:16px;height:16px;border-radius:50%;
  background:radial-gradient(circle at 50% 40%, #ffe39a, var(--helios) 55%, #c8862a 100%);
  box-shadow:0 0 16px 2px rgba(245,196,81,.5)}
.nav .brand b{font-family:var(--disp);font-weight:400;letter-spacing:.06em;font-size:17px}
.nav .pill{color:var(--cyan)}

/* ---- hero ---- */
.hero{text-align:center;padding:74px 0 18px;display:flex;flex-direction:column;align-items:center;gap:22px}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--cyan)}
.hero h1{font-family:var(--disp);font-weight:400;line-height:.9;letter-spacing:.01em;
  font-size:clamp(52px,9vw,104px);text-transform:uppercase;max-width:14ch}
.hero h1 .hl{background:linear-gradient(180deg,var(--cyan),var(--blue));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{font-size:clamp(17px,2.4vw,21px);line-height:1.55;color:#c3cedb;font-weight:500;max-width:46ch}
.hero .lead b{color:#fff;font-weight:800}
.hero .wedge{font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:var(--muted);max-width:44ch;line-height:1.7}
.hero .wedge b{color:var(--cyan)}

/* ---- upload card ---- */
.upload-wrap{margin:30px auto 0;max-width:560px;width:100%}
.card{position:relative;border-radius:20px;border:1px solid var(--line);background:var(--panel);
  padding:30px;box-shadow:0 30px 80px -40px rgba(0,0,0,.9)}
.card h2{font-family:var(--disp);font-weight:400;font-size:30px;text-transform:uppercase;letter-spacing:.01em;margin-bottom:6px}
.card .sub{font-size:14.5px;color:var(--muted);line-height:1.5;margin-bottom:22px}

.dropzone{border:1.5px dashed rgba(51,225,255,.35);border-radius:14px;background:rgba(51,225,255,.04);
  padding:38px 22px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.dropzone:hover,.dropzone.drag{border-color:var(--cyan);background:rgba(51,225,255,.09)}
.dropzone .dz-ico{font-size:34px;margin-bottom:12px}
.dropzone .dz-main{font-size:16px;font-weight:700;color:var(--ink)}
.dropzone .dz-main span{color:var(--cyan)}
.dropzone .dz-sub{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted);margin-top:8px;text-transform:uppercase}
.dropzone.has-file{border-style:solid;border-color:var(--green);background:rgba(79,230,168,.06)}
.dropzone.has-file .dz-ico{color:var(--green)}

.btn{display:inline-block;width:100%;margin-top:20px;font-family:var(--mono);font-size:13px;letter-spacing:.18em;
  text-transform:uppercase;text-align:center;cursor:pointer;border-radius:11px;padding:16px 22px;
  background:linear-gradient(180deg,var(--cyan),var(--blue));color:#04121a;font-weight:700;border:none;transition:transform .12s,opacity .2s}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.btn.ghost{background:transparent;border:1px solid var(--helios);color:var(--helios)}

.email{width:100%;margin-top:18px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;
  padding:15px 16px;color:var(--ink);font-family:var(--body);font-size:15px;outline:none}
.email:focus{border-color:var(--cyan)}
.email::placeholder{color:#5a6678}

.consent{display:flex;gap:11px;align-items:flex-start;margin-top:16px;font-size:12.5px;color:var(--muted);line-height:1.5}
.consent input{margin-top:2px;width:17px;height:17px;accent-color:var(--cyan);flex-shrink:0}
.consent a{color:var(--cyan);text-decoration:none}

.note{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#5a6678;
  text-align:center;margin-top:18px;line-height:1.8}
.note .lock{color:var(--green)}

/* ---- trust row ---- */
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:46px auto 0;max-width:760px}
.trust .t{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:18px 16px;text-align:center}
.trust .t .ico{font-size:20px;margin-bottom:8px}
.trust .t b{display:block;font-size:14px;color:var(--ink);margin-bottom:4px}
.trust .t span{font-size:12px;color:var(--muted);line-height:1.45}

/* ---- "one gene / 20,000" closer ---- */
.closer{text-align:center;margin:64px auto 0;max-width:620px}
.closer .big-claim{font-family:var(--disp);font-weight:400;font-size:clamp(30px,6vw,46px);line-height:.98;text-transform:uppercase}
.closer .big-claim .cyan{color:var(--cyan)} .closer .big-claim .gold{color:var(--helios)}
.closer p{font-size:15px;color:#c3cedb;margin-top:14px;line-height:1.6}
.closer p b{color:#fff}

footer{text-align:center;margin-top:70px;font-family:var(--mono);font-size:10px;line-height:1.8;
  letter-spacing:.06em;color:#566274;max-width:560px;margin-left:auto;margin-right:auto}
footer a{color:#7d8a9c}

/* ---- results: marquee gene chips ---- */
.results{margin-top:20px}
.genegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:18px}
.gchip{border:1px solid var(--line);border-radius:13px;background:var(--panel2);padding:14px 15px;border-left:3px solid var(--cyan)}
.gchip .g-name{font-family:var(--disp);font-weight:400;font-size:24px;letter-spacing:.02em;color:var(--ink)}
.gchip .g-geno{font-size:12.5px;color:#aab6c4;margin-top:3px;line-height:1.35}
.gchip .g-rs{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--cyan);margin-top:7px}

/* ---- chat ---- */
.chat{margin-top:20px}
.starters{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0 6px}
.starter{font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;cursor:pointer;
  border:1px solid rgba(51,225,255,.3);background:rgba(51,225,255,.06);color:var(--cyan);
  padding:9px 13px;border-radius:9px;transition:background .15s}
.starter:hover{background:rgba(51,225,255,.14)}
.messages{display:flex;flex-direction:column;gap:12px;margin:16px 0;max-height:520px;overflow-y:auto;padding-right:4px}
.bubble{max-width:86%;padding:13px 16px;border-radius:14px;font-size:14.5px;line-height:1.55;white-space:pre-wrap;word-wrap:break-word}
.bubble.user{align-self:flex-end;background:linear-gradient(180deg,var(--cyan),var(--blue));color:#04121a;font-weight:600;border-bottom-right-radius:5px}
.bubble.assistant{align-self:flex-start;background:var(--panel2);border:1px solid var(--line);color:#dfe7f0;border-bottom-left-radius:5px}
.bubble.thinking{color:var(--muted)}
.bubble.err{border-color:var(--red);color:var(--red)}
.composer{display:flex;gap:10px;margin-top:6px}
.composer input{flex:1;background:var(--bg2);border:1px solid var(--line);border-radius:12px;
  padding:15px 16px;color:var(--ink);font-family:var(--body);font-size:15px;outline:none}
.composer input:focus{border-color:var(--cyan)}
.composer .send{width:54px;border:none;border-radius:12px;cursor:pointer;font-size:20px;
  background:linear-gradient(180deg,var(--cyan),var(--blue));color:#04121a;font-weight:700}
.composer .send:hover{transform:translateY(-1px)}

/* status line used while building later steps */
.status{font-family:var(--mono);font-size:11px;color:var(--muted);text-align:center;margin-top:14px;min-height:16px}
.status.err{color:var(--red)} .status.ok{color:var(--green)}

@media(max-width:560px){
  .trust{grid-template-columns:1fr}
  .card{padding:22px}
}
