:root {
    --paper:        #FBF9F4;
    --paper-raised: #FFFFFF;
    --paper-warm:   #F4F0E6;
    --ink:          #1B2420;
    --ink-soft:     #4E5A54;
    --ink-faint:    #86918B;
    --rule:         #E5E0D3;
    --rule-soft:    #EFEBE0;
    --accent:       #26584A;
    --accent-hover: #34755F;
    --accent-soft:  #E3EDE7;
    --amber:        #B87A2E;
    --amber-soft:   #F8EDDB;
    --rose:         #B0604B;
    --shadow-sm:    0 1px 2px rgba(27,36,32,.05), 0 6px 16px -12px rgba(27,36,32,.25);
    --shadow-lg:    0 2px 6px rgba(27,36,32,.06), 0 24px 48px -32px rgba(27,36,32,.4);

    --measure: 62ch;
    --s--1: clamp(.81rem, .79rem + .1vw, .87rem);
    --s-0:  clamp(1.02rem, .99rem + .16vw, 1.12rem);
    --s-1:  clamp(1.22rem, 1.14rem + .34vw, 1.44rem);
    --s-2:  clamp(1.5rem, 1.35rem + .66vw, 1.98rem);
    --s-3:  clamp(1.9rem, 1.62rem + 1.18vw, 2.85rem);
    --s-4:  clamp(2.5rem, 1.9rem + 2.6vw, 4.4rem);
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --paper:        #141917;
      --paper-raised: #1C2320;
      --paper-warm:   #232B27;
      --ink:          #ECEFEA;
      --ink-soft:     #AAB5AE;
      --ink-faint:    #7D8880;
      --rule:         #2E3733;
      --rule-soft:    #262E2A;
      --accent:       #6FBB9B;
      --accent-hover: #8ED0B4;
      --accent-soft:  #1E2C26;
      --amber:        #DDA55E;
      --amber-soft:   #2B2318;
      --rose:         #CE8571;
      --shadow-sm:    0 1px 2px rgba(0,0,0,.4), 0 6px 16px -12px rgba(0,0,0,.7);
      --shadow-lg:    0 2px 6px rgba(0,0,0,.45), 0 24px 48px -32px rgba(0,0,0,.9);
      color-scheme: dark;
    }
  }
  :root[data-theme="dark"] {
    --paper:        #141917;
    --paper-raised: #1C2320;
    --paper-warm:   #232B27;
    --ink:          #ECEFEA;
    --ink-soft:     #AAB5AE;
    --ink-faint:    #7D8880;
    --rule:         #2E3733;
    --rule-soft:    #262E2A;
    --accent:       #6FBB9B;
    --accent-hover: #8ED0B4;
    --accent-soft:  #1E2C26;
    --amber:        #DDA55E;
    --amber-soft:   #2B2318;
    --rose:         #CE8571;
    --shadow-sm:    0 1px 2px rgba(0,0,0,.4), 0 6px 16px -12px rgba(0,0,0,.7);
    --shadow-lg:    0 2px 6px rgba(0,0,0,.45), 0 24px 48px -32px rgba(0,0,0,.9);
    color-scheme: dark;
  }

  *, *::before, *::after { box-sizing: border-box; }
  body {
    margin: 0; background: var(--paper); color: var(--ink);
    font-family: Karla, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: var(--s-0); line-height: 1.62; -webkit-font-smoothing: antialiased;
  }
  :focus-visible { outline: 2.5px solid var(--accent); outline-offset: 3px; border-radius: 3px; }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
  }
  .wrap { width: min(100% - 2.5rem, 70rem); margin-inline: auto; }

  h1, h2, h3 {
    font-family: Archivo, "Helvetica Neue", Arial, sans-serif;
    font-weight: 600; line-height: 1.08; text-wrap: balance; margin: 0;
    letter-spacing: -.018em;
  }
  p { margin: 0; }
  .eyebrow {
    font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
    font-size: var(--s--1); letter-spacing: .11em; text-transform: uppercase;
    color: var(--accent); margin: 0;
  }

  /* ============ MASTHEAD ============ */
  .masthead { position: absolute; inset: 0 0 auto; z-index: 30; }
  .masthead__inner { display: flex; align-items: center; gap: 1.4rem; padding-block: 1.35rem; }
  .wordmark {
    font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-weight: 700;
    font-size: 1.32rem; color: #FBF6EC; text-decoration: none; letter-spacing: -.02em;
    text-shadow: 0 1px 12px rgba(12,22,32,.55);
  }
  .wordmark span { color: #F4C883; }
  .masthead__tag {
    margin-left: auto; font-size: var(--s--1); color: rgba(251,246,236,.82);
    text-shadow: 0 1px 10px rgba(12,22,32,.6);
  }
  @media (max-width: 46rem) { .masthead__tag { display: none; } }

  /* ============ HERO ============ */
  .hero { position: relative; isolation: isolate; }
  .hero__art { display: block; width: 100%; height: clamp(25rem, 50vw, 37rem); }
  .hero__copy {
    position: relative; margin-top: clamp(-5rem, -7vw, -3.25rem);
    padding-bottom: clamp(2.5rem, 5vw, 4rem);
  }
  .hero__card {
    background: var(--paper-raised); border-radius: 6px; box-shadow: var(--shadow-lg);
    padding: clamp(1.75rem, 4vw, 3.1rem);
    max-width: 46rem; border: 1px solid var(--rule-soft);
  }
  .hero__card h1 { font-size: var(--s-4); margin-bottom: 1.1rem; }
  .hero__card h1 em { font-style: normal; color: var(--accent); }
  .hero__lede { font-size: var(--s-1); color: var(--ink-soft); line-height: 1.52; max-width: 40ch; }

  .search { margin-top: 1.9rem; }
  .search__field {
    display: flex; align-items: center; gap: .75rem; background: var(--paper-warm);
    border: 1.5px solid var(--rule); border-radius: 100px; padding: .15rem 1.25rem;
    max-width: 30rem; transition: border-color .16s ease, background .16s ease;
  }
  .search__field:focus-within { border-color: var(--accent); background: var(--paper-raised); }
  .search__field svg { flex: none; color: var(--ink-faint); }
  .search input { flex: 1; border: 0; background: none; color: var(--ink); font: inherit; padding: .78rem 0; }
  .search input::placeholder { color: var(--ink-faint); }
  .search__note {
    font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: var(--s--1);
    color: var(--ink-faint); margin-top: .65rem;
  }

  /* ============ SECTIONS ============ */
  .section { padding-block: clamp(3rem, 7vw, 5rem); }
  .section--warm { background: var(--paper-warm); }
  .section__head { margin-bottom: 2.4rem; max-width: var(--measure); }
  .section__head h2 { font-size: var(--s-3); margin-block: .55rem .75rem; }
  .section__head p { color: var(--ink-soft); }

  /* ============ STAGES ============ */
  .stages { display: grid; gap: 1rem; }
  @media (min-width: 38rem) { .stages { grid-template-columns: repeat(2, 1fr); } }
  @media (min-width: 60rem) { .stages { grid-template-columns: repeat(4, 1fr); } }
  .stage {
    background: var(--paper-raised); border: 1px solid var(--rule); border-radius: 5px;
    padding: 1.3rem 1.25rem 1.4rem; text-decoration: none; color: inherit;
    display: flex; flex-direction: column; gap: .5rem;
    box-shadow: var(--shadow-sm);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .stage:hover, .stage:focus-visible {
    transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: var(--accent);
  }
  .stage__spot { color: var(--accent); margin-bottom: .15rem; }
  .stage__n {
    font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .72rem;
    letter-spacing: .1em; color: var(--amber); font-variant-numeric: tabular-nums;
  }
  .stage__name { font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-1); font-weight: 600; line-height: 1.15; }
  .stage__time {
    font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: var(--s--1);
    color: var(--ink-faint);
  }
  .stage__body { font-size: var(--s--1); color: var(--ink-soft); line-height: 1.55; }

  /* ============ DECODER ============ */
  .decoder { display: grid; gap: 1.1rem; }
  @media (min-width: 54rem) { .decoder { grid-template-columns: repeat(2, 1fr); } }
  .entry {
    background: var(--paper-raised); border: 1px solid var(--rule); border-radius: 5px;
    padding: 1.5rem 1.5rem 1.6rem; box-shadow: var(--shadow-sm);
    display: flex; flex-direction: column; gap: .9rem;
  }
  .entry__said {
    font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-style: italic;
    font-size: var(--s-2); line-height: 1.24; color: var(--ink);
  }
  .entry__who {
    display: inline-flex; align-items: center; gap: .45rem; align-self: flex-start;
    font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .68rem;
    letter-spacing: .09em; text-transform: uppercase;
    color: var(--rose); background: var(--amber-soft);
    padding: .28rem .6rem; border-radius: 100px;
  }
  .entry__means { color: var(--ink-soft); font-size: var(--s--1); line-height: 1.62; }
  .entry__means strong { color: var(--ink); font-weight: 700; }

  /* ============ RATINGS ============ */
  .ratings { display: grid; gap: .9rem; margin-top: 2rem; }
  @media (min-width: 44rem) { .ratings { grid-template-columns: repeat(3, 1fr); } }
  .rating {
    display: flex; gap: .8rem; align-items: flex-start; font-size: var(--s--1);
    line-height: 1.5; color: var(--ink-soft);
    background: var(--paper-raised); border: 1px solid var(--rule);
    border-radius: 5px; padding: .95rem 1.05rem;
  }
  .rating__dot {
    flex: none; width: 1.7rem; height: 1.7rem; border-radius: 50%; display: grid;
    place-items: center; font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: .82rem; font-weight: 500; color: #fff;
  }
  .r1 { background: #3F7D5C; } .r2 { background: #C08A2E; } .r3 { background: #AB4433; }
  .rating b { color: var(--ink); font-weight: 700; }

  /* ============ CONSENSUS ============ */
  .consensus { display: grid; gap: 1rem; }
  @media (min-width: 44rem) { .consensus { grid-template-columns: repeat(2, 1fr); } }
  @media (min-width: 66rem) { .consensus { grid-template-columns: repeat(3, 1fr); } }
  .claim {
    background: var(--paper-raised); border: 1px solid var(--rule); border-radius: 5px;
    padding: 1.4rem; box-shadow: var(--shadow-sm);
    display: flex; flex-direction: column; gap: .75rem;
  }
  .claim__n {
    font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: 2.5rem; font-weight: 700;
    color: var(--accent); line-height: .9; font-variant-numeric: tabular-nums;
  }
  .claim__n span {
    font-family: Karla, sans-serif; font-size: .8rem; font-weight: 600; color: var(--ink-faint);
    letter-spacing: .04em; margin-left: .45rem; text-transform: uppercase;
  }
  .claim__text { font-size: var(--s--1); line-height: 1.58; color: var(--ink-soft); }
  .claim__stage {
    align-self: flex-start; font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: .66rem; letter-spacing: .09em; text-transform: uppercase;
    color: var(--accent); background: var(--accent-soft); padding: .25rem .58rem; border-radius: 100px;
  }

  /* ============ DISPUTES ============ */
  .split { display: grid; gap: 1.1rem; }
  @media (min-width: 50rem) { .split { grid-template-columns: repeat(3, 1fr); } }
  .dispute {
    background: var(--paper-raised); border: 1px solid var(--rule);
    border-top: 3px solid var(--amber); border-radius: 5px; padding: 1.4rem;
  }
  .dispute h3 { font-size: var(--s-1); margin-bottom: 1rem; }
  .dispute__side { font-size: var(--s--1); line-height: 1.55; color: var(--ink-soft); }
  .dispute__side + .dispute__side { margin-top: .85rem; padding-top: .85rem; border-top: 1px dashed var(--rule); }
  .dispute__side b {
    display: block; margin-bottom: .18rem; font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; color: var(--amber); font-weight: 500;
  }

  /* ============ PROVENANCE ============ */
  .prov { display: grid; gap: 2rem; align-items: start; }
  @media (min-width: 54rem) { .prov { grid-template-columns: 1.25fr 1fr; gap: 3rem; } }
  .prov p { color: var(--ink-soft); }
  .prov p + p { margin-top: .9rem; }
  .prov__stats {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
    background: var(--rule); border: 1px solid var(--rule); border-radius: 5px; overflow: hidden;
  }
  .prov__stat { background: var(--paper-raised); padding: 1.1rem 1.2rem; }
  .prov__stat b {
    display: block; font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: 1.65rem;
    font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums; line-height: 1;
  }
  .prov__stat span {
    font-size: .7rem; color: var(--ink-faint); letter-spacing: .07em;
    text-transform: uppercase; font-family: "IBM Plex Mono", monospace;
  }
  .flag {
    display: inline-block; margin-bottom: 1.1rem; font-family: "IBM Plex Mono", monospace;
    font-size: var(--s--1); color: var(--amber); background: var(--amber-soft);
    border-radius: 100px; padding: .32rem .8rem;
  }

  .site-footer { padding-block: clamp(2.6rem, 6vw, 4.2rem); background: var(--ink-deep); color: var(--on-deep); }
  .site-footer__inner { display: grid; gap: 2rem; }
  .site-footer__intro { max-width: 38rem; }
  .site-footer__brand {
    display: inline-block; color: var(--on-deep); font-family: Archivo, "Helvetica Neue", Arial, sans-serif;
    font-size: var(--s-1); font-weight: 700; line-height: 1.2; text-decoration: none;
  }
  .site-footer__intro p { margin-top: .75rem; color: var(--on-deep-dim); font-size: var(--s--1); line-height: 1.55; }
  .site-footer__links { display: flex; align-items: flex-start; gap: .7rem 1.5rem; flex-wrap: wrap; }
  .site-footer__links a,
  .site-footer__links button {
    color: var(--on-deep); font-weight: 700; text-decoration: underline;
    text-decoration-thickness: 1px; text-underline-offset: .2em;
  }
  .site-footer__links button {
    appearance: none; padding: 0; border: 0; background: none; font: inherit; cursor: pointer;
  }
  .site-footer__brand:hover, .site-footer__brand:focus-visible,
  .site-footer__links a:hover, .site-footer__links a:focus-visible,
  .site-footer__links button:hover, .site-footer__links button:focus-visible { color: #FFFFFF; }
  @media (min-width: 48rem) {
    .site-footer__inner { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 4rem; }
  }

  .is-hidden { display: none !important; }

  /* ============ COOKIE CHOICES ============ */
  .cookie-banner {
    position: fixed; inset: auto 0 0; z-index: 100;
    padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));
    background: var(--ink-deep); color: var(--on-deep);
    border-top: 1px solid rgba(255,255,255,.22);
    box-shadow: 0 -16px 44px rgba(5,13,54,.2);
  }
  .cookie-banner[hidden] { display: none; }
  .cookie-banner__inner {
    width: min(100%, 70rem); margin-inline: auto; display: grid; gap: 1.1rem;
    align-items: center;
  }
  .cookie-banner__copy { max-width: 50rem; }
  .cookie-banner h2 {
    color: var(--on-deep); font-size: var(--s-1); line-height: 1.2; margin-bottom: .45rem;
  }
  .cookie-banner p { color: var(--on-deep-dim); font-size: var(--s--1); line-height: 1.5; }
  .cookie-banner a { color: var(--on-deep); font-weight: 700; text-underline-offset: .16em; }
  .cookie-banner__actions { display: flex; gap: .7rem; flex-wrap: wrap; }
  .cookie-choice {
    min-height: 2.75rem; padding: .68rem 1rem; border: 1px solid transparent;
    border-radius: 4px; font: inherit; font-size: var(--s--1); font-weight: 700;
    line-height: 1.2; cursor: pointer;
  }
  .cookie-choice--reject { background: var(--on-deep); color: var(--ink-deep); }
  .cookie-choice--accept { background: var(--accent); color: #FFFFFF; }
  .cookie-choice:hover { filter: brightness(.96); }
  @media (min-width: 56rem) {
    .cookie-banner__inner { grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; }
    .cookie-banner__actions { flex-wrap: nowrap; }
  }
  @media (max-width: 30rem) {
    .cookie-banner__actions { display: grid; }
  }

  /* lights coming on at dusk */
  @keyframes glow { from { opacity: 0; } to { opacity: 1; } }
  .lit { animation: glow .9s ease-out both; }

/* ============ ARTICLE PAGES ============ */
.artcl { padding-block: clamp(2.5rem, 6vw, 4rem) clamp(3rem, 7vw, 5rem); }
.artcl__head { max-width: 42rem; margin-bottom: clamp(2rem, 5vw, 3rem); }
.artcl__head h1 { font-size: var(--s-4); margin-block: .6rem 1rem; }
.artcl__stand { font-size: var(--s-1); color: var(--ink-soft); line-height: 1.5; max-width: 44ch; }
.artcl__body { max-width: 40rem; }
.artcl__body > * + * { margin-top: 1.15rem; }
.artcl__body p { color: var(--ink-soft); }
.artcl__body h2 {
  font-size: var(--s-2); margin-top: clamp(2.4rem, 5vw, 3.2rem); color: var(--ink);
  padding-top: 1.4rem; border-top: 1px solid var(--rule);
}
.artcl__body h2 + p { margin-top: .9rem; }
.artcl__body strong { color: var(--ink); font-weight: 700; }
.artcl__body em { font-style: italic; }
.pull {
  border-left: 3px solid var(--accent); padding: .2rem 0 .2rem 1.15rem;
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-1); line-height: 1.35; color: var(--ink);
}
.aside {
  background: var(--paper-warm); border: 1px solid var(--rule); border-radius: 5px;
  padding: 1.7rem 1.35rem 1.2rem; margin-top: 2.25rem;
  font-size: var(--s--1); line-height: 1.6;
}
.aside > b:first-child {
  display: table; width: fit-content; max-width: calc(100% - .75rem);
  margin: -2.55rem 0 1.05rem -.35rem; padding: .42rem .9rem .48rem;
  background: var(--rose); color: var(--paper-raised); border-radius: 4px;
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif;
  font-size: var(--s-1); font-weight: 600; line-height: 1.2;
  letter-spacing: -.015em; text-transform: none;
}
.aside p { color: var(--ink-soft); margin: 0; }
.aside p + p { margin-top: .6rem; }
.aside a {
  color: var(--accent); font-weight: 700; text-decoration: underline;
  text-decoration-thickness: 1px; text-underline-offset: .16em;
}
.aside a:hover, .aside a:focus-visible { color: var(--accent-hover); }
.todo { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.todo li {
  background: var(--paper-raised); border: 1px solid var(--rule); border-radius: 5px;
  padding: .9rem 1.1rem .95rem 2.6rem; position: relative; font-size: var(--s--1);
  line-height: 1.55; color: var(--ink-soft);
}
.todo li::before {
  content: ""; position: absolute; left: 1.1rem; top: 1.25rem;
  width: .5rem; height: .5rem; border-radius: 50%; background: var(--accent);
}
.todo li b { color: var(--ink); font-weight: 700; }
.checklist {
  margin-top: clamp(3.5rem, 7vw, 5rem); padding: clamp(1.7rem, 4vw, 2.4rem);
  background: var(--ink-deep); color: var(--on-deep); border-radius: 5px;
}
.artcl__body .checklist h2 {
  margin: 0 0 1.6rem; padding: 0; border: 0; color: var(--on-deep);
}
.checklist .todo { gap: 1.15rem; }
.checklist .todo li {
  background: none; border: 0; border-radius: 0; padding: .05rem 0 .05rem 1.75rem;
  color: var(--on-deep-dim); font-size: var(--s-0); line-height: 1.55;
}
.checklist .todo li::before {
  left: 0; top: .68rem; width: .55rem; height: .55rem; background: var(--rose);
  box-shadow: 0 0 0 3px rgba(255,255,255,.1);
}
.checklist .todo li b { color: var(--on-deep); }
.evidence {
  margin-top: clamp(2.5rem, 5vw, 3.5rem); padding-top: 1.5rem; border-top: 1px solid var(--rule);
  font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: var(--s--1);
  color: var(--ink-faint); line-height: 1.7; max-width: 44rem;
}
.evidence b { color: var(--ink-soft); }

/* ============ SHARED NAV ============ */
.masthead--solid {
  position: static; background: var(--paper-raised);
  border-bottom: 1px solid var(--rule);
}
.masthead--solid .wordmark { color: var(--ink); text-shadow: none; }
.masthead--solid .wordmark span { color: var(--accent); }
.masthead--solid .masthead__inner { flex-wrap: wrap; gap: .6rem 1.5rem; }
.nav { margin-left: auto; display: flex; flex-wrap: wrap; gap: .3rem 1.15rem; }
.nav a {
  font-size: var(--s--1); color: var(--ink-soft); text-decoration: none;
  padding: .15rem 0; border-bottom: 1.5px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}
.nav a:hover, .nav a:focus-visible { color: var(--accent); border-bottom-color: var(--accent); }
@media (max-width: 40rem) { .nav { width: 100%; margin-left: 0; } }

/* homepage stage cards should look clickable */
.stage[href]:not([href="#"]) .stage__name { text-decoration-color: transparent; }

/* ============ GUIDE CARDS ============ */
.guides { display: grid; gap: 1rem; }
@media (min-width: 40rem) { .guides { grid-template-columns: repeat(2, 1fr); } }
.guide {
  background: var(--paper-raised); border: 1px solid var(--rule);
  padding: 1.5rem 1.6rem 1.6rem; text-decoration: none; color: inherit;
  display: flex; flex-direction: column; gap: .55rem; box-shadow: var(--shadow-sm);
  border-left: 3px solid var(--accent);
  transition: transform .18s ease, box-shadow .18s ease;
}
.guide:hover, .guide:focus-visible { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.guide__title {
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-2); font-weight: 600;
  line-height: 1.15; letter-spacing: -.015em;
}
.guide__body { font-size: var(--s--1); color: var(--ink-soft); line-height: 1.55; }

/* ============ LOCK GUIDE ============ */
.lock-figure {
  margin: 1.6rem 0 2rem; background: var(--paper-raised); border: 1px solid var(--rule);
}
.lock-figure img { display: block; width: 100%; height: auto; }
.lock-figure figcaption {
  padding: .85rem 1rem .95rem; border-top: 1px solid var(--rule);
  color: var(--ink-soft); font-size: var(--s--1); line-height: 1.5;
}
.lock-steps {
  list-style: none; counter-reset: lock-step; margin: 1.4rem 0 1.7rem; padding: 0;
  border-top: 1px solid var(--rule);
}
.lock-steps li {
  counter-increment: lock-step; position: relative; padding: .95rem 0 1rem 3rem;
  border-bottom: 1px solid var(--rule); color: var(--ink-soft); line-height: 1.55;
}
.lock-steps li::before {
  content: counter(lock-step); position: absolute; left: 0; top: .9rem;
  width: 1.9rem; height: 1.9rem; display: grid; place-items: center;
  background: var(--accent); color: #FFFFFF; font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: var(--s--1); font-weight: 700;
}

/* ============ DERIVED PRICE GUIDANCE ============ */
.priced {
  background: var(--paper-raised); border: 1px solid var(--rule);
  border-left: 3px solid var(--amber); border-radius: 5px;
  padding: 1rem 1.15rem 1.05rem; margin-block: 1.15rem;
}
.priced b {
  display: block; font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .66rem; letter-spacing: .09em; text-transform: uppercase;
  color: var(--amber); margin-bottom: .4rem;
}
.priced p { margin: 0; color: var(--ink); font-size: var(--s--1); line-height: 1.55; }
.priced .fig { font-weight: 700; }
.priced small {
  display: block; margin-top: .5rem; font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .68rem; color: var(--ink-faint); line-height: 1.5;
}

/* ============ STEP NAVIGATION ============ */
.steps {
  display: grid; gap: 1rem; margin-top: clamp(3rem, 6vw, 4.5rem);
  padding-top: 2rem; border-top: 1px solid var(--rule);
}
@media (min-width: 38rem) { .steps { grid-template-columns: 1fr 1fr; } }
.steps__link {
  position: relative; display: flex; flex-direction: column; justify-content: center; gap: .35rem;
  min-height: 6.5rem; text-decoration: none; color: var(--ink);
  background: var(--accent-soft); border: 1.5px solid var(--accent); border-radius: 5px;
  padding: 1.2rem 1.35rem 1.25rem 4.75rem;
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.steps__link:hover, .steps__link:focus-visible { transform: translateY(-3px); }
.steps__link::before, .steps__link::after {
  position: absolute; display: grid; place-items: center; width: 2.7rem; height: 2.7rem;
  border: 1px solid currentColor; border-radius: 50%; font-size: 1.4rem; line-height: 1;
}
.steps__link--prev::before { content: "\2190"; left: 1.25rem; }
.steps__link--next {
  padding: 1.2rem 4.75rem 1.25rem 1.35rem; text-align: right;
  color: var(--on-deep); background: var(--ink-deep); border-color: var(--ink-deep);
}
.steps__link--next::after { content: "\2192"; right: 1.25rem; }
.steps__link--prev:hover, .steps__link--prev:focus-visible { background: var(--paper-raised); }
.steps__link--next:hover, .steps__link--next:focus-visible { background: var(--ink-deep-2); border-color: var(--ink-deep-2); }
.steps__dir {
  font-size: var(--s--1); font-weight: 700; color: inherit;
}
.steps__name {
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-1); font-weight: 700;
  color: inherit; line-height: 1.2;
}
.steps > span:empty { display: none; }
@media (min-width: 38rem) { .steps > span:empty { display: block; } }

/* ============ STAGE HEADER: where am I ============ */
.stagebar {
  display: inline-flex; align-items: center; gap: .7rem; flex-wrap: wrap;
  margin-bottom: 1.15rem; padding: .65rem .85rem;
  background: var(--accent-soft); border-left: 3px solid var(--accent);
  font-size: var(--s--1); line-height: 1.3; color: var(--ink-soft);
}
.stagebar a { color: var(--ink); font-weight: 700; text-decoration: underline; text-underline-offset: .14em; }
.stagebar a:hover, .stagebar a:focus-visible { color: var(--accent); }
.stagebar__sep { color: var(--ink-faint); }
.stagebar__n { color: var(--ink-soft); font-weight: 700; }

/* ============ RELATED GUIDES, inline in a stage ============ */
.related {
  background: var(--paper-warm); border: 1px solid var(--rule); border-radius: 5px;
  padding: 1.7rem 1.3rem 1.15rem; margin-block: 2.25rem 1.3rem;
}
.related > b:first-child {
  display: table; width: fit-content; max-width: calc(100% - .75rem);
  margin: -2.55rem 0 1.05rem -.35rem; padding: .42rem .9rem .48rem;
  background: var(--rose); color: var(--paper-raised); border-radius: 4px;
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif;
  font-size: var(--s-1); font-weight: 600; line-height: 1.2;
  letter-spacing: -.015em; text-transform: none;
}
.related > p { margin: 0 0 .85rem; color: var(--ink-soft); font-size: var(--s--1); line-height: 1.55; }
.related ul { margin: 0; padding-left: 1.05rem; }
.related li { font-size: var(--s--1); line-height: 1.5; margin-bottom: .35rem; color: var(--ink-soft); }
.related a {
  color: var(--accent); font-weight: 700; text-decoration: underline;
  text-decoration-thickness: 1px; text-underline-offset: .16em;
  text-decoration-color: currentColor;
}
.related a:hover, .related a:focus-visible { color: var(--accent-hover); }

/* ============ PROCESS INDEX ============ */
.journey { display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule);
  border-radius: 5px; overflow: hidden; }
.jstep {
  background: var(--paper-raised); padding: 1.2rem 1.35rem; text-decoration: none; color: inherit;
  display: grid; gap: .3rem; grid-template-columns: 2.6rem 1fr; align-items: baseline;
  transition: background .15s ease;
}
.jstep:hover, .jstep:focus-visible { background: var(--accent-soft); }
.jstep__n {
  font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .8rem; color: var(--amber);
  font-variant-numeric: tabular-nums; grid-row: span 2;
}
.jstep__name {
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-1); font-weight: 600;
  line-height: 1.2;
}
.jstep__body { grid-column: 2 / -1; font-size: var(--s--1); color: var(--ink-soft); line-height: 1.5; }

/* ============ THE THREE DOORS ============ */
.doors { display: grid; gap: 1rem; }
@media (min-width: 46rem) { .doors { grid-template-columns: repeat(3, 1fr); } }
.door {
  display: flex; flex-direction: column; gap: .5rem; text-decoration: none; color: inherit;
  background: var(--paper-raised); border: 1px solid var(--rule); border-radius: 5px;
  border-top: 3px solid var(--amber); padding: 1.5rem 1.5rem 1.4rem;
  box-shadow: var(--shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, border-top-color .18s ease;
}
.door:hover, .door:focus-visible {
  transform: translateY(-3px); box-shadow: var(--shadow-lg); border-top-color: var(--accent);
}
.door__n {
  font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .68rem;
  letter-spacing: .09em; text-transform: uppercase; color: var(--amber);
}
.door__t {
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-2); font-weight: 600;
  line-height: 1.15; letter-spacing: -.015em;
}
.door__b { font-size: var(--s--1); color: var(--ink-soft); line-height: 1.55; flex: 1; }
.door__go {
  margin-top: .5rem; font-size: var(--s--1); font-weight: 700; color: var(--accent);
}
.door__go::after { content: "\00a0\2192"; }

/* ============ SITUATION INDEX ============ */
.sit__head {
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-2); font-weight: 600; letter-spacing: -.015em;
  margin: clamp(2rem, 4vw, 2.6rem) 0 .9rem; padding-bottom: .45rem;
  border-bottom: 2px solid var(--accent);
}
.guides-index .sit__head { padding-bottom: 0; border-bottom: 0; }
.sits { display: grid; gap: .7rem; }
.sit {
  display: grid; gap: .3rem; text-decoration: none; color: inherit;
  background: var(--paper-raised); border: 1px solid var(--rule); border-radius: 5px;
  padding: 1rem 1.15rem 1.05rem; position: relative;
  transition: border-color .15s ease, transform .15s ease;
}
.sit:hover, .sit:focus-visible { border-color: var(--accent); transform: translateX(3px); }
.sit__q {
  font-weight: 700; font-size: var(--s-0); line-height: 1.35; color: var(--ink);
}
.sit__q::after { content: "\00a0\2192"; color: var(--accent); }
.sit__a { font-size: var(--s--1); color: var(--ink-soft); line-height: 1.55; }

/* ============ ANCHOR TARGETING ============ */
/* land below the sticky masthead rather than under it */
:target { scroll-margin-top: 5.5rem; }
.artcl__body h2:target, .artcl__body h3:target, .sit__head:target {
  animation: landed 2.4s ease-out 1;
}
@keyframes landed {
  0%, 55% { background: var(--amber-soft); box-shadow: -.6rem 0 0 var(--amber-soft), .6rem 0 0 var(--amber-soft); }
  100%    { background: transparent; box-shadow: none; }
}

/* nav sitting over the hero illustration */
.masthead--over .nav a { color: rgba(251,246,236,.88); text-shadow: 0 1px 10px rgba(12,22,32,.7); }
.masthead--over .nav a:hover, .masthead--over .nav a:focus-visible {
  color: #FBF6EC; border-bottom-color: #F4C883;
}
@media (max-width: 40rem) {
  .masthead--over .masthead__inner { flex-direction: column; align-items: flex-start; gap: .5rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   REDESIGN — stronger type, full-strength colour, split hero, visual anchors
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  --ink-deep:   #0F1F1A;   /* the green at full strength, for whole sections */
  --ink-deep-2: #16301F;
  --on-deep:    #F2EFE6;
  --on-deep-dim:#A9BDB0;
  --s-5: clamp(2.8rem, 2rem + 3.6vw, 5.2rem);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --ink-deep: #0C1714; --ink-deep-2: #122019; }
}
:root[data-theme="dark"] { --ink-deep: #0C1714; --ink-deep-2: #122019; }

/* tighter, heavier headings — the single biggest lift */
h1, h2, h3 { letter-spacing: -.028em; }
h1 { font-weight: 700; }

/* ---------- SPLIT HERO ---------- */
.shero { background: var(--ink-deep); color: var(--on-deep); position: relative; overflow: hidden; }
.shero__grid { display: grid; align-items: stretch; }
@media (min-width: 62rem) { .shero__grid { grid-template-columns: 1.05fr .95fr; } }
.shero__copy {
  padding: clamp(3rem, 7vw, 6rem) clamp(1.25rem, 4vw, 4rem) clamp(3rem, 6vw, 5rem);
  display: flex; flex-direction: column; justify-content: center;
  max-width: 40rem; margin-left: auto; width: 100%;
}
.shero__kicker {
  font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .72rem;
  letter-spacing: .14em; text-transform: uppercase; color: var(--amber);
  margin-bottom: 1.1rem;
}
.shero h1 { font-size: var(--s-5); line-height: 1.02; color: var(--on-deep); margin-bottom: 1.3rem; }
.shero h1 em { font-style: normal; color: var(--amber); }
.shero__lede {
  font-size: clamp(1.05rem, 1rem + .35vw, 1.3rem); line-height: 1.5;
  color: var(--on-deep-dim); max-width: 34ch;
}
.shero__art { position: relative; min-height: 16rem; }
.shero__art svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
@media (max-width: 62rem) { .shero__art { min-height: 13rem; order: -1; } }

/* ---------- ROUTING STRIP, sitting on the hero edge ---------- */
.routes { background: var(--paper); }
.routes__grid {
  display: grid; gap: 1px; background: var(--rule);
  border: 1px solid var(--rule); border-radius: 6px; overflow: hidden;
  margin-top: clamp(-3.5rem, -5vw, -2rem); position: relative; z-index: 5;
  box-shadow: var(--shadow-lg);
}
@media (min-width: 48rem) { .routes__grid { grid-template-columns: repeat(3, 1fr); } }
.route {
  background: var(--paper-raised); padding: 1.7rem 1.6rem 1.6rem;
  text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: .55rem;
  transition: background .16s ease;
}
.route:hover, .route:focus-visible { background: var(--accent-soft); }
.route__icon { color: var(--accent); margin-bottom: .3rem; }
.route__t {
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-2); font-weight: 600;
  line-height: 1.12; letter-spacing: -.022em;
}
.route__b { font-size: var(--s--1); color: var(--ink-soft); line-height: 1.55; flex: 1; }
.route__go { font-size: var(--s--1); font-weight: 700; color: var(--accent); margin-top: .4rem; }
.route__go::after { content: "\00a0\2192"; }

/* ---------- FULL-STRENGTH COLOUR BAND ---------- */
.band { background: var(--ink-deep); color: var(--on-deep); padding-block: clamp(3rem, 7vw, 5rem); }
.band h2 { color: var(--on-deep); font-size: var(--s-3); }
.band p { color: var(--on-deep-dim); }
.band a { color: var(--amber); }
.band .pull { border-left-color: var(--amber); color: var(--on-deep); }

/* ---------- PROCESS SPINE, as a real sequence ---------- */
.spine { display: grid; gap: 0; counter-reset: step; }
.spine__step {
  display: grid; grid-template-columns: 3.2rem 1fr; gap: 0 1.2rem;
  text-decoration: none; color: inherit; padding: 1.05rem 0; position: relative;
}
.spine__step + .spine__step { border-top: 1px solid var(--rule); }
.spine__n {
  grid-row: span 2; font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .78rem; color: var(--amber); font-variant-numeric: tabular-nums;
  display: flex; align-items: flex-start; justify-content: center; padding-top: .28rem;
  position: relative;
}
.spine__n::before {
  content: ""; position: absolute; top: 2.1rem; bottom: -1.35rem; left: 50%;
  width: 1px; background: var(--rule);
}
.spine__step:last-child .spine__n::before { display: none; }
.spine__n span {
  width: 1.85rem; height: 1.85rem; border-radius: 50%; border: 1px solid var(--rule);
  background: var(--paper-raised); display: grid; place-items: center;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.spine__step:hover .spine__n span, .spine__step:focus-visible .spine__n span {
  border-color: var(--accent); background: var(--accent); color: var(--paper-raised);
}
.spine__head { display: flex; align-items: baseline; gap: .7rem; flex-wrap: wrap; }
.spine__name {
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif; font-size: var(--s-1); font-weight: 600;
  letter-spacing: -.02em;
}
.spine__time {
  font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .7rem; color: var(--ink-faint);
}
.spine__b { font-size: var(--s--1); color: var(--ink-soft); line-height: 1.5; margin-top: .15rem; }

/* ═══════════════════════════════════════════════════════════════════════════
   PALETTE — taken from the reference: deep navy, coral, forest green, cool
   greys. Replaces the earthy green/amber/cream, which read as generic.
   ═══════════════════════════════════════════════════════════════════════════ */
:root {
  --paper:        #FFFFFF;
  --paper-raised: #FFFFFF;
  --paper-warm:   #F5F6F8;
  --paper-sunk:   #F8FAFA;
  --ink:          #050D36;
  --ink-soft:     #5A6076;
  --ink-faint:    #8C92A4;
  --rule:         #E4E7EE;
  --rule-soft:    #EEF0F5;
  --rule-strong:  #CFD4E0;
  --accent:       #FF6652;
  --accent-hover: #E8503C;
  --accent-soft:  #FFF0EE;
  --amber:        #FF6652;
  --amber-soft:   #FFF0EE;
  --rose:         #FF6652;
  --ink-deep:     #245D51;
  --ink-deep-2:   #1C4A41;
  --on-deep:      #FFFFFF;
  --on-deep-dim:  #B8CFC8;
  --shadow-sm:    0 1px 2px rgba(5,13,54,.04), 0 8px 24px -18px rgba(5,13,54,.3);
  --shadow-lg:    0 2px 8px rgba(5,13,54,.05), 0 28px 56px -34px rgba(5,13,54,.42);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #0B1020; --paper-raised: #121A2E; --paper-warm: #101728; --paper-sunk: #0E1526;
    --ink: #EDF0F7; --ink-soft: #A7AFC4; --ink-faint: #7C8499;
    --rule: #222C46; --rule-soft: #1B2438; --rule-strong: #33405F;
    --accent: #FF7D6B; --accent-hover: #FF9585; --accent-soft: #2A1B1A;
    --amber: #FF7D6B; --amber-soft: #2A1B1A; --rose: #FF7D6B;
    --ink-deep: #12332C; --ink-deep-2: #0E2822;
    --on-deep: #F2F7F5; --on-deep-dim: #9FBCB2;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #0B1020; --paper-raised: #121A2E; --paper-warm: #101728; --paper-sunk: #0E1526;
  --ink: #EDF0F7; --ink-soft: #A7AFC4; --ink-faint: #7C8499;
  --rule: #222C46; --rule-soft: #1B2438; --rule-strong: #33405F;
  --accent: #FF7D6B; --accent-hover: #FF9585; --accent-soft: #2A1B1A;
  --amber: #FF7D6B; --amber-soft: #2A1B1A; --rose: #FF7D6B;
  --ink-deep: #12332C; --ink-deep-2: #0E2822;
  --on-deep: #F2F7F5; --on-deep-dim: #9FBCB2;
  color-scheme: dark;
}

/* the reference pairs a heavy geometric sans with tight tracking - closer to that */
h1, h2, h3 { letter-spacing: -.032em; }
.shero h1 em { color: var(--accent); }
.shero__kicker { color: var(--accent); }

/* photography slots: real images, treated consistently */
.photo { position: relative; overflow: hidden; background: var(--paper-warm); }
.photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo--hero { min-height: 22rem; }
.photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(105deg, var(--ink-deep) 0%, rgba(36,93,81,.55) 38%, rgba(36,93,81,0) 68%);
}
@media (max-width: 62rem) { .photo::after { background: linear-gradient(180deg, rgba(36,93,81,.5), rgba(36,93,81,0) 55%); } }
.photo__credit {
  position: absolute; right: .6rem; bottom: .5rem; z-index: 2;
  font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .58rem;
  letter-spacing: .04em; color: rgba(255,255,255,.62);
}
.photo__credit a { color: inherit; text-decoration: none; }

/* ---------- PHOTOGRAPHY LAYOUT ---------- */
.photo--side, .photo--wide { margin: 0; border-radius: 6px; }
.photo--side::after, .photo--wide::after { display: none; }
.withphoto { display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
@media (min-width: 58rem) { .withphoto { grid-template-columns: 1fr .78fr; } }
.photo--side { align-self: stretch; min-height: 18rem; }
.photo--side img { border-radius: 6px; }
.photo--wide { aspect-ratio: 21 / 7; margin-bottom: 1.4rem; }
@media (max-width: 46rem) { .photo--wide { aspect-ratio: 16 / 9; } }
.photo--wide img { border-radius: 6px; }
.shero__art.photo { min-height: 20rem; }
.shero__art.photo img { position: absolute; inset: 0; }

/* ═══════════════════════════════════════════════════════════════════════════
   TYPE — Archivo replaces Fraunces. A grotesque with real weight at 800 reads
   as considered rather than crafted, and suits a subject this consequential.
   ═══════════════════════════════════════════════════════════════════════════ */
h1, h2, h3,
.route__t, .guide__title, .spine__name, .jstep__name, .sit__head, .wordmark,
.claim__n, .prov__stat b, .stat b, .b b, .entry__said, .pull, .door__t {
  font-family: Archivo, "Helvetica Neue", Arial, sans-serif;
  font-variation-settings: normal;
  font-weight: 700;
  letter-spacing: -.028em;
}
h1 { font-weight: 800; letter-spacing: -.038em; }
h2 { font-weight: 700; letter-spacing: -.03em; }
.entry__said { font-style: normal; font-weight: 600; letter-spacing: -.02em; }
.pull { font-weight: 600; letter-spacing: -.022em; }
.wordmark { font-weight: 800; letter-spacing: -.04em; }

/* ═══════════════════════════════════════════════════════════════════════════
   HERO — full-width photograph, copy sitting on it. No kicker, no split.
   ═══════════════════════════════════════════════════════════════════════════ */
.shero { background: var(--ink-deep); position: relative; isolation: isolate; }
.shero__grid { display: block; }
.shero__media {
  position: relative; min-height: clamp(28rem, 62svh, 40rem);
  display: flex; align-items: flex-end;
}
.shero__media img {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover;
}
.shero__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(4,16,13,.62) 0%, rgba(4,16,13,.28) 34%,
              rgba(4,16,13,.55) 66%, rgba(4,16,13,.88) 100%);
}
.shero__copy {
  position: relative; width: 100%; padding: clamp(9rem, 19svh, 13rem) 0 clamp(3.2rem, 7vw, 5rem);
  max-width: none; margin: 0; display: block; z-index: 2;
}
.shero__inner { width: min(100% - 2.5rem, 70rem); margin-inline: auto; max-width: 70rem; }
.shero h1 {
  font-size: clamp(2.7rem, 1.8rem + 3.4vw, 4.8rem); line-height: 1.0;
  color: #fff; margin-bottom: 1rem; max-width: 18ch;
}
.shero h1 em { font-style: normal; color: #fff; }
.shero__lede { font-size: clamp(1.05rem, 1rem + .4vw, 1.35rem); line-height: 1.45;
  color: rgba(255,255,255,.9); max-width: 50ch; }
.shero__kicker { display: none; }
.masthead--over { background: linear-gradient(180deg, rgba(4,16,13,.55), transparent); }

/* ---------- HOMEPAGE — one route, then two ways to branch ---------- */
.home-intro {
  padding-block: clamp(1.5rem, 3vw, 2.2rem); background: var(--rose); color: #FFFFFF;
}
.home-intro__grid { display: grid; gap: .85rem; }
.home-intro h2 { font-size: var(--s-2); line-height: 1.15; max-width: 20ch; color: inherit; }
.home-intro__copy { max-width: 48rem; }
.home-intro__copy p { color: inherit; }
.home-intro__copy p + p { margin-top: .7rem; }
@media (min-width: 58rem) {
  .home-intro__grid { grid-template-columns: minmax(14rem, .75fr) minmax(0, 1.7fr); gap: clamp(2rem, 5vw, 4rem); }
}
.home-process .section__head, .home-process .spine { max-width: 49rem; }
.home-process__more { max-width: 49rem; margin-top: 1.5rem; padding-left: 4.4rem; }
.home-process__more a, .home-choice__all a {
  color: var(--accent); font-weight: 700; text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}
.home-choices {
  padding-block: clamp(3.5rem, 7vw, 5.5rem); background: var(--paper-warm);
  border-block: 1px solid var(--rule);
}
.home-choices__grid { display: grid; gap: 3rem; }
@media (min-width: 58rem) {
  .home-choices__grid { grid-template-columns: 1fr 1fr; gap: 0; }
  .home-choice:first-child { padding-right: clamp(2rem, 5vw, 4rem); }
  .home-choice + .home-choice { border-left: 1px solid var(--rule); padding-left: clamp(2rem, 5vw, 4rem); }
}
.home-choice h2 { font-size: var(--s-2); max-width: 20ch; }
.home-choice > p:not(.home-choice__all) {
  color: var(--ink-soft); max-width: 43ch; margin-top: .8rem; line-height: 1.55;
}
.home-links { list-style: none; margin: 1.6rem 0 0; padding: 0; border-top: 1px solid var(--rule); }
.home-links li { border-bottom: 1px solid var(--rule); }
.home-links a {
  display: flex; justify-content: space-between; gap: 1rem; padding: .78rem 0;
  color: var(--ink); font-weight: 700; line-height: 1.35; text-decoration: none;
}
.home-links a::after { content: "\2192"; color: var(--accent); flex: none; }
.home-links a:hover, .home-links a:focus-visible { color: var(--accent); }
.home-choice__all { margin-top: 1.25rem; }
@media (max-width: 57.99rem) {
  .home-choice + .home-choice { border-top: 1px solid var(--rule); padding-top: 3rem; }
}

/* ---------- SQUARE CONTENT SURFACES ---------- */
.hero__card,
.stage,
.entry,
.rating,
.claim,
.dispute,
.prov__stats,
.aside,
.aside > b:first-child,
.todo li,
.checklist,
.guide,
.priced,
.steps__link,
.related,
.related > b:first-child,
.journey,
.door,
.sit,
.routes__grid,
.photo--side,
.photo--wide,
.photo--side img,
.photo--wide img {
  border-radius: 0;
}
