/* ══════════════════════════════════════════════════════════════════
   THE GASTRIC GATE — scientific infographic
   ══════════════════════════════════════════════════════════════════ */

:root{
  --paper:#f1ece1;
  --paper-2:#fbf8f0;
  --paper-3:#e9e3d6;
  --ink:#121a18;
  --ink-2:#2e3835;
  --muted:#5d6762;
  --faint:#8b948f;
  --rule:#d3cbbc;
  --rule-2:#b6ad9c;
  --amber:#c46a1a;
  --amber-2:#e8c9a3;
  --teal:#0e7c78;
  --teal-2:#cfe6e3;
  --rose:#b23a56;
  --rose-2:#f0d2d9;
  --violet:#5b4bb7;
  --violet-2:#ddd8f4;
  --green:#4d7a2b;
  --green-2:#dce7cb;
  --sky:#2c6f9e;
  --sky-2:#d3e5f1;
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  color:var(--ink);
  background-color:var(--paper);
  background-image:
    linear-gradient(rgba(18,26,24,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(18,26,24,.028) 1px,transparent 1px);
  background-size:32px 32px;
  font-family:var(--sans);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{font-family:var(--serif);font-weight:500;margin:0}
p{margin:0}
button{font-family:inherit}
::selection{background:var(--amber-2)}

.wrap{max-width:1240px;margin:0 auto;padding:0 24px}

/* ── top rule ─────────────────────────────────────────────────── */
.topline{
  background:var(--ink);color:var(--paper);
  display:flex;justify-content:space-between;gap:20px;
  padding:6px 24px;
  font-family:var(--mono);font-size:8.5px;letter-spacing:.18em;
  text-transform:uppercase;
}

/* ── masthead ─────────────────────────────────────────────────── */
.masthead{padding:38px 0 20px;border-bottom:2px solid var(--ink);margin-bottom:20px}
.mast-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:40px;align-items:end}
.kicker{
  font-family:var(--mono);font-size:9px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--amber);margin-bottom:12px;
}
.masthead h1{
  font-size:clamp(4rem,8.6vw,7.6rem);
  line-height:.82;letter-spacing:-.055em;margin:0 0 18px;
}
.masthead h1 em{font-style:italic;color:var(--amber)}
.deck{font-size:1rem;line-height:1.55;color:var(--ink-2);max-width:560px}
.deck strong{font-weight:700;border-bottom:2px solid var(--amber-2)}

.mast-stats{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid var(--rule)}
.ms{padding:9px 0 9px 16px;border-bottom:1px solid var(--rule)}
.ms:nth-child(3),.ms:nth-child(4){border-bottom:0}
.ms b{font-family:var(--serif);font-size:2.05rem;font-weight:500;line-height:1;display:block;letter-spacing:-.02em}
.ms b span{font-size:.82rem;color:var(--muted);margin-left:1px}
.ms > span{display:block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:3px}
.ms small{display:block;font-size:.6rem;color:var(--faint);margin-top:1px}

/* route map */
.route-wrap{margin-top:28px;border-top:1px solid var(--rule);padding-top:8px}
.route{width:100%;height:auto;display:block}
.station circle{fill:var(--paper-2);stroke:var(--ink);stroke-width:2}
.station text{font-family:var(--mono);font-size:9px;fill:var(--ink)}
.st-name{font-family:var(--sans) !important;font-size:10px !important;font-weight:800;letter-spacing:.06em}
.st-role{font-family:var(--mono) !important;font-size:8px !important;fill:var(--faint) !important;letter-spacing:.05em}
.route-return{font-family:var(--mono);font-size:7.5px;fill:var(--teal);letter-spacing:.12em}
.route-mobile{display:none}

/* ── grid + panels ────────────────────────────────────────────── */
main.wrap{padding-bottom:40px}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin-bottom:14px;align-items:start}
.span-7{grid-column:span 7}
.span-5{grid-column:span 5}
.span-4{grid-column:span 4}
.span-8{grid-column:span 8}
.span-12{grid-column:span 12}

.panel{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-top:3px solid var(--accent,var(--ink));
  border-radius:2px;
  padding:20px 22px 18px;
  box-shadow:3px 3px 0 rgba(18,26,24,.055);
  position:relative;
  min-width:0;
}
.accent-amber{--accent:var(--amber)}
.accent-rose{--accent:var(--rose)}
.accent-teal{--accent:var(--teal)}
.accent-violet{--accent:var(--violet)}
.accent-green{--accent:var(--green)}
.accent-sky{--accent:var(--sky)}
.accent-ink{--accent:var(--ink)}

.p-head{display:flex;gap:11px;align-items:flex-start;margin-bottom:15px}
.p-num{
  width:30px;height:30px;flex:none;display:grid;place-items:center;
  background:var(--accent,var(--ink));color:#fff;
  font-family:var(--mono);font-size:9px;letter-spacing:.02em;
  border-radius:2px;margin-top:2px;
}
.p-head h2{font-size:1.42rem;line-height:1.04;letter-spacing:-.025em;margin:0 0 3px}
.p-deck{font-size:.75rem;line-height:1.45;color:var(--muted);max-width:820px}

/* ── 01 anatomy ───────────────────────────────────────────────── */
.anatomy-layout{display:block}
.anatomy{width:100%;max-width:560px;height:auto;display:block;margin:0 auto}
.svg-foot{font-family:var(--mono);font-size:8px;letter-spacing:.14em;fill:var(--faint)}
.marker rect{fill:var(--ink)}
.marker text{fill:var(--paper-2);font-family:var(--mono);font-size:12px;font-weight:700}
.wave{animation:wave 5.2s cubic-bezier(.45,.05,.55,.95) infinite}
@keyframes wave{
  0%{transform:translateY(130px);opacity:0}
  8%{opacity:1}
  85%{opacity:1}
  100%{transform:translateY(410px);opacity:0}
}

.region-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin-top:6px;border-top:2px solid var(--ink)}
.region{display:flex;gap:9px;padding:8px 0;border-bottom:1px solid var(--rule)}
.rkey{width:19px;height:19px;flex:none;border:1px solid var(--ink);display:grid;place-items:center;font-family:var(--mono);font-size:9px;margin-top:1px}
.region h3{font-family:var(--sans);font-size:.78rem;font-weight:800;margin:0 0 2px}
.region h3 em{font-style:normal;font-weight:400;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-left:4px}
.region p{font-size:.67rem;line-height:1.42;color:var(--muted);margin:0}
.region p strong{color:var(--ink)}
.formula{
  grid-column:1/-1;margin-top:10px;background:var(--ink);color:var(--paper);
  padding:9px 12px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
}
.formula span{font-family:var(--mono);font-size:7px;letter-spacing:.16em;color:var(--amber-2)}
.formula b{font-family:var(--serif);font-size:1.15rem;font-weight:500}
.formula small{width:100%;font-size:.6rem;line-height:1.4;color:#c9c3b7}

/* ── 02 sieve ─────────────────────────────────────────────────── */
.sieve{display:flex;flex-direction:column;margin:2px 0 12px}
.sieve-row{display:grid;grid-template-columns:48px 44px 1fr;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed var(--rule)}
.sz{font-family:var(--mono);font-size:9px;color:var(--muted)}
.sdot{background:var(--rose);opacity:.7;border-radius:50%;justify-self:center;flex:none}
.verdict{font-family:var(--mono);font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.verdict.bad{color:var(--rose)}
.verdict.mid{color:var(--amber)}
.verdict.good{color:var(--teal)}
.sieve-threshold{border-top:2px solid var(--ink);padding:3px 0 5px;margin:1px 0}
.sieve-threshold span{font-family:var(--mono);font-size:7.5px;letter-spacing:.1em;color:var(--ink);background:var(--paper-2);padding-right:6px}
.sieve-note{background:var(--paper);border:1px solid var(--rule);padding:9px 10px;margin-bottom:11px}
.lag-bar{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.lag-bar span{font-family:var(--mono);font-size:7px;letter-spacing:.12em;color:var(--faint)}
.lag-bar i{flex:1;height:6px;background:repeating-linear-gradient(90deg,var(--amber) 0 7px,transparent 7px 11px)}
.lag-bar b{font-family:var(--mono);font-size:8px;color:var(--amber)}
.sieve-note p{font-size:.64rem;line-height:1.42;color:var(--muted);margin:0}
.mini-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:2px solid var(--ink);padding-top:9px}
.mini-facts b{font-family:var(--serif);font-size:1.35rem;font-weight:500;display:block;line-height:1}
.mini-facts b span{font-size:.62rem;color:var(--muted)}
.mini-facts > div > span{display:block;font-size:.58rem;line-height:1.35;color:var(--faint);margin-top:3px}
.sieve-extra{margin-top:11px;border-top:1px solid var(--rule);padding-top:7px}
.se-tag{font-family:var(--mono);font-size:6.6px;letter-spacing:.12em;color:var(--faint)}
.se-row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed var(--rule);font-size:.6rem;align-items:baseline}
.se-row b{font-weight:700}
.se-row i{font-style:normal;color:var(--muted);text-align:right;font-size:.58rem;line-height:1.35}
.lagline{margin-top:11px;border-top:1px solid var(--rule);padding-top:7px}
.ll-tag{font-family:var(--mono);font-size:6.6px;letter-spacing:.12em;color:var(--faint)}
.ll-track{display:flex;height:10px;margin:5px 0 3px;border:1px solid var(--rule);background:var(--paper)}
.ll-lag{width:9%;background:repeating-linear-gradient(45deg,var(--rose) 0 3px,transparent 3px 6px)}
.ll-empty{width:62%;background:var(--teal);opacity:.35}
.ll-axis{display:flex;justify-content:space-between;align-items:baseline;gap:4px;font-family:var(--mono);font-size:6px;color:var(--faint)}
.ll-axis b{font-weight:400;color:var(--muted);font-size:6px;letter-spacing:.04em}

/* ── 03 mini curves ───────────────────────────────────────────── */
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.mini-card{border:1px solid var(--rule);background:var(--paper);padding:9px 9px 7px;border-top:3px solid var(--c)}
.mini-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:1px}
.mini-head b{font-size:.78rem;font-weight:800}
.mini-head span{font-family:var(--mono);font-size:8px;color:var(--c);white-space:nowrap}
.mini{width:100%;height:auto;display:block}
.mini-foot{font-size:.6rem;color:var(--faint);border-top:1px solid var(--rule);padding-top:4px;margin-top:1px;line-height:1.3}
.mini-foot i{font-style:normal;display:block;color:var(--ink);font-weight:700;font-size:.64rem}
.curve-strip{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid var(--rule);font-size:.6rem;color:var(--muted)}
.curve-strip span{display:flex;align-items:center;gap:5px}
.curve-strip i{width:13px;height:3px;display:inline-block}
.strip-note{margin-left:auto;color:var(--faint);font-size:.56rem}

/* ── 04 brake ─────────────────────────────────────────────────── */
.brake-layout{display:grid;grid-template-columns:1.55fr .85fr;gap:22px}
.brake-table{display:flex;flex-direction:column}
.brake-row{
  display:grid;grid-template-columns:12px .95fr 1fr 1.25fr 58px;
  align-items:center;gap:8px;
  background:transparent;border:0;border-bottom:1px solid var(--rule);
  padding:9px 5px;text-align:left;cursor:pointer;transition:background .18s;
}
.brake-row:first-child{border-top:1px solid var(--rule)}
.brake-row:hover,.brake-row.is-active{background:var(--paper)}
.bdot{width:8px;height:8px;border-radius:50%}
.bname{font-size:.76rem;font-weight:700}
.bchip{font-family:var(--mono);font-size:7px;color:var(--muted);line-height:1.3}
.bbar{height:5px;background:var(--rule);border-radius:2px;overflow:hidden}
.bbar i{display:block;height:100%}
.btime{font-family:var(--mono);font-size:6.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);text-align:right}

.gauge-box{border-left:1px solid var(--rule);padding-left:20px;text-align:center}
.dial{width:100%;max-width:235px;height:auto;display:block;margin:0 auto}
.ticks line{stroke:var(--rule-2);stroke-width:2}
.dial-end{font-family:var(--mono);font-size:7.5px;fill:var(--faint);letter-spacing:.08em}
#dialArc{transition:stroke-dasharray .55s cubic-bezier(.2,.8,.2,1)}
#needle{transition:transform .55s cubic-bezier(.2,.8,.2,1);transform-origin:130px 130px}
.gauge-value{font-family:var(--serif);font-size:1.7rem;line-height:1;margin-top:-8px}
.gauge-value span{font-family:var(--mono);font-size:.6rem;color:var(--faint)}
.gauge-name{font-weight:800;font-size:.8rem;margin-top:2px}
.gauge-note{font-size:.64rem;line-height:1.42;color:var(--muted);margin:5px 0 0}
.gauge-caveat{font-size:.55rem;color:var(--faint);margin:7px 0 0;border-top:1px solid var(--rule);padding-top:5px;line-height:1.35}
.brake-foot{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding-top:10px;border-top:2px solid var(--ink)}
.bf-tag{font-family:var(--mono);font-size:7px;letter-spacing:.1em;background:var(--ink);color:var(--paper);padding:3px 6px;white-space:nowrap}
.brake-foot p{font-size:.66rem;line-height:1.45;color:var(--muted);margin:0}

/* ── 05 hormones ──────────────────────────────────────────────── */
.hormone-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.hormone{border:1px solid var(--rule);background:var(--paper);padding:9px 9px 8px;border-top:3px solid var(--ink);display:flex;flex-direction:column}
.hormone.down{border-top-color:var(--teal)}
.hormone.up{border-top-color:var(--rose)}
.hormone.neutral{border-top-color:var(--faint)}
.hm-top{display:flex;justify-content:space-between;align-items:baseline;gap:4px}
.hm-name{font-weight:800;font-size:.82rem;line-height:1.1}
.hm-cell{font-family:var(--mono);font-size:6px;color:var(--faint);border:1px solid var(--rule);padding:1px 3px;white-space:nowrap}
.hm-arrow{font-size:1.55rem;line-height:1;margin:3px 0 1px;font-weight:500}
.down .hm-arrow{color:var(--teal)}
.up .hm-arrow{color:var(--rose)}
.neutral .hm-arrow{color:var(--faint)}
.hm-receptor{font-family:var(--mono);font-size:7px;letter-spacing:.05em;border-bottom:1px solid var(--rule);padding-bottom:3px;margin-bottom:4px}
.hormone p{font-size:.6rem;line-height:1.38;color:var(--muted);margin:0}
.hormone p strong{color:var(--ink)}
.hierarchy{display:grid;grid-template-columns:135px 1fr;gap:14px;align-items:start;margin-top:16px;padding-top:12px;border-top:2px solid var(--ink)}
.hier-label{font-family:var(--mono);font-size:7px;letter-spacing:.11em;color:var(--faint);padding-top:1px}
.hier-bars{display:flex;flex-direction:column;gap:3px}
.hbar{display:grid;grid-template-columns:1.4fr 4fr;align-items:center;gap:8px}
.hbar b{font-size:.6rem;font-weight:500;text-align:right;white-space:nowrap}
.hbar i{display:block;height:8px;width:var(--w);background:var(--c)}

/* ── 06 sensing wall ──────────────────────────────────────────── */
.nutrient-bar{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-bottom:9px}
.nb-label{font-family:var(--mono);font-size:7px;letter-spacing:.12em;color:var(--faint);margin-right:3px}
.nb{
  font-size:.62rem;border:1px solid var(--rule);background:transparent;
  padding:2px 7px;border-radius:99px;cursor:pointer;color:var(--muted);
  display:flex;align-items:center;gap:4px;transition:all .18s;
}
.nb i{width:5px;height:5px;border-radius:50%}
.nb:hover{border-color:var(--ink);color:var(--ink)}
.nb.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}

.wall-swipe{display:none}
.wall-scroll{overflow-x:auto;margin:0 -3px;padding:0 3px 6px;scrollbar-width:thin;scrollbar-color:var(--rule-2) transparent}
.wall{min-width:1060px}
.wall-lumen{
  height:40px;border:1px solid var(--rule);border-bottom:0;
  background:linear-gradient(180deg,#e6f2ef,#f8f5ed);
  display:flex;align-items:center;justify-content:space-between;padding:0 9px;
}
.wall-lumen > span{font-family:var(--mono);font-size:7px;letter-spacing:.14em;color:var(--teal)}
.lumen-icons{display:flex;gap:5px;align-items:center}
.li{width:12px;height:12px;display:inline-block}
.li.fat{background:var(--amber);border-radius:50% 50% 50% 0}
.li.carb{background:var(--violet);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.li.protein{background:var(--teal);border-radius:2px}
.li.acid{background:var(--rose);border-radius:50%}

.wall-cells{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;border:1px solid var(--rule);border-top:0;background:var(--paper);padding:6px}
.cell-card{
  border:1px solid var(--rule);background:var(--paper-2);
  border-top:4px solid var(--c);
  padding:6px 5px 5px;display:flex;flex-direction:column;min-height:188px;
  justify-content:space-between;
  transition:opacity .22s,box-shadow .22s;
}
.cell-card.is-dim{opacity:.26}
.cell-card.is-lit{box-shadow:0 0 0 2px var(--c)}
.cc-name{font-weight:800;font-size:.7rem;line-height:1.1}
.cc-horm{font-family:var(--serif);font-style:italic;font-size:.62rem;color:var(--c);line-height:1.15;margin:1px 0 5px}
.cc-nucleus{width:22px;height:22px;border-radius:50%;border:1px solid var(--rule-2);margin:1px auto 5px;position:relative;flex:none}
.cc-nucleus::after{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--c);opacity:.32}
.cc-receptors{display:flex;flex-direction:column;gap:2.5px;flex:1}
.r{
  font-family:var(--mono);font-size:6.7px;line-height:1.25;
  padding:2px 3px;border-left:2px solid var(--faint);
  color:var(--ink-2);background:rgba(0,0,0,.022);
  transition:opacity .2s,background .2s;
}
.r.ap{border-left-color:var(--teal)}
.r.bsl{border-left-color:var(--amber)}
.r.q{border-left-color:var(--amber);background:rgba(196,106,26,.09)}
.r.s{border-left-color:var(--teal);background:rgba(14,124,120,.09)}
.r.i{border-left-color:var(--violet);background:rgba(91,75,183,.09)}
.r.t{border-left-color:var(--sky);background:rgba(44,111,158,.09)}
.cc-out{margin-top:4px;padding-top:3px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:6.4px;letter-spacing:.04em;color:var(--c);text-align:center}

.wall-lamina{
  height:30px;border:1px solid var(--rule);border-top:0;
  background:repeating-linear-gradient(90deg,rgba(14,124,120,.055) 0 1px,transparent 1px 11px);
  display:flex;align-items:center;padding:0 9px;
}
.wall-lamina span{font-family:var(--mono);font-size:6.8px;letter-spacing:.14em;color:var(--faint)}

.wall-legend{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:7px;font-size:.58rem;color:var(--muted)}
.wall-legend b{color:var(--ink)}
.cl{font-family:var(--mono);font-size:6px;padding:1px 4px;border:1px solid}
.cl.q{color:var(--amber);border-color:var(--amber)}
.cl.s{color:var(--teal);border-color:var(--teal)}
.cl.i{color:var(--violet);border-color:var(--violet)}
.cl.t{color:var(--sky);border-color:var(--sky)}
.wall-hint{margin-left:auto;font-style:italic;color:var(--faint)}

/* ── 07 atlas ─────────────────────────────────────────────────── */
.filter-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}
.fbtn{
  font-family:var(--mono);font-size:6.8px;letter-spacing:.05em;text-transform:uppercase;
  border:1px solid var(--rule);background:transparent;padding:2px 6px;cursor:pointer;color:var(--muted);
}
.fbtn:hover{border-color:var(--ink);color:var(--ink)}
.fbtn.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.atlas-swipe{display:none}
.loop-swipe{display:none}
.table-scroll{overflow-x:auto;margin:0 -4px;padding:0 4px}
.atlas{width:100%;border-collapse:collapse;font-size:.62rem;min-width:860px}
.atlas th{
  font-family:var(--mono);font-size:6.2px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);text-align:left;padding:5px 6px;border-bottom:1px solid var(--ink);
  font-weight:400;white-space:nowrap;
}
.atlas td{padding:4px 6px;border-bottom:1px solid var(--rule);vertical-align:top;line-height:1.32;color:var(--muted)}
.atlas tr:nth-child(even) td{background:rgba(18,26,24,.018)}
.atlas tr:hover td{background:var(--paper)}
.atlas td:first-child{color:var(--ink);font-weight:500}
.atlas td:nth-child(2){color:var(--ink);font-weight:700}
.gene{display:block;font-family:var(--mono);font-size:6.2px;color:var(--amber);font-weight:400}
.cp{font-family:var(--mono);font-size:7px;color:var(--teal);white-space:nowrap}
.face{font-family:var(--mono);font-size:6.2px;letter-spacing:.03em;white-space:nowrap}
.face.apical{color:var(--sky)}
.face.basal{color:var(--violet)}
.face.both{color:var(--muted)}
.fine{font-size:.56rem;color:var(--faint);line-height:1.45;margin:7px 0 0}

/* ── 08 wiring ────────────────────────────────────────────────── */
.wires{display:flex;flex-direction:column}
.wire{display:grid;grid-template-columns:82px 1fr 100px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--rule)}
.wire:last-child{border-bottom:0}
.w-tag{font-family:var(--mono);font-size:8px;font-weight:700;color:var(--c);letter-spacing:.03em}
.w-flow{display:flex;align-items:center;gap:3px;flex-wrap:wrap}
.w-chip{font-family:var(--mono);font-size:6.2px;padding:1.5px 3.5px;border:1px solid var(--rule-2);background:var(--paper);color:var(--ink-2);white-space:nowrap}
.w-arrow{color:var(--faint);font-size:8px}
.w-node{font-size:6.2px;padding:1.5px 4px;border:1px solid var(--c);color:var(--c);background:var(--paper-2);white-space:nowrap}
.w-node.hot{background:var(--c);color:#fff}
.w-out{font-family:var(--mono);font-size:6.2px;text-align:right;color:var(--faint);text-transform:uppercase;letter-spacing:.04em;line-height:1.3}
.wire-note{margin-top:10px;padding-top:8px;border-top:2px solid var(--ink);font-size:.66rem;line-height:1.45;color:var(--muted)}
.wire-note b{color:var(--ink)}

/* ── 09 loop ──────────────────────────────────────────────────── */
.loop-wrap{display:flex;justify-content:center}
.loop{width:100%;max-width:470px;height:auto;display:block}
.loop-node rect{fill:var(--paper-2);stroke:var(--ink);stroke-width:1.4}
.ln-title{font-family:var(--sans);font-size:9px;font-weight:800;fill:var(--ink);letter-spacing:.02em}
.ln-sub{font-family:var(--mono);font-size:6.4px;fill:var(--faint);letter-spacing:.03em}
.loop-arrow path{fill:none;stroke:var(--ink);stroke-width:1.5;opacity:.68}
.la-label{font-family:var(--mono);font-size:7.2px;fill:var(--faint);letter-spacing:.03em}
.loop-big{font-family:var(--serif);font-size:44px;fill:var(--ink)}
.loop-unit{font-family:var(--mono);font-size:8px;fill:var(--muted);letter-spacing:.08em}
.loop-cap{font-family:var(--mono);font-size:5.6px;fill:var(--faint);letter-spacing:.16em}

.circuit{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.ck{display:grid;grid-template-columns:72px 1fr 52px;gap:6px;align-items:center;border:1px solid var(--rule);padding:5px 7px;background:var(--paper)}
.ck span{font-family:var(--mono);font-size:6.2px;letter-spacing:.07em;color:var(--faint)}
.ck b{font-size:.66rem}
.ck i{font-style:normal;font-family:var(--mono);font-size:6.2px;text-transform:uppercase;color:var(--teal);text-align:right}
.timefacts{display:flex;flex-direction:column;gap:7px;border-top:1px solid var(--rule);padding-top:8px}
.timefacts b{font-family:var(--serif);font-size:1.05rem;font-weight:500;display:block;line-height:1}
.timefacts span{font-family:var(--mono);font-size:6.4px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.timefacts p{font-size:.62rem;line-height:1.38;color:var(--muted);margin:2px 0 0}
.effectors{margin-top:9px;border-top:1px solid var(--rule);padding-top:7px}
.effectors > span{font-family:var(--mono);font-size:6.2px;letter-spacing:.12em;color:var(--faint)}
.effectors div{display:flex;justify-content:space-between;padding:3.5px 0;border-bottom:1px dashed var(--rule);font-size:.62rem}
.effectors b{font-weight:700}
.effectors i{font-style:normal;font-family:var(--mono);font-size:.56rem;color:var(--teal)}
.aside-note{margin-top:10px;background:var(--ink);color:var(--paper);padding:9px 10px}
.aside-note span{font-family:var(--mono);font-size:6.2px;letter-spacing:.14em;color:var(--amber-2)}
.aside-note p{font-size:.64rem;line-height:1.4;margin:3px 0 0;color:#d8d2c6}

/* ── 10 numbers band ──────────────────────────────────────────── */
.numbers{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:none}
.numbers .p-num{background:var(--paper);color:var(--ink)}
.numbers h2{color:var(--paper)}
.num-grid{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid rgba(255,255,255,.22)}
.num-grid > div{padding:13px 11px;border-right:1px solid rgba(255,255,255,.14)}
.num-grid > div:last-child{border-right:0}
.num-grid b{font-family:var(--serif);font-size:2.15rem;font-weight:500;line-height:1;display:block}
.num-grid b span{font-size:.72rem;color:#b9b3a7;margin-left:2px}
.num-grid p{font-size:.66rem;margin:5px 0 0;color:var(--paper)}
.num-grid small{font-family:var(--mono);font-size:6.2px;letter-spacing:.04em;color:#8f8a7f;display:block;margin-top:2px}

/* ── 11 clinical ──────────────────────────────────────────────── */
.clinical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.clinical{border:1px solid var(--rule);background:var(--paper);padding:11px}
.cl-head span{font-family:var(--mono);font-size:6.6px;letter-spacing:.12em;color:var(--faint)}
.cl-head h3{font-family:var(--serif);font-size:1.2rem;margin:1px 0 2px}
.cl-gauge{width:100%;max-width:210px;margin:0 auto}
.clinical p{font-size:.64rem;line-height:1.42;color:var(--muted);margin:5px 0 0}
.glp1-note{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding-top:9px;border-top:2px solid var(--ink)}
.glp1-note span{font-family:var(--mono);font-size:6.2px;letter-spacing:.09em;background:var(--rose);color:#fff;padding:2px 5px;white-space:nowrap}
.glp1-note p{font-size:.64rem;line-height:1.42;color:var(--muted);margin:0}

/* ── 12 evidence ──────────────────────────────────────────────── */
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.ev-col{border:1px solid var(--rule);background:var(--paper);padding:11px}
.ev-col h3{
  font-family:var(--sans);font-size:.7rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;display:flex;gap:6px;align-items:center;margin:0 0 7px;
  padding-bottom:5px;border-bottom:2px solid var(--c);
}
.ev-col h3 span{width:16px;height:16px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font-size:9px;flex:none}
.established{--c:var(--green)}
.contested{--c:var(--amber)}
.unknown{--c:var(--rose)}
.ev-col ul{margin:0;padding:0;list-style:none}
.ev-col li{font-size:.62rem;line-height:1.42;color:var(--muted);margin-bottom:5px;padding-left:9px;position:relative}
.ev-col li::before{content:"—";position:absolute;left:0;color:var(--c)}
.ev-col li b{color:var(--ink)}

/* ── 13 simulator ─────────────────────────────────────────────── */
.sim-layout{display:grid;grid-template-columns:.8fr 1.3fr;gap:18px}
.sim-controls{border-right:1px solid var(--rule);padding-right:18px}
.preset-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:11px}
.preset{font-size:.6rem;border:1px solid var(--rule);background:transparent;padding:3px 7px;cursor:pointer;color:var(--muted)}
.preset:hover{border-color:var(--ink);color:var(--ink)}
.preset.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.slider-group{margin-bottom:8px}
.slider-group label{display:flex;justify-content:space-between;font-size:.62rem;color:var(--muted);margin-bottom:2px}
.slider-group output{font-family:var(--mono);font-size:.58rem;color:var(--ink)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:3px;background:var(--rule);outline:none;margin:0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;border-radius:50%;background:var(--ink);border:2px solid var(--paper);cursor:pointer;box-shadow:0 0 0 1px var(--ink)}
input[type=range]::-moz-range-thumb{width:9px;height:9px;border-radius:50%;background:var(--ink);border:2px solid var(--paper);cursor:pointer}
.toggle-row{display:flex;justify-content:space-between;align-items:center;font-size:.62rem;color:var(--muted);border-top:1px solid var(--rule);margin-top:8px;padding-top:7px}
.seg{display:flex;border:1px solid var(--rule)}
.seg-btn{background:transparent;border:0;font-size:.56rem;padding:2px 7px;cursor:pointer;color:var(--muted)}
.seg-btn.is-active{background:var(--ink);color:var(--paper)}
.sim-fine{font-size:.54rem;margin-top:7px;border-top:1px solid var(--rule);padding-top:6px}

.sim-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);margin-bottom:4px}
.ss{padding:5px 8px;border-right:1px solid var(--rule)}
.ss:last-child{border-right:0}
.ss span{display:block;font-family:var(--mono);font-size:6px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.ss b{font-family:var(--serif);font-size:1.35rem;font-weight:500;line-height:1.1;display:block}
.ss em{font-style:normal;font-family:var(--mono);font-size:5.6px;color:var(--faint)}
.ss.primary b{color:var(--amber)}
#simCanvas{width:100%;height:auto;display:block}
.sim-legend{display:flex;gap:14px;align-items:center;font-size:.56rem;color:var(--muted);border-top:1px solid var(--rule);padding-top:4px}
.sim-legend span{display:flex;align-items:center;gap:4px}
.sim-legend i{width:12px;height:3px;display:inline-block}
.replay{margin-left:auto;background:none;border:1px solid var(--rule);font-size:.55rem;padding:2px 6px;cursor:pointer;color:var(--muted)}
.sim-note{font-size:.58rem;line-height:1.4;color:var(--muted);border-left:2px solid var(--amber);padding-left:7px;margin:5px 0 0;min-height:2em}

/* ── footer ───────────────────────────────────────────────────── */
.footer{border-top:2px solid var(--ink);margin-top:24px;padding:20px 0 36px}
.foot-grid{display:grid;grid-template-columns:1.1fr 1.4fr 1fr;gap:22px}
.foot-mark{font-family:var(--serif);font-size:.95rem;margin-bottom:3px}
.foot-head{font-family:var(--mono);font-size:6.4px;letter-spacing:.13em;color:var(--faint);margin-bottom:3px}
.footer p{font-size:.6rem;line-height:1.48;color:var(--muted);margin:0}
.foot-refs{font-family:var(--mono);font-size:6px;line-height:1.8}
.footer code{font-family:var(--mono);font-size:.9em}

/* ── responsive ───────────────────────────────────────────────── */
@media (max-width:1050px){
  .mast-grid{grid-template-columns:1fr;gap:22px}
  .mast-stats{grid-template-columns:repeat(4,1fr);border-left:0;border-top:1px solid var(--rule)}
  .ms{border-bottom:0;border-right:1px solid var(--rule);padding-left:12px}
  .ms:last-child{border-right:0}
  .span-7,.span-5,.span-8,.span-4{grid-column:span 12}
  .mini-grid{grid-template-columns:repeat(2,1fr)}
  .hormone-grid{grid-template-columns:repeat(3,1fr)}
  .num-grid{grid-template-columns:repeat(3,1fr)}
  .num-grid > div:nth-child(3){border-right:0}
  .num-grid > div:nth-child(-n+3){border-bottom:1px solid rgba(255,255,255,.14)}
  .clinical-grid{grid-template-columns:repeat(3,1fr)}
  .brake-layout{grid-template-columns:1fr}
  .gauge-box{border-left:0;border-top:1px solid var(--rule);padding-left:0;padding-top:14px;display:grid;grid-template-columns:220px 1fr;gap:0 18px;text-align:left;align-items:center}
  .gauge-box .dial{grid-row:span 3}
  .gauge-value{margin-top:0}
  .gauge-caveat{grid-column:2}
  .ev-grid{grid-template-columns:1fr}
  .sim-layout{grid-template-columns:1fr}
  .sim-controls{border-right:0;border-bottom:1px solid var(--rule);padding-right:0;padding-bottom:14px}
  .foot-grid{grid-template-columns:1fr 1fr}
}

@media (max-width:780px){
  .wrap{padding:0 16px}
  .topline{padding:6px 16px;font-size:7px}
  .route{display:none}
  .route-mobile{
    display:block;padding:10px 0 4px;
    font-family:var(--mono);font-size:8px;letter-spacing:.02em;color:var(--muted);
  }
  .route-mobile div{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
  .route-mobile b{
    width:16px;height:16px;border:1px solid var(--ink);border-radius:50%;
    display:grid;place-items:center;font-size:7px;color:var(--ink);font-weight:400;
  }
  .route-mobile i{font-style:normal;color:var(--faint)}
  .route-mobile p{margin-top:6px;font-size:7px;color:var(--teal);letter-spacing:.09em}
  .wall-swipe,.atlas-swipe,.loop-swipe{
    display:flex;align-items:center;gap:6px;
    font-family:var(--mono);font-size:7px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--faint);margin:0 0 5px;
  }
  .atlas-swipe{margin:2px 0 6px}
  .loop-wrap{overflow-x:auto;justify-content:flex-start;padding-bottom:4px}
  .loop{min-width:420px}
  .masthead{padding-top:26px}
  .mast-stats{grid-template-columns:1fr 1fr}
  .ms:nth-child(2n){border-right:0}
  .ms:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .panel{padding:16px 16px 14px}
  .region-list{grid-template-columns:1fr}
  .mini-grid{grid-template-columns:1fr 1fr}
  .hormone-grid{grid-template-columns:1fr 1fr}
  .brake-row{grid-template-columns:10px 1fr 1fr;row-gap:3px}
  .bbar{grid-column:2/3}
  .btime{grid-column:3/4;text-align:left}
  .bchip{grid-column:2/4}
  .gauge-box{display:block;text-align:center}
  .gauge-box .dial{max-width:240px}
  .clinical-grid{grid-template-columns:1fr}
  .num-grid{grid-template-columns:1fr 1fr}
  .num-grid > div:nth-child(3){border-right:1px solid rgba(255,255,255,.14)}
  .num-grid > div:nth-child(2n){border-right:0}
  .num-grid > div:nth-child(-n+4){border-bottom:1px solid rgba(255,255,255,.14)}
  .wire{grid-template-columns:70px 1fr}
  .w-out{grid-column:2;text-align:left}
  .hierarchy{grid-template-columns:1fr;gap:6px}
  .footer .foot-grid{grid-template-columns:1fr}
  .masthead h1{font-size:3.6rem}
}

@media (max-width:520px){
  .topline span:last-child{display:none}
  .masthead h1{font-size:3.1rem}
  .mini-grid{grid-template-columns:1fr}
  .hormone-grid{grid-template-columns:1fr}
  .sim-stats{grid-template-columns:1fr 1fr}
  .ss:nth-child(2){border-right:0}
  .ss:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .wall-legend{gap:6px}
  .wall-hint{margin-left:0;width:100%}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .wave{animation:none!important;transform:translateY(260px)}
}
