/* ============================================================
   Zero State — Peptide Intelligence, Discovery & Design
   Scrolling page (~2.5 screens). Same warm editorial theme as
   the Food Vector Database page: paper surfaces, Spectral serif
   display, IBM Plex Sans body, IBM Plex Mono labels, restrained
   green accent + a small category palette for graph node types.
   ============================================================ */
:root{
  --paper:#f5f2ec; --paper-2:#efebe2; --card:#fbf9f4; --panel:#f7f5ef;
  --line:#dad4c7; --line-2:#c7c0b0;
  --ink:#1a1815; --ink-2:#3c382f; --body:#5b5f58; --muted:#6e6656; --faint:#9a9384;
  --accent:#436444; --accent-2:#5a8555; --accent-deep:#2f4a31; --accent-soft:#e7ede3;
  /* node categories */
  --n-pep:#2f4a31; --n-target:#3d7068; --n-indication:#b07d35;
  --n-company:#7a756a; --n-trial:#6f5aa8; --n-evidence:#6f8f5f;
  --font-serif:'Spectral',Georgia,serif;
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; font-family:var(--font-body); color:var(--ink); background:var(--paper);
  -webkit-font-smoothing:antialiased; line-height:1.5;
}
a{color:var(--accent); text-decoration:none;}
a:hover{color:var(--accent-deep);}
.wrap{max-width:1180px; margin:0 auto; padding:0 48px;}
.rule{height:1px; background:var(--line);}
.kicker{
  font-family:var(--font-mono); font-size:12.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent); display:inline-flex; align-items:center; gap:12px;
}
.kicker::before{content:none;}
h1,h2,h3{font-family:var(--font-serif); font-weight:500; letter-spacing:-.02em; color:var(--ink); margin:0;}
.serif{font-family:var(--font-serif);}
.section{padding:26px 0;}
.section-tight{padding:24px 0;}

/* Header */
.pep-head{
  position:sticky; top:0; z-index:20; background:rgba(245,242,236,.9); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.pep-head .wrap{height:66px; display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:baseline; gap:11px;}
.brand .mark{font-family:var(--font-serif); font-weight:600; font-size:20px; color:var(--ink); white-space:nowrap;}
.brand .sub{font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; color:var(--muted);}
.pep-nav{display:flex; align-items:center; gap:19px;}
.pep-nav a{font-family:var(--font-mono); font-size:12.5px; letter-spacing:.05em; color:var(--body); white-space:nowrap;}
.pep-nav a:hover{color:var(--ink);}

/* Buttons */
.btn{font-family:var(--font-body); font-weight:600; font-size:14px; border-radius:9px; padding:12px 20px; cursor:pointer;
  border:1px solid transparent; transition:.18s cubic-bezier(.22,.61,.36,1); display:inline-flex; align-items:center; gap:8px;}
.btn-primary{background:var(--accent-deep); color:#fff; box-shadow:0 3px 14px rgba(47,74,49,.2);}
.btn-primary:hover{background:#26401f;}
.btn-ghost{background:#fff; color:var(--ink); border-color:var(--line);}
.btn-ghost:hover{border-color:var(--muted);}
.btn-sm{padding:9px 15px; font-size:13px;}

/* Hero */
.hero{padding:34px 0 18px;}
.hero h1{font-size:58px; line-height:1.02; max-width:900px; margin:18px 0 20px;}
.hero .lede{font-size:18px; line-height:1.6; color:var(--ink-2); max-width:720px; margin:0 0 14px;}
.hero .lede-2{font-size:16px; line-height:1.6; color:var(--muted); max-width:720px; margin:0 0 28px;}
.hero-ctas{display:flex; gap:12px; flex-wrap:wrap;}

/* Proof strip */
.proof{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--line);
  border-radius:16px; overflow:hidden; background:var(--card); margin-top:38px;}
.proof > div{padding:19px 28px;}
.proof > div + div{border-left:1px solid var(--line);}
.proof .big{font-family:var(--font-serif); font-weight:600; font-size:42px; line-height:.95; color:var(--accent); letter-spacing:-.03em;}
.proof .lab{font-size:13px; line-height:1.4; color:var(--muted); margin-top:9px;}
.proof-note{font-family:var(--font-mono); font-size:11.5px; letter-spacing:.04em; color:var(--faint); margin-top:14px;}

/* Section heading block */
.sec-head{max-width:720px; margin-bottom:22px;}
.sec-head h2{font-size:32px; line-height:1.1; margin:14px 0 12px; letter-spacing:-.01em;}
.sec-head p{font-size:16.5px; line-height:1.6; color:var(--ink-2); margin:0;}

/* Knowledge graph */
.graph-layout{display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:15px; align-items:stretch;}
.graph-box{position:relative; border:1px solid var(--line); border-radius:18px; background:
  radial-gradient(circle at 50% 50%, #fbfaf6 0%, var(--card) 72%); overflow:hidden; min-height:520px;}
.graph-svg{position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none;}
.gnode{position:absolute; transform:translate(-50%,-50%); z-index:2; display:flex; align-items:center; gap:8px;
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:7px 13px 7px 10px; white-space:nowrap;
  box-shadow:0 3px 10px rgba(26,24,21,.05);}
.gnode .dot{width:9px; height:9px; border-radius:50%; flex:none;}
.gnode .nlab{font-family:var(--font-mono); font-size:11.5px; color:var(--ink); letter-spacing:.01em;}
.gnode.core{padding:13px 20px; background:var(--accent-deep); border-color:var(--accent-deep); flex-direction:column; gap:3px;
  box-shadow:0 10px 30px rgba(47,74,49,.22);}
.gnode.core .ctag{font-family:var(--font-mono); font-size:9.5px; letter-spacing:.2em; color:#a9c4a3;}
.gnode.core .cname{font-family:var(--font-serif); font-weight:600; font-size:19px; color:#fff; letter-spacing:-.01em;}
.graph-legend{position:absolute; left:0; right:0; bottom:0; z-index:3; display:flex; justify-content:center; flex-wrap:wrap; gap:7px 16px; padding:11px 16px; border-top:1px solid var(--line); background:var(--panel);}
.graph-legend span{display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:10px; letter-spacing:.04em; color:var(--muted);}
.graph-legend i{width:8px; height:8px; border-radius:50%;}

/* Record panel */
.record{border:1px solid var(--line); border-radius:18px; background:var(--card); padding:21px 28px; display:flex; flex-direction:column;}
.record .rk{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--faint);}
.record .rname{font-family:var(--font-serif); font-weight:600; font-size:24px; color:var(--ink); margin:6px 0 4px; letter-spacing:-.01em;}
.record .rtag{display:inline-flex; align-self:flex-start; align-items:center; gap:7px; font-family:var(--font-mono); font-size:11px;
  color:var(--accent-deep); background:var(--accent-soft); border-radius:999px; padding:5px 11px; margin-bottom:18px;}
.record dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:0; border-top:1px solid var(--line);}
.record dt{font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  padding:11px 0; border-bottom:1px solid var(--line);}
.record dd{margin:0; font-size:13.5px; color:var(--ink); text-align:right; padding:11px 0; border-bottom:1px solid var(--line);}
.record dd .pill{font-family:var(--font-mono); font-size:11px; border:1px solid var(--line-2); border-radius:999px; padding:2px 9px; color:var(--ink-2);}
.evbar{display:inline-flex; align-items:center; gap:8px; justify-content:flex-end;}
.evbar .bar{width:56px; height:5px; border-radius:3px; background:var(--paper-2); overflow:hidden;}
.evbar .bar i{display:block; height:100%; background:var(--accent);}

.keyline{font-family:var(--font-serif); font-size:20px; line-height:1.4; color:var(--ink); margin:28px 0 0; max-width:820px;
  padding-left:16px; border-left:2px solid var(--accent);}

/* Exploration */
.searchbar{display:flex; align-items:center; gap:12px; border:1px solid var(--line-2); border-radius:12px; background:#fff;
  padding:14px 18px; margin-bottom:22px;}
.searchbar svg{width:18px; height:18px; stroke:var(--muted); stroke-width:1.8; fill:none; flex:none;}
.searchbar input{border:0; outline:0; background:transparent; font-family:var(--font-body); font-size:15px; color:var(--ink); width:100%;}
.searchbar input::placeholder{color:var(--faint);}
.searchbar .btn{flex:none;}
.explore-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:22px;}
.ecard{border:1px solid var(--line); border-radius:16px; background:var(--card); padding:21px 26px 19px;}
.ecard .ei{width:38px; height:38px; border-radius:9px; background:var(--accent-soft); display:flex; align-items:center; justify-content:center;
  color:var(--accent); margin-bottom:16px;}
.ecard .ei svg{width:20px; height:20px; stroke:currentColor; stroke-width:1.8; fill:none;}
.ecard h3{font-size:19px; line-height:1.2; margin-bottom:10px;}
.ecard p{font-size:14px; line-height:1.55; color:var(--muted); margin:0;}
.filters{display:flex; flex-wrap:wrap; gap:10px; align-items:center;}
.filters .flabel{font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); margin-right:4px;}
.chip{font-family:var(--font-mono); font-size:12px; color:var(--ink-2); background:#fff; border:1px solid var(--line); border-radius:999px; padding:6px 13px;}
.chip b{color:var(--accent-deep); font-weight:500;}
.examples{margin-top:26px; border-top:1px solid var(--line); padding-top:19px;}
.examples .kicker{margin-bottom:16px;}
.examples ul{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 40px;}
.examples li{display:flex; gap:11px; align-items:baseline; font-size:15px; line-height:1.45; color:var(--ink-2);}
.examples li::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); flex:none; transform:translateY(6px);}

/* Discovery flow */
.flow-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-bottom:34px;}
.fstep{border:1px solid var(--line); border-radius:16px; background:var(--card); padding:19px 24px 22px; position:relative;}
.fstep .fn{font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; color:var(--faint); margin-bottom:10px;}
.fstep h3{font-size:18px; margin-bottom:9px;}
.fstep p{font-size:13.5px; line-height:1.5; color:var(--muted); margin:0;}
.fstep:last-child{border-color:var(--accent-2); background:var(--accent-soft);}
.fstep:last-child .fn{color:var(--accent);}
.constraints{border:1px solid var(--line); border-radius:16px; background:var(--panel); padding:19px 28px; margin-bottom:30px;}
.constraints .kicker{margin-bottom:16px;}
.cchips{display:flex; flex-wrap:wrap; gap:9px;}
.cchips span{font-family:var(--font-mono); font-size:12px; color:var(--ink-2); background:#fff; border:1px solid var(--line); border-radius:8px; padding:7px 12px;}
.designline{font-family:var(--font-serif); font-size:22px; line-height:1.35; color:var(--ink); max-width:760px;}
.designline em{font-style:italic; color:var(--accent);}

/* L-to-R pipeline */
.pipe{display:flex; align-items:stretch; gap:0; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--card); margin-top:30px;}
.pipe .stack{display:flex; flex-direction:column; justify-content:center; gap:8px; padding:22px 20px; flex:1.25;}
.pipe .player{border:1px solid var(--line); border-radius:10px; background:#fff; padding:11px 13px;}
.pipe .player b{display:block; font-family:var(--font-mono); font-size:12px; color:var(--ink); margin-bottom:3px;}
.pipe .player small{font-size:11px; color:var(--muted); line-height:1.35;}
.pipe .stage{display:flex; flex-direction:column; justify-content:center; padding:22px 20px; flex:1; border-left:1px solid var(--line);}
.pipe .stage .st{font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); margin-bottom:8px;}
.pipe .stage .sv{font-family:var(--font-serif); font-size:17px; line-height:1.2; color:var(--ink);}
.pipe .stage.final{background:var(--accent-soft);}
.pipe .arrow{display:flex; align-items:center; justify-content:center; color:var(--line-2); font-size:18px; padding:0 2px; border-left:1px solid var(--line);}

/* Output card */
.outcard{border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--card);}
.outcard .oc-head{display:flex; align-items:center; justify-content:space-between; gap:11px; padding:22px 30px; border-bottom:1px solid var(--line); background:var(--panel);}
.outcard .oc-head .ocname{font-family:var(--font-serif); font-weight:600; font-size:22px; color:var(--ink);}
.outcard .oc-head .ocseq{font-family:var(--font-mono); font-size:12px; color:var(--muted); margin-top:3px;}
.outcard .oc-score{display:flex; align-items:baseline; gap:8px;}
.outcard .oc-score .n{font-family:var(--font-serif); font-weight:600; font-size:32px; color:var(--accent); letter-spacing:-.02em;}
.outcard .oc-score .l{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint);}
.oc-cols{display:grid; grid-template-columns:repeat(4,1fr);}
.oc-col{padding:19px 26px;}
.oc-col + .oc-col{border-left:1px solid var(--line);}
.oc-col .ct{font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:16px;}
.oc-col dl{margin:0;}
.oc-col dt{font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); margin-bottom:3px;}
.oc-col dd{margin:0 0 14px; font-size:13.5px; line-height:1.4; color:var(--ink);}
.oc-col dd.warn{color:var(--n-indication);}

/* Final CTA */
.cta{border-radius:20px; background:var(--accent-deep); color:#fff; padding:32px 56px; text-align:center; margin:8px 0 0;}
.cta .kicker{color:#a9c4a3; justify-content:center;}
.cta .kicker::before{background:#a9c4a3;}
.cta h2{color:#fff; font-size:36px; line-height:1.1; margin:16px auto 16px; max-width:680px;}
.cta p{font-size:16px; line-height:1.6; color:#cdd8c9; max-width:640px; margin:0 auto 30px;}
.cta-ctas{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
.cta .btn-primary{background:#fff; color:var(--accent-deep);}
.cta .btn-primary:hover{background:#eef2ec;}
.cta .btn-ghost{background:transparent; color:#fff; border-color:rgba(255,255,255,.4);}
.cta .btn-ghost:hover{border-color:#fff;}

footer{border-top:1px solid var(--line); padding:21px 0; margin-top:8px;}
footer .wrap{display:flex; justify-content:space-between; align-items:center; font-family:var(--font-mono); font-size:12px; color:var(--muted);}

/* Interactive knowledge graph */
.kg-toolbar{display:flex; gap:12px; align-items:center; margin-bottom:14px;}
.kg-search{flex:1; display:flex; align-items:center; gap:10px; border:1px solid var(--line-2); border-radius:12px; background:#fff; padding:11px 15px;}
.kg-search svg{width:17px; height:17px; stroke:var(--muted); stroke-width:1.8; fill:none; flex:none;}
.kg-search input{border:0; outline:0; background:transparent; font-family:var(--font-body); font-size:14.5px; color:var(--ink); width:100%;}
.kg-search input::placeholder{color:var(--faint);}
.kg-filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px;}
.kg-fchip{display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-size:11.5px; color:var(--ink-2);
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:6px 13px; cursor:pointer; transition:.15s;}
.kg-fchip i{width:9px; height:9px; border-radius:50%; flex:none;}
.kg-fchip:hover{border-color:var(--muted);}
.kg-fchip.off{opacity:.4; text-decoration:line-through;}
#kg .gnode{cursor:pointer; transition:box-shadow .15s, border-color .15s, transform .12s; animation:kgfade .28s ease both;}
#kg .gnode.core{cursor:default; padding:11px 16px;}
#kg .gnode.core .cname{font-size:16px;}
#kg .gnode.core .ctag{font-size:9px;}
#kg .gnode:not(.core):hover{border-color:var(--accent); box-shadow:0 5px 16px rgba(47,74,49,.14);}
#kg .gnode.more{background:var(--panel); border-style:dashed; color:var(--muted);}
#kg .gnode.more .nlab{color:var(--muted);}
#kg .gnode:not(.core) .nlab{max-width:96px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
@keyframes kgfade{from{opacity:0}to{opacity:1}}
.kg-elist{display:flex; flex-wrap:wrap; gap:8px; margin-top:4px;}
.kg-elist button{font-family:var(--font-mono); font-size:11.5px; color:var(--ink-2); background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:5px 11px; cursor:pointer; transition:.15s; display:inline-flex; align-items:center; gap:6px;}
.kg-elist button:hover{border-color:var(--accent); color:var(--accent-deep);}
.kg-elist button i{width:7px; height:7px; border-radius:50%; flex:none;}
.record .rmeta{font-family:var(--font-mono); font-size:11px; letter-spacing:.02em; color:var(--faint); margin-top:14px; line-height:1.5;}
.record .relist-k{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); margin:0 0 12px;}

/* Source-type list (replaces the single source-citation line) */
.src-list{ margin:18px 0 0; max-width:820px; }
.src-title{ font-family:var(--font-mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin:0 0 8px; }
.src-row{ font-family:var(--font-mono); font-size:12.5px; color:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:9px 13px; margin:0 0 8px; background:var(--card); }
.src-line{ font-family:var(--font-mono); font-size:12.5px; line-height:1.7; color:var(--ink-2); margin:0; }
