/* Black site, white text (Dale, 10/20). One theme on purpose.
   Body text = system font (same as findlandfill + Receipt Reaper).
   Headings = Archivo Expanded 900 uppercase, the Receipt Reaper display face (Dale, 10/20). */
@font-face{font-family:"Archivo";font-style:normal;font-weight:700 900;font-stretch:125%;font-display:swap;src:url("/static/fonts/archivo-expanded-latin.woff2?v=2") format("woff2")}
:root{
  color-scheme:dark;
  /* --bg matches Receipt Reaper's hero "night" (#121212); cards sit one step lighter */
  --bg:#121212; --card:#191919; --ink:#ffffff; --muted:#a3a3a3; --line:#2c2c2c;
  --brand:#ffffff; --brand-ink:#000000; --brand-soft:#202020;
  /* The one accent: Receipt Reaper orange, for hover/focus only. Never a status color (tracker uses green/yellow/blue/red). */
  --accent:#ff5f1f; --warn:#f5c26b; --warn-soft:#1f1708;
  --fill:#ffffff; --radius:14px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --display:"Archivo","Arial Black",Arial,sans-serif;
  /* status colors (tracker) */
  --s-approved:#4ade80; --s-pending:#facc15; --s-review:#60a5fa; --s-no:#f87171;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--font)}
/* Receipt Reaper hero background, site-wide (Dale, 10/21): faint contour lines + a tick ruler down
   the left edge. Fixed layers so long pages don't stretch them. Orange square, same as RR. */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='rgba(255,255,255,.07)' stroke-width='1.2'%3E%3Cpath d='M90,0 C160,160 40,300 130,460 C210,600 120,700 170,800'/%3E%3Cpath d='M330,0 C260,140 380,260 300,420 C230,560 330,660 290,800'/%3E%3Cpath d='M560,0 C640,120 520,240 600,380 C680,520 560,640 620,800'/%3E%3Cpath d='M820,0 C760,180 900,280 840,450 C790,590 900,690 860,800'/%3E%3Cpath d='M1080,0 C1150,150 1020,300 1100,470 C1160,610 1060,700 1110,800'/%3E%3Cpath d='M0,250 C200,210 380,330 600,280 C820,230 1000,330 1200,290'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat}
body::after{content:"";position:fixed;top:16px;bottom:0;left:16px;width:11px;z-index:-1;pointer-events:none;
  background:linear-gradient(var(--accent),var(--accent)) 0 0/8px 8px no-repeat,
    repeating-linear-gradient(to bottom,rgba(255,255,255,.16) 0 1px,transparent 1px 44px) 3px 24px/8px calc(100% - 24px) no-repeat}
@media (max-width:959px){body::after{display:none}}
a{color:var(--ink);text-underline-offset:3px}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:860px;margin:0 auto;padding:0 16px 64px}
.wrap.wide{max-width:1040px}

/* header + footer */
header.top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.brand{font-weight:800;color:var(--ink);text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.brand img{display:block;height:32px;width:auto}
.tagline{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);letter-spacing:.02em}
.hero .tagline{margin:0 0 10px;font-size:.95rem}
.footer-brand{color:var(--ink)}
.footer-brand .tagline{margin-left:8px;font-size:.88rem}
header.top nav{display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end}
header.top nav a{color:var(--muted);text-decoration:none;font-weight:600;font-size:.95rem}
header.top nav a[aria-current="page"]{color:var(--ink)}
header.top nav a:hover{color:var(--accent)}
@media (max-width:480px){
  header.top{gap:12px}
  header.top nav{gap:12px;flex-wrap:nowrap}
  header.top nav a{font-size:.88rem}
  .brand img{height:26px}
}
.crumbs{color:var(--muted);font-size:.88rem;margin:16px 0 0}
.crumbs a{color:var(--muted)}
footer.site{margin-top:56px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}
footer.site nav{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:10px}
footer.site a{color:var(--muted)}

/* type */
h1,article h2,section h2{font-family:var(--display);font-stretch:125%;font-weight:900;text-transform:uppercase;letter-spacing:-.01em}
h1{font-size:clamp(1.5rem,4.2vw,2.3rem);line-height:1.05;margin:28px 0 12px}
.lede{color:var(--muted);margin:0 0 20px;font-size:1.05rem}
article h2,section h2{font-size:clamp(1.05rem,2.6vw,1.3rem);margin:40px 0 10px;line-height:1.15}
article h3,section h3{font-size:1.1rem;margin:24px 0 6px}
.updated{display:inline-block;font-size:.85rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 12px;margin:0 0 16px}

/* buttons + cards */
.btn{display:inline-block;background:var(--brand);color:var(--brand-ink);text-decoration:none;font-weight:700;padding:12px 20px;border-radius:10px}
.btn:hover{color:var(--brand-ink);opacity:.88}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:20px 0}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;text-decoration:none;color:var(--ink)}
a.card:hover{border-color:var(--accent);color:var(--ink)}
a.card:hover .go{color:var(--accent)}
.card .eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.card h3{margin:6px 0 6px;font-size:1.2rem}
.card p{margin:0;color:var(--muted)}
.card .go{display:inline-block;margin-top:12px;font-weight:700}

/* calculator */
.calc{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.seg{display:flex;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:4px;margin-bottom:18px}
.seg button{flex:1;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;padding:9px 8px;border-radius:7px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink)}
.seg button[aria-pressed="false"]:hover{color:var(--accent)}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
label.f{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.95rem}
label.f small{font-weight:400;color:var(--muted)}
.inp{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--card);overflow:hidden}
.inp:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.inp input,.inp select{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;padding:11px 12px;outline:none}
.inp select.unit{flex:0 0 auto;border-left:1px solid var(--line);padding:11px 8px;color:var(--muted)}
.inp .suf{padding:0 12px;color:var(--muted)}
.results{margin-top:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.stat{background:var(--brand-soft);border-radius:12px;padding:14px}
.stat .k{font-size:.82rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.stat .v{font-size:1.55rem;font-weight:800;line-height:1.2;margin-top:4px;font-variant-numeric:tabular-nums}
.stat .s{font-size:.88rem;color:var(--muted)}
.stat.big{grid-column:1/-1;background:var(--brand);color:var(--brand-ink)}
.stat.big .k,.stat.big .s{color:inherit;opacity:.85}
.stat.big .v{font-size:2.1rem}
.warn{margin-top:12px;background:var(--warn-soft);color:var(--warn);border-radius:10px;padding:10px 14px;font-size:.95rem}
.warn:empty{display:none}
.syr{margin-top:16px}
.syr svg{width:100%;height:auto;display:block}
.syr p{margin:6px 0 0;color:var(--muted);font-size:.9rem;text-align:center}
.picks{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.picks .k{font-size:.82rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-right:4px}
.picks button{background:transparent;border:1px solid var(--line);color:var(--ink);font:inherit;font-weight:700;padding:7px 14px;border-radius:999px;cursor:pointer}
.picks button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.picks button[aria-pressed="false"]:hover{border-color:var(--accent);color:var(--accent)}
.math{margin:14px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;line-height:1.8;color:var(--muted)}
.math:empty{display:none}
.math .k{display:block;font-family:var(--font);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.math b{color:var(--ink)}
.status-box{display:flex;flex-direction:column;gap:6px}
.status-box .pill{font-size:.9rem}
.peptide-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;list-style:none;padding:0;margin:12px 0}
.peptide-links a{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;text-decoration:none;font-weight:700;background:var(--card)}
.peptide-links a:hover{border-color:var(--accent);color:var(--accent)}
.note{margin-top:16px;font-size:.88rem;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.formula{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:10px;padding:12px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92rem;overflow-x:auto}

/* tables (stack on phones: add class "stack" + data-label per td) */
table{width:100%;border-collapse:collapse;margin:12px 0;font-size:.95rem}
th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600}
@media (max-width:640px){
  table.stack thead{display:none}
  table.stack tr{display:block;border:1px solid var(--line);border-radius:12px;padding:6px 12px;margin:0 0 12px;background:var(--card)}
  table.stack td{display:block;border:0;padding:6px 0}
  table.stack td::before{content:attr(data-label);display:block;font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
}

/* status pills (tracker) */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;white-space:nowrap}
.pill::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor}
.pill.approved{color:var(--s-approved)}
.pill.pending{color:var(--s-pending)}
.pill.review{color:var(--s-review)}
.pill.no{color:var(--s-no)}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:10px;margin:16px 0}
.legend div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:.92rem;color:var(--muted)}
.legend .pill{display:flex;margin-bottom:4px}
.filter{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px}
.filter button{background:transparent;border:1px solid var(--line);color:var(--muted);font:inherit;font-size:.9rem;font-weight:600;padding:7px 14px;border-radius:999px;cursor:pointer}
.filter button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.filter button[aria-pressed="false"]:hover{border-color:var(--accent);color:var(--accent)}
.timeline{list-style:none;padding:0;margin:12px 0;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 18px 20px}
.timeline li::before{content:"";position:absolute;left:-6px;top:7px;width:10px;height:10px;border-radius:50%;background:var(--ink)}
.timeline time{display:block;font-weight:700}
.timeline p{margin:2px 0 0;color:var(--muted)}
.callout{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:16px 0}
.callout strong{color:var(--ink)}
.sources{font-size:.9rem;color:var(--muted)}
.sources li{margin:4px 0}

details{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:12px 16px;margin:10px 0}
summary{font-weight:700;cursor:pointer}

/* home hero */
.hero{padding:36px 0 8px}
.hero h1{font-size:clamp(1.75rem,5vw,2.9rem);margin-top:0}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
/* "Draw" result as a syringe (static/calc.js AMSyringe). White fill = the answer; text uses
   mix-blend-mode:difference so it reads black over the fill and white beyond it. */
.stat.syrstat{grid-column:1/-1;background:transparent;padding:0 58px 0 44px}
.syrstat .barrel{position:relative;isolation:isolate;border:3px solid var(--ink);border-radius:10px;padding:22px 18px 14px}
.syrstat .barrel::before{content:"";position:absolute;right:100%;top:50%;width:42px;height:3px;margin-top:-1.5px;background:var(--muted);border-radius:2px}
.syrstat .barrel::after{content:"";position:absolute;left:100%;margin-left:44px;top:10%;bottom:10%;width:9px;border-radius:2px;background:#4a4a4a}
.syrstat .fill{position:absolute;top:0;bottom:0;left:0;width:var(--fill);border-radius:7px 0 0 7px;background:var(--ink);z-index:-1}
.syrstat .stopper{position:absolute;top:0;bottom:0;left:var(--fill);width:3px;margin-left:-1.5px;background:var(--accent);z-index:2}   /* above the blended text, so it stays orange */
.syrstat .rod{position:absolute;top:50%;height:6px;margin-top:-3px;left:100%;width:44px;background:#4a4a4a}
.syrstat .fill,.syrstat .stopper{transition:width .9s cubic-bezier(.2,.8,.2,1),left .9s cubic-bezier(.2,.8,.2,1)}
.syrstat .ticks{position:absolute;left:0;right:0;top:0;height:16px;pointer-events:none;mix-blend-mode:difference;
  background:repeating-linear-gradient(to right,#bdbdbd 0 2px,transparent 2px var(--major)) 0 0/100% 16px no-repeat,
    repeating-linear-gradient(to right,#8a8a8a 0 1px,transparent 1px var(--minor)) 0 0/100% 9px no-repeat}
.syrstat .txt{position:relative;color:#fff;mix-blend-mode:difference}
.syrstat .txt .k,.syrstat .txt .s{color:#fff;opacity:.75}
.syrstat .scale{display:flex;justify-content:space-between;margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:var(--muted)}
@media (max-width:480px){
  .stat.syrstat{padding:0 34px 0 26px}
  .syrstat .barrel::before{width:24px}
  .syrstat .barrel::after{margin-left:26px;width:7px}
  .syrstat .rod{width:26px}
}
@media (prefers-reduced-motion:reduce){.syrstat .fill,.syrstat .stopper{transition:none}}
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 6px}
.chips .k{width:100%;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.chips a{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;font-weight:700;font-size:.95rem;text-decoration:none;color:var(--ink)}
.chips a:hover{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
figure.diagram{margin:18px 0}
figure.diagram img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}
figure.diagram figcaption{margin-top:8px;font-size:.88rem;color:var(--muted)}
.trust{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:12px 0}
.trust div{border-top:2px solid var(--ink);padding-top:10px}
.trust strong{display:block;margin-bottom:2px}
.trust span{color:var(--muted);font-size:.95rem}
