:root {
  --vl6lbi: #5da3e9;
  --vsmwx0: #1e262f;
  --v7fukw: #0f1f2e;
  --v2g81u: #376695;
  --vnhuqu: #7474f1;
  --vss0dk: #5da3e9;
  --vfm683: #16163c;
  --v2e344: #23235c;
  --v9k40x: #7676b2;
  --v6tipx: #09091b;
  --v9gbuz: #0a0a24;
  --vcvyfv: #111136;
  --vfi9af: #e9e9f1;
  --vjl7x5: #9e9eb7;
  --vguokr: #53c69c;
  --vzyqzo: #e4b558;
  --vlhbxf: #de625e;
  --vf7irn: 76rem;
  --vhuia8: 70ch;
  --v4m74b: #111136;
  --vi332u: clamp(0.94rem, 3vw, 1.964rem);
  --vjwtp4: 4.081rem;
  --v95e7a: 'Outfit', system-ui, sans-serif;
  --ve5j9o: 'Mulish', system-ui, sans-serif;
  --v123xy: 'Outfit', system-ui, sans-serif;
  --vtub0l: clamp(2.221rem, 4.5vw, 3.542rem);
  --vswewk: clamp(1.546rem, 3vw, 2.221rem);
  --v0mkvz: 1.546rem;
  --vp2yl2: 1.074rem;
  --v29ykh: 0.847rem;
  --v01snr: 1.15;
  --vovzob: 1.65;
  --v8frid: 0.498rem;
  --vhb8wb: 0.757rem;
  --vvt2ci: #111111;
  --vsg0v0: #ffffff;
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: var(--ve5j9o); font-size: var(--vp2yl2); line-height: var(--vovzob); color: var(--vfi9af); background: var(--v9gbuz); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: var(--v95e7a); line-height: var(--v01snr); font-weight: 700; color: var(--vfi9af); text-wrap: balance; }
h1 { font-size: var(--vtub0l); letter-spacing: -0.02em; }
h2 { font-size: var(--vswewk); margin-top: 2.366rem; margin-bottom: 0.757rem; }
h3 { font-size: var(--v0mkvz); margin-top: 1.802rem; margin-bottom: 0.498rem; }
p { margin-bottom: 0.94rem; }
a { color: var(--vss0dk); }
ul, ol { margin: 0 0 0.94rem 1.219rem; }
li { margin-bottom: 0.341rem; }
strong { font-weight: 700; }
code { font-family: ui-monospace, "SF Mono", Menlo, monospace; background: rgba(128, 128, 128, 0.143); border: 1px solid rgba(128, 128, 128, 0.248); border-radius: 4px; padding: 0.104em 0.366em; font-size: 0.876em; color: var(--vfi9af); }
blockquote { border-left: 3px solid var(--vl6lbi); padding-left: 0.94rem; color: var(--vjl7x5); margin: 0 0 0.94rem; }
img { max-width: 100%; height: auto; display: block; }
sup.q9u036 a { text-decoration: none; color: var(--vnhuqu); font-weight: 600; }
.container { width: 100%; max-width: var(--vf7irn); margin-inline: auto; padding-inline: var(--vi332u); }
.q325yd { position: absolute; left: -999px; }
.q325yd:focus { left: 0.94rem; top: 0.94rem; background: var(--vcvyfv); padding: 0.498rem 0.94rem; z-index: 100; }
main { display: block; }
.qierha { font-family: var(--v123xy); font-weight: 800; font-size: 1.169rem; color: var(--vfi9af); text-decoration: none; }
.qghw6q { min-width: 0; }
.qghw6q ul { display: flex; flex-wrap: wrap; gap: 1.219rem; list-style: none; margin: 0; padding: 0; min-width: 0; }
.qghw6q li { white-space: nowrap; }
.qghw6q a { color: var(--vjl7x5); text-decoration: none; font-size: var(--v29ykh); font-weight: 600; }
.qghw6q a:hover { color: var(--vss0dk); }
.qhocbd { display: none; background: none; border: 1px solid var(--v2e344); border-radius: 6px; padding: 0.4rem 0.597rem; font-size: 1.089rem; line-height: 1; cursor: pointer; color: var(--vfi9af); }
.qwiwnk { font-family: var(--v123xy); text-transform: uppercase; letter-spacing: 0.122em; font-size: var(--v29ykh); font-weight: 700; color: var(--vnhuqu); margin-bottom: 0.757rem; }
.qw02ml { font-size: 1.169rem; color: var(--vjl7x5); margin-top: 0.94rem; max-width: 61ch; }
.qss4hg { display: flex; flex-wrap: wrap; gap: 0.757rem; margin-top: 1.802rem; }
.qnxzj7 { display: inline-block; padding: 0.823rem 1.583rem; border-radius: var(--v8frid); font-weight: 700; text-decoration: none; font-size: var(--v29ykh); transition: transform 0.147s ease, opacity 0.147s ease; }
.qnxzj7:hover { transform: translateY(-1px); }
.q5bxj0 { background: var(--vl6lbi); color: var(--vvt2ci); }
.q9d4ng { background: transparent; color: var(--vss0dk); border: 1.5px solid var(--vss0dk); }
article > section, main > article { padding-block: 0.498rem; }
.qlbccu { padding-block: 0.94rem 2.981rem; }
.qlbccu .container > section { max-width: var(--vhuia8); margin-inline: auto; }
.qlbccu .container > section.qx2lae, .qlbccu .container > .qx2lae { max-width: none; }
.qlbccu .container > section > .q510xu,
.qlbccu .container > section > .qyr8ld,
.qlbccu .container > section > .qez8n0,
.qlbccu .container > section > .q18yb3,
.qlbccu .container > section > .qtes6r {
  --vbf04x: min(var(--vf7irn) - 2 * var(--vi332u), 100vw - 2 * var(--vi332u));
  width: var(--vbf04x);
  max-width: none;
  margin-inline: calc((100% - var(--vbf04x)) / 2);
}
@media (max-width: 901px) {
  .qlbccu .container > section > .q510xu,
  .qlbccu .container > section > .qyr8ld,
  .qlbccu .container > section > .qez8n0,
  .qlbccu .container > section > .q18yb3,
  .qlbccu .container > section > .qtes6r { width: 100%; margin-inline: 0; }
}
.qtes6r img { aspect-ratio: 16 / 7; object-fit: contain; background: var(--vcvyfv); }
.q7ximo img { aspect-ratio: 16 / 6; object-fit: cover; }
.qez8n0 { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.219rem, 3vw, 2.366rem); align-items: center; background: var(--v4m74b, var(--vcvyfv)); border: 1px solid var(--v2e344); border-radius: var(--vhb8wb); padding: clamp(1.219rem, 3vw, 2.221rem); margin: 2.366rem 0; }
.qnw1j1 img { border-radius: calc(var(--vhb8wb) - 0.252rem); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.qnw1j1 figcaption { font-size: var(--v29ykh); color: var(--vjl7x5); margin-top: 0.597rem; line-height: 1.45; }
.q5odoe { font-family: var(--v123xy); text-transform: uppercase; letter-spacing: 0.104em; font-size: 0.757rem; font-weight: 700; color: var(--vnhuqu); margin-bottom: 0.597rem; }
.qhm38r h2, .qhm38r h3 { margin-top: 0; }
.qhm38r p:last-child { margin-bottom: 0; }
@media (max-width: 721px) { .qez8n0 { grid-template-columns: 1fr; } }
.qksmfc { border-left: 3px solid var(--vnhuqu); background: var(--v4m74b, var(--vcvyfv)); border-radius: 0 var(--vhb8wb) var(--vhb8wb) 0; padding: 1.219rem 1.546rem; margin: 1.964rem 0; }
.qksmfc h2, .qksmfc h3 { margin-top: 0; font-size: 1.054rem; text-transform: uppercase; letter-spacing: 0.082em; color: var(--vjl7x5); }
.q2zotz { list-style: none; margin: 0.757rem 0 0; padding: 0; display: grid; gap: 0.597rem; }
.q2zotz li { margin: 0; padding-left: 1.46rem; position: relative; }
.q2zotz li::before { content: "\2014"; position: absolute; left: 0; color: var(--vnhuqu); font-weight: 700; }
.qyr8ld { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.781rem), 1fr)); gap: 1px; background: var(--v2e344); border: 1px solid var(--v2e344); border-radius: var(--vhb8wb); overflow: hidden; margin: 2.221rem 0; }
.qz6klf { background: var(--vcvyfv); padding: 1.46rem 1.219rem; }
.qt719m { font-family: var(--v123xy); font-size: clamp(1.802rem, 3.5vw, 2.366rem); font-weight: 800; line-height: 1.05; color: var(--vl6lbi); letter-spacing: -0.02em; }
.qnv9zs { font-size: var(--v29ykh); color: var(--vjl7x5); margin-top: 0.4rem; line-height: 1.4; }
.q18yb3 { background: var(--vl6lbi); color: var(--vvt2ci); border-radius: var(--vhb8wb); padding: clamp(1.546rem, 4vw, 2.823rem); margin: 2.981rem 0 0.94rem; text-align: center; }
.q18yb3 h2, .q18yb3 h3 { color: var(--vvt2ci); margin-top: 0; }
.q18yb3 p { color: var(--vvt2ci); opacity: 0.88; margin-inline: auto; max-width: 58ch; }
.q18yb3 .qss4hg { justify-content: center; }
.q18yb3 .q9d4ng { color: var(--vvt2ci); border-color: var(--vvt2ci); }
.qtes6r img { border-radius: var(--vhb8wb); width: 100%; }
.qtes6r figcaption { font-size: var(--v29ykh); color: var(--vjl7x5); margin-top: 0.597rem; font-style: italic; }
.q7ximo { margin: 1.546rem 0; }
.q7ximo img { border-radius: var(--vhb8wb); }
.q93dkr { background: var(--vcvyfv); border: 1px solid #23235c; border-radius: var(--vhb8wb); padding: 1.546rem; }
.q510xu { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.324rem), 1fr)); gap: 1.219rem; margin: 1.546rem 0 1.964rem; }
.q510xu .q93dkr { display: flex; flex-direction: column; gap: 0.498rem; }
.q510xu .q93dkr img { border-radius: calc(var(--vhb8wb) - 0.252rem); margin-bottom: 0.498rem; aspect-ratio: 16 / 10; object-fit: cover; }
.q510xu .q93dkr h2, .q510xu .q93dkr h3 { margin: 0; font-size: 1.169rem; }
.q510xu .q93dkr p { margin: 0; font-size: var(--v29ykh); color: var(--vjl7x5); }
.q510xu .q93dkr .qoirj6 { margin-top: auto; padding-top: 0.597rem; font-weight: 700; font-size: var(--v29ykh); color: var(--vss0dk); text-decoration: none; }
.q510xu .q93dkr .qoirj6:hover { text-decoration: underline; }
.qae379 { margin: 1.546rem 0; }
.qae379 img { border-radius: var(--vhb8wb); }
.qae379 figcaption { font-size: var(--v29ykh); color: var(--vjl7x5); margin-top: 0.498rem; font-style: italic; }
.qxzvzy { overflow-x: auto; margin: 1.219rem 0 1.802rem; }
table { border-collapse: collapse; width: 100%; font-size: var(--v29ykh); }
th, td { text-align: left; padding: 0.597rem 0.823rem; border-bottom: 1px solid var(--v2e344); vertical-align: top; }
thead th { border-bottom: 2px solid var(--vfi9af); font-family: var(--v95e7a); }
tbody tr:nth-child(even) { background: rgba(128, 128, 128, 0.083); }
.qi4uf6 { padding-left: 1.546rem; }
.qi4uf6 li { margin-bottom: 0.757rem; font-size: var(--v29ykh); color: var(--vjl7x5); }
.qi4uf6 li a { word-break: break-word; }
.qrgs02 ul { list-style: none; margin: 0; padding: 0; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
.q5yimo.qhx3zo2 { border-bottom: 1px solid var(--v2e344); background: var(--vcvyfv); position: sticky; top: 0; z-index: 50; }
.q5yimo.qhx3zo2 .container { display: flex; align-items: center; justify-content: space-between; min-height: var(--vjwtp4); gap: 0.94rem; }
@media (max-width: 860px) {
  .q5yimo.qhx3zo2 .qhocbd { display: block; }
  .q5yimo.qhx3zo2 .qghw6q { display: none; position: absolute; top: var(--vjwtp4); left: 0; right: 0; background: var(--vcvyfv); border-bottom: 1px solid var(--v2e344); padding: 0.94rem var(--vi332u); z-index: 50; }
  .q5yimo.qhx3zo2 .qghw6q.q389dp { display: block; }
  .q5yimo.qhx3zo2 .qghw6q ul { flex-direction: column; gap: 0.757rem; }
}
@media (min-width: 861px) {
  body.q9v1on2 { padding-left: 15.889rem; }
  .q5yimo.qhx3zo2 { position: fixed; top: 0; left: 0; bottom: 0; width: 15.889rem; border-right: 1px solid var(--v2e344); border-bottom: none; }
  .q5yimo.qhx3zo2 .container { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 1.546rem; min-height: 0; padding-top: 1.964rem; max-width: none; }
  .q5yimo.qhx3zo2 .qghw6q ul { flex-direction: column; gap: 0.757rem; align-items: flex-start; }
  .q5yimo.qhx3zo2 .qhocbd { display: none; }
}
.qgjz4d.q6ak2a4 { padding: clamp(2.366rem, 6vw, 4.735rem) 0 clamp(1.546rem, 4vw, 2.366rem); }
.qgjz4d.q6ak2a4 .container { max-width: 54.402rem; }
.qgjz4d.q6ak2a4 .qwiwnk { border-bottom: 2px solid var(--vfi9af); padding-bottom: 0.757rem; margin-bottom: 1.219rem; }
.qgjz4d.q6ak2a4 h1 { max-width: 24ch; }
.qgjz4d.q6ak2a4 .qw02ml { border-top: 1px solid var(--v2e344); padding-top: 0.94rem; margin-top: 1.219rem; }
.qgjz4d.q6ak2a4 .q7ximo { border: 1px solid var(--v2e344); padding: 0.498rem; margin-top: 1.546rem; }
.qs4ec2.q0f9n64 { margin-top: 4.081rem; }
.qs4ec2.q0f9n64 .qyybqw { background: var(--vfm683); padding-block: 2.366rem; }
.qs4ec2.q0f9n64 .qyybqw a { color: var(--vjl7x5); text-decoration: none; }
.qs4ec2.q0f9n64 .qyybqw a:hover { color: var(--vss0dk); text-decoration: underline; }
.qs4ec2.q0f9n64 .qrgs02 { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1.546rem; }
.qs4ec2.q0f9n64 .qrgs02 h2 { font-size: var(--v29ykh); text-transform: uppercase; letter-spacing: 0.082em; margin: 0 0 0.597rem; color: var(--vjl7x5); }
.qs4ec2.q0f9n64 .qrgs02 li { margin-bottom: 0.4rem; font-size: var(--v29ykh); }
.qs4ec2.q0f9n64 .q8xtpq { background: var(--v7fukw); color: var(--vsg0v0); padding-block: 1.219rem; }
.qs4ec2.q0f9n64 .q8xtpq .container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.757rem; }
.qs4ec2.q0f9n64 .q8xtpq a { color: var(--vsg0v0); }
.qs4ec2.q0f9n64 .qbpvli { font-style: italic; opacity: 0.85; margin: 0; }
.qs4ec2.q0f9n64 .qckc2a { font-size: var(--v29ykh); opacity: 0.65; margin: 0; }

/* ---- per-site theme layer ---- */
/* Antineoplaston Peptides — an ultramarine immune-signal atlas. */

:root {
  --ap-night: #0a0a24;
  --ap-panel: #111136;
  --ap-panel-deep: #0d0d2c;
  --ap-line: #23235c;
  --ap-text: #e9e9f1;
  --ap-muted: #b8b8ce;
  --ap-blue: #5da3e9;
  --ap-indigo: #7474f1;
  --ap-green: #53c69c;
  --ap-warm: #e4b558;
  --ap-shadow: 0 1.6rem 4rem rgba(0, 0, 15, .34);
  --ap-node: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e9e9f1' stroke-width='1.5'%3E%3Ccircle cx='6' cy='12' r='2.4'/%3E%3Ccircle cx='18' cy='6' r='2.4'/%3E%3Ccircle cx='18' cy='18' r='2.4'/%3E%3Cpath d='m8.3 11 7.4-4M8.3 13l7.4 4'/%3E%3C/svg%3E");
  --ap-book: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e9e9f1' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M4 5.5A3.5 3.5 0 0 1 7.5 2H11v17H7.5A3.5 3.5 0 0 0 4 22Z'/%3E%3Cpath d='M20 5.5A3.5 3.5 0 0 0 16.5 2H13v17h3.5A3.5 3.5 0 0 1 20 22Z'/%3E%3C/svg%3E");
  --ap-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e9e9f1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 7l5 5-5 5'/%3E%3C/svg%3E");
}

html {
  background: var(--ap-night);
  scroll-padding-top: 1.5rem;
}

body {
  background:
    linear-gradient(90deg, rgba(116, 116, 241, .028) 1px, transparent 1px),
    var(--ap-night);
  background-size: 6rem 100%;
  color: var(--ap-text);
  letter-spacing: -.003em;
}

::selection {
  background: var(--ap-blue);
  color: #09091b;
}

a {
  text-decoration-thickness: .08em;
  text-underline-offset: .2em;
}

a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--ap-warm);
  outline-offset: 4px;
}

h1,
h2,
h3 {
  font-variation-settings: "wght" 650;
}

p,
li {
  hanging-punctuation: first last;
}

/* Desktop reference rail and AP signal-mark. */
.q5yimo {
  overflow: hidden;
  background:
    radial-gradient(circle at 105% 8%, rgba(93, 163, 233, .18), transparent 30%),
    var(--ap-panel-deep);
  border-color: var(--ap-line);
  box-shadow: .75rem 0 2.5rem rgba(0, 0, 12, .2);
}

.q5yimo::after {
  content: "IMMUNE / THYMIC\A REFERENCE DESK";
  position: absolute;
  right: 1.9rem;
  bottom: 1.8rem;
  color: var(--ap-muted);
  font-family: var(--v95e7a);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.8;
  white-space: pre;
  opacity: .72;
}

.qierha {
  position: relative;
  display: grid;
  grid-template-columns: 2.65rem minmax(0, 1fr);
  gap: .78rem;
  align-items: center;
  max-width: 12.5rem;
  color: var(--ap-text);
  font-size: 1.08rem;
  font-weight: 650;
  letter-spacing: -.04em;
  line-height: 1.02;
}

.qierha::before {
  content: "AP";
  display: grid;
  width: 2.65rem;
  height: 2.65rem;
  place-items: center;
  color: var(--ap-text);
  background:
    linear-gradient(135deg, transparent 0 49%, rgba(233, 233, 241, .16) 49% 51%, transparent 51%),
    var(--ap-indigo);
  border: 1px solid rgba(233, 233, 241, .55);
  border-radius: 50% 50% 50% .35rem;
  box-shadow: .3rem .3rem 0 var(--ap-blue);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: -.03em;
}

.qierha::after {
  content: "";
  grid-column: 2;
  width: 3.7rem;
  height: 2px;
  margin-top: -.36rem;
  background: linear-gradient(90deg, var(--ap-blue) 0 68%, var(--ap-green) 68% 100%);
}

.qghw6q {
  width: 100%;
}

.qghw6q li {
  width: 100%;
}

.qghw6q a {
  position: relative;
  display: block;
  width: 100%;
  padding: .35rem .15rem .38rem 1.35rem;
  color: var(--ap-muted);
  font-size: .76rem;
  letter-spacing: .035em;
}

.qghw6q a::before {
  content: "";
  position: absolute;
  top: .78rem;
  left: .1rem;
  width: .42rem;
  height: .42rem;
  background: var(--ap-panel);
  border: 1px solid var(--ap-indigo);
  border-radius: 50%;
  box-shadow: 0 0 0 .22rem rgba(116, 116, 241, .07);
  transition: background .16s ease, box-shadow .16s ease;
}

.qghw6q a:hover,
.qghw6q a:focus-visible {
  color: var(--ap-text);
}

.qghw6q a:hover::before,
.qghw6q a:focus-visible::before {
  background: var(--ap-blue);
  box-shadow: 0 0 0 .28rem rgba(93, 163, 233, .14);
}

.qhocbd {
  border-color: var(--ap-indigo);
  border-radius: 50% 50% 50% .3rem;
}

/* Asymmetric signal-atlas hero. */
.qgjz4d {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 35%, rgba(116, 116, 241, .17), transparent 28%),
    linear-gradient(135deg, var(--ap-panel-deep), var(--ap-night));
  border-bottom: 1px solid var(--ap-line);
}

.qgjz4d::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -8rem;
  right: -5rem;
  width: clamp(18rem, 38vw, 34rem);
  aspect-ratio: 1;
  background:
    radial-gradient(circle, transparent 0 19%, rgba(93, 163, 233, .16) 19.2% 19.6%, transparent 19.8% 35%, rgba(116, 116, 241, .22) 35.2% 35.6%, transparent 35.8%),
    conic-gradient(from 18deg, transparent 0 12%, rgba(93, 163, 233, .11) 12% 13%, transparent 13% 37%, rgba(83, 198, 156, .09) 37% 38%, transparent 38% 100%);
  border-radius: 50%;
}

.qgjz4d::after {
  content: "01  /  02  /  03";
  position: absolute;
  z-index: -1;
  right: 2.1rem;
  bottom: 1.2rem;
  color: var(--ap-muted);
  font-family: var(--v95e7a);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .32em;
  opacity: .68;
}

.qgjz4d .container {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: auto auto auto auto;
  gap: 0 clamp(.5rem, 1.5vw, 1.2rem);
  max-width: 72rem;
  min-height: clamp(26rem, 52vw, 37rem);
  align-content: center;
  padding-top: clamp(3.8rem, 8vw, 7rem);
  padding-bottom: clamp(4.2rem, 9vw, 7rem);
}

.qgjz4d .container::before {
  content: "";
  grid-column: 8 / 13;
  grid-row: 1 / 5;
  align-self: stretch;
  min-height: 18rem;
  border: 1px solid rgba(93, 163, 233, .38);
  border-radius: 14rem 14rem .8rem 14rem;
  background:
    radial-gradient(circle at 33% 38%, var(--ap-blue) 0 .22rem, transparent .25rem),
    radial-gradient(circle at 66% 62%, var(--ap-green) 0 .22rem, transparent .25rem),
    linear-gradient(32deg, transparent 0 47.8%, rgba(233, 233, 241, .17) 48% 48.3%, transparent 48.5%),
    linear-gradient(148deg, transparent 0 47.8%, rgba(233, 233, 241, .11) 48% 48.3%, transparent 48.5%),
    rgba(17, 17, 54, .6);
  box-shadow: inset 0 0 0 .65rem rgba(10, 10, 36, .72), var(--ap-shadow);
}

.qwiwnk,
.qgjz4d h1,
.qw02ml,
.qss4hg {
  position: relative;
  z-index: 2;
  grid-column: 1 / 8;
}

.qwiwnk {
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: 1.1rem;
  color: var(--ap-blue);
  font-size: .7rem;
  letter-spacing: .2em;
}

.qwiwnk::before {
  content: "";
  width: 2.8rem;
  height: 1px;
  background: linear-gradient(90deg, var(--ap-green), var(--ap-blue));
}

.qgjz4d h1 {
  grid-row: 2;
  max-width: 13ch;
  margin-bottom: 1.2rem;
  font-size: clamp(2.65rem, 6.2vw, 5.65rem);
  font-weight: 650;
  letter-spacing: -.065em;
  line-height: .94;
}

.qw02ml {
  grid-row: 3;
  max-width: 44rem;
  margin: 0;
  color: var(--ap-muted);
  font-size: clamp(1rem, 1.55vw, 1.22rem);
  line-height: 1.62;
}

.qss4hg {
  grid-row: 4;
  margin-top: 1.8rem;
}

.q7ximo {
  z-index: 1;
  grid-column: 8 / 13;
  grid-row: 1 / 5;
  align-self: center;
  margin: 0;
  padding: .65rem;
  background: rgba(10, 10, 36, .8);
  border: 1px solid var(--ap-line);
  border-radius: 10rem 10rem .65rem 10rem;
  box-shadow: 1rem 1rem 0 rgba(116, 116, 241, .12), var(--ap-shadow);
  transform: translateX(1.2rem);
}

.q7ximo img {
  min-height: 22rem;
  object-fit: cover;
  border-radius: 9.5rem 9.5rem .35rem 9.5rem;
  filter: saturate(.82) contrast(1.06);
}

.qnxzj7 {
  position: relative;
  padding: .88rem 1.2rem;
  border-radius: .3rem 1rem 1rem .3rem;
  font-size: .76rem;
  letter-spacing: .045em;
  transition: transform .16s ease, box-shadow .16s ease;
}

.qnxzj7::after {
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-left: .6rem;
  vertical-align: -.18em;
  background: currentColor;
  -webkit-mask: var(--ap-arrow) center / contain no-repeat;
  mask: var(--ap-arrow) center / contain no-repeat;
}

.q5bxj0 {
  color: #09091b;
  background: var(--ap-blue);
  box-shadow: .4rem .4rem 0 rgba(116, 116, 241, .38);
}

.q9d4ng {
  color: var(--ap-text);
  border-color: var(--ap-indigo);
  background: rgba(17, 17, 54, .42);
}

.qnxzj7:hover {
  transform: translateY(-2px);
}

/* Numbered editorial body rhythm. */
.qlbccu {
  position: relative;
  padding-top: clamp(2.5rem, 6vw, 5rem);
  padding-bottom: 2rem;
}

.qlbccu > .container {
  counter-reset: ap-section;
}

.qlbccu .container > section {
  position: relative;
  counter-increment: ap-section;
  padding: clamp(2.4rem, 5vw, 4rem) 0 clamp(2.6rem, 5vw, 4.4rem) 4.8rem;
  border-top: 1px solid var(--ap-line);
}

.qlbccu .container > section::before {
  content: counter(ap-section, decimal-leading-zero);
  position: absolute;
  top: clamp(2.65rem, 5vw, 4.25rem);
  left: 0;
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  place-items: center;
  color: var(--ap-blue);
  background: var(--ap-panel);
  border: 1px solid var(--ap-line);
  border-radius: 50% 50% 50% .3rem;
  font-family: var(--v95e7a);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .08em;
  box-shadow: .24rem .24rem 0 rgba(116, 116, 241, .24);
}

.qlbccu .container > section:first-of-type {
  margin-top: 1.5rem;
  padding: clamp(2rem, 4vw, 2.8rem) clamp(1.5rem, 4vw, 3rem) clamp(2rem, 4vw, 2.8rem) clamp(5.6rem, 8vw, 7rem);
  background:
    linear-gradient(115deg, rgba(93, 163, 233, .08), transparent 52%),
    var(--ap-panel);
  border: 1px solid var(--ap-line);
  border-radius: .6rem 2.4rem 2.4rem .6rem;
  box-shadow: -.42rem 0 0 var(--ap-indigo), var(--ap-shadow);
  font-size: clamp(1.04rem, 1.4vw, 1.16rem);
  line-height: 1.78;
}

.qlbccu .container > section:first-of-type::before {
  top: 2.2rem;
  left: 1.7rem;
  color: var(--ap-text);
  background-image: var(--ap-node);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 1.45rem;
  border-color: var(--ap-indigo);
  font-size: 0;
}

.qlbccu section h2 {
  position: relative;
  margin: 0 0 1.15rem;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  font-weight: 600;
  letter-spacing: -.035em;
}

.qlbccu section h2::after {
  content: "";
  display: block;
  width: 4.5rem;
  height: 2px;
  margin-top: .75rem;
  background: linear-gradient(90deg, var(--ap-blue) 0 63%, var(--ap-green) 63% 78%, var(--ap-indigo) 78% 100%);
}

.qlbccu section p,
.qlbccu section li {
  color: var(--ap-text);
  line-height: 1.78;
}

.qlbccu section strong {
  color: #ffffff;
}

.q9u036 a {
  display: inline-grid;
  min-width: 1.45rem;
  min-height: 1.45rem;
  place-items: center;
  margin-inline: .08rem;
  color: var(--ap-text);
  background: rgba(116, 116, 241, .24);
  border: 1px solid rgba(116, 116, 241, .55);
  border-radius: 50%;
  font-family: var(--v95e7a);
  font-size: .66rem;
}

blockquote {
  margin: 1.6rem 0;
  padding: 1.4rem 1.6rem 1.4rem 2.1rem;
  color: var(--ap-text);
  background: var(--ap-panel);
  border-left: .35rem solid var(--ap-green);
  border-radius: 0 1.2rem 1.2rem 0;
}

/* Compound cards use the same node-and-connector icon language. */
.q510xu {
  position: relative;
  gap: 1rem;
  margin: 0 0 3.7rem;
}

.q510xu::before {
  content: "COMPOUND FILES";
  position: absolute;
  top: -1.7rem;
  left: 0;
  color: var(--ap-muted);
  font-family: var(--v95e7a);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .19em;
}

.q93dkr {
  position: relative;
  min-height: 14rem;
  overflow: hidden;
  padding: 2.1rem 1.55rem 1.55rem;
  background:
    linear-gradient(145deg, rgba(93, 163, 233, .07), transparent 55%),
    var(--ap-panel);
  border-color: var(--ap-line);
  border-radius: .45rem 2.1rem .45rem .45rem;
  box-shadow: 0 .8rem 2rem rgba(0, 0, 15, .16);
  transition: transform .17s ease, border-color .17s ease;
}

.q93dkr::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: .3rem;
  background: var(--ap-blue);
}

.q93dkr::after {
  content: "";
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  width: 1.7rem;
  height: 1.7rem;
  background: var(--ap-text);
  opacity: .35;
  -webkit-mask: var(--ap-node) center / contain no-repeat;
  mask: var(--ap-node) center / contain no-repeat;
}

.q93dkr:nth-child(2)::before {
  background: var(--ap-indigo);
}

.q93dkr:nth-child(3)::before {
  background: var(--ap-green);
}

.q93dkr:hover {
  transform: translateY(-.28rem);
  border-color: var(--ap-indigo);
}

.q510xu .q93dkr h3 {
  max-width: 10ch;
  font-size: 1.38rem;
  font-weight: 600;
  letter-spacing: -.03em;
}

.q510xu .q93dkr p {
  color: var(--ap-muted);
  font-size: .86rem;
  line-height: 1.65;
}

.qoirj6 {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--ap-blue);
  letter-spacing: .04em;
}

/* Data modules. */
.qxzvzy {
  margin: 2rem 0 2.6rem;
  background: var(--ap-panel-deep);
  border: 1px solid var(--ap-line);
  border-radius: .55rem 1.6rem .55rem .55rem;
  box-shadow: var(--ap-shadow);
}

table {
  min-width: 46rem;
  color: var(--ap-text);
  font-size: .84rem;
  line-height: 1.55;
}

th,
td {
  padding: .95rem 1rem;
  border-color: var(--ap-line);
}

thead th {
  color: #ffffff;
  background: #16163c;
  border-bottom: 2px solid var(--ap-blue);
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

tbody tr:nth-child(even) {
  background: rgba(116, 116, 241, .075);
}

tbody tr:hover {
  background: rgba(93, 163, 233, .09);
}

.qksmfc {
  border: 1px solid var(--ap-line);
  border-left: .35rem solid var(--ap-indigo);
  border-radius: .3rem 1.4rem 1.4rem .3rem;
  background: var(--ap-panel);
  box-shadow: var(--ap-shadow);
}

.q2zotz li::before {
  content: "";
  top: .45rem;
  width: .7rem;
  height: .7rem;
  background: var(--ap-blue);
  border-radius: 50%;
  box-shadow: 0 0 0 .2rem rgba(93, 163, 233, .12);
}

.qyr8ld {
  gap: 1px;
  background: var(--ap-line);
  border: 1px solid var(--ap-line);
  border-radius: .5rem 1.6rem .5rem .5rem;
}

.qz6klf {
  background: var(--ap-panel);
}

.qt719m {
  color: var(--ap-blue);
}

.qnv9zs {
  color: var(--ap-muted);
}

.q18yb3 {
  position: relative;
  overflow: hidden;
  color: #09091b;
  background: var(--ap-blue);
  border-radius: .6rem 2rem .6rem 2rem;
}

.q18yb3::after {
  content: "";
  position: absolute;
  top: -5rem;
  right: -4rem;
  width: 17rem;
  height: 17rem;
  border: 2rem solid rgba(10, 10, 36, .1);
  border-radius: 50%;
}

/* The references page reads as a catalog of evidence records. */
.qi4uf6 {
  counter-reset: ap-ref;
  display: grid;
  gap: .72rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}

.qi4uf6 li {
  position: relative;
  counter-increment: ap-ref;
  min-width: 0;
  margin: 0;
  padding: 1.25rem 3.2rem 1.25rem 4.3rem;
  overflow-wrap: anywhere;
  color: var(--ap-text);
  background: var(--ap-panel);
  border: 1px solid var(--ap-line);
  border-radius: .35rem 1.15rem 1.15rem .35rem;
  font-size: .83rem;
  line-height: 1.62;
}

.qi4uf6 li::before {
  content: counter(ap-ref, decimal-leading-zero);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  display: grid;
  width: 3.1rem;
  place-items: center;
  color: var(--ap-text);
  background: #16163c;
  border-right: 1px solid var(--ap-line);
  border-radius: .3rem 0 0 .3rem;
  font-family: var(--v95e7a);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.qi4uf6 li::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 1.15rem;
  height: 1.15rem;
  background: var(--ap-text);
  opacity: .26;
  transform: translateY(-50%);
  -webkit-mask: var(--ap-book) center / contain no-repeat;
  mask: var(--ap-book) center / contain no-repeat;
}

.qi4uf6 li a {
  color: var(--ap-blue);
  font-weight: 700;
}

/* Two-tier footer closes the atlas with a measured rule system. */
.qs4ec2 {
  position: relative;
  margin-top: 4rem;
  border-top: .35rem solid var(--ap-indigo);
}

.qs4ec2::before {
  content: "AP / IMMUNE-SIGNAL INDEX";
  position: absolute;
  top: 1.6rem;
  right: max(1.5rem, calc((100% - 72rem) / 2));
  color: var(--ap-muted);
  font-family: var(--v95e7a);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .18em;
}

.qyybqw {
  background:
    radial-gradient(circle at 12% 100%, rgba(93, 163, 233, .1), transparent 25%),
    var(--ap-panel);
}

.qrgs02 {
  padding-top: 1.7rem;
}

.qrgs02 > div {
  padding-left: 1rem;
  border-left: 1px solid var(--ap-line);
}

.qrgs02 h2 {
  color: var(--ap-blue);
  font-size: .65rem;
  letter-spacing: .14em;
}

.qrgs02 a {
  color: var(--ap-muted);
}

.q8xtpq {
  color: var(--ap-text);
  background: #0f1f2e;
}

.q8xtpq .container {
  align-items: center;
}

.qbpvli {
  max-width: 68ch;
  color: #e9e9f1;
  font-style: normal;
  line-height: 1.55;
}

.qckc2a {
  color: #c8d3dc;
}

@media (max-width: 760px) {
  body {
    background-size: 3.5rem 100%;
  }

  .q5yimo::after {
    display: none;
  }

  .qierha {
    grid-template-columns: 2.15rem minmax(0, 1fr);
    max-width: calc(100vw - 5.2rem);
    font-size: .92rem;
  }

  .qierha::before {
    width: 2.15rem;
    height: 2.15rem;
    font-size: .62rem;
    box-shadow: .2rem .2rem 0 var(--ap-blue);
  }

  .qierha::after {
    grid-column: 2;
  }

  .qghw6q a {
    padding: .55rem .2rem .55rem 1.35rem;
    font-size: .86rem;
  }

  .qgjz4d::after {
    display: none;
  }

  .qgjz4d .container {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding-top: 3.4rem;
    padding-bottom: 3.8rem;
  }

  .qgjz4d .container::before {
    display: none;
  }

  .qwiwnk,
  .qgjz4d h1,
  .qw02ml,
  .qss4hg,
  .q7ximo {
    grid-column: 1;
  }

  .qgjz4d h1 {
    max-width: 15ch;
    font-size: clamp(2.4rem, 12vw, 3.8rem);
  }

  .q7ximo {
    grid-row: 5;
    width: 100%;
    margin-top: 2rem;
    border-radius: .5rem 4rem .5rem 4rem;
    transform: none;
  }

  .q7ximo img {
    min-height: 0;
    border-radius: .3rem 3.6rem .3rem 3.6rem;
  }

  .qlbccu {
    padding-top: 2.5rem;
  }

  .q510xu {
    grid-template-columns: minmax(0, 1fr);
    margin-bottom: 2.8rem;
  }

  .q93dkr {
    min-height: 0;
  }

  .qlbccu .container > section,
  .qlbccu .container > section:first-of-type {
    max-width: 100%;
    padding: 4.6rem 0 2.8rem;
    border-radius: 0;
  }

  .qlbccu .container > section:first-of-type {
    padding-right: 1.2rem;
    padding-bottom: 2rem;
    padding-left: 1.2rem;
    border-radius: .45rem 1.4rem 1.4rem .45rem;
  }

  .qlbccu .container > section::before,
  .qlbccu .container > section:first-of-type::before {
    top: 1.2rem;
    left: 0;
  }

  .qlbccu .container > section:first-of-type::before {
    left: 1.2rem;
  }

  .qlbccu section h2 {
    font-size: clamp(1.55rem, 8vw, 2rem);
  }

  .qxzvzy {
    max-width: 100%;
    border-radius: .4rem;
  }

  .qi4uf6 li {
    padding: 3.8rem 1rem 1.15rem;
  }

  .qi4uf6 li::before {
    right: 0;
    bottom: auto;
    width: auto;
    height: 2.7rem;
    border-right: 0;
    border-bottom: 1px solid var(--ap-line);
    border-radius: .3rem .9rem 0 0;
  }

  .qi4uf6 li::after {
    top: 1.35rem;
    right: 1rem;
  }

  .qs4ec2::before {
    display: none;
  }

  .qrgs02 {
    grid-template-columns: minmax(0, 1fr);
  }

  .q8xtpq .container {
    align-items: flex-start;
  }
}
