:root {
  --v9drra: #70d797;
  --v18poc: #24382c;
  --vtff60: #123620;
  --vr68gq: #43895e;
  --vpidwu: #c7e283;
  --vwve74: #70d797;
  --vf4cmj: #2d3b26;
  --vs5kqk: #415337;
  --vu3jjt: #8fa484;
  --vmbojx: #151c11;
  --vzym8z: #1a2414;
  --vdoasj: #283720;
  --v2wbyn: #eaeee7;
  --vh8sap: #a3b09c;
  --vlhis3: #53c69c;
  --vfcbfg: #e4b558;
  --vf28dn: #de625e;
  --vb33ln: 73.305rem;
  --vs8ne0: 64ch;
  --vxgn8j: #283720;
  --vwg90u: clamp(1.034rem, 3vw, 1.881rem);
  --v1xrgg: 4.127rem;
  --vqhn1a: 'IBM Plex Mono', system-ui, sans-serif;
  --vpa7fo: 'IBM Plex Sans', system-ui, sans-serif;
  --vv2vpq: 'IBM Plex Mono', system-ui, sans-serif;
  --vhrf1p: clamp(2.37rem, 4.5vw, 3.633rem);
  --vdtz5o: clamp(1.447rem, 3vw, 2.37rem);
  --v72m3r: 1.447rem;
  --vjd0oe: 1.123rem;
  --vy3czd: 0.915rem;
  --vw7f4f: 1.15;
  --v155yr: 1.65;
  --vm4pwt: 0.523rem;
  --vwrxbn: 0.786rem;
  --vzbp3u: #111111;
  --vosf2s: #ffffff;
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: var(--vpa7fo); font-size: var(--vjd0oe); line-height: var(--v155yr); color: var(--v2wbyn); background: var(--vzym8z); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: var(--vqhn1a); line-height: var(--vw7f4f); font-weight: 700; color: var(--v2wbyn); text-wrap: balance; }
h1 { font-size: var(--vhrf1p); letter-spacing: -0.021em; }
h2 { font-size: var(--vdtz5o); margin-top: 2.462rem; margin-bottom: 0.786rem; }
h3 { font-size: var(--v72m3r); margin-top: 1.735rem; margin-bottom: 0.523rem; }
p { margin-bottom: 1.034rem; }
a { color: var(--vwve74); }
ul, ol { margin: 0 0 1.034rem 1.288rem; }
li { margin-bottom: 0.353rem; }
strong { font-weight: 700; }
code { font-family: ui-monospace, "SF Mono", Menlo, monospace; background: rgba(128, 128, 128, 0.154); border: 1px solid rgba(128, 128, 128, 0.28); border-radius: 4px; padding: 0.101em 0.329em; font-size: 0.857em; color: var(--v2wbyn); }
blockquote { border-left: 3px solid var(--v9drra); padding-left: 1.034rem; color: var(--vh8sap); margin: 0 0 1.034rem; }
img { max-width: 100%; height: auto; display: block; }
sup.wj2d7u a { text-decoration: none; color: var(--vpidwu); font-weight: 600; }
.container { width: 100%; max-width: var(--vb33ln); margin-inline: auto; padding-inline: var(--vwg90u); }
.wub0el { position: absolute; left: -999px; }
.wub0el:focus { left: 1.034rem; top: 1.034rem; background: var(--vdoasj); padding: 0.523rem 1.034rem; z-index: 100; }
main { display: block; }
.wwsy1i { font-family: var(--vv2vpq); font-weight: 800; font-size: 1.206rem; color: var(--v2wbyn); text-decoration: none; }
.wpfbgq { min-width: 0; }
.wpfbgq ul { display: flex; flex-wrap: wrap; gap: 1.288rem; list-style: none; margin: 0; padding: 0; min-width: 0; }
.wpfbgq li { white-space: nowrap; }
.wpfbgq a { color: var(--vh8sap); text-decoration: none; font-size: var(--vy3czd); font-weight: 600; }
.wpfbgq a:hover { color: var(--vwve74); }
.wkj1y9 { display: none; background: none; border: 1px solid var(--vs5kqk); border-radius: 6px; padding: 0.39rem 0.632rem; font-size: 1.148rem; line-height: 1; cursor: pointer; color: var(--v2wbyn); }
.w89o4o { font-family: var(--vv2vpq); text-transform: uppercase; letter-spacing: 0.127em; font-size: var(--vy3czd); font-weight: 700; color: var(--vpidwu); margin-bottom: 0.786rem; }
.whjvwl { font-size: 1.206rem; color: var(--vh8sap); margin-top: 1.034rem; max-width: 63ch; }
.wmzhpo { display: flex; flex-wrap: wrap; gap: 0.786rem; margin-top: 1.735rem; }
.wdyc5n { display: inline-block; padding: 0.821rem 1.523rem; border-radius: var(--vm4pwt); font-weight: 700; text-decoration: none; font-size: var(--vy3czd); transition: transform 0.154s ease, opacity 0.154s ease; }
.wdyc5n:hover { transform: translateY(-1.5px); }
.wu8qys { background: var(--v9drra); color: var(--vzbp3u); }
.wnwe0k { background: transparent; color: var(--vwve74); border: 1.5px solid var(--vwve74); }
article > section, main > article { padding-block: 0.523rem; }
.w015me { padding-block: 1.034rem 2.84rem; }
.w015me .container > section { max-width: var(--vs8ne0); margin-inline: auto; }
.w015me .container > section.wijljy, .w015me .container > .wijljy { max-width: none; }
.w015me .container > section > .w7v456,
.w015me .container > section > .wk8exl,
.w015me .container > section > .w009pg,
.w015me .container > section > .wbi7lj,
.w015me .container > section > .w3enyj {
  --veflwp: min(var(--vb33ln) - 2 * var(--vwg90u), 100vw - 2 * var(--vwg90u));
  width: var(--veflwp);
  max-width: none;
  margin-inline: calc((100% - var(--veflwp)) / 2);
}
@media (max-width: 901px) {
  .w015me .container > section > .w7v456,
  .w015me .container > section > .wk8exl,
  .w015me .container > section > .w009pg,
  .w015me .container > section > .wbi7lj,
  .w015me .container > section > .w3enyj { width: 100%; margin-inline: 0; }
}
.w3enyj img { aspect-ratio: 16 / 7; object-fit: contain; background: var(--vdoasj); }
.wg3ze0 img { aspect-ratio: 16 / 6; object-fit: cover; }
.w009pg { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.288rem, 3vw, 2.462rem); align-items: center; background: var(--vxgn8j, var(--vdoasj)); border: 1px solid var(--vs5kqk); border-radius: var(--vwrxbn); padding: clamp(1.288rem, 3vw, 2.37rem); margin: 2.462rem 0; }
.w9vz11 img { border-radius: calc(var(--vwrxbn) - 0.248rem); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.w9vz11 figcaption { font-size: var(--vy3czd); color: var(--vh8sap); margin-top: 0.632rem; line-height: 1.45; }
.wy4l1y { font-family: var(--vv2vpq); text-transform: uppercase; letter-spacing: 0.101em; font-size: 0.786rem; font-weight: 700; color: var(--vpidwu); margin-bottom: 0.632rem; }
.wf942b h2, .wf942b h3 { margin-top: 0; }
.wf942b p:last-child { margin-bottom: 0; }
@media (max-width: 721px) { .w009pg { grid-template-columns: 1fr; } }
.ww8fn4 { border-left: 3px solid var(--vpidwu); background: var(--vxgn8j, var(--vdoasj)); border-radius: 0 var(--vwrxbn) var(--vwrxbn) 0; padding: 1.288rem 1.447rem; margin: 1.881rem 0; }
.ww8fn4 h2, .ww8fn4 h3 { margin-top: 0; font-size: 0.994rem; text-transform: uppercase; letter-spacing: 0.084em; color: var(--vh8sap); }
.wu8kkf { list-style: none; margin: 0.786rem 0 0; padding: 0; display: grid; gap: 0.632rem; }
.wu8kkf li { margin: 0; padding-left: 1.399rem; position: relative; }
.wu8kkf li::before { content: "\2014"; position: absolute; left: 0; color: var(--vpidwu); font-weight: 700; }
.wk8exl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.464rem), 1fr)); gap: 1px; background: var(--vs5kqk); border: 1px solid var(--vs5kqk); border-radius: var(--vwrxbn); overflow: hidden; margin: 2.37rem 0; }
.wvm2gb { background: var(--vdoasj); padding: 1.399rem 1.288rem; }
.wv5bvm { font-family: var(--vv2vpq); font-size: clamp(1.735rem, 3.5vw, 2.462rem); font-weight: 800; line-height: 1.05; color: var(--v9drra); letter-spacing: -0.021em; }
.wdkgeo { font-size: var(--vy3czd); color: var(--vh8sap); margin-top: 0.39rem; line-height: 1.4; }
.wbi7lj { background: var(--v9drra); color: var(--vzbp3u); border-radius: var(--vwrxbn); padding: clamp(1.447rem, 4vw, 2.904rem); margin: 2.84rem 0 1.034rem; text-align: center; }
.wbi7lj h2, .wbi7lj h3 { color: var(--vzbp3u); margin-top: 0; }
.wbi7lj p { color: var(--vzbp3u); opacity: 0.88; margin-inline: auto; max-width: 57ch; }
.wbi7lj .wmzhpo { justify-content: center; }
.wbi7lj .wnwe0k { color: var(--vzbp3u); border-color: var(--vzbp3u); }
.w3enyj img { border-radius: var(--vwrxbn); width: 100%; }
.w3enyj figcaption { font-size: var(--vy3czd); color: var(--vh8sap); margin-top: 0.632rem; font-style: italic; }
.wg3ze0 { margin: 1.447rem 0; }
.wg3ze0 img { border-radius: var(--vwrxbn); }
.wb5fwj { background: var(--vdoasj); border: 1px solid #415337; border-radius: var(--vwrxbn); padding: 1.447rem; }
.w7v456 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.434rem), 1fr)); gap: 1.288rem; margin: 1.447rem 0 1.881rem; }
.w7v456 .wb5fwj { display: flex; flex-direction: column; gap: 0.523rem; }
.w7v456 .wb5fwj img { border-radius: calc(var(--vwrxbn) - 0.248rem); margin-bottom: 0.523rem; aspect-ratio: 16 / 10; object-fit: cover; }
.w7v456 .wb5fwj h2, .w7v456 .wb5fwj h3 { margin: 0; font-size: 1.206rem; }
.w7v456 .wb5fwj p { margin: 0; font-size: var(--vy3czd); color: var(--vh8sap); }
.w7v456 .wb5fwj .wpzkay { margin-top: auto; padding-top: 0.632rem; font-weight: 700; font-size: var(--vy3czd); color: var(--vwve74); text-decoration: none; }
.w7v456 .wb5fwj .wpzkay:hover { text-decoration: underline; }
.wil3jh { margin: 1.447rem 0; }
.wil3jh img { border-radius: var(--vwrxbn); }
.wil3jh figcaption { font-size: var(--vy3czd); color: var(--vh8sap); margin-top: 0.523rem; font-style: italic; }
.wh2mjq { overflow-x: auto; margin: 1.288rem 0 1.735rem; }
table { border-collapse: collapse; width: 100%; font-size: var(--vy3czd); }
th, td { text-align: left; padding: 0.632rem 0.821rem; border-bottom: 1px solid var(--vs5kqk); vertical-align: top; }
thead th { border-bottom: 2px solid var(--v2wbyn); font-family: var(--vqhn1a); }
tbody tr:nth-child(even) { background: rgba(128, 128, 128, 0.1); }
.wr1b2y { padding-left: 1.447rem; }
.wr1b2y li { margin-bottom: 0.786rem; font-size: var(--vy3czd); color: var(--vh8sap); }
.wr1b2y li a { word-break: break-word; }
.wtq5m2 ul { list-style: none; margin: 0; padding: 0; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
.wagzeg.weh0mk4 { border-bottom: 1px solid var(--vs5kqk); background: var(--vdoasj); position: sticky; top: 0; z-index: 50; }
.wagzeg.weh0mk4 .container { display: flex; align-items: center; justify-content: space-between; min-height: var(--v1xrgg); }
.wagzeg.weh0mk4 .wkj1y9 { display: block; }
.wagzeg.weh0mk4 .wpfbgq { position: fixed; top: 0; right: 0; bottom: 0; width: min(19.362rem, 80vw); background: var(--vdoasj); border-left: 1px solid var(--vs5kqk); transform: translateX(100%); transition: transform 0.249s ease; z-index: 60; padding: 4.592rem 1.447rem 1.447rem; overflow-y: auto; }
.wagzeg.weh0mk4 .wpfbgq.w2vlyd { transform: translateX(0); }
.wagzeg.weh0mk4 .wpfbgq ul { flex-direction: column; gap: 1.034rem; }
.wagzeg.weh0mk4 .wpfbgq a { font-size: var(--vjd0oe); }
.w01ay5 { position: fixed; inset: 0; background: rgba(0,0,0,0.4); opacity: 0; visibility: hidden; transition: opacity 0.249s ease; z-index: 55; }
body.wov4bh .w01ay5 { opacity: 1; visibility: visible; }
.w32xdh.w3f0iy3 { position: relative; padding: 0; margin-bottom: 1.881rem; }
.w32xdh.w3f0iy3 .wygpmj { position: relative; min-height: 300px; background: var(--v18poc); }
.w32xdh.w3f0iy3 .wygpmj img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; margin: 0; }
.w32xdh.w3f0iy3 .container { position: relative; }
.w32xdh.w3f0iy3 .wjelpi { background: var(--vdoasj); color: var(--v2wbyn); border-radius: var(--vwrxbn); padding: clamp(1.447rem, 4vw, 2.462rem); max-width: 40.337rem; margin-top: -4.127rem; box-shadow: 0 10px 30px rgba(0,0,0,0.15); position: relative; }
.w32xdh.w3f0iy3 h1 { max-width: 19ch; }
.wkwbuy.wmpuhm0 { background: var(--vtff60); color: var(--vosf2s); margin-top: 4.127rem; padding-block: 2.462rem; }
.wkwbuy.wmpuhm0 a { color: var(--vosf2s); text-decoration: none; opacity: 0.85; }
.wkwbuy.wmpuhm0 a:hover { opacity: 1; text-decoration: underline; }
.wkwbuy.wmpuhm0 .ws0f1a { font-style: italic; opacity: 0.8; margin-bottom: 1.447rem; max-width: 63ch; }
.wkwbuy.wmpuhm0 .wtq5m2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1.447rem; }
.wkwbuy.wmpuhm0 .wtq5m2 h2 { font-size: var(--vy3czd); text-transform: uppercase; letter-spacing: 0.084em; margin: 0 0 0.632rem; opacity: 0.7; }
.wkwbuy.wmpuhm0 .wtq5m2 li { margin-bottom: 0.39rem; font-size: var(--vy3czd); }
.wkwbuy.wmpuhm0 .wvfhre { margin-top: 1.735rem; font-size: var(--vy3czd); opacity: 0.6; }

/* ---- per-site theme layer ---- */
/* Primitive Peptides — an indexed field ledger for endogenous origins. */

:root {
  --pp-ink: #10180d;
  --pp-grid: rgba(199, 226, 131, 0.09);
  --pp-rule: rgba(199, 226, 131, 0.28);
  --pp-shadow: 0.75rem 0.75rem 0 rgba(10, 15, 8, 0.48);
  --vwrxbn: 0.25rem;
  --vs8ne0: 68ch;
}

html {
  background: var(--vzym8z);
}

body {
  background:
    linear-gradient(90deg, rgba(112, 215, 151, 0.025) 1px, transparent 1px) 0 0 / 5rem 5rem,
    var(--vzym8z);
  font-feature-settings: "kern" 1, "liga" 1;
}

a {
  text-underline-offset: 0.2em;
  text-decoration-thickness: 0.08em;
}

h1,
h2,
h3 {
  font-variant-ligatures: none;
}

h1 {
  letter-spacing: -0.055em;
  line-height: 0.98;
}

h2 {
  letter-spacing: -0.035em;
  line-height: 1.08;
}

p,
li {
  text-wrap: pretty;
}

::selection {
  color: var(--vzym8z);
  background: var(--vpidwu);
}

.wub0el:focus {
  left: 1rem;
  top: 1rem;
  color: var(--vzym8z);
  background: var(--vpidwu);
  border: 2px solid var(--v2wbyn);
  box-shadow: 0.35rem 0.35rem 0 var(--vzym8z);
}

/* Header: a compact specimen-label wordmark and a framed index trigger. */
.wagzeg {
  background: rgba(26, 36, 20, 0.96);
  border-bottom: 1px solid var(--pp-rule);
  box-shadow: 0 0.4rem 1.5rem rgba(8, 12, 6, 0.24);
  backdrop-filter: blur(12px);
}

.wagzeg .container {
  min-height: 5rem;
}

.wwsy1i {
  display: inline-grid;
  grid-template-columns: 2.55rem auto;
  grid-template-rows: auto auto;
  column-gap: 0.72rem;
  align-items: center;
  color: var(--v2wbyn);
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 1;
  text-transform: uppercase;
}

.wwsy1i::before {
  content: "P²";
  grid-row: 1 / 3;
  display: grid;
  width: 2.55rem;
  height: 2.55rem;
  place-items: center;
  color: var(--vzym8z);
  background: var(--vpidwu);
  border-radius: 50%;
  font-family: var(--vv2vpq);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.08em;
  box-shadow: inset 0 0 0 0.3rem var(--vpidwu), inset 0 0 0 0.38rem var(--vzym8z);
}

.wwsy1i::after {
  content: "ENDOGENOUS ORIGIN INDEX";
  grid-column: 2;
  color: var(--v9drra);
  font-size: 0.56rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1.2;
}

.wkj1y9 {
  min-width: 3rem;
  min-height: 3rem;
  color: var(--vpidwu);
  background: var(--vdoasj);
  border-color: var(--pp-rule);
  border-radius: 50%;
  font-family: var(--vqhn1a);
  font-size: 0;
}

.wkj1y9::before {
  content: "INDEX";
  font-size: 0.62rem;
  letter-spacing: 0.08em;
}

.wagzeg .wpfbgq {
  background:
    linear-gradient(var(--pp-grid) 1px, transparent 1px) 0 0 / 100% 3.1rem,
    var(--vdoasj);
  border-left-color: var(--vpidwu);
  box-shadow: -1.5rem 0 4rem rgba(7, 11, 5, 0.45);
}

.wagzeg .wpfbgq ul {
  counter-reset: nav-index;
}

.wagzeg .wpfbgq li {
  counter-increment: nav-index;
  border-bottom: 1px solid var(--pp-rule);
  padding-bottom: 0.72rem;
}

.wagzeg .wpfbgq a {
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0.7rem;
  color: var(--v2wbyn);
  font-family: var(--vqhn1a);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.wagzeg .wpfbgq a::before {
  content: counter(nav-index, decimal-leading-zero);
  color: var(--v9drra);
  font-size: 0.66rem;
  letter-spacing: 0.06em;
}

/* Hero: image field, registration grid, then an offset abstract plate. */
.w32xdh {
  isolation: isolate;
  overflow: hidden;
  margin-bottom: clamp(2.5rem, 6vw, 5.5rem);
  background: var(--vzym8z);
  border-bottom: 1px solid var(--pp-rule);
}

.w32xdh .wygpmj {
  min-height: clamp(19rem, 48vw, 35rem);
  background:
    radial-gradient(circle at 78% 28%, rgba(112, 215, 151, 0.24) 0 0.18rem, transparent 0.22rem),
    linear-gradient(90deg, var(--pp-grid) 1px, transparent 1px),
    linear-gradient(var(--pp-grid) 1px, transparent 1px),
    linear-gradient(135deg, var(--vdoasj), var(--vzym8z));
  background-size: auto, 5rem 5rem, 5rem 5rem, auto;
  overflow: hidden;
}

.w32xdh .wygpmj::before,
.w32xdh .wygpmj::after {
  content: "";
  position: absolute;
  z-index: 1;
  border: 1px solid var(--vpidwu);
  border-radius: 50%;
  pointer-events: none;
}

.w32xdh .wygpmj::before {
  top: 18%;
  right: 8%;
  width: clamp(7rem, 18vw, 14rem);
  aspect-ratio: 1;
  box-shadow: 0 0 0 1.2rem rgba(199, 226, 131, 0.05), 0 0 0 2.4rem rgba(199, 226, 131, 0.03);
}

.w32xdh .wygpmj::after {
  right: calc(8% + clamp(3.35rem, 8.8vw, 6.85rem));
  top: calc(18% + clamp(3.35rem, 8.8vw, 6.85rem));
  width: 0.45rem;
  height: 0.45rem;
  background: var(--vpidwu);
  box-shadow: 3.6rem -2.4rem 0 -0.12rem var(--v9drra), -4.2rem 2.8rem 0 -0.12rem var(--vpidwu);
}

.w32xdh .wygpmj img {
  filter: saturate(0.72) contrast(1.08) brightness(0.7);
}

.w32xdh .wygpmj:has(img)::before {
  background: rgba(26, 36, 20, 0.12);
}

.w32xdh .wd9pgt {
  max-width: 52rem;
  margin-top: clamp(-7rem, -9vw, -4.5rem);
  padding: clamp(1.6rem, 4vw, 3.2rem);
  background:
    linear-gradient(90deg, var(--pp-grid) 1px, transparent 1px) 0 0 / 4rem 100%,
    var(--vdoasj);
  border: 1px solid var(--vpidwu);
  border-left: 0.55rem solid var(--vpidwu);
  border-radius: 0;
  box-shadow: var(--pp-shadow);
}

.w32xdh .wd9pgt::before {
  content: "ORIGIN / EVIDENCE / DISTANCE";
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 0 0 1.5rem auto;
  padding-bottom: 0.4rem;
  color: var(--vh8sap);
  border-bottom: 1px solid var(--pp-rule);
  font-family: var(--vqhn1a);
  font-size: 0.59rem;
  letter-spacing: 0.15em;
}

.w32xdh h1 {
  max-width: 16ch;
  font-size: clamp(2.55rem, 6.5vw, 5.3rem);
}

.w89o4o {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  color: var(--vpidwu);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
}

.w89o4o::before {
  content: "";
  flex: 0 0 0.62rem;
  width: 0.62rem;
  height: 0.62rem;
  background: var(--v9drra);
  border: 1px solid var(--v2wbyn);
  transform: rotate(45deg);
}

.whjvwl {
  max-width: 61ch;
  color: var(--v2wbyn);
  font-size: clamp(1.06rem, 2vw, 1.28rem);
  line-height: 1.6;
}

.wmzhpo {
  gap: 0.65rem;
  padding-top: 0.25rem;
}

.wdyc5n {
  border-radius: 0;
  font-family: var(--vqhn1a);
  font-size: 0.74rem;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  box-shadow: 0.3rem 0.3rem 0 rgba(8, 12, 6, 0.42);
}

.wu8qys {
  color: var(--vzym8z);
  background: var(--vpidwu);
}

.wnwe0k {
  color: var(--vpidwu);
  border-color: var(--vpidwu);
}

/* Long-form rhythm: numbered findings separated like entries in a lab ledger. */
.w015me {
  padding-bottom: clamp(3rem, 7vw, 6rem);
}

.w015me .container {
  counter-reset: pp-section;
}

.w015me .container > section {
  position: relative;
  max-width: 70ch;
  margin-inline: auto;
  padding: clamp(2.4rem, 6vw, 4.8rem) 0;
  border-top: 1px solid var(--pp-rule);
  counter-increment: pp-section;
}

.w015me .container > section:first-of-type {
  margin-top: 1.5rem;
  padding: clamp(1.6rem, 4vw, 2.7rem);
  background: linear-gradient(135deg, var(--vdoasj), var(--v18poc));
  border: 1px solid var(--pp-rule);
  border-left: 0.4rem solid var(--v9drra);
  box-shadow: 0.55rem 0.55rem 0 rgba(8, 12, 6, 0.3);
}

.w015me .container > section h2 {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 0.9rem;
  align-items: start;
  margin: 0 0 1.45rem;
}

.w015me .container > section h2::before {
  content: counter(pp-section, decimal-leading-zero);
  padding-top: 0.35rem;
  color: var(--v9drra);
  border-top: 2px solid var(--v9drra);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
}

.w015me .container > section p,
.w015me .container > section li {
  color: var(--v2wbyn);
}

.w015me .container > section p + p {
  margin-top: 1.15rem;
}

.w015me .container > section > ul {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

.w015me .container > section > ul > li {
  position: relative;
  padding: 0.75rem 0 0.85rem 2rem;
  border-bottom: 1px solid rgba(199, 226, 131, 0.14);
}

.w015me .container > section > ul > li::before {
  content: "";
  position: absolute;
  top: 1.18rem;
  left: 0.25rem;
  width: 0.58rem;
  height: 0.58rem;
  background: var(--v9drra);
  border-radius: 50%;
  box-shadow: 0 0 0 0.25rem var(--vzym8z), 0 0 0 0.32rem var(--pp-rule);
}

.wj2d7u {
  display: inline-flex;
  transform: translateY(-0.08em);
  margin-inline: 0.08rem;
}

.wj2d7u a {
  min-width: 1.55rem;
  padding: 0.08rem 0.28rem;
  color: var(--vzym8z);
  background: var(--vpidwu);
  border-radius: 999px;
  font-family: var(--vqhn1a);
  font-size: 0.66rem;
  text-align: center;
}

/* Cards use a single node-and-rail icon language shared with section bullets. */
.w7v456 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0 auto clamp(3rem, 7vw, 5rem);
  border: 1px solid var(--pp-rule);
  box-shadow: var(--pp-shadow);
}

.wb5fwj {
  position: relative;
  min-height: 20rem;
  padding: 4.5rem 1.35rem 1.4rem;
  background: var(--vdoasj);
  border: 0;
  border-right: 1px solid var(--pp-rule);
  border-radius: 0;
  overflow: hidden;
}

.wb5fwj:last-child {
  border-right: 0;
}

.wb5fwj::before {
  content: "01";
  position: absolute;
  top: 1.1rem;
  left: 1.35rem;
  color: var(--vpidwu);
  font-family: var(--vqhn1a);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
}

.wb5fwj:nth-child(2)::before { content: "02"; }
.wb5fwj:nth-child(3)::before { content: "03"; }
.wb5fwj:nth-child(4)::before { content: "04"; }

.wb5fwj::after {
  content: "";
  position: absolute;
  top: 1rem;
  right: 1.1rem;
  width: 0.72rem;
  height: 0.72rem;
  background: var(--v9drra);
  border: 1px solid var(--v2wbyn);
  border-radius: 50%;
  box-shadow: -1.15rem 0 0 -0.25rem var(--vpidwu), -2.1rem 0 0 -0.25rem var(--v9drra);
}

.wb5fwj h3 {
  color: var(--v2wbyn);
  font-size: clamp(1.45rem, 2.4vw, 2.05rem);
  letter-spacing: -0.04em;
}

.w7v456 .wb5fwj p {
  color: var(--vh8sap);
  font-size: 0.92rem;
  line-height: 1.62;
}

.wpzkay {
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  color: var(--vpidwu);
  font-family: var(--vqhn1a);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.wb5fwj:hover {
  background: var(--v18poc);
}

/* Tables read as data matrices rather than default prose tables. */
.wh2mjq {
  width: min(100%, calc(100vw - 2rem));
  margin: 2rem 0 2.8rem;
  border: 1px solid var(--vpidwu);
  box-shadow: 0.55rem 0.55rem 0 rgba(8, 12, 6, 0.35);
  scrollbar-color: var(--v9drra) var(--vdoasj);
}

table {
  min-width: 52rem;
  background: var(--vdoasj);
  font-size: 0.82rem;
  line-height: 1.48;
}

th,
td {
  padding: 1rem 0.95rem;
  border-right: 1px solid rgba(199, 226, 131, 0.12);
  border-bottom-color: rgba(199, 226, 131, 0.18);
}

thead th {
  color: var(--vzym8z);
  background: var(--vpidwu);
  border-bottom: 0;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

tbody tr:nth-child(even) {
  background: rgba(112, 215, 151, 0.06);
}

tbody td:first-child {
  color: var(--vpidwu);
  background: rgba(18, 54, 32, 0.56);
  font-family: var(--vqhn1a);
  font-weight: 600;
}

/* Shared secondary modules. */
.ww8fn4 {
  padding: 1.5rem 1.65rem;
  background: var(--vdoasj);
  border: 1px solid var(--pp-rule);
  border-left: 0.4rem solid var(--vpidwu);
  border-radius: 0;
}

.wu8kkf li::before {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  background: var(--v9drra);
  border-radius: 50%;
}

.wk8exl {
  gap: 0;
  background: transparent;
  border-color: var(--pp-rule);
  border-radius: 0;
}

.wvm2gb {
  background: var(--vdoasj);
  border-right: 1px solid var(--pp-rule);
}

.wv5bvm {
  color: var(--vpidwu);
  font-variant-numeric: tabular-nums;
}

.wbi7lj {
  color: var(--vzym8z);
  background: var(--vpidwu);
  border: 0;
  border-radius: 0;
  box-shadow: var(--pp-shadow);
}

.wbi7lj h2,
.wbi7lj h3,
.wbi7lj p {
  color: var(--vzym8z);
}

.wil3jh,
.w3enyj {
  padding: 0.6rem;
  background: var(--vdoasj);
  border: 1px solid var(--pp-rule);
  border-radius: 0;
}

/* References become a numbered specimen archive with resilient wrapping. */
.wr1b2y {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  counter-reset: pp-ref;
}

.wr1b2y li {
  position: relative;
  margin: 0;
  padding: 3.2rem 1.15rem 1.15rem;
  color: var(--v2wbyn);
  background: var(--vdoasj);
  border: 1px solid var(--pp-rule);
  font-size: 0.82rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
  counter-increment: pp-ref;
}

.wr1b2y li::before {
  content: "REF / " counter(pp-ref, decimal-leading-zero);
  position: absolute;
  top: 0.85rem;
  left: 1.15rem;
  color: var(--vpidwu);
  font-family: var(--vqhn1a);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.wr1b2y li::after {
  content: "";
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 0.55rem;
  height: 0.55rem;
  background: var(--v9drra);
  border-radius: 50%;
}

.wr1b2y li a {
  display: inline-grid;
  width: 1.45rem;
  height: 1.45rem;
  place-items: center;
  margin-left: 0.3rem;
  color: var(--vzym8z);
  background: var(--v9drra);
  border-radius: 50%;
  text-decoration: none;
}

/* Footer closes the ledger with a high-contrast editorial colophon. */
.wkwbuy {
  position: relative;
  margin-top: 0;
  padding-block: clamp(3rem, 7vw, 5rem) 2rem;
  color: var(--v2wbyn);
  background:
    linear-gradient(90deg, rgba(199, 226, 131, 0.06) 1px, transparent 1px) 0 0 / 5rem 100%,
    var(--vtff60);
  border-top: 0.45rem solid var(--vpidwu);
}

.wkwbuy::before {
  content: "PP / RESEARCH PEPTIDE FUNDAMENTALS";
  position: absolute;
  top: -1.15rem;
  left: max(1rem, calc((100vw - var(--vb33ln)) / 2 + 2rem));
  padding: 0.32rem 0.7rem;
  color: var(--vzym8z);
  background: var(--vpidwu);
  font-family: var(--vqhn1a);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.wkwbuy a {
  color: var(--v2wbyn);
}

.ws0f1a {
  max-width: 72ch;
  padding: 1.4rem 0 1.7rem 1.3rem;
  color: var(--v2wbyn);
  border-left: 2px solid var(--v9drra);
  font-family: var(--vqhn1a);
  font-size: clamp(0.98rem, 2vw, 1.2rem);
  font-style: normal;
  line-height: 1.55;
}

.wtq5m2 {
  padding-top: 1.7rem;
  border-top: 1px solid var(--pp-rule);
}

.wtq5m2 h2 {
  color: var(--vpidwu);
  opacity: 1;
}

.wvfhre {
  padding-top: 1.5rem;
  border-top: 1px solid var(--pp-rule);
}

@media (max-width: 900px) {
  .w7v456 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wb5fwj:nth-child(2) {
    border-right: 0;
  }

  .wb5fwj:nth-child(-n + 2) {
    border-bottom: 1px solid var(--pp-rule);
  }
}

@media (max-width: 760px) {
  .wagzeg .container {
    min-height: 4.5rem;
  }

  .wwsy1i {
    grid-template-columns: 2.25rem auto;
    column-gap: 0.55rem;
    font-size: 0.88rem;
  }

  .wwsy1i::before {
    width: 2.25rem;
    height: 2.25rem;
  }

  .wwsy1i::after {
    font-size: 0.48rem;
    letter-spacing: 0.11em;
  }

  .w32xdh .wygpmj {
    min-height: 17rem;
  }

  .w32xdh .wygpmj::before,
  .w32xdh .wygpmj::after {
    display: none;
  }

  .w32xdh .wd9pgt {
    margin-top: -3.6rem;
    padding: 1.45rem;
    border-left-width: 0.35rem;
    box-shadow: 0.45rem 0.45rem 0 rgba(8, 12, 6, 0.42);
  }

  .w32xdh .wd9pgt::before {
    margin-left: 0;
    font-size: 0.52rem;
    letter-spacing: 0.1em;
  }

  .w32xdh h1 {
    font-size: clamp(2.25rem, 12vw, 3.55rem);
  }

  .w015me .container > section h2 {
    grid-template-columns: 2.2rem minmax(0, 1fr);
    gap: 0.6rem;
  }

  .w015me .container > section:first-of-type {
    padding: 1.35rem;
  }

  .wr1b2y {
    grid-template-columns: 1fr;
  }

  .wh2mjq {
    width: 100%;
    box-shadow: none;
  }

  .wkwbuy::before {
    right: 1rem;
    left: 1rem;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
}

@media (max-width: 560px) {
  .w7v456 {
    grid-template-columns: 1fr;
    box-shadow: 0.4rem 0.4rem 0 rgba(8, 12, 6, 0.4);
  }

  .wb5fwj {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid var(--pp-rule);
  }

  .wb5fwj:last-child {
    border-bottom: 0;
  }

  .wdyc5n {
    width: 100%;
    text-align: center;
  }
}

/* The header's backdrop-filter made it the containing block for the base renderer's
   FIXED drawer nav, so the closed drawer (translateX(100%)) sat in the document and
   widened it by its own width (measured 1763 > 1440). Same effect, on a pseudo-element,
   which contains nothing. */
.wagzeg { backdrop-filter: none; -webkit-backdrop-filter: none; }
.wagzeg::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  pointer-events: none;
}
.wagzeg > .container { position: relative; z-index: 1; }
