  :root{
    --paper:#F6F3EC;      /* pale beige ledger paper */
    --paper-2:#EEE9DE;
    --rule:#D9D2C4;       /* faint ledger rule */
    --ink:#1B1912;
    --ink-2:#5F594B;
    --green:#1E5A45;      /* ledger green */
    --green-soft:#D7E6DC;
    --red:#B8372A;        /* the one red rule */
    --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
    --sans:"IBM Plex Sans",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
    --serif:"Newsreader",Georgia,"Times New Roman",serif;
    --lh:32px;
  }
  /* single light theme: beige paper always */
  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:var(--lh);
       padding-inline:clamp(16px,5vw,64px);padding-block:0 96px}
  a{color:var(--green)}
  a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:3px}
  .wrap{max-width:1080px;margin:0 auto}

  /* masthead */
  .mast{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;
        padding-block:20px;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
  .mast b{color:var(--ink);font-weight:500}
  .mast nav{display:flex;gap:22px;flex-wrap:wrap}
  .mast nav a{color:var(--ink-2);text-decoration:none}
  .mast nav a:hover{color:var(--green)}

  /* the entry, on ruled paper */
  .entry{position:relative;padding-block:56px 40px;
         background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--lh) - 1px),var(--rule) calc(var(--lh) - 1px),var(--rule) var(--lh));
         background-position:0 var(--lh)}
  .entry::before{content:"";position:absolute;left:-16px;top:0;bottom:0;width:1px;background:var(--red);opacity:.85}
  @media (min-width:900px){.entry::before{left:-28px}}
  .headword{font-family:var(--serif);font-style:italic;font-weight:400;font-variation-settings:"opsz" 72;
            font-size:clamp(64px,13vw,168px);line-height:.9;letter-spacing:-.02em;margin:0 0 24px;text-wrap:balance}
  .headword span{color:inherit}
  .gram{display:flex;gap:18px;flex-wrap:wrap;align-items:baseline;font-family:var(--mono);font-size:14px;color:var(--ink-2);margin:0 0 var(--lh)}
  .gram .pos{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--ink)}
  .senses{display:grid;grid-template-columns:1fr;gap:0 40px;max-width:72ch}
  .sense{display:grid;grid-template-columns:2.2em 1fr;gap:0 8px;margin:0}
  .sense .n{font-family:var(--mono);color:var(--green);font-size:14px;padding-top:2px}
  .sense p{margin:0 0 var(--lh)}
  .sense .ex{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--ink-2)}
  .derived{margin:calc(var(--lh)/2) 0 0;padding:0;list-style:none;max-width:72ch}
  .derived li{margin:0}
  .derived b{font-weight:600}
  .derived .pos{font-family:var(--serif);font-style:italic;color:var(--ink-2)}
  .origin{margin:var(--lh) 0 0;font-size:15px;color:var(--ink-2);max-width:72ch}

  /* sections */
  section{padding-block:72px 0}
  .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin:0 0 12px}
  h2{font-family:var(--serif);font-weight:500;font-variation-settings:"opsz" 48;font-size:clamp(32px,4.5vw,48px);line-height:1.05;letter-spacing:-.015em;margin:0 0 24px;text-wrap:balance;max-width:20ch}
  .lede{font-size:21px;line-height:1.5;max-width:60ch;margin:0 0 20px}
  p{max-width:65ch}
  .two{display:grid;grid-template-columns:1fr;gap:32px 64px}
  @media (min-width:860px){.two{grid-template-columns:5fr 7fr}}

  /* stages: a real sequence, hence the numbers */
  .stages{list-style:none;margin:0;padding:0;counter-reset:s;border-top:1px solid var(--rule)}
  .stages li{counter-increment:s;display:grid;grid-template-columns:56px 1fr;gap:0 16px;padding-block:22px;border-bottom:1px solid var(--rule)}
  @media (max-width:859px){.stages p,.stages .out{grid-column:1 / -1}}
  .stages li::before{content:"0" counter(s);font-family:var(--mono);font-size:14px;color:var(--green);padding-top:6px}
  .stages h3{font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.1;margin:0 0 6px}
  .stages p{margin:0;color:var(--ink-2)}
  .stages .out{display:block;margin-top:8px;font-family:var(--mono);font-size:13px;color:var(--ink)}
  .stages .out::before{content:"→ deliverable: ";color:var(--ink-2)}
  @media (min-width:860px){.stages li{grid-template-columns:56px 260px 1fr}.stages p{grid-column:3}.stages h3{grid-column:2}.stages .out{grid-column:3}}

  /* the ledger */
  .ledger{width:100%;border-collapse:collapse;font-size:16px;line-height:1.4;margin-top:8px}
  .ledger th{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;text-align:left;color:var(--ink-2);padding:10px 12px;border-bottom:2px solid var(--ink)}
  .ledger td{padding:14px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
  .ledger td:first-child{font-weight:600;white-space:nowrap}
  .ledger td.before{color:var(--ink-2)}
  .ledger td.after{color:var(--ink)}
  .ledger td.after::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:10px;vertical-align:middle}
  .tablewrap{overflow-x:auto}

  /* signs: a self-check the reader fills in */
  .signs{list-style:none;padding:0;margin:0;display:grid;gap:0}
  .signs li{border-bottom:1px solid var(--rule)}
  .signs li:first-child{border-top:1px solid var(--rule)}
  .signs label{display:grid;grid-template-columns:18px minmax(0,1fr);gap:0 16px;padding:14px 0;cursor:pointer}
  .signs input{appearance:none;-webkit-appearance:none;margin:7px 0 0;width:18px;height:18px;border:1.5px solid var(--green);
               border-radius:3px;background:transparent;position:relative;align-self:start;cursor:pointer}
  .signs input:checked{background:var(--green)}
  .signs input:checked::after{content:"";position:absolute;left:5px;top:1px;width:4px;height:9px;
                              border:solid var(--paper);border-width:0 2px 2px 0;transform:rotate(45deg)}
  .signs input:focus-visible{outline:2px solid var(--red);outline-offset:3px}
  .signs label span{color:var(--ink-2)}
  .signs input:checked + span{color:var(--ink)}
  .verdict{margin-top:22px;display:grid;gap:12px;justify-items:start}
  .meter{display:flex;gap:6px}
  .meter span{width:28px;height:9px;border:1px solid var(--rule);border-radius:1px;background:transparent;transition:background .15s ease}
  .meter span.on{background:var(--green);border-color:var(--green)}
  .tally{font-family:var(--mono);font-size:13px;color:var(--ink-2);margin:0}
  .call{margin:0;font-family:var(--serif);font-size:21px;line-height:1.3;max-width:36ch;text-wrap:balance}
  @media (prefers-reduced-motion:reduce){.meter span{transition:none}}

  /* not */
  .nots,.offer{display:grid;grid-template-columns:1fr;gap:24px 40px}
  @media (min-width:760px){.nots,.offer{grid-template-columns:repeat(3,1fr)}}
  .nots h3,.offer h3{font-family:var(--serif);font-weight:500;font-size:24px;margin:0 0 8px;line-height:1.15}
  .nots h3 s{text-decoration-color:var(--red);text-decoration-thickness:2px}
  .nots p,.offer p{margin:0;color:var(--ink-2);font-size:16px;line-height:1.5}
  .offer{margin-top:8px}
  .offer h3{color:var(--green)}

  /* cite */
  .cite{margin-top:96px;padding:40px clamp(20px,4vw,48px);background:var(--paper-2);border:1px solid var(--rule)}
  .cite h2{margin-bottom:12px}
  .cite blockquote{margin:24px 0;padding:20px 24px;background:var(--paper);border-left:3px solid var(--green);font-family:var(--serif);font-size:22px;line-height:1.35}
  .cite blockquote small{display:block;margin-top:10px;font-family:var(--mono);font-size:13px;color:var(--ink-2)}
  .cite .actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
  .btn{display:inline-block;padding:12px 20px;background:var(--green);color:var(--paper);text-decoration:none;font-weight:600;border-radius:2px}
  .btn:hover{filter:brightness(1.08)}
  .actions a.quiet{color:var(--ink-2)}

  footer{margin-top:56px;padding-top:20px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:13px;color:var(--ink-2)}
  @media (prefers-reduced-motion:no-preference){.headword{animation:ink .9s ease-out both}@keyframes ink{from{opacity:.001;transform:translateY(6px)}to{opacity:1;transform:none}}}

  /* ---------- multi-page additions ---------- */

  /* breadcrumbs */
  .crumbs{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);
          padding-block:24px 0;margin:0}
  .crumbs a{color:var(--ink-2);text-decoration:none}
  .crumbs a:hover{color:var(--green)}

  /* article pages */
  .doc{max-width:72ch;padding-block:40px 0}
  .doc h1{font-family:var(--serif);font-weight:500;font-size:clamp(34px,5.5vw,56px);line-height:1.02;letter-spacing:-.02em;
          margin:0 0 20px;text-wrap:balance}
  .doc .standfirst{font-size:21px;line-height:1.5;color:var(--ink-2);margin:0 0 8px;max-width:60ch}
  .doc .byline{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);
               margin:0;padding-block:16px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
  .doc h2{font-size:clamp(26px,3.4vw,34px);margin-top:56px;max-width:28ch}
  .doc h3{font-family:var(--serif);font-weight:500;font-size:23px;line-height:1.2;margin:36px 0 8px}
  .doc p{margin:0 0 var(--lh)}
  .doc ul,.doc ol{margin:0 0 var(--lh);padding-left:22px}
  .doc li{margin:0 0 6px}
  .doc li::marker{color:var(--green)}
  .doc strong{font-weight:600}
  .doc blockquote{margin:var(--lh) 0;padding:4px 0 4px 22px;border-left:3px solid var(--green);
                  font-family:var(--serif);font-size:21px;line-height:1.35;color:var(--ink)}

  /* table of contents */
  .toc{margin:0 0 var(--lh);padding:20px 24px;background:var(--paper-2);border:1px solid var(--rule)}
  .toc p{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:0 0 10px}
  .toc ol{margin:0;padding-left:20px}
  .toc li{margin:0 0 4px}

  /* callout */
  .note{margin:var(--lh) 0;padding:18px 22px;border:1px solid var(--rule);background:var(--paper-2)}
  .note p{margin:0}
  .note b{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);
          display:block;margin-bottom:6px;font-weight:500}

  /* card grid for hubs and next-reads */
  .cards{display:grid;grid-template-columns:1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);margin:0}
  @media (min-width:760px){.cards{grid-template-columns:repeat(2,1fr)}}
  .cards a{display:block;padding:22px 24px;background:var(--paper);text-decoration:none;color:inherit}
  .cards a:hover{background:var(--paper-2)}
  .cards h3{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.15;margin:0 0 6px;color:var(--ink)}
  .cards p{margin:0;color:var(--ink-2);font-size:16px;line-height:1.45;max-width:none}
  .cards .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);
                 display:block;margin-bottom:8px}

  /* the readiness assessment */
  .quiz{margin:0;padding:0;border-top:1px solid var(--rule)}
  .quiz fieldset{border:0;margin:0;padding:28px 0 24px;border-bottom:1px solid var(--rule)}
  .quiz legend{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);padding:0}
  .quiz .q{display:grid;grid-template-columns:18px minmax(0,1fr);gap:0 16px;padding:12px 0;cursor:pointer;align-items:start}
  .quiz input{appearance:none;-webkit-appearance:none;margin:7px 0 0;width:18px;height:18px;border:1.5px solid var(--green);
              border-radius:3px;background:transparent;position:relative;cursor:pointer}
  .quiz input:checked{background:var(--green)}
  .quiz input:checked::after{content:"";position:absolute;left:5px;top:1px;width:4px;height:9px;
                             border:solid var(--paper);border-width:0 2px 2px 0;transform:rotate(45deg)}
  .quiz input:focus-visible{outline:2px solid var(--red);outline-offset:3px}
  .quiz .q span{color:var(--ink-2)}
  .quiz input:checked + span{color:var(--ink)}
  .quiz .weight{font-family:var(--mono);font-size:11px;color:var(--green);margin-left:6px;white-space:nowrap}

  /* result panel */
  .result{position:static;margin-top:0;padding:22px 24px;background:var(--paper-2);border:1px solid var(--rule);
          display:grid;gap:12px;justify-items:start;z-index:2}
  .result.pinned{position:sticky;bottom:0}
  @media (max-width:759px){
    .result.pinned{padding:16px 18px;gap:10px}
    .result.pinned .band{font-size:19px}
    .result.pinned .detail{display:none}
  }
  .result .band{font-family:var(--serif);font-size:clamp(22px,3vw,28px);line-height:1.2;margin:0;max-width:40ch}
  .result .num{font-family:var(--mono);font-size:13px;color:var(--ink-2);margin:0}
  .result .bar{width:100%;max-width:420px;height:10px;border:1px solid var(--rule);background:var(--paper);position:relative;overflow:hidden}
  .result .bar i{display:block;height:100%;background:var(--green);width:0;transition:width .25s ease}
  .result .detail{margin:0;color:var(--ink-2);font-size:16px;line-height:1.5;max-width:60ch}
  @media (prefers-reduced-motion:reduce){.result .bar i{transition:none}}
  .actions-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
  .linkish{background:none;border:0;padding:0;font:inherit;color:var(--ink-2);text-decoration:underline;cursor:pointer}

  /* comparison / spec tables reuse .ledger, plus a plain variant */
  .plain{width:100%;border-collapse:collapse;font-size:16px;line-height:1.45;margin:0 0 var(--lh)}
  .plain th{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-align:left;
            color:var(--ink-2);padding:10px 12px 10px 0;border-bottom:2px solid var(--ink);vertical-align:bottom}
  .plain td{padding:12px 12px 12px 0;border-bottom:1px solid var(--rule);vertical-align:top}
  .plain td:first-child{font-weight:600}

  /* footer nav */
  .sitefoot{margin-top:72px;padding-top:24px;border-top:1px solid var(--rule);display:grid;gap:14px}
  .sitefoot nav{display:flex;gap:20px;flex-wrap:wrap;font-family:var(--mono);font-size:13px}
  .sitefoot nav a{color:var(--ink-2);text-decoration:none}
  .sitefoot nav a:hover{color:var(--green)}
  .sitefoot .fine{font-family:var(--mono);font-size:12px;color:var(--ink-2);margin:0;display:flex;gap:16px;flex-wrap:wrap}

  /* ---------- symbols, figures and diagrams ---------- */

  .monogram{width:19px;height:19px;vertical-align:-4px;margin-right:9px;flex:none}
  .figure{margin:calc(var(--lh)/2) 0 var(--lh)}
  .figcap{font-family:var(--mono);font-size:12px;color:var(--ink-2);margin:12px 0 0;line-height:1.55;max-width:70ch}
  .figcap b{color:var(--green);font-weight:500;text-transform:uppercase;letter-spacing:.08em;margin-right:8px}
  .markrule{display:flex;align-items:center;gap:16px;margin:56px 0 0}
  .markrule::before,.markrule::after{content:"";flex:1;height:1px;background:var(--rule)}
  .markrule span{font-family:var(--serif);font-size:17px;color:var(--green);line-height:1}

  /* the six-stage pipeline */
  .pipeline{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:pl}
  .pipeline li{counter-increment:pl;position:relative;padding:0 0 26px 48px;min-width:0}
  .pipeline li::before{content:counter(pl,decimal-leading-zero);position:absolute;left:0;top:0;width:30px;height:30px;
    border:1.5px solid var(--green);border-radius:50%;display:grid;place-items:center;background:var(--paper);
    font-family:var(--mono);font-size:12px;color:var(--green);z-index:1}
  .pipeline li::after{content:"";position:absolute;left:15px;top:32px;bottom:0;width:1px;background:var(--rule)}
  .pipeline li:last-child::after{display:none}
  .pipeline b{display:block;font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.15;margin:3px 0 5px}
  .pipeline em{display:block;font-style:normal;font-family:var(--mono);font-size:12px;color:var(--ink-2);line-height:1.5}
  @media (min-width:880px){
    .pipeline{grid-template-columns:repeat(6,1fr);gap:0 16px}
    .pipeline li{padding:44px 6px 0 0}
    .pipeline li::after{left:32px;right:-16px;top:15px;bottom:auto;width:auto;height:1px}
    .pipeline b{font-size:17px}
  }

  /* effort bars */
  .bars{list-style:none;margin:0;padding:0;display:grid;gap:12px}
  .bars li{display:grid;grid-template-columns:minmax(0,1fr);gap:5px}
  @media (min-width:640px){.bars li{grid-template-columns:168px minmax(0,1fr) 116px;gap:0 16px;align-items:center}}
  .bars .lab{font-size:15px}
  .bars .track{height:12px;background:var(--paper-2);border:1px solid var(--rule)}
  .bars .track i{display:block;height:100%;background:var(--green)}
  .bars .val{font-family:var(--mono);font-size:12px;color:var(--ink-2)}

  /* stacked layers (loading order) */
  .layers{display:grid;gap:10px;margin:0 0 var(--lh)}
  .layer{border:1px solid var(--rule);background:var(--paper-2);padding:14px 16px}
  .layer h4{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);
            margin:0 0 10px;font-weight:500}
  .chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
  .chips li{font-size:14px;line-height:1.3;background:var(--paper);border:1px solid var(--rule);padding:6px 10px}
  .chips li i{font-family:var(--mono);font-size:11px;color:var(--green);margin-right:7px;font-style:normal}

  /* decision fork */
  .fork{margin:0 0 var(--lh);display:grid;justify-items:center;gap:0}
  .fork .q{border:1.5px solid var(--ink);background:var(--paper);padding:14px 22px;text-align:center;max-width:48ch;
           font-family:var(--serif);font-size:19px;line-height:1.3}
  .fork .stem{width:1px;height:28px;background:var(--rule)}
  .fork .branches{display:grid;grid-template-columns:1fr;gap:16px;width:100%}
  @media (min-width:700px){.fork .branches{grid-template-columns:1fr 1fr;gap:24px}}
  .fork .branch{border:1px solid var(--rule);background:var(--paper-2);padding:18px 20px}
  .fork .branch .tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
                     color:var(--green);display:block;margin-bottom:8px}
  .fork .branch h4{margin:0 0 6px;font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.2}
  .fork .branch p{margin:0;font-size:15px;color:var(--ink-2);line-height:1.5;max-width:none}

  /* radar */
  .radar{width:100%;max-width:400px;height:auto;display:block;margin:0 auto}
  .radar .ring{fill:none;stroke:var(--rule)}
  .radar .ring.outer{stroke:var(--ink-2)}
  .radar .axis{stroke:var(--rule)}
  .radar .area{fill:var(--green);fill-opacity:.16;stroke:var(--green);stroke-width:2;stroke-linejoin:round;
               transition:d .25s ease}
  .radar .pt{fill:var(--green)}
  .radar text{font-family:var(--mono);font-size:9.5px;fill:var(--ink-2)}

  /* inline service icons */
  .ico{width:30px;height:30px;display:block;margin:0 0 12px;stroke:var(--green);fill:none;stroke-width:1.4;
       stroke-linecap:round;stroke-linejoin:round}
