.fl {
    --paper:#ffffff; --wash:#f4f6f4; --ink:#15191a; --ink2:#414b48; --ink3:#6d7a76; --ink4:#98a5a1;
    --rule:#dde2e0; --rule2:#eceeed;
    --brand:#14603f; --brand-dk:#0d4630; --brand-wash:#edf4f0; --brand-rule:#c5ddd0;
    --mark:#8a6414; --mark-wash:#fbf4e4; --mark-rule:#e6d5ac;
    --zebra:#f6f9f7;
    --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
    --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
    --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
    color-scheme:light; background:var(--paper); color:var(--ink); font-family:var(--sans);
    font-size:15px; line-height:1.55; max-width:1180px; margin:0 auto; padding:28px 22px 64px;
    -webkit-text-size-adjust:100%;
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .fl {
      --paper:#101413; --wash:#171d1b; --ink:#e8edea; --ink2:#b6c1bc; --ink3:#8b9994; --ink4:#6c7a75;
      --rule:#2a3331; --rule2:#212927;
      --brand:#5fc99a; --brand-dk:#8fe0bb; --brand-wash:#15251e; --brand-rule:#2c4a3b;
      --mark:#d9b263; --mark-wash:#241d0f; --mark-rule:#4a3c1c;
      --zebra:#151b19; color-scheme:dark;
    }
  }
  :root[data-theme="dark"] .fl {
    --paper:#101413; --wash:#171d1b; --ink:#e8edea; --ink2:#b6c1bc; --ink3:#8b9994; --ink4:#6c7a75;
    --rule:#2a3331; --rule2:#212927;
    --brand:#5fc99a; --brand-dk:#8fe0bb; --brand-wash:#15251e; --brand-rule:#2c4a3b;
    --mark:#d9b263; --mark-wash:#241d0f; --mark-rule:#4a3c1c;
    --zebra:#151b19; color-scheme:dark;
  }
  body { margin:0; background:#fff; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) body { background:#101413; } }
  :root[data-theme="dark"] body { background:#101413; }

  .fl *, .fl *::before, .fl *::after { box-sizing:border-box; }
  .fl p { margin:0; }

  .fl-notice { display:grid; gap:12px; border:1px solid var(--mark-rule); border-left:4px solid var(--mark);
    background:var(--mark-wash); padding:18px 20px; margin-bottom:30px; }
  .fl-notice .tag { font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.16em;
    text-transform:uppercase; color:var(--mark); }
  .fl-notice p { font-size:14.5px; line-height:1.6; color:var(--ink2); max-width:74ch; }
  .fl-notice b { color:var(--ink); font-weight:600; }
  .fl-notice .lead { font-size:16px; line-height:1.55; color:var(--ink); }
  .fl-notice .lead b { color:var(--mark); }

  .fl-mast { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end;
    gap:20px; border-bottom:2px solid var(--brand); padding-bottom:12px; }
  .fl-mast h1 { margin:0; font-size:19px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
    color:var(--brand-dk); }
  .fl-mast h1 span { color:var(--ink); font-weight:500; }
  .fl-mast .sub { margin-top:7px; font-size:15px; color:var(--ink2); max-width:52ch; }
  .fl-mast .meta { font-family:var(--mono); font-size:12px; line-height:1.85; color:var(--ink3);
    text-align:right; white-space:nowrap; }
  .fl-mast .meta b { color:var(--ink2); font-weight:600; }

  .fl-prov { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px;
    background:var(--rule); border:1px solid var(--rule); margin-top:18px; }
  .fl-prov > div { background:var(--paper); padding:11px 13px; }
  .fl-prov dt { font-size:9.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
    color:var(--brand); margin-bottom:5px; }
  .fl-prov dd { margin:0; font-family:var(--mono); font-size:13px; color:var(--ink); }
  .fl-prov dd small { display:block; margin-top:3px; font-family:var(--sans); font-size:11.5px;
    color:var(--ink3); white-space:normal; }

  /* ---- legend ---- */
  .fl-key { margin-top:26px; border:1px solid var(--brand-rule); border-left:3px solid var(--brand);
    background:var(--brand-wash); padding:18px 20px; }
  .fl-key h2 { margin:0 0 4px; font-size:10.5px; font-weight:700; letter-spacing:.15em;
    text-transform:uppercase; color:var(--brand-dk); }
  .fl-key .lede { font-size:13px; color:var(--ink2); margin-bottom:12px; max-width:80ch; }
  .fl-key .row { display:flex; flex-wrap:wrap; gap:16px; align-items:baseline; padding:10px 0;
    border-top:1px solid var(--brand-rule); }
  .fl-key .row:first-of-type { border-top:none; }
  .fl-key .code { font-family:var(--mono); font-size:24px; font-weight:600; color:var(--brand-dk);
    min-width:38px; font-variant-numeric:tabular-nums; line-height:1; }
  .fl-key .what { font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
    color:var(--ink3); min-width:86px; }
  .fl-key .said { font-family:var(--serif); font-style:italic; font-size:15.5px; color:var(--ink);
    flex:1 1 280px; line-height:1.5; }
  .fl-key .note { margin-top:12px; padding-top:11px; border-top:1px solid var(--brand-rule);
    font-size:13.5px; color:var(--ink2); line-height:1.6; }
  .fl-key .note b { color:var(--ink); }

  .fl-band { margin-top:38px; }
  .fl-bandhead { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end;
    gap:14px; border-bottom:1.5px solid var(--brand); padding-bottom:7px; }
  .fl-bandhead .eyebrow { font-size:9.5px; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
    color:var(--brand); margin-bottom:4px; }
  .fl-bandhead h3 { margin:0; font-size:16px; font-weight:600; color:var(--ink); text-wrap:balance; }
  .fl-bandhead .why { margin-top:5px; font-size:13px; color:var(--ink3); max-width:74ch; line-height:1.55; }
  .fl-bandhead .count { font-family:var(--mono); font-size:12.5px; color:var(--ink3); white-space:nowrap;
    font-variant-numeric:tabular-nums; }

  .fl-scroll { overflow-x:auto; }
  .fl-table { width:100%; border-collapse:collapse; min-width:920px; }
  .fl-table th { font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
    color:var(--ink4); text-align:left; padding:10px 10px 8px; border-bottom:1px solid var(--rule);
    white-space:nowrap; }
  .fl-table th.num { text-align:right; }
  .fl-table td { padding:12px 10px; vertical-align:top; font-size:13.5px; color:var(--ink2);
    border-bottom:1px solid var(--rule2); }
  /* reading aid only: every second row by position, correlating with nothing on the row */
  .fl-table tbody tr:nth-of-type(even) td { background:var(--zebra); }

  .fl-name { font-size:14.5px; font-weight:600; color:var(--ink); }
  .fl-fake { display:block; margin-top:6px; font-family:var(--mono); font-size:9.5px; font-weight:500;
    letter-spacing:.06em; text-transform:uppercase; color:var(--mark); border:1px solid var(--mark-rule);
    background:var(--mark-wash); padding:3px 6px; line-height:1.35; }
  .fl-bandhead .secwarn { margin-top:7px; font-family:var(--mono); font-size:10px; font-weight:600;
    letter-spacing:.08em; text-transform:uppercase; color:var(--mark); }
  /* repeating SAMPLE watermark: survives a screenshot of one section on its own */
  .fl-band { position:relative; }
  .fl-band .fl-scroll, .fl-band .fl-cards { position:relative; }
  .fl-band .fl-scroll::after, .fl-band .fl-cards::after {
    content:""; position:absolute; inset:0; pointer-events:none; z-index:2;
    background-image:url("data:image/svg+xml,%%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='150'%%3E%%3Ctext x='10' y='95' transform='rotate(-22 180 75)' font-family='Helvetica,Arial,sans-serif' font-size='21' font-weight='700' letter-spacing='3' fill='%%23808080' fill-opacity='0.13'%%3ESAMPLE DATA%%3C/text%%3E%%3C/svg%%3E");
    background-repeat:repeat; }
  .fl-addr { font-size:12.5px; color:var(--ink3); margin-top:3px; }
  .fl-ids { font-family:var(--mono); font-size:11px; color:var(--ink4); margin-top:5px; }
  .fl-redact { color:var(--mark); background:var(--mark-wash); border-bottom:1px solid var(--mark-rule);
    padding:0 3px; }

  td.fl-cite { font-family:var(--mono); white-space:nowrap; }
  .fl-cite .code { font-size:20px; font-weight:600; color:var(--brand-dk); font-variant-numeric:tabular-nums; }
  .fl-cite .keyref { font-family:var(--sans); font-size:9px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink4); display:block; margin-top:2px; }
  .fl-cite .dates { display:block; margin-top:6px; font-size:12.5px; color:var(--ink2); line-height:1.65; }
  .fl-cite .roll { display:block; margin-top:5px; font-family:var(--sans); font-size:11.5px; color:var(--ink3);
    white-space:normal; }

  td.fl-status { max-width:330px; font-size:12.5px; line-height:1.55; }
  .fl-status .said { font-family:var(--serif); font-style:italic; font-size:14px; color:var(--ink);
    display:block; }
  .fl-status .when { display:block; margin-top:2px; font-family:var(--mono); font-size:11.5px; color:var(--ink3); }
  .fl-status .also { display:block; margin-top:6px; font-size:11.5px; color:var(--ink3); line-height:1.55; }
  .fl-status .also i { font-family:var(--serif); }
  .fl-status .none { color:var(--ink4); font-style:italic; font-family:var(--serif); font-size:13.5px; }

  td.fl-age { font-family:var(--mono); text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
  .fl-age .n { font-size:15px; color:var(--ink); }
  .fl-age small { display:block; font-family:var(--sans); font-size:9px; letter-spacing:.08em;
    text-transform:uppercase; color:var(--ink4); margin-top:2px; }

  td.fl-contact { font-family:var(--mono); font-size:12.5px; white-space:nowrap; color:var(--ink); }
  td.fl-contact .unres { color:var(--ink4); }

  .fl-cards { display:none; }

  .fl-absent { margin-top:38px; border:1px dashed var(--rule); background:var(--wash); padding:18px 20px; }
  .fl-absent h3 { margin:0 0 8px; font-size:10.5px; font-weight:700; letter-spacing:.15em;
    text-transform:uppercase; color:var(--ink3); }
  .fl-absent p { font-size:13.5px; color:var(--ink2); max-width:78ch; line-height:1.6; }
  .fl-absent p + p { margin-top:10px; }
  .fl-absent .item { margin-top:12px; font-family:var(--mono); font-size:12px; color:var(--ink3);
    padding-left:16px; position:relative; }
  .fl-absent .item::before { content:"\2014"; position:absolute; left:0; color:var(--ink4); }

  .fl-read { margin-top:46px; }
  .fl-read h2, .fl-disc h2 { margin:0 0 14px; font-size:10.5px; font-weight:700; letter-spacing:.15em;
    text-transform:uppercase; color:var(--brand-dk); border-bottom:1.5px solid var(--brand); padding-bottom:7px; }
  .fl-read .grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:24px; }
  .fl-read p { font-size:13.5px; color:var(--ink2); line-height:1.65; margin-bottom:12px; max-width:62ch; }
  .fl-read b { color:var(--ink); font-weight:600; }
  .fl-read .mono { font-family:var(--mono); font-size:12px; }

  .fl-disc { margin-top:42px; }
  .fl-disc .body { columns:2; column-gap:32px; }
  @media (max-width:720px) { .fl-disc .body { columns:1; } }
  .fl-disc .item { break-inside:avoid; margin-bottom:14px; padding-left:22px; position:relative;
    font-size:12.5px; line-height:1.6; color:var(--ink2); }
  .fl-disc .item .dl { position:absolute; left:0; top:0; font-family:var(--mono); font-size:12px;
    font-weight:600; color:var(--brand); }
  .fl-disc .item b { color:var(--ink); font-weight:600; }
  .fl-disc .item i { font-family:var(--serif); }
  .fl-disc .item.flag { border-left:2px solid var(--brand); padding-left:14px; margin-left:8px; }
  .fl-disc .item.flag .dl { left:-16px; }
  .fl-disc .mono { font-family:var(--mono); font-size:12px; }

  .fl-foot { margin-top:36px; border-top:1px solid var(--rule); padding-top:14px; display:flex;
    flex-wrap:wrap; justify-content:space-between; gap:18px; font-size:11.5px; color:var(--ink4);
    line-height:1.65; }
  .fl-foot div:first-child { max-width:72ch; }
  .fl-foot .r { font-family:var(--mono); text-align:right; white-space:nowrap; }

  @media (max-width:820px) {
    .fl { font-size:14.5px; padding:20px 16px 48px; }
    .fl-scroll { display:none; }
    .fl-cards { display:grid; gap:14px; margin-top:16px; }
    .fl-card { border:1px solid var(--rule); border-left:3px solid var(--brand-rule); padding:14px 15px;
      background:var(--paper); }
    .fl-card .top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
    .fl-card .badge { font-family:var(--mono); font-size:22px; font-weight:600; color:var(--brand-dk);
      line-height:1; white-space:nowrap; }
    .fl-card .badge small { display:block; font-family:var(--sans); font-size:8px; letter-spacing:.08em;
      text-transform:uppercase; color:var(--ink4); margin-top:3px; text-align:right; }
    .fl-card dl { margin:12px 0 0; display:grid; grid-template-columns:auto 1fr; gap:7px 14px; }
    .fl-card dt { font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
      color:var(--ink4); padding-top:3px; }
    .fl-card dd { margin:0; font-size:13px; color:var(--ink2); font-family:var(--mono); }
    .fl-card dd.plain { font-family:var(--sans); }
    .fl-card dd .said { font-family:var(--serif); font-style:italic; color:var(--ink); display:block; }
    .fl-card dd .when { font-family:var(--mono); font-size:11.5px; color:var(--ink3); display:block;
      margin-top:2px; }
    .fl-card dd .also { font-family:var(--sans); font-size:11.5px; color:var(--ink3); display:block;
      margin-top:5px; line-height:1.5; }
    .fl-card dd .also i { font-family:var(--serif); }
    .fl-card dd .none { font-family:var(--serif); font-style:italic; color:var(--ink4); }
    .fl-mast .meta { text-align:left; }
  }
