  :root {
    --surface-1:#fcfcfb; --surface-2:#f4f4f1; --text-primary:#0b0b0b; --text-secondary:#52514e;
    --text-muted:#78776f; --series-1:#2a78d6; --grid:#e4e4de; --ref:#8a8980; --step:#c9c8c0;
    --rule:#dedcd4; --alert-bg:#fdf3ec; --alert-br:#eb6834;
  }
  * { box-sizing:border-box; }
  body { font-family:-apple-system, system-ui, sans-serif; background:var(--surface-2);
    color:var(--text-primary); margin:0; padding:40px 20px; line-height:1.55;
    -webkit-font-smoothing:antialiased; }
  .page { max-width:1000px; margin:0 auto; background:var(--surface-1); padding:56px 60px 44px;
    border-radius:14px; box-shadow:0 1px 3px rgba(0,0,0,.06), 0 12px 32px rgba(0,0,0,.05); }
  .eyebrow { font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted);
    font-weight:600; margin:0 0 10px; }
  h1 { font-size:31px; line-height:1.2; margin:0 0 8px; letter-spacing:-.02em; font-weight:700; }
  .sub { color:var(--text-secondary); font-size:15px; margin:0 0 36px; }
  .hero { border-top:3px solid var(--text-primary); border-bottom:1px solid var(--rule);
    padding:26px 0 24px; margin-bottom:34px; display:flex; flex-wrap:wrap; gap:40px; align-items:flex-start; }
  .hero .big { font-size:63px; font-weight:700; letter-spacing:-.035em; line-height:1; }
  .hero .big span { font-size:27px; font-weight:600; color:var(--text-secondary); letter-spacing:0; }
  .hero .lab { font-size:14px; color:var(--text-secondary); margin-top:9px; max-width:290px; }
  .hero .side { font-size:34px; font-weight:700; letter-spacing:-.02em; line-height:1.1; }
  .hero .side em { font-style:normal; color:var(--text-muted); font-weight:600; font-size:19px; }
  h2 { font-size:20px; margin:42px 0 6px; letter-spacing:-.01em; font-weight:700; }
  h2 .n { color:var(--text-muted); font-weight:600; margin-right:9px; }
  p { margin:9px 0; }
  .lede { color:var(--text-secondary); font-size:15px; margin-bottom:14px; }
  .alert { background:var(--alert-bg); border-left:4px solid var(--alert-br); padding:18px 22px;
    border-radius:0 8px 8px 0; margin:30px 0; }
  .alert h3 { margin:0 0 6px; font-size:17px; }
  .alert p { margin:5px 0; font-size:15px; }
  table { border-collapse:collapse; width:100%; font-size:13.5px; margin:16px 0 8px;
    font-variant-numeric:tabular-nums; }
  th { text-align:right; font-size:11px; text-transform:uppercase; letter-spacing:.05em;
    color:var(--text-muted); font-weight:600; padding:0 9px 8px; border-bottom:1.5px solid var(--rule); }
  th:first-child, td.m { text-align:left; }
  td { text-align:right; padding:6px 9px; border-bottom:1px solid var(--grid); }
  td.m { font-weight:500; white-space:nowrap; }
  td.tx { color:var(--text-secondary); font-size:12.5px; white-space:nowrap; }
  td.tot { font-weight:600; }
  td.pct { font-weight:600; color:var(--series-1); }
  tr.rowstep td { border-top:2px solid var(--step); }
  tfoot td { border-top:2px solid var(--text-primary); border-bottom:none; font-weight:700;
    padding-top:10px; font-size:14px; }
  .fig { margin:22px 0 8px; }
  .fig figcaption { font-size:13px; color:var(--text-secondary); margin-bottom:10px; }
  .fig .t { font-size:15px; font-weight:600; color:var(--text-primary); display:block; margin-bottom:2px; }
  .ax { font-size:11px; fill:var(--text-muted); font-family:-apple-system, system-ui, sans-serif; }
  .yr { font-weight:700; fill:var(--text-secondary); font-size:11.5px; }
  .steplab { font-size:10px; fill:var(--text-muted); font-family:-apple-system, system-ui, sans-serif;
    text-transform:uppercase; letter-spacing:.06em; }
  .reflab { font-size:12px; fill:var(--ref); font-weight:600; font-family:-apple-system, system-ui, sans-serif; }
  .reflab tspan { font-weight:400; font-size:11px; }
  .endlab { font-size:14px; fill:var(--series-1); font-weight:700; font-family:-apple-system, system-ui, sans-serif; }
  .endsub { font-size:11px; fill:var(--text-muted); font-weight:400; }
  .grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px 34px; margin:18px 0; }
  .card { background:var(--surface-2); border-radius:9px; padding:15px 18px; }
  .card .k { font-size:24px; font-weight:700; letter-spacing:-.02em; }
  .card .d { font-size:13.5px; color:var(--text-secondary); margin-top:3px; }
  .src { background:var(--surface-2); border-radius:9px; padding:20px 24px; margin-top:30px; font-size:13.5px; }
  .src h2 { margin-top:0; font-size:16px; }
  .src ul { margin:8px 0 0; padding-left:20px; }
  .src li { margin:5px 0; color:var(--text-secondary); }
  .src code { font-family:ui-monospace, Menlo, monospace; font-size:12.5px; color:var(--text-primary);
    background:var(--surface-1); padding:1px 5px; border-radius:4px; }
  .foot { margin-top:34px; padding-top:18px; border-top:1px solid var(--rule);
    font-size:13px; color:var(--text-muted); }
  @media (max-width:760px) { .page{padding:32px 22px} .grid2{grid-template-columns:1fr}
    .hero .big{font-size:46px} table{font-size:12px} td,th{padding:5px 4px} }
  @media print {
    body { background:#fff; padding:0; font-size:11pt; }
    .page { box-shadow:none; border-radius:0; max-width:none; padding:0; }
    h2 { page-break-after:avoid; } table { page-break-inside:auto; }
    tr { page-break-inside:avoid; } .fig, .alert, .src { page-break-inside:avoid; }
    .noprint { display:none; }
  }

/* --- hosting banner: says whose data this is, changes nothing below it --- */
.host-banner {
  max-width: 1000px;
  margin: 0 auto 40px;
  padding: 18px 20px;
  background: var(--surface-1);
  border: 1px solid var(--rule);
  border-radius: 10px;
}
.host-banner p { margin: 0; font-size: 14px; color: var(--text-secondary); line-height: 1.5; }
.host-banner .host-tag {
  display: inline-block;
  margin-bottom: 8px;
  padding: 3px 10px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--text-primary);
}
.host-banner a { color: var(--text-primary); }
@media print { .host-banner { display: none; } }
