  :root{
    --paper:#F7F8F5;
    --ink:#0F1B2D;
    --ink-soft:#3C4A5E;
    --rule:#C4CEDA;
    --red:#C0392B;
    --max:720px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation:none!important;transition:none!important}
  }
  body{
    background-color:var(--paper);
    color:var(--ink);
    font-family:'STIX Two Text', Georgia, serif;
    font-size:19px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

  .sheet{
    max-width:calc(var(--max) + 96px);
    margin:0 auto;
    padding:0 clamp(18px, 5vw, 28px);
    min-height:100vh;
    min-height:100svh;
    display:flex;
    flex-direction:column;
  }

  /* wordmark left, tabs right, both sitting on one baseline */
  header{
    max-width:var(--max);width:100%;margin:0 auto;padding:28px 0 0;
    display:flex;justify-content:space-between;align-items:baseline;
    flex-wrap:wrap;gap:8px 20px;
    font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.04em;
  }
  .wordmark{
    font-family:'STIX Two Text',Georgia,serif;font-size:26px;font-weight:600;
    color:var(--ink);letter-spacing:-.035em;line-height:1.15;
    font-kerning:normal;
  }
  .wordmark,.wordmark a{color:inherit;text-decoration:none}
  header nav{display:flex;flex-wrap:wrap;gap:4px 20px}
  header nav a{color:var(--ink-soft);text-decoration:none;position:relative}
  header nav a:hover{color:var(--ink)}
  header nav a[aria-current="page"]{color:var(--ink);border-bottom:1px solid var(--ink)}
  header nav a:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}
  /* enlarge the touch target without moving the baseline */
  header nav a::after{content:"";position:absolute;inset:-9px -6px}

  /* asymmetric padding seats the block above true centre, at the optical one */
  main{
    max-width:var(--max);width:100%;margin:0 auto;
    flex:1;display:flex;align-items:center;
    padding:clamp(40px, 8vh, 90px) 0 clamp(80px, 16vh, 170px);
  }
  .statement{--paragraph-gap:26px;width:100%;max-width:609px}
  .statement p{font-size:19px;color:var(--ink);margin:0 0 var(--paragraph-gap)}
  .statement p:last-child{margin-bottom:0}
  .statement .statement-intro{margin-bottom:var(--paragraph-gap)}
  .statement .statement-question{
    font-size:24px;font-weight:600;line-height:1.45;
    margin-bottom:var(--paragraph-gap);text-wrap:balance;
  }
  .statement-question b{font-weight:inherit}
  .statement-support{margin-top:36px}
  .statement-support p + p{margin-top:var(--paragraph-gap)}

  /* article pages: top-aligned, a title, mono section labels */
  main.page{align-items:flex-start;padding:clamp(40px, 8vh, 72px) 0 clamp(60px, 10vh, 120px)}
  .page h1{
    font-size:clamp(28px, 4.5vw, 36px);line-height:1.15;font-weight:400;
    letter-spacing:-.01em;max-width:16em;margin-bottom:28px;text-wrap:balance;
  }
  .page h2{
    font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:500;
    letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
    margin:44px 0 12px;
  }
  .page p{max-width:32em;margin-bottom:18px}
  .page a,.statement a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}
  .page a:hover,.statement a:hover{border-bottom-color:var(--ink)}
  .page a:focus-visible,.statement a:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}

  .job-description{font-size:18px}
  .page .job-description h1{font-size:26px}
  /* breathing room between the back link and the job title */
  .job-description h1{margin-top:32px}
  .job-description ul{max-width:32em;padding-left:1.2em;margin-bottom:18px}
  .job-description li{margin-bottom:12px}
  .job-description li:last-child{margin-bottom:0}
  .job-description .job-location{color:var(--ink-soft)}

  .page .lede{font-size:20px;color:var(--ink-soft);max-width:34em}
  .page .lede a{color:var(--ink)}
  .page .lede b{color:var(--ink);font-weight:600}
  .page section{padding-top:8px}
  .page section > p{color:var(--ink-soft);max-width:36em}
  .page section a{color:var(--ink)}

  /* hover/tap footnotes */
  .fn{position:relative;display:inline-block}
  .fnmark{
    font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;
    color:var(--red);background:none;border:none;padding:0 1px 0 2px;
    cursor:pointer;vertical-align:super;line-height:1;
    position:relative;touch-action:manipulation;
  }
  .fnmark:hover{color:var(--ink)}
  /* enlarge the touch target without moving the baseline */
  .fnmark::after{content:"";position:absolute;inset:-9px -8px}
  .fncard{
    position:absolute;z-index:20;left:-8px;top:calc(100% + 9px);
    width:min(370px, calc(100vw - 56px));
    background:#FCFDFB;border:1px solid var(--rule);
    box-shadow:0 6px 22px rgba(15,27,45,.13);
    padding:14px 17px 15px;
    font-size:15.5px;line-height:1.5;color:var(--ink-soft);text-align:left;
    opacity:0;visibility:hidden;transform:translateY(-3px);
    transition:opacity .13s ease, transform .13s ease, visibility .13s;
  }
  .fn:focus-within .fncard, .fn.open .fncard{opacity:1;visibility:visible;transform:none}
  @media (hover:hover) and (pointer:fine){
    .fn:hover .fncard{opacity:1;visibility:visible;transform:none}
  }
  /* bridges the gap between mark and card so the pointer can travel to it */
  .fncard::before{content:"";position:absolute;left:0;right:0;top:-9px;height:9px}
  .fnhead{
    display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;
    letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:9px;
  }
  .fnrow{display:block;padding:7px 0;border-top:1px dashed var(--rule)}
  .fnrow:first-of-type{border-top:none;padding-top:0}
  /* Narrow or short viewports can't fit an anchored card beside its mark, so
     the card becomes a sheet pinned to the viewport instead. */
  @media (max-width:640px), (max-height:520px) and (max-width:1000px){
    .fncard{
      position:fixed;left:14px;right:14px;top:auto;bottom:14px;
      width:auto;max-width:460px;margin-inline:auto;
      max-height:min(70vh, 520px);overflow-y:auto;overscroll-behavior:contain;
      transform:translateY(8px);
      box-shadow:0 10px 34px rgba(15,27,45,.22);
      padding:16px 18px 17px;
    }
    .fncard::before{display:none}
  }

  /* the three-step method */
  ol.method{list-style:none;counter-reset:step;margin-bottom:18px}
  ol.method li{
    counter-increment:step;
    padding:26px 0;border-top:1px solid var(--rule);
    display:grid;grid-template-columns:120px 1fr;gap:18px;
  }
  ol.method li:last-child{border-bottom:1px solid var(--rule)}
  ol.method .verb{
    font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:500;
    letter-spacing:.1em;text-transform:uppercase;color:var(--ink);
    padding-top:5px;
  }
  ol.method .verb::before{
    content:counter(step,decimal-leading-zero);
    display:block;color:var(--red);font-size:11.5px;margin-bottom:2px;
  }
  ol.method p{color:var(--ink-soft);font-size:18px;margin:0;max-width:none}
  ol.method p b{color:var(--ink);font-weight:600}

  ul.commit{list-style:none;max-width:37em;margin-bottom:18px}
  ul.commit li{
    padding:13px 0 13px 30px;position:relative;color:var(--ink);
    border-top:1px dashed var(--rule);font-size:18.5px;
  }
  ul.commit li:last-child{border-bottom:1px dashed var(--rule)}
  ul.commit li::before{
    content:"✓";position:absolute;left:2px;top:13px;
    color:var(--red);font-family:'IBM Plex Mono',monospace;font-weight:500;
  }

  footer{
    max-width:var(--max);width:100%;margin:0 auto;
    padding:26px 0 clamp(32px, 6vh, 48px);
    border-top:1px solid var(--rule);
    font-size:18px;
    display:flex;justify-content:space-between;align-items:baseline;
    flex-wrap:wrap;gap:8px 20px;
  }
  footer .copyright{
    margin-left:auto;
    font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.04em;
    color:var(--ink-soft);white-space:nowrap;
  }
  footer a{
    color:var(--ink);text-decoration:none;
    border-bottom:1px solid var(--rule);position:relative;
  }
  footer a:hover{border-bottom-color:var(--ink)}
  footer a:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}
  footer a::after{content:"";position:absolute;inset:-10px -6px}

  @media (max-width:480px){
    body{font-size:18px}
    .statement{--paragraph-gap:22px}
    .statement p{font-size:18px}
    .statement .statement-question{font-size:22px}
    footer{font-size:18px}
    .page .lede{font-size:19px}
    ol.method p{font-size:17px}
    ul.commit li{font-size:17.5px;padding-left:26px}
  }
  @media(max-width:560px){
    ol.method li{grid-template-columns:1fr;gap:8px}
  }
