  :root{
    --paper:oklch(96.5% 0.009 85);
    --paper-2:oklch(93.2% 0.013 85);
    --rule:oklch(86% 0.014 80);
    --ink:oklch(21% 0.014 55);
    --ink-2:oklch(46% 0.013 58);
    --red:oklch(47% 0.175 27);
    --red-wash:oklch(94% 0.032 30);
    --green:oklch(41% 0.098 152);
    --amber:oklch(52% 0.125 68);
    --amber-wash:oklch(94.5% 0.045 80);
    --sans:'Archivo',ui-sans-serif,sans-serif;
    --serif:'Newsreader',Georgia,serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{-webkit-text-size-adjust:100%}
  body{
    background:var(--paper);color:var(--ink);font-family:var(--sans);
    line-height:1.5;-webkit-font-smoothing:antialiased;
    font-variant-numeric:tabular-nums;
  }
  .sheet{max-width:52rem;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}

  /* ---- masthead: a document header, not a hero ---- */
  header{border-bottom:2px solid var(--ink);padding:clamp(1.25rem,4vw,2rem) 0 .75rem;margin-bottom:clamp(1.5rem,5vw,2.75rem)}
  .doc-meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;
    font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);font-weight:600}
  h1{font-size:clamp(1.9rem,7vw,3.1rem);line-height:1.02;letter-spacing:-.028em;font-weight:800;
    margin:.5rem 0 .4rem;max-width:16ch}
  .standfirst{font-family:var(--serif);font-size:clamp(1rem,2.6vw,1.16rem);color:var(--ink-2);max-width:46ch;line-height:1.45}

  /* ---- worksheet ---- */
  .worksheet{margin-bottom:clamp(1.5rem,5vw,2.5rem)}
  .legend{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
    color:var(--ink-2);padding-bottom:.4rem;border-bottom:1px solid var(--rule);margin-bottom:1rem}
  .fields{display:grid;gap:.9rem 1.1rem;grid-template-columns:1fr}
  @media(min-width:34rem){.fields{grid-template-columns:1fr 1fr}}
  .field{display:flex;flex-direction:column;gap:.3rem;min-width:0}
  .field.wide{grid-column:1/-1}
  label{font-size:.78rem;font-weight:600;letter-spacing:.01em}
  .hint{font-size:.72rem;color:var(--ink-2);font-family:var(--serif);line-height:1.35}
  input,select{
    font:inherit;font-size:1rem;font-variant-numeric:tabular-nums;
    background:oklch(99% 0.004 85);color:var(--ink);
    border:1px solid var(--rule);border-bottom-width:2px;border-radius:2px;
    padding:.55rem .6rem;width:100%;transition:border-color .12s,background .12s;
  }
  input:focus,select:focus{outline:none;border-color:var(--ink);background:#fff}
  input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:var(--red);border-bottom-width:1px}
  .check{flex-direction:row;align-items:flex-start;gap:.55rem}
  .check label{font-weight:500;font-size:.82rem;line-height:1.35}
  .hidden{display:none !important}

  /* ---- readout ---- */
  .readout{border:2px solid var(--ink);background:oklch(99% 0.004 85);padding:clamp(1.1rem,4vw,1.7rem);margin-bottom:1.5rem}
  .verdict{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-2);margin-bottom:.15rem}
  .big{font-size:clamp(3.4rem,17vw,7rem);line-height:.86;letter-spacing:-.045em;font-weight:800;
    font-variant-numeric:tabular-nums;word-break:break-all}
  .big.safe{color:var(--ink)} .big.warn{color:var(--amber)} .big.danger{color:var(--red)}
  .consequence{font-family:var(--serif);font-size:1rem;line-height:1.45;margin-top:.7rem;max-width:52ch;color:var(--ink-2)}
  .consequence strong{color:var(--ink);font-weight:500}

  .pair{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);
    border-top:1px solid var(--rule);margin-top:1.2rem}
  .pair>div{background:oklch(99% 0.004 85);padding:.85rem .2rem .1rem 0}
  .pair>div:last-child{padding-left:.9rem}
  .pk{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-weight:700}
  .pv{font-size:clamp(1.35rem,5vw,1.85rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-top:.15rem}
  .pv.binds{color:var(--red)}
  .pn{font-size:.72rem;color:var(--ink-2);font-family:var(--serif);line-height:1.35;margin-top:.15rem}

  /* ---- prose ---- */
  .teach{margin-bottom:1.5rem}
  .teach p{font-family:var(--serif);font-size:clamp(1rem,2.5vw,1.09rem);line-height:1.6;
    max-width:60ch;margin-bottom:.85rem;color:oklch(28% 0.014 55)}
  .teach p:first-child{border-left:3px solid var(--red);padding-left:1rem;margin-left:-.1rem}

  /* ---- registers ---- */
  .register{border:1px solid;padding:.85rem 1rem;margin-bottom:.7rem;font-size:.9rem;line-height:1.5}
  .register.warn{border-color:var(--amber);background:var(--amber-wash);color:oklch(32% 0.07 68)}
  .register.note{border-color:var(--rule);background:var(--paper-2);color:var(--ink-2)}
  .register .rk{display:block;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:.25rem}
  .register p{font-family:var(--serif)}
  .register a{color:inherit}

  /* ---- sources ---- */
  details{border-top:1px solid var(--rule);padding-top:.9rem;margin-top:1.75rem}
  summary{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;
    color:var(--ink-2);cursor:pointer;list-style:none}
  summary::-webkit-details-marker{display:none}
  summary::before{content:"+ ";font-weight:800}
  details[open] summary::before{content:"– "}
  .spec{margin-top:1rem;font-size:.85rem}
  .spec div{display:flex;justify-content:space-between;gap:1.5rem;padding:.42rem 0;border-bottom:1px dotted var(--rule)}
  .spec dt{color:var(--ink-2);flex-shrink:0}
  .spec dd{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
  .srcs{margin-top:.9rem;font-size:.78rem;line-height:1.6;word-break:break-word}
  .srcs a{color:var(--ink-2);display:block;margin-bottom:.15rem}

  /* ---- offer ---- */
  .offer{border:2px solid var(--ink);background:var(--ink);color:var(--paper);
    padding:clamp(1.2rem,4vw,1.9rem);margin:2.5rem 0 1rem}
  .offer h2{font-size:clamp(1.3rem,4.5vw,1.75rem);letter-spacing:-.025em;line-height:1.15;margin-bottom:.55rem;font-weight:800}
  .offer p{font-family:var(--serif);font-size:1rem;line-height:1.5;color:oklch(84% 0.012 80);max-width:50ch;margin-bottom:1.1rem}
  .cta{display:inline-block;background:var(--paper);color:var(--ink);text-decoration:none;
    font-weight:700;font-size:1rem;padding:.8rem 1.5rem;border-radius:2px;letter-spacing:-.01em;
    transition:transform .14s cubic-bezier(.22,1,.36,1)}
  .cta:hover{transform:translateY(-2px)}
  .terms{font-size:.75rem;color:oklch(70% 0.012 80);margin-top:.8rem;font-family:var(--serif)}

  footer{border-top:1px solid var(--rule);margin-top:2rem;padding:1.25rem 0 3rem;
    font-size:.75rem;color:var(--ink-2);line-height:1.6;font-family:var(--serif)}
  @media (prefers-reduced-motion:reduce){*{transition:none !important}}

/* ---- article pages ---- */
.crumb{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-2)}
.crumb a{color:var(--ink-2)}
article h2{font-size:clamp(1.35rem,4.5vw,1.9rem);letter-spacing:-.025em;line-height:1.15;
  font-weight:800;margin:2.25rem 0 .75rem;max-width:24ch}
article h3{font-size:1.05rem;font-weight:700;margin:1.5rem 0 .45rem;letter-spacing:-.01em}
article p{font-family:var(--serif);font-size:clamp(1rem,2.5vw,1.09rem);line-height:1.62;
  max-width:62ch;margin-bottom:.9rem;color:oklch(28% 0.014 55)}
article p strong{font-weight:500;color:var(--ink)}
article ul{list-style:none;max-width:62ch;margin:0 0 1rem}
article li{font-family:var(--serif);font-size:1.02rem;line-height:1.55;padding:.3rem 0 .3rem 1.3rem;
  position:relative;color:oklch(28% 0.014 55)}
article li:before{content:"—";position:absolute;left:0;color:var(--red);font-family:var(--sans)}
.pull{border-left:3px solid var(--red);padding:.1rem 0 .1rem 1rem;margin:1.5rem 0}
.pull p{font-size:clamp(1.08rem,3vw,1.24rem);line-height:1.45;color:var(--ink);margin:0}
.ledger{margin:1.25rem 0;font-size:.9rem;border-top:2px solid var(--ink)}
.ledger .row{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.55rem 0;
  border-bottom:1px solid var(--rule);align-items:baseline}
.ledger .row .k{font-weight:600}
.ledger .row .k small{display:block;font-weight:400;font-family:var(--serif);color:var(--ink-2);font-size:.85rem;line-height:1.35;margin-top:.1rem}
.ledger .row .v{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.ledger .row .v.bad{color:var(--red)}
.ledger .row .v.good{color:var(--green)}
.inline-cta{display:block;border:2px solid var(--ink);padding:1.1rem 1.25rem;margin:2rem 0;
  text-decoration:none;color:inherit;transition:background .14s}
.inline-cta:hover{background:var(--paper-2)}
.inline-cta strong{display:block;font-size:1.1rem;letter-spacing:-.02em;margin-bottom:.2rem}
.inline-cta span{font-family:var(--serif);color:var(--ink-2);font-size:.95rem;line-height:1.4}

/* ---- site nav: every page reaches every other page ---- */
.sitenav{display:flex;flex-wrap:wrap;gap:.15rem 1.1rem;padding:.85rem 0 0;
  font-size:.74rem;letter-spacing:.04em;font-weight:600}
.sitenav a{color:var(--ink-2);text-decoration:none;padding:.2rem 0;border-bottom:1px solid transparent}
.sitenav a:hover{color:var(--ink);border-bottom-color:var(--red)}
