  .archive-hero{ padding:56px 0 24px }
  .archive-hero .eyebrow-line{
    font-family:var(--mono);
    font-size:11.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color: var(--fg-mute);
    margin-bottom:12px;
  }
  .archive-hero h1{
    font-family:var(--display);
    font-weight:600;
    font-size:clamp(38px, 6vw, 60px);
    line-height:1.06;
    letter-spacing:-.01em;
    margin:0 0 18px;
  }
  .archive-hero h1 .muted{ color: var(--fg-mute) }
  .archive-hero p{
    max-width:780px;
    color: var(--fg);
    font-size:16px;
    line-height:1.65;
    margin:0 0 10px;
  }
  .back-link{ color: var(--fg-mute); text-decoration: none; }
  .back-link:hover{ color: var(--fg); text-decoration: underline; }

  /* Layered on top of .wrap's horizontal padding so review-page
     content has noticeably more breathing room from the window
     edge than other pages — long prose feels cramped otherwise. */
  .review-page{ padding: 24px 16px 80px; }

  /* Index grid: topic cards */
  .review-grid{
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 18px;
    margin-top: 16px;
  }
  .review-card{
    position: relative;
    display: block;
    padding: 22px 22px 60px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--card-bg);
    color: var(--fg);
    text-decoration: none;
    transition: transform .08s ease, border-color .12s ease, background .12s ease;
    min-height: 200px;
  }
  .review-card:hover{
    transform: translateY(-2px);
    border-color: var(--accent);
    background: var(--card-bg-hover, var(--card-bg));
  }
  .review-card-count{
    font-family: var(--mono);
    font-size: 11.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--fg-mute);
    margin-bottom: 10px;
  }
  .review-card-title{
    font-family: var(--display);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: -.005em;
    margin: 0 0 10px;
  }
  .review-card-blurb{
    color: var(--fg);
    font-size: 14.5px;
    line-height: 1.55;
    margin: 0;
  }
  .review-card-arrow{
    position: absolute;
    right: 18px;
    bottom: 18px;
    font-size: 20px;
    color: var(--fg-mute);
  }
  .review-meta{
    margin-top: 28px;
    color: var(--fg-mute);
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .04em;
  }

  /* Topic page: table of contents */
  .review-toc{
    max-width: 720px;
    margin: 8px 0 28px;
    padding: 16px 18px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--card-bg);
  }
  .toc-eyebrow{
    font-family: var(--mono);
    font-size: 11.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--fg-mute);
    margin-bottom: 10px;
  }
  .toc-list{
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .toc-item{
    padding: 8px 0;
    border-bottom: 1px dashed var(--border);
  }
  .toc-item:last-child{ border-bottom: 0 }
  .toc-title{
    display: block;
    font-family: var(--display);
    font-weight: 600;
    font-size: 15.5px;
    color: var(--fg);
    text-decoration: none;
    line-height: 1.3;
  }
  .toc-title:hover{ color: var(--accent) }
  .toc-summary{
    display: block;
    margin-top: 3px;
    color: var(--fg-mute);
    font-size: 13.5px;
    line-height: 1.5;
  }

  /* Topic page: synthesis prose + contributions list */
  .review-synthesis{
    max-width: 720px;
    margin: 8px 0 36px;
  }
  .review-section{
    margin: 0 0 28px;
    scroll-margin-top: 80px;
  }
  .review-section-title{
    font-family: var(--display);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.25;
    margin: 0 0 12px;
    padding-top: 4px;
    color: var(--fg);
  }
  .review-synthesis p{
    font-size: 17px;
    line-height: 1.72;
    margin: 0 0 18px;
    color: var(--fg);
  }
  .ep-marker{
    display: inline;
    padding: 1px 6px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-family: var(--mono);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--accent);
    text-decoration: none;
    background: var(--card-bg);
    vertical-align: baseline;
    margin: 0 1px;
  }
  .ep-marker:hover{
    border-color: var(--accent);
    background: var(--card-bg-hover, var(--card-bg));
  }

  .review-contributions{
    max-width: 880px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--border);
  }
  .review-contributions h2{
    font-family: var(--display);
    font-weight: 600;
    font-size: 22px;
    margin: 0 0 16px;
  }
  .contribution-list{
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .contribution-row{
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
  }
  .contribution-row:last-child{ border-bottom: 0 }
  .contribution-title{
    display: inline-block;
    font-family: var(--mono);
    font-size: 13px;
    color: var(--accent);
    text-decoration: none;
    margin-bottom: 4px;
  }
  .contribution-title:hover{ text-decoration: underline }
  .contribution-note{
    margin: 4px 0 0;
    color: var(--fg);
    font-size: 14.5px;
    line-height: 1.55;
  }

  /* Inline glossary affordance (the abbr.gloss tag + .gloss-popover
     styles live in site.css now since episode pages reuse them). */

  /* Standalone glossary page. */
  .glossary-intro{
    max-width: 720px;
    margin: 12px 0 0;
    color: var(--fg-dim);
    font-size: 15px;
    line-height: 1.6;
  }
  .glossary-toc{
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 24px;
    padding: 10px 0;
    background: var(--bg);
    border-bottom: 1px solid var(--fg-mute);
  }
  .glossary-toc-letter{
    display: inline-block;
    min-width: 30px;
    padding: 4px 8px;
    border-radius: 6px;
    font-family: var(--mono);
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    border: 1px solid var(--fg-mute);
  }
  .glossary-toc-letter:not(.is-empty){
    color: var(--fg);
    background: var(--bg-2);
  }
  .glossary-toc-letter:not(.is-empty):hover{
    color: var(--bg);
    background: var(--accent);
    border-color: var(--accent);
  }
  .glossary-toc-letter.is-empty{
    color: var(--fg-mute);
    opacity: 0.4;
    pointer-events: none;
  }
  .glossary-section{
    margin: 0 0 28px;
  }
  .glossary-letter{
    font-family: var(--display);
    font-weight: 600;
    font-size: 32px;
    line-height: 1;
    margin: 0;
    padding: 4px 0 8px;
    color: var(--fg-mute);
    border-bottom: 2px solid var(--fg-mute);
    /* Leave space for the sticky TOC when the in-page anchor jumps. */
    scroll-margin-top: 72px;
  }
  .glossary-list{
    margin: 8px 0 0;
    padding: 0;
    max-width: 720px;
  }
  .glossary-entry{
    padding: 14px 0;
    border-bottom: 1px solid var(--fg-mute);
  }
  .glossary-entry:last-child{ border-bottom: 0 }
  .glossary-term{
    font-family: var(--display);
    font-weight: 600;
    font-size: 17px;
    margin: 0 0 4px;
    color: var(--fg);
  }
  .glossary-def{
    margin: 0;
    color: var(--fg);
    font-size: 15px;
    line-height: 1.6;
  }
  .glossary-def-tech{
    margin: 4px 0 0;
    padding-top: 6px;
    border-top: 1px solid var(--fg-mute);
    color: var(--fg-mute);
    font-size: 14px;
    line-height: 1.55;
  }
  /* Glossary index: per-letter list of links to /glossary/<slug>.html. */
  .glossary-index-list{
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 8px 18px;
    max-width: 980px;
  }
  .glossary-index-row{
    padding: 4px 0;
  }
  .glossary-index-link{
    font-family: var(--sans);
    font-size: 15px;
    font-weight: 500;
    color: var(--fg);
    text-decoration: none;
    border-bottom: 1px dotted var(--fg-mute);
    padding-bottom: 1px;
    transition: color .12s ease, border-color .12s ease;
  }
  .glossary-index-link:hover{
    color: var(--accent);
    border-bottom-color: var(--accent);
  }

  @media (max-width: 860px){
    .archive-hero{ padding:40px 0 16px }
    .review-page{ padding: 16px 8px 64px; }
    .review-grid{
      grid-template-columns: 1fr;
    }
    .glossary-toc{
      gap: 4px;
      padding: 8px 0;
      margin-bottom: 16px;
    }
    .glossary-toc-letter{
      min-width: 26px;
      padding: 3px 6px;
      font-size: 12px;
    }
    .glossary-letter{
      font-size: 26px;
      scroll-margin-top: 64px;
    }
  }

  /* --- Review index: grouped review list + topic directory ------------- */
  .review-group{ margin: 8px 0 44px }
  .review-group-title{
    font-family:var(--display);
    font-weight:600;
    font-size:13px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color: var(--fg-mute);
    margin:0 0 18px;
  }
  .review-empty{ color: var(--fg-mute); font-family:var(--mono); font-size:13px }

  .topic-directory{ margin: 16px 0 24px; border-top:1px solid var(--line-soft); padding-top:36px }
  .topic-dir-list{ display:flex; flex-direction:column; gap:0 }
  .topic-dir-row{
    display:grid;
    grid-template-columns: minmax(180px, 280px) 1fr;
    gap: 10px 28px;
    padding:16px 0;
    border-bottom:1px solid var(--line-soft);
    align-items:baseline;
  }
  .topic-dir-name{
    font-family:var(--display);
    font-weight:600;
    font-size:15.5px;
    color: var(--fg);
  }
  .topic-dir-count{
    font-family:var(--mono);
    font-weight:400;
    font-size:11px;
    color: var(--fg-mute);
    background: var(--line-soft);
    padding:1px 7px;
    border-radius:999px;
    margin-left:4px;
  }
  .topic-dir-links{ display:flex; flex-wrap:wrap; gap:8px }
  .topic-dir-link{
    font-family:var(--mono);
    font-size:11.5px;
    color: var(--accent);
    text-decoration:none;
    border:1px solid var(--line);
    border-radius:999px;
    padding:3px 10px;
    white-space:nowrap;
  }
  .topic-dir-link:hover{ border-color: var(--accent); background: var(--bg-2) }

  /* --- Period digest page: topic blocks -------------------------------- */
  .review-topic{ margin: 0 0 56px; scroll-margin-top: 80px }
  .review-topic-title{
    font-family:var(--display);
    font-weight:600;
    font-size:clamp(24px, 3vw, 32px);
    line-height:1.15;
    letter-spacing:-.015em;
    margin:0 0 10px;
    padding-top:28px;
    border-top:1px solid var(--line-soft);
    color: var(--fg);
  }
  .review-topic-blurb{
    color: var(--fg-dim);
    font-size:16px;
    line-height:1.6;
    margin:0 0 18px;
  }
  @media (max-width: 860px){
    .topic-dir-row{ grid-template-columns: 1fr; gap:8px }
  }

  /* --- Scaled review index: monthly-by-year, topic browser, hubs ------- */
  .review-year{ margin: 0 0 28px }
  .review-year-title{
    font-family:var(--mono); font-size:12px; letter-spacing:.14em;
    text-transform:uppercase; color:var(--fg); margin:0 0 14px;
  }
  details.review-year-details{
    border-top:1px solid var(--line-soft);
    padding:14px 0 0;
    margin:0 0 8px;
  }
  details.review-year-details > summary{
    cursor:pointer;
    font-family:var(--mono); font-size:12px; letter-spacing:.14em;
    text-transform:uppercase; color:var(--fg-mute);
    list-style:none; padding:4px 0 14px;
  }
  details.review-year-details > summary:hover{ color:var(--accent) }
  details.review-year-details[open] > summary{ color:var(--fg) }

  /* Topic browser */
  .filter-bar{
    display:grid; grid-template-columns: 1fr auto; gap:14px;
    align-items:center; margin: 4px 0 18px; padding:8px 0;
    border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
  }
  .filter-bar .search-wrap{ display:flex; align-items:center; padding:6px 4px }
  .filter-bar input{
    width:100%; border:0; outline:0; background:transparent;
    font-family:var(--sans); font-size:15px; color:var(--fg);
  }
  .filter-bar input::placeholder{ color:var(--fg-mute) }
  .filter-bar .count{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.1em;
    color:var(--fg-mute); text-transform:uppercase; white-space:nowrap;
  }
  .filter-bar .count b{ color:var(--fg); font-weight:500 }

  .parent-theme{ margin: 0 0 28px }
  .parent-theme-title{
    font-family:var(--display); font-weight:600; font-size:15px;
    color:var(--accent); margin:0 0 10px;
  }
  .topic-rows{ display:flex; flex-direction:column }
  .topic-row{
    display:flex; justify-content:space-between; align-items:baseline;
    gap:14px; padding:13px 8px; margin:0 -8px;
    border-bottom:1px solid var(--line-soft);
    text-decoration:none; color:var(--fg);
    transition: background .12s ease, padding .12s ease;
  }
  .topic-row:hover{
    background: color-mix(in oklab, var(--accent) 8%, var(--bg-2));
    padding-left:14px; padding-right:14px;
  }
  .topic-row-name{ font-family:var(--display); font-weight:500; font-size:16px }
  .topic-row-meta{
    font-family:var(--mono); font-size:11px; color:var(--fg-mute);
    letter-spacing:.02em; white-space:nowrap; text-align:right;
  }
  /* Pin visited state to the base color: the global a:visited{accent} rule
     (specificity 0,1,1) otherwise flips clicked topics to blue, making them
     look different from unclicked ones. */
  .topic-row:visited{ color: var(--fg) }

  /* Chips (reused from the concept cloud) for hub Related-concepts */
  .concept-cloud{ display:flex; flex-wrap:wrap; gap:8px }
  .ep-chip{
    display:inline-flex; align-items:center;
    font-family:var(--mono); font-size:11px; letter-spacing:.08em;
    text-transform:uppercase; padding:6px 12px;
    border:1px solid var(--line); border-radius:999px;
    color:var(--fg-dim); background:transparent; text-decoration:none;
    transition: color .12s ease, border-color .12s ease;
  }
  .ep-chip, .ep-chip:visited{ color:var(--fg-dim) }
  .ep-chip:hover{ color:var(--accent); border-color:var(--accent) }

  /* Topic hub */
  .hub-review-list{ list-style:none; margin:0 0 8px; padding:0 }
  .hub-review-row{
    display:flex; justify-content:space-between; align-items:baseline; gap:14px;
    padding:13px 0; border-bottom:1px solid var(--line-soft); flex-wrap:wrap;
  }
  .hub-review-link, .hub-review-link:visited{
    font-family:var(--display); font-weight:500; font-size:16px;
    color:var(--fg); text-decoration:none;
  }
  .hub-review-link:hover{ color:var(--accent) }
  .hub-review-meta{ font-family:var(--mono); font-size:11px; color:var(--fg-mute) }
  .hub-related{ margin-top:40px; border-top:1px solid var(--line-soft); padding-top:28px }
  .hub-related-note{ color:var(--fg-dim); font-size:14px; margin:0 0 16px }

  /* Period digest cross-links */
  .period-crosslink{ margin:18px 0 0; border-top:1px solid var(--line-soft); padding-top:16px }
  .period-crosslink .crosslink-label{
    font-family:var(--mono); font-size:11px; letter-spacing:.14em;
    text-transform:uppercase; color:var(--fg-mute);
  }
  .crosslink-weeks{ list-style:none; margin:8px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px 18px }
  .crosslink-weeks a{ font-size:14px; color:var(--accent); text-decoration:none }
  .crosslink-weeks a:hover{ text-decoration:underline }
  .period-crosslink-back{ margin:14px 0 0 }
  .period-crosslink-back a{ font-family:var(--mono); font-size:12px; color:var(--fg-mute); text-decoration:none }
  .period-crosslink-back a:hover{ color:var(--accent) }
  .review-topic-hublink{ color:inherit; text-decoration:none }
  .review-topic-hublink:hover{ color:var(--accent) }

  @media (max-width: 640px){
    .topic-row{ flex-direction:column; gap:4px }
    .topic-row-meta{ text-align:left }
  }
