:root {
  --v95606: #dec17c;
  --vhbil8: #2c271c;
  --von36w: #2a220e;
  --v8l1yy: #927b45;
  --vh0oum: #91aee8;
  --vkp81s: #dec17c;
  --vvtaa3: #1a2232;
  --vh2o7w: #2b3750;
  --vu9i8p: #7e8da9;
  --vh4yr1: #0a0e15;
  --vakyv7: #0c121d;
  --vwuxz7: #151d2d;
  --v38yun: #eaecf0;
  --vi7t0h: #a0a7b6;
  --vt5foz: #53c69c;
  --vukn24: #e4b558;
  --v3gqmj: #de625e;
  --vmtkrf: 68.19rem;
  --vm0954: 70ch;
  --vf5pc3: #151d2d;
  --vt12xa: clamp(1.006rem, 3vw, 1.881rem);
  --vqtsm8: 4.127rem;
  --vl8pmm: 'Schibsted Grotesk', system-ui, sans-serif;
  --vfhzpg: 'Newsreader', system-ui, sans-serif;
  --v3qzu6: 'Schibsted Grotesk', system-ui, sans-serif;
  --v7lj9p: clamp(2.182rem, 4.5vw, 3.3rem);
  --vm9864: clamp(1.423rem, 3vw, 2.182rem);
  --vpmocn: 1.423rem;
  --vulp8u: 1.021rem;
  --vgl55l: 0.835rem;
  --v1hgof: 1.15;
  --vphy37: 1.65;
  --vvw3rh: 0.507rem;
  --vce53n: 0.714rem;
  --vm3yre: #111111;
  --vxukl0: #ffffff;
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: var(--vfhzpg); font-size: var(--vulp8u); line-height: var(--vphy37); color: var(--v38yun); background: var(--vakyv7); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: var(--vl8pmm); line-height: var(--v1hgof); font-weight: 700; color: var(--v38yun); text-wrap: balance; }
h1 { font-size: var(--v7lj9p); letter-spacing: -0.02em; }
h2 { font-size: var(--vm9864); margin-top: 2.474rem; margin-bottom: 0.714rem; }
h3 { font-size: var(--vpmocn); margin-top: 1.782rem; margin-bottom: 0.507rem; }
p { margin-bottom: 1.006rem; }
a { color: var(--vkp81s); }
ul, ol { margin: 0 0 1.006rem 1.194rem; }
li { margin-bottom: 0.338rem; }
strong { font-weight: 700; }
code { font-family: ui-monospace, "SF Mono", Menlo, monospace; background: rgba(128, 128, 128, 0.129); border: 1px solid rgba(128, 128, 128, 0.23); border-radius: 4px; padding: 0.104em 0.34em; font-size: 0.934em; color: var(--v38yun); }
blockquote { border-left: 3px solid var(--v95606); padding-left: 1.006rem; color: var(--vi7t0h); margin: 0 0 1.006rem; }
img { max-width: 100%; height: auto; display: block; }
sup.std68a a { text-decoration: none; color: var(--vh0oum); font-weight: 600; }
.container { width: 100%; max-width: var(--vmtkrf); margin-inline: auto; padding-inline: var(--vt12xa); }
.skgoml { position: absolute; left: -999px; }
.skgoml:focus { left: 1.006rem; top: 1.006rem; background: var(--vwuxz7); padding: 0.507rem 1.006rem; z-index: 100; }
main { display: block; }
.scx5ti { font-family: var(--v3qzu6); font-weight: 800; font-size: 1.168rem; color: var(--v38yun); text-decoration: none; }
.s9t9gq { min-width: 0; }
.s9t9gq ul { display: flex; flex-wrap: wrap; gap: 1.194rem; list-style: none; margin: 0; padding: 0; min-width: 0; }
.s9t9gq li { white-space: nowrap; }
.s9t9gq a { color: var(--vi7t0h); text-decoration: none; font-size: var(--vgl55l); font-weight: 600; }
.s9t9gq a:hover { color: var(--vkp81s); }
.sowqgx { display: none; background: none; border: 1px solid var(--vh2o7w); border-radius: 6px; padding: 0.39rem 0.633rem; font-size: 1.113rem; line-height: 1; cursor: pointer; color: var(--v38yun); }
.sp0rwo { font-family: var(--v3qzu6); text-transform: uppercase; letter-spacing: 0.122em; font-size: var(--vgl55l); font-weight: 700; color: var(--vh0oum); margin-bottom: 0.714rem; }
.s8p411 { font-size: 1.168rem; color: var(--vi7t0h); margin-top: 1.006rem; max-width: 62ch; }
.s1t3gs { display: flex; flex-wrap: wrap; gap: 0.714rem; margin-top: 1.782rem; }
.s4bld7 { display: inline-block; padding: 0.857rem 1.587rem; border-radius: var(--vvw3rh); font-weight: 700; text-decoration: none; font-size: var(--vgl55l); transition: transform 0.148s ease, opacity 0.148s ease; }
.s4bld7:hover { transform: translateY(-1.5px); }
.svnkkk { background: var(--v95606); color: var(--vm3yre); }
.slemhg { background: transparent; color: var(--vkp81s); border: 1.5px solid var(--vkp81s); }
article > section, main > article { padding-block: 0.507rem; }
.swsp06 { padding-block: 1.006rem 2.946rem; }
.swsp06 .container > section { max-width: var(--vm0954); margin-inline: auto; }
.swsp06 .container > section.sqabzy, .swsp06 .container > .sqabzy { max-width: none; }
.swsp06 .container > section > .slqs2i,
.swsp06 .container > section > .s1bvcp,
.swsp06 .container > section > .sow8ec,
.swsp06 .container > section > .szy0yf,
.swsp06 .container > section > .sftqgb {
  --vpwex5: min(var(--vmtkrf) - 2 * var(--vt12xa), 100vw - 2 * var(--vt12xa));
  width: var(--vpwex5);
  max-width: none;
  margin-inline: calc((100% - var(--vpwex5)) / 2);
}
@media (max-width: 901px) {
  .swsp06 .container > section > .slqs2i,
  .swsp06 .container > section > .s1bvcp,
  .swsp06 .container > section > .sow8ec,
  .swsp06 .container > section > .szy0yf,
  .swsp06 .container > section > .sftqgb { width: 100%; margin-inline: 0; }
}
.sftqgb img { aspect-ratio: 16 / 7; object-fit: contain; background: var(--vwuxz7); }
.sb4fk8 img { aspect-ratio: 16 / 6; object-fit: cover; }
.sow8ec { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.194rem, 3vw, 2.474rem); align-items: center; background: var(--vf5pc3, var(--vwuxz7)); border: 1px solid var(--vh2o7w); border-radius: var(--vce53n); padding: clamp(1.194rem, 3vw, 2.182rem); margin: 2.474rem 0; }
.sbqn79 img { border-radius: calc(var(--vce53n) - 0.25rem); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.sbqn79 figcaption { font-size: var(--vgl55l); color: var(--vi7t0h); margin-top: 0.633rem; line-height: 1.45; }
.sazto6 { font-family: var(--v3qzu6); text-transform: uppercase; letter-spacing: 0.104em; font-size: 0.714rem; font-weight: 700; color: var(--vh0oum); margin-bottom: 0.633rem; }
.sqnu0j h2, .sqnu0j h3 { margin-top: 0; }
.sqnu0j p:last-child { margin-bottom: 0; }
@media (max-width: 721px) { .sow8ec { grid-template-columns: 1fr; } }
.selu6o { border-left: 3px solid var(--vh0oum); background: var(--vf5pc3, var(--vwuxz7)); border-radius: 0 var(--vce53n) var(--vce53n) 0; padding: 1.194rem 1.423rem; margin: 1.881rem 0; }
.selu6o h2, .selu6o h3 { margin-top: 0; font-size: 1.022rem; text-transform: uppercase; letter-spacing: 0.082em; color: var(--vi7t0h); }
.sdiein { list-style: none; margin: 0.714rem 0 0; padding: 0; display: grid; gap: 0.633rem; }
.sdiein li { margin: 0; padding-left: 1.405rem; position: relative; }
.sdiein li::before { content: "\2014"; position: absolute; left: 0; color: var(--vh0oum); font-weight: 700; }
.s1bvcp { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11.288rem), 1fr)); gap: 1px; background: var(--vh2o7w); border: 1px solid var(--vh2o7w); border-radius: var(--vce53n); overflow: hidden; margin: 2.182rem 0; }
.soi097 { background: var(--vwuxz7); padding: 1.405rem 1.194rem; }
.s2obpe { font-family: var(--v3qzu6); font-size: clamp(1.782rem, 3.5vw, 2.474rem); font-weight: 800; line-height: 1.05; color: var(--v95606); letter-spacing: -0.02em; }
.svdd2o { font-size: var(--vgl55l); color: var(--vi7t0h); margin-top: 0.39rem; line-height: 1.4; }
.szy0yf { background: var(--v95606); color: var(--vm3yre); border-radius: var(--vce53n); padding: clamp(1.423rem, 4vw, 2.772rem); margin: 2.946rem 0 1.006rem; text-align: center; }
.szy0yf h2, .szy0yf h3 { color: var(--vm3yre); margin-top: 0; }
.szy0yf p { color: var(--vm3yre); opacity: 0.88; margin-inline: auto; max-width: 59ch; }
.szy0yf .s1t3gs { justify-content: center; }
.szy0yf .slemhg { color: var(--vm3yre); border-color: var(--vm3yre); }
.sftqgb img { border-radius: var(--vce53n); width: 100%; }
.sftqgb figcaption { font-size: var(--vgl55l); color: var(--vi7t0h); margin-top: 0.633rem; font-style: italic; }
.sb4fk8 { margin: 1.423rem 0; }
.sb4fk8 img { border-radius: var(--vce53n); }
.s5bixv { background: var(--vwuxz7); border: 1px solid #2b3750; border-radius: var(--vce53n); padding: 1.423rem; }
.slqs2i { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.618rem), 1fr)); gap: 1.194rem; margin: 1.423rem 0 1.881rem; }
.slqs2i .s5bixv { display: flex; flex-direction: column; gap: 0.507rem; }
.slqs2i .s5bixv img { border-radius: calc(var(--vce53n) - 0.25rem); margin-bottom: 0.507rem; aspect-ratio: 16 / 10; object-fit: cover; }
.slqs2i .s5bixv h2, .slqs2i .s5bixv h3 { margin: 0; font-size: 1.168rem; }
.slqs2i .s5bixv p { margin: 0; font-size: var(--vgl55l); color: var(--vi7t0h); }
.slqs2i .s5bixv .s3grqi { margin-top: auto; padding-top: 0.633rem; font-weight: 700; font-size: var(--vgl55l); color: var(--vkp81s); text-decoration: none; }
.slqs2i .s5bixv .s3grqi:hover { text-decoration: underline; }
.s51ij1 { margin: 1.423rem 0; }
.s51ij1 img { border-radius: var(--vce53n); }
.s51ij1 figcaption { font-size: var(--vgl55l); color: var(--vi7t0h); margin-top: 0.507rem; font-style: italic; }
.s8pfye { overflow-x: auto; margin: 1.194rem 0 1.782rem; }
table { border-collapse: collapse; width: 100%; font-size: var(--vgl55l); }
th, td { text-align: left; padding: 0.633rem 0.857rem; border-bottom: 1px solid var(--vh2o7w); vertical-align: top; }
thead th { border-bottom: 2px solid var(--v38yun); font-family: var(--vl8pmm); }
tbody tr:nth-child(even) { background: rgba(128, 128, 128, 0.077); }
.si9auy { padding-left: 1.423rem; }
.si9auy li { margin-bottom: 0.714rem; font-size: var(--vgl55l); color: var(--vi7t0h); }
.si9auy li a { word-break: break-word; }
.sopmq2 ul { list-style: none; margin: 0; padding: 0; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
.shtorc.s5jvbg2 { border-bottom: 1px solid var(--vh2o7w); background: var(--vwuxz7); position: sticky; top: 0; z-index: 50; }
.shtorc.s5jvbg2 .container { display: flex; align-items: center; justify-content: space-between; min-height: var(--vqtsm8); gap: 1.006rem; }
@media (max-width: 860px) {
  .shtorc.s5jvbg2 .sowqgx { display: block; }
  .shtorc.s5jvbg2 .s9t9gq { display: none; position: absolute; top: var(--vqtsm8); left: 0; right: 0; background: var(--vwuxz7); border-bottom: 1px solid var(--vh2o7w); padding: 1.006rem var(--vt12xa); z-index: 50; }
  .shtorc.s5jvbg2 .s9t9gq.sfkm6d { display: block; }
  .shtorc.s5jvbg2 .s9t9gq ul { flex-direction: column; gap: 0.714rem; }
}
@media (min-width: 861px) {
  body.sruvlr2 { padding-left: 15.616rem; }
  .shtorc.s5jvbg2 { position: fixed; top: 0; left: 0; bottom: 0; width: 15.616rem; border-right: 1px solid var(--vh2o7w); border-bottom: none; }
  .shtorc.s5jvbg2 .container { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 1.423rem; min-height: 0; padding-top: 1.881rem; max-width: none; }
  .shtorc.s5jvbg2 .s9t9gq ul { flex-direction: column; gap: 0.714rem; align-items: flex-start; }
  .shtorc.s5jvbg2 .sowqgx { display: none; }
}
.svkeol.s83iru4 { padding: clamp(2.474rem, 6vw, 4.61rem) 0 clamp(1.423rem, 4vw, 2.474rem); }
.svkeol.s83iru4 .container { max-width: 53.404rem; }
.svkeol.s83iru4 .sp0rwo { border-bottom: 2px solid var(--v38yun); padding-bottom: 0.714rem; margin-bottom: 1.194rem; }
.svkeol.s83iru4 h1 { max-width: 24ch; }
.svkeol.s83iru4 .s8p411 { border-top: 1px solid var(--vh2o7w); padding-top: 1.006rem; margin-top: 1.194rem; }
.svkeol.s83iru4 .sb4fk8 { border: 1px solid var(--vh2o7w); padding: 0.507rem; margin-top: 1.423rem; }
.sdal0q.sobywq1 { background: var(--vwuxz7); border-top: 1px solid var(--vh2o7w); margin-top: 4.127rem; padding-block: 1.881rem; }
.sdal0q.sobywq1 a { color: var(--vi7t0h); text-decoration: none; }
.sdal0q.sobywq1 a:hover { color: var(--vkp81s); text-decoration: underline; }
.sdal0q.sobywq1 .s7awzj { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.006rem; }
.sdal0q.sobywq1 .sl84n2 { font-style: italic; color: var(--vi7t0h); margin: 0; max-width: 62ch; }
.sdal0q.sobywq1 .sbidjq { display: flex; flex-wrap: wrap; gap: 1.006rem; font-size: var(--vgl55l); }
  .sj2rzz { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0.714rem; }
  .suqqy2 { font-size: max(0.729rem, 0.657em); letter-spacing: 0.122em; text-transform: uppercase; color: var(--vi7t0h); }
.sdal0q.sobywq1 .s2cney { width: 100%; margin-top: 0.507rem; font-size: var(--vgl55l); color: var(--vi7t0h); }

/* ---- per-site theme layer ---- */
/* Precision Peptide Planner — receptor-map editorial system */

:root {
  --ppp-bg: #0c121d;
  --ppp-deep: #080d15;
  --ppp-surface: #151d2d;
  --ppp-surface-2: #1a2437;
  --ppp-line: #2b3750;
  --ppp-text: #eaecf0;
  --ppp-muted: #a0a7b6;
  --ppp-gold: #dec17c;
  --ppp-blue: #91aee8;
  --ppp-green: #53c69c;
  --ppp-grid: rgba(145, 174, 232, 0.065);
  --ppp-shadow: 0 1.4rem 3.5rem rgba(0, 0, 0, 0.24);
}

html {
  background: var(--ppp-deep);
  scroll-padding-top: 1rem;
}

body {
  background-color: var(--ppp-bg);
  background-image:
    linear-gradient(var(--ppp-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--ppp-grid) 1px, transparent 1px);
  background-size: 5.25rem 5.25rem;
  color: var(--ppp-text);
  font-size: 1.075rem;
  line-height: 1.74;
  text-rendering: optimizeLegibility;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(circle at 72% 12%, rgba(145, 174, 232, 0.09), transparent 30rem);
}

::selection {
  color: var(--ppp-deep);
  background: var(--ppp-gold);
}

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

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

h1,
h2,
h3,
h4 {
  letter-spacing: -0.035em;
}

/* Sidebar masthead: a compact coordinate mark and instrument-index navigation. */
.shtorc {
  background:
    linear-gradient(180deg, rgba(145, 174, 232, 0.07), transparent 34%),
    var(--ppp-deep);
  border-color: var(--ppp-line);
  box-shadow: 0.8rem 0 2.8rem rgba(0, 0, 0, 0.16);
}

.shtorc::after {
  content: "";
  position: absolute;
  right: -1px;
  bottom: 0;
  width: 1px;
  height: 38%;
  background: linear-gradient(transparent, var(--ppp-gold));
}

.scx5ti {
  position: relative;
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  align-items: center;
  gap: 0.78rem;
  width: 100%;
  padding-bottom: 1.2rem;
  color: var(--ppp-text);
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: -0.055em;
  line-height: 1.08;
}

.scx5ti::before {
  content: "PPP";
  display: grid;
  place-items: center;
  width: 3rem;
  aspect-ratio: 1;
  color: var(--ppp-deep);
  background:
    linear-gradient(90deg, transparent 47%, rgba(12, 18, 29, 0.24) 48% 52%, transparent 53%),
    linear-gradient(transparent 47%, rgba(12, 18, 29, 0.24) 48% 52%, transparent 53%),
    var(--ppp-gold);
  border: 1px solid var(--ppp-gold);
  border-radius: 50%;
  box-shadow: 0 0 0 0.32rem rgba(222, 193, 124, 0.1);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.scx5ti::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--ppp-gold), var(--ppp-line) 48%, transparent);
}

.s9t9gq ul {
  width: 100%;
  gap: 0.22rem;
}

.s9t9gq li {
  width: 100%;
}

.s9t9gq a {
  position: relative;
  display: block;
  width: 100%;
  padding: 0.48rem 0.55rem 0.48rem 1rem;
  border-radius: 0.32rem;
  color: var(--ppp-muted);
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.s9t9gq a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 0.38rem;
  height: 0.38rem;
  border: 1px solid var(--ppp-blue);
  border-radius: 50%;
  transform: translateY(-50%);
}

.s9t9gq a:hover,
.s9t9gq a:focus-visible {
  color: var(--ppp-text);
  background: var(--ppp-surface);
  text-decoration: none;
}

.s9t9gq a:hover::before,
.s9t9gq a:focus-visible::before {
  background: var(--ppp-gold);
  border-color: var(--ppp-gold);
  box-shadow: 0 0 0 0.25rem rgba(222, 193, 124, 0.12);
}

.sowqgx {
  border-color: var(--ppp-line);
  background: var(--ppp-surface);
  color: var(--ppp-text);
}

/* Split-screen hero: copy is the legend; imagery is the plotted field. */
.svkeol {
  position: relative;
  overflow: hidden;
  padding: clamp(3rem, 7vw, 6rem) 0 clamp(2.7rem, 6vw, 5.2rem);
  background:
    radial-gradient(circle at 92% 18%, rgba(145, 174, 232, 0.16), transparent 22rem),
    linear-gradient(135deg, var(--ppp-deep), var(--ppp-bg) 58%, #121b2a);
  border-bottom: 1px solid var(--ppp-line);
}

.svkeol::before,
.svkeol::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
}

.svkeol::before {
  top: -12rem;
  right: -10rem;
  width: 32rem;
  height: 32rem;
  border: 1px solid rgba(145, 174, 232, 0.24);
  box-shadow:
    0 0 0 4rem rgba(145, 174, 232, 0.025),
    0 0 0 8rem rgba(222, 193, 124, 0.018);
}

.svkeol::after {
  right: 8%;
  bottom: 12%;
  width: 0.6rem;
  height: 0.6rem;
  background: var(--ppp-gold);
  box-shadow:
    -4.5rem -8rem 0 -0.12rem var(--ppp-blue),
    5rem -3rem 0 -0.18rem var(--ppp-gold),
    -8rem 2rem 0 -0.18rem var(--ppp-green);
}

.svkeol .container {
  position: relative;
  z-index: 1;
  max-width: 72rem;
}

.sp0rwo {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  width: fit-content;
  margin-bottom: 1rem;
  color: var(--ppp-blue);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.19em;
}

.sp0rwo::before {
  content: "";
  width: 2.5rem;
  height: 0.55rem;
  background:
    radial-gradient(circle at 0.28rem 50%, var(--ppp-gold) 0 0.2rem, transparent 0.22rem),
    linear-gradient(var(--ppp-line), var(--ppp-line)) center / 100% 1px no-repeat;
}

.svkeol h1 {
  max-width: 15ch;
  margin: 0;
  color: var(--ppp-text);
  font-size: clamp(2.65rem, 5.8vw, 5.45rem);
  font-weight: 600;
  letter-spacing: -0.065em;
  line-height: 0.96;
}

.s8p411 {
  max-width: 54ch;
  margin-top: 1.45rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--ppp-line);
  color: var(--ppp-muted);
  font-family: 'Newsreader', Georgia, serif;
  font-size: clamp(1.08rem, 2vw, 1.3rem);
  line-height: 1.62;
}

.s1t3gs {
  gap: 0.7rem;
  margin-top: 1.8rem;
}

.s4bld7 {
  position: relative;
  overflow: hidden;
  border-radius: 0.22rem;
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.svnkkk {
  background: var(--ppp-gold);
  color: var(--ppp-deep);
  box-shadow: 0.35rem 0.35rem 0 rgba(145, 174, 232, 0.2);
}

.slemhg {
  color: var(--ppp-text);
  border-color: var(--ppp-line);
  background: rgba(21, 29, 45, 0.62);
}

.svnkkk::after,
.slemhg::after {
  content: "→";
  margin-left: 0.65rem;
}

.sb4fk8 {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0.45rem;
  background: rgba(21, 29, 45, 0.82);
  border: 1px solid var(--ppp-line);
  border-radius: 0.25rem;
  box-shadow: var(--ppp-shadow);
}

.sb4fk8::before {
  content: "AXIS / FIELD 01";
  position: absolute;
  top: 1.05rem;
  left: 1.05rem;
  z-index: 2;
  padding: 0.3rem 0.55rem;
  color: var(--ppp-deep);
  background: var(--ppp-gold);
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.sb4fk8::after {
  content: "";
  position: absolute;
  inset: 0.45rem;
  pointer-events: none;
  background:
    linear-gradient(rgba(234, 236, 240, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(234, 236, 240, 0.07) 1px, transparent 1px);
  background-size: 2.4rem 2.4rem;
}

.sb4fk8 img {
  width: 100%;
  height: 100%;
  min-height: 25rem;
  aspect-ratio: 4 / 5;
  border-radius: 0;
  object-fit: cover;
  filter: saturate(0.82) contrast(1.08);
}

@media (min-width: 900px) {
  .svkeol .container:has(.sb4fk8) {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(18rem, 0.78fr);
    grid-template-rows: auto auto auto auto;
    gap: 0 4rem;
    align-items: center;
  }

  .svkeol .container:has(.sb4fk8) .sp0rwo,
  .svkeol .container:has(.sb4fk8) h1,
  .svkeol .container:has(.sb4fk8) .s8p411,
  .svkeol .container:has(.sb4fk8) .s1t3gs {
    grid-column: 1;
  }

  .svkeol .container:has(.sb4fk8) .sb4fk8 {
    grid-column: 2;
    grid-row: 1 / 5;
  }

  .svkeol .container:not(:has(.sb4fk8)) {
    max-width: 58rem;
    margin-left: max(0px, calc((100vw - 15.616rem - 72rem) / 2));
  }
}

/* Editorial field: numbered sections, readable measure, and clear evidence hierarchy. */
.swsp06 {
  padding: clamp(2.8rem, 6vw, 5rem) 0 0;
}

.swsp06 .container {
  counter-reset: axis-section;
}

.swsp06 .container > section {
  position: relative;
  max-width: 72ch;
  counter-increment: axis-section;
  margin-inline: auto;
  padding: clamp(3rem, 6vw, 5rem) 0;
  border-top: 1px solid var(--ppp-line);
}

.swsp06 .container > section:first-of-type {
  margin-bottom: 2rem;
  padding: clamp(2rem, 4vw, 3rem);
  overflow: hidden;
  background:
    linear-gradient(112deg, rgba(145, 174, 232, 0.09), transparent 55%),
    var(--ppp-surface);
  border: 1px solid var(--ppp-line);
  border-left: 0.35rem solid var(--ppp-gold);
  border-radius: 0.28rem;
  box-shadow: var(--ppp-shadow);
}

.swsp06 .container > section:first-of-type::after {
  content: "";
  position: absolute;
  right: -4rem;
  bottom: -4rem;
  width: 10rem;
  height: 10rem;
  border: 1rem solid rgba(145, 174, 232, 0.05);
  border-radius: 50%;
}

.swsp06 section h2 {
  position: relative;
  margin: 0 0 1.45rem;
  padding-left: 4.2rem;
  color: var(--ppp-text);
  font-size: clamp(1.7rem, 3.5vw, 2.65rem);
  font-weight: 600;
  letter-spacing: -0.05em;
  line-height: 1.08;
}

.swsp06 section h2::before {
  content: counter(axis-section, decimal-leading-zero);
  position: absolute;
  top: 0.05em;
  left: 0;
  min-width: 2.8rem;
  padding-top: 0.32rem;
  border-top: 2px solid var(--ppp-gold);
  color: var(--ppp-blue);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1;
}

.swsp06 section h2::after {
  content: "";
  position: absolute;
  top: 0.04em;
  left: 3rem;
  width: 0.48rem;
  height: 0.48rem;
  border: 1px solid var(--ppp-gold);
  border-radius: 50%;
  box-shadow: 0 0 0 0.2rem rgba(222, 193, 124, 0.08);
}

.swsp06 section h3 {
  margin-top: 2.5rem;
  color: var(--ppp-blue);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.swsp06 section p,
.swsp06 section li {
  color: var(--ppp-text);
}

.swsp06 section p {
  margin-bottom: 1.25rem;
}

.swsp06 section p:first-of-type {
  font-size: 1.13rem;
  line-height: 1.7;
}

.swsp06 section ul {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

.swsp06 section ul > li {
  position: relative;
  padding-left: 1.8rem;
  margin-bottom: 0.8rem;
}

.swsp06 section ul > li::before {
  content: "";
  position: absolute;
  top: 0.72em;
  left: 0;
  width: 0.52rem;
  height: 0.52rem;
  background: var(--ppp-blue);
  border: 2px solid var(--ppp-bg);
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--ppp-blue);
}

blockquote {
  position: relative;
  margin: 2rem 0;
  padding: 1.6rem 1.8rem 1.6rem 4.4rem;
  color: var(--ppp-text);
  background: var(--ppp-surface);
  border: 1px solid var(--ppp-line);
  border-left: 1px solid var(--ppp-line);
  border-radius: 0.28rem;
}

blockquote::before {
  content: "";
  position: absolute;
  top: 1.7rem;
  left: 1.6rem;
  width: 1.25rem;
  height: 1.25rem;
  background:
    radial-gradient(circle, var(--ppp-gold) 0 0.18rem, transparent 0.2rem),
    linear-gradient(var(--ppp-gold), var(--ppp-gold)) center / 100% 1px no-repeat,
    linear-gradient(90deg, var(--ppp-gold), var(--ppp-gold)) center / 1px 100% no-repeat;
}

.std68a a {
  display: inline-grid;
  place-items: center;
  min-width: 1.55rem;
  height: 1.3rem;
  margin-inline: 0.08rem;
  padding-inline: 0.24rem;
  color: var(--ppp-deep);
  background: var(--ppp-blue);
  border-radius: 999px;
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
}

/* Compound matrix cards: each tile behaves like a plotted coordinate. */
.slqs2i {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  counter-reset: compound-card;
  max-width: 72rem;
  margin: 0 auto 4rem;
}

.s5bixv {
  position: relative;
  counter-increment: compound-card;
  min-height: 18rem;
  overflow: hidden;
  padding: 2rem 2rem 1.7rem;
  background:
    linear-gradient(145deg, rgba(145, 174, 232, 0.08), transparent 55%),
    var(--ppp-surface);
  border: 1px solid var(--ppp-line);
  border-radius: 0.25rem;
  box-shadow: 0 0.9rem 2.4rem rgba(0, 0, 0, 0.15);
  transition: border-color 0.18s ease, transform 0.18s ease;
}

.s5bixv::before {
  content: "0" counter(compound-card);
  align-self: flex-start;
  width: fit-content;
  margin-bottom: 1.5rem;
  padding: 0.28rem 0.52rem;
  color: var(--ppp-deep);
  background: var(--ppp-gold);
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
}

.s5bixv::after {
  content: "";
  position: absolute;
  right: -2.5rem;
  bottom: -2.5rem;
  width: 8rem;
  height: 8rem;
  border: 1px solid rgba(145, 174, 232, 0.24);
  border-radius: 50%;
  box-shadow: inset 0 0 0 1.35rem rgba(145, 174, 232, 0.025);
}

.s5bixv:hover {
  border-color: var(--ppp-gold);
  transform: translateY(-0.2rem);
}

.s5bixv h3 {
  color: var(--ppp-text);
  font-size: 1.5rem;
  font-weight: 600;
}

.s5bixv p {
  color: var(--ppp-muted);
  font-family: 'Newsreader', Georgia, serif;
  font-size: 1rem;
  line-height: 1.62;
}

.s3grqi {
  position: relative;
  z-index: 1;
  width: fit-content;
  color: var(--ppp-gold);
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Data modules */
.s8pfye {
  margin: 2rem 0 3rem;
  border: 1px solid var(--ppp-line);
  border-radius: 0.25rem;
  box-shadow: var(--ppp-shadow);
}

table {
  min-width: 44rem;
  color: var(--ppp-text);
  background: var(--ppp-surface);
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 0.78rem;
  line-height: 1.52;
}

th,
td {
  padding: 1rem 1.05rem;
  border-color: var(--ppp-line);
}

thead th {
  color: var(--ppp-deep);
  background: var(--ppp-gold);
  border-color: rgba(12, 18, 29, 0.3);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

tbody tr:nth-child(even) {
  background: rgba(145, 174, 232, 0.055);
}

tbody tr:hover {
  background: rgba(222, 193, 124, 0.07);
}

.selu6o {
  position: relative;
  margin: 2.6rem 0;
  padding: 2rem 2rem 2rem 5rem;
  background: var(--ppp-surface);
  border: 1px solid var(--ppp-line);
  border-left: 0.3rem solid var(--ppp-blue);
  border-radius: 0.25rem;
}

.selu6o::before {
  content: "+";
  position: absolute;
  top: 2rem;
  left: 1.7rem;
  display: grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  color: var(--ppp-gold);
  border: 1px solid var(--ppp-gold);
  border-radius: 50%;
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
}

.selu6o h2,
.selu6o h3 {
  margin-top: 0;
}

.s1bvcp {
  gap: 1px;
  margin: 2.8rem 0;
  overflow: hidden;
  background: var(--ppp-line);
  border: 1px solid var(--ppp-line);
  border-radius: 0.25rem;
}

.soi097 {
  background: var(--ppp-surface);
  padding: 1.8rem 1.4rem;
}

.s2obpe {
  color: var(--ppp-gold);
  font-weight: 600;
}

.svdd2o {
  color: var(--ppp-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.szy0yf {
  position: relative;
  overflow: hidden;
  color: var(--ppp-deep);
  background: var(--ppp-gold);
  border: 0;
  border-radius: 0;
  text-align: left;
}

.szy0yf::after {
  content: "";
  position: absolute;
  top: -7rem;
  right: -4rem;
  width: 20rem;
  height: 20rem;
  border: 2rem solid rgba(12, 18, 29, 0.08);
  border-radius: 50%;
}

.szy0yf h2,
.szy0yf h3,
.szy0yf p {
  color: var(--ppp-deep);
}

/* References become a traceable source ledger. */
.si9auy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  max-width: none;
  margin: 1rem 0 0;
  padding: 0;
  counter-reset: source-ledger;
  list-style: none;
}

.si9auy li {
  position: relative;
  counter-increment: source-ledger;
  min-width: 0;
  margin: 0;
  padding: 1.35rem 1.35rem 1.35rem 4.25rem;
  overflow-wrap: anywhere;
  color: var(--ppp-text);
  background: var(--ppp-surface);
  border: 1px solid var(--ppp-line);
  border-radius: 0.22rem;
  font-family: 'Newsreader', Georgia, serif;
  font-size: 0.88rem;
  line-height: 1.55;
}

.si9auy li::before {
  content: counter(source-ledger, decimal-leading-zero);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  display: grid;
  place-items: center;
  width: 3rem;
  color: var(--ppp-deep);
  background: var(--ppp-blue);
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.si9auy li a {
  display: inline-grid;
  place-items: center;
  width: 1.45rem;
  height: 1.45rem;
  margin-left: 0.35rem;
  color: var(--ppp-deep);
  background: var(--ppp-gold);
  border-radius: 50%;
  text-decoration: none;
}

/* Footer: wide evidence note followed by compact map groups. */
.sdal0q {
  position: relative;
  overflow: hidden;
  margin-top: 5rem;
  padding: 3.5rem 0 2rem;
  background: var(--ppp-deep);
  border-top: 1px solid var(--ppp-line);
}

.sdal0q::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 36%;
  height: 0.22rem;
  background: linear-gradient(90deg, var(--ppp-gold), var(--ppp-blue));
}

.s7awzj {
  align-items: flex-start;
  gap: 3rem;
}

.sl84n2 {
  position: relative;
  max-width: 48ch;
  padding-left: 2.5rem;
  color: var(--ppp-text);
  font-family: 'Newsreader', Georgia, serif;
  font-size: 1.08rem;
  font-style: normal;
  line-height: 1.62;
}

.sl84n2::before {
  content: "";
  position: absolute;
  top: 0.35rem;
  left: 0;
  width: 1.25rem;
  height: 1.25rem;
  background:
    radial-gradient(circle, var(--ppp-gold) 0 0.18rem, transparent 0.2rem),
    linear-gradient(var(--ppp-gold), var(--ppp-gold)) center / 100% 1px no-repeat,
    linear-gradient(90deg, var(--ppp-gold), var(--ppp-gold)) center / 1px 100% no-repeat;
}

.sopmq2 {
  gap: 2rem;
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
}

.sj2rzz {
  align-items: flex-start;
}

.suqqy2 {
  color: var(--ppp-blue);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.sdal0q a {
  color: var(--ppp-muted);
  font-size: 0.74rem;
}

.s2cney {
  margin-top: 2rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--ppp-line);
  color: var(--ppp-muted);
  font-family: 'Schibsted Grotesk', system-ui, sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
}

@media (max-width: 899px) {
  .svkeol h1 {
    max-width: 16ch;
  }

  .sb4fk8 {
    margin-top: 2rem;
  }

  .sb4fk8 img {
    min-height: 18rem;
    aspect-ratio: 16 / 9;
  }
}

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

  .shtorc::after {
    display: none;
  }

  .shtorc .container {
    gap: 0.7rem;
  }

  .scx5ti {
    grid-template-columns: 2.3rem minmax(0, 1fr);
    width: min(17rem, calc(100% - 3.7rem));
    padding-bottom: 0;
    font-size: 0.9rem;
  }

  .scx5ti::before {
    width: 2.3rem;
    font-size: 0.48rem;
  }

  .scx5ti::after {
    display: none;
  }

  .s9t9gq {
    overflow-y: auto;
    max-height: calc(100vh - 4rem);
    background: var(--ppp-deep);
    box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.35);
  }

  .s9t9gq a {
    padding: 0.62rem 0.7rem 0.62rem 1.3rem;
    font-size: 0.8rem;
  }

  .svkeol {
    padding: 2.7rem 0 3rem;
  }

  .svkeol::before {
    top: -8rem;
    right: -12rem;
    width: 24rem;
    height: 24rem;
  }

  .svkeol::after {
    display: none;
  }

  .svkeol h1 {
    font-size: clamp(2.35rem, 11vw, 3.6rem);
  }

  .s8p411 {
    font-size: 1.05rem;
  }

  .s1t3gs {
    align-items: stretch;
  }

  .s4bld7 {
    text-align: center;
  }

  .sb4fk8 {
    padding: 0.3rem;
  }

  .sb4fk8::after {
    inset: 0.3rem;
  }

  .sb4fk8 img {
    min-height: 14rem;
  }

  .swsp06 {
    padding-top: 2rem;
  }

  .swsp06 .container > section,
  .swsp06 .container > section:first-of-type {
    padding: 2.3rem 0;
  }

  .swsp06 .container > section:first-of-type {
    padding-inline: 1.25rem;
  }

  .swsp06 section h2 {
    padding-top: 2rem;
    padding-left: 0;
    font-size: clamp(1.6rem, 8vw, 2.15rem);
  }

  .swsp06 section h2::before {
    top: 0;
  }

  .swsp06 section h2::after {
    top: 0;
  }

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

  .s5bixv {
    min-height: 0;
    padding: 1.5rem;
  }

  .si9auy li {
    padding: 4rem 1rem 1.15rem;
  }

  .si9auy li::before {
    right: 0;
    bottom: auto;
    width: auto;
    height: 2.8rem;
    place-items: center start;
    padding-left: 1rem;
  }

  blockquote,
  .selu6o {
    padding: 4.3rem 1.25rem 1.4rem;
  }

  blockquote::before,
  .selu6o::before {
    top: 1.25rem;
    left: 1.25rem;
  }

  .s7awzj {
    display: block;
  }

  .sl84n2 {
    margin-bottom: 2rem;
  }

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

@media (prefers-reduced-motion: reduce) {
  .s5bixv {
    transition: none;
  }
}
