/* Page-specific — media-budgets-as-portfolios.html */
.prose-essay h2 {
      font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.12em;
      text-transform: uppercase; color: rgb(var(--ink) / 0.4);
      margin-top: 3.25rem; margin-bottom: 1rem;
    }
    .prose-essay p {
      font-size: 1.0625rem; line-height: 1.75;
      color: rgb(var(--ink) / 0.72); margin-bottom: 1.25rem;
    }
    .prose-essay blockquote {
      border-left: 1px solid rgb(var(--ink) / 0.2); padding-left: 1.25rem;
      margin: 2rem 0; color: rgb(var(--ink) / 0.65); font-style: italic;
    }
    .prose-essay blockquote cite {
      display: block; margin-top: 0.5rem; font-style: normal;
      font-size: 0.875rem; color: rgb(var(--ink) / 0.4);
    }
    .prose-essay strong { color: rgb(var(--ink) / 0.9); font-weight: 550; }
    .prose-essay em { font-style: italic; }
    .prose-essay sup a {
      color: rgb(var(--accent)); text-decoration: none; font-size: 0.7em; margin-left: 0.1em;
    }
    .prose-essay ol.footnotes {
      margin-top: 3.5rem; padding-top: 1.5rem;
      border-top: 1px solid rgb(var(--ink) / 0.1);
      list-style: decimal; padding-left: 1.25rem;
      font-size: 0.8125rem; line-height: 1.6; color: rgb(var(--ink) / 0.45);
    }
    .prose-essay ol.footnotes li { margin-bottom: 0.65rem; }
    .prose-essay ol.footnotes em { font-style: italic; }

    .fig { margin: 2rem 0 2.5rem; }
    .fig-cap {
      display: flex; align-items: baseline; gap: 0.65rem; margin-bottom: 0.85rem;
      font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase;
      color: rgb(var(--ink) / 0.35);
    }
    .fig-cap span.num { color: rgb(var(--ink) / 0.55); font-variant-numeric: tabular-nums; }
    .fig-cap span.sep { opacity: 0.35; }
    .fig-body { border: 1px solid rgb(var(--ink) / 0.12); background: transparent; }
    .fig-note {
      margin-top: 0.65rem; font-size: 0.75rem; line-height: 1.45; color: rgb(var(--ink) / 0.38);
    }

    .map-four {
      display: grid; grid-template-columns: 1fr; gap: 0;
    }
    @media (min-width: 640px) {
      .map-four { grid-template-columns: 1fr 1fr; }
    }
    .map-four a {
      display: block; padding: 1rem 1.1rem;
      border-bottom: 1px solid rgb(var(--ink) / 0.1);
      text-decoration: none; color: inherit; transition: background 0.12s;
    }
    @media (min-width: 640px) {
      .map-four a:nth-child(odd) { border-right: 1px solid rgb(var(--ink) / 0.1); }
      .map-four a:nth-child(-n+2) { border-bottom: 1px solid rgb(var(--ink) / 0.1); }
      .map-four a:nth-child(n+3) { border-bottom: none; }
    }
    .map-four a:last-child { border-bottom: none; }
    .map-four a:hover { background: rgb(var(--ink) / 0.03); }
    .map-four .n {
      font-size: 0.7rem; letter-spacing: 0.1em; color: rgb(var(--ink) / 0.35);
      font-variant-numeric: tabular-nums;
    }
    .map-four .t {
      display: block; margin-top: 0.4rem; font-size: 0.95rem; font-weight: 500;
      color: rgb(var(--ink) / 0.88); letter-spacing: -0.01em;
    }
    .map-four .s {
      display: block; margin-top: 0.3rem; font-size: 0.8rem; line-height: 1.4;
      color: rgb(var(--ink) / 0.45);
    }

    .frontier-wrap { padding: 1.25rem 1rem 1rem; }
    .frontier-wrap svg { width: 100%; height: auto; display: block; }
    .frontier-wrap text {
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      fill: rgb(var(--ink) / 0.4); font-size: 10px;
    }

    .cycle-list { padding: 0; }
    .cycle-row {
      display: grid; grid-template-columns: 2rem 1fr; gap: 0.75rem;
      padding: 0.85rem 1.1rem; border-bottom: 1px solid rgb(var(--ink) / 0.08);
      font-size: 0.875rem; line-height: 1.45;
    }
    .cycle-row:last-child { border-bottom: none; }
    .cycle-n {
      font-size: 0.7rem; letter-spacing: 0.08em; color: rgb(var(--ink) / 0.35);
      font-variant-numeric: tabular-nums; padding-top: 0.15rem;
    }
    .cycle-t { color: rgb(var(--ink) / 0.8); font-weight: 500; }
    .cycle-s { display: block; margin-top: 0.2rem; font-size: 0.8rem; color: rgb(var(--ink) / 0.45); line-height: 1.4; }

    /* Interactive lab */
    .lab { padding: 1.15rem 1.15rem 1.25rem; }
    .lab-intro {
      font-size: 0.8125rem; line-height: 1.55; color: rgb(var(--ink) / 0.5); margin-bottom: 0.85rem;
    }
    .lab-presets {
      display: flex;
      flex-direction: column;
      gap: 0.45rem;
      margin-bottom: 1.15rem;
      padding-bottom: 1rem;
      border-bottom: 1px solid rgb(var(--ink) / 0.1);
    }
    @media (min-width: 520px) {
      .lab-presets {
        display: grid;
        grid-template-columns: auto repeat(3, minmax(0, 1fr));
        align-items: stretch;
        gap: 0.5rem 0.55rem;
      }
    }
    .lab-presets-label {
      font-size: 0.65rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgb(var(--ink) / 0.45);
      padding-top: 0.45rem;
    }
    .lab-preset {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0.15rem;
      margin: 0;
      padding: 0.55rem 0.65rem;
      border: 1px solid rgb(var(--ink) / 0.12);
      border-radius: 0.4rem;
      background: transparent;
      text-align: left;
      cursor: pointer;
      font-family: inherit;
      color: inherit;
      transition: border-color 0.15s ease, background 0.15s ease;
    }
    .lab-preset:hover {
      border-color: rgb(var(--ink) / 0.28);
      background: rgb(var(--ink) / 0.03);
    }
    .lab-preset.is-active,
    .lab-preset[aria-pressed="true"] {
      border-color: rgb(var(--accent) / 0.55);
      background: rgb(var(--accent) / 0.06);
    }
    .lab-preset:focus-visible {
      outline: 2px solid rgb(var(--accent));
      outline-offset: 2px;
    }
    .lab-preset-name {
      font-size: 0.8125rem;
      font-weight: 500;
      line-height: 1.3;
      color: rgb(var(--ink) / 0.88);
    }
    .lab-preset-desc {
      font-size: 0.6875rem;
      line-height: 1.35;
      color: rgb(var(--ink) / 0.48);
    }
    .lab-presets-note {
      margin: 0 0 1.1rem;
      font-size: 0.75rem;
      line-height: 1.55;
      color: rgb(var(--ink) / 0.52);
      max-width: 40rem;
    }
    .lab-presets-note a {
      color: inherit;
      text-decoration: underline;
      text-underline-offset: 0.15em;
      text-decoration-color: rgb(var(--ink) / 0.2);
    }
    .lab-presets-note a:hover {
      color: rgb(var(--accent));
      text-decoration-color: rgb(var(--accent) / 0.45);
    }
    .lab-presets-note strong {
      font-weight: 500;
      color: rgb(var(--ink) / 0.72);
    }
    .lab-channel {
      padding: 0.85rem 0; border-top: 1px solid rgb(var(--ink) / 0.08);
    }
    .lab-channel:first-of-type { border-top: none; padding-top: 0; }
    .lab-ch-head {
      display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem;
      margin-bottom: 0.65rem;
    }
    .lab-ch-name { font-size: 0.875rem; font-weight: 500; color: rgb(var(--ink) / 0.85); }
    .lab-ch-share {
      font-size: 0.75rem; font-variant-numeric: tabular-nums; color: rgb(var(--ink) / 0.4);
    }
    .lab-row {
      display: grid; grid-template-columns: 1fr; gap: 0.45rem; margin-bottom: 0.55rem;
    }
    @media (min-width: 480px) {
      .lab-row { grid-template-columns: 7.5rem 1fr 2.75rem; align-items: center; gap: 0.75rem; }
    }
    .lab-label {
      font-size: 0.7rem; letter-spacing: 0.04em; text-transform: uppercase;
      color: rgb(var(--ink) / 0.4); font-weight: 500;
    }
    .lab-val {
      font-size: 0.75rem; font-variant-numeric: tabular-nums; text-align: right;
      color: rgb(var(--ink) / 0.55); font-weight: 500;
    }
    .lab-global {
      margin-top: 0.5rem; padding-top: 1rem; border-top: 1px solid rgb(var(--ink) / 0.1);
    }
    .lab-readout {
      margin-top: 1.15rem; padding: 1rem;
      border: 1px solid rgb(var(--ink) / 0.1); background: rgb(var(--ink) / 0.02);
    }
    .lab-metrics {
      display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem 1rem;
    }
    @media (min-width: 520px) {
      .lab-metrics { grid-template-columns: 1fr 1fr 1fr 1fr; }
    }
    .lab-metric-label {
      font-size: 0.65rem; letter-spacing: 0.08em; text-transform: uppercase;
      color: rgb(var(--ink) / 0.4); margin-bottom: 0.25rem;
    }
    .lab-metric-val {
      font-size: 1.15rem; font-weight: 550; font-variant-numeric: tabular-nums;
      letter-spacing: -0.02em; color: rgb(var(--ink) / 0.88);
    }
    .lab-metric-val.accent { color: rgb(var(--accent)); }
    .lab-metric-val.muted { color: rgb(var(--ink) / 0.45); }
    .lab-bars { margin-top: 1rem; }
    .lab-bar-row {
      display: grid; grid-template-columns: 6.5rem 1fr 3rem; gap: 0.5rem;
      align-items: center; margin-bottom: 0.45rem; font-size: 0.75rem;
    }
    .lab-bar-name { color: rgb(var(--ink) / 0.55); }
    .lab-bar-track {
      height: 8px; background: rgb(var(--ink) / 0.08); border-radius: 999px; overflow: hidden;
      position: relative;
    }
    .lab-bar-attr {
      position: absolute; left: 0; top: 0; bottom: 0;
      background: rgb(var(--ink) / 0.18); border-radius: 999px;
    }
    .lab-bar-incr {
      position: absolute; left: 0; top: 0; bottom: 0;
      background: rgb(var(--accent) / 0.65); border-radius: 999px;
    }
    .lab-bar-pct { text-align: right; font-variant-numeric: tabular-nums; color: rgb(var(--ink) / 0.4); }
    .lab-legend {
      display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 0.75rem;
      font-size: 0.7rem; color: rgb(var(--ink) / 0.4);
    }
    .lab-legend i {
      display: inline-block; width: 12px; height: 6px; border-radius: 2px;
      margin-right: 0.35rem; vertical-align: middle;
    }
    .lab-note {
      margin-top: 0.85rem; font-size: 0.8125rem; line-height: 1.55;
      color: rgb(var(--ink) / 0.55);
    }
    .lab-canvas-wrap { margin-top: 1rem; }
    .lab-canvas-wrap canvas { width: 100%; display: block; }
