/* Editorial inner pages. Kept separate from the homepage and admin styles.
   Shared motion timing and the project's bounded outline positioning stay in site.css. */
:root .editorial-pages {
  --folio-paper: #ece5d8;
  --folio-card: #f6f0e5;
  --folio-ink: #353a32;
  --folio-muted: #696b60;
  --folio-line: #cec7b8;
  --folio-accent: #425b4b;
  --folio-gold: #927647;
}
:root[data-mode="dark"] .editorial-pages {
  --folio-paper: #282e29;
  --folio-card: #303831;
  --folio-ink: #e6e3d7;
  --folio-muted: #b4b9ab;
  --folio-line: #4b5247;
  --folio-accent: #bbceab;
  --folio-gold: #cfb885;
}
.editorial-pages:lang(en) { --serif: "Baskerville", "Palatino Linotype", Georgia, "Times New Roman", "Noto Serif CJK SC", serif; }
:root .editorial-pages :is(.articles-canvas-wrap, .projects-canvas-wrap, .reading-wrap, .project-detail-wrap) {
  width: 100%; max-width: 1240px; margin: 0 auto; padding: 48px 38px 40px;
}
:root .editorial-pages :is(.timeline-page-header, .projects-canvas-header) {
  padding: 0 0 30px; margin: 0 0 26px; border: 0;
}
:root .editorial-pages :is(.timeline-page-header .eyebrow, .projects-eyebrow) {
  display: block; font: 10px / 1.7 var(--mono); letter-spacing: .16em; color: #ded2bc; margin: 0 0 18px;
}
:root .editorial-pages :is(.timeline-page-header h1, .projects-canvas-header h1) {
  font: 500 clamp(32px, 4vw, 52px) / 1.35 var(--serif); color: #f4ebda;
  letter-spacing: .01em; margin: 0 0 16px; overflow-wrap: anywhere; text-wrap: balance;
}
:root .editorial-pages :is(.timeline-page-header p, .projects-desc) {
  font: 14px / 1.9 var(--sans); color: #d3ccbd; max-width: 50em; margin: 0;
}
:root .editorial-pages .projects-header-lead { margin: 0; }
:root .editorial-pages :is(.reading-sheet, .album-sheet, .timeline-category-bar, .timeline-scroll-shell, .timeline-empty-board, .projects-overview-bar, .folio-project, .updates-timeline-section, .update-filters-bar, .project-outline) {
  --ink: var(--folio-ink); --muted: var(--folio-muted); --line: var(--folio-line); --accent: var(--folio-accent);
  --paper: var(--folio-paper); --surface: var(--folio-card);
  --on-paper: var(--folio-ink); --on-paper-muted: var(--folio-muted); --on-paper-line: var(--folio-line);
  background: var(--folio-paper); color: var(--folio-ink); border: 1px solid var(--folio-line); border-radius: 3px;
  box-shadow: 0 2px 0 -1px #ada28d, 0 12px 28px #11191420;
}
:root .editorial-pages :is(.button, .button-small, .timeline-search-submit) {
  background: var(--folio-accent); color: var(--folio-card); border: 1px solid var(--folio-accent);
  box-shadow: none; border-radius: 3px; min-height: 44px; font: 13px / 1.5 var(--sans); white-space: nowrap;
}
:root .editorial-pages :is(.prose, .project-header, .article-header, .about-heading, .download-verify-heading) { overflow-wrap: anywhere; }
:root .editorial-pages :is(input, select, textarea) { max-width: 100%; }
:root .editorial-pages :is(a, button, input, select, summary):focus-visible { outline: 2px solid var(--folio-gold); outline-offset: 4px; }
:root .editorial-pages .reading-layout :is(.prose h2, .prose h3) { scroll-margin-top: 115px; }
:root .editorial-pages .prose { color: var(--folio-ink); }
:root .editorial-pages .prose a { color: var(--folio-accent); text-underline-offset: 4px; }
:root .editorial-pages .prose blockquote { border-color: var(--folio-gold); color: var(--folio-muted); background: var(--folio-card); padding: 16px 22px; }
:root .editorial-pages .prose :is(pre, table) { max-width: 100%; }
:root .editorial-pages .empty-state { padding: 38px 24px; background: var(--folio-paper); border: 1px dashed var(--folio-line); color: var(--folio-muted); border-radius: 3px; }

/* Archive: two independent filters, a readable search field, and explicit browse controls. */
:root .editorial-pages .timeline-category-bar { padding: 16px 24px; margin: 0; gap: 4px; box-shadow: none; border-bottom: 0; border-radius: 3px 3px 0 0; }
:root .editorial-pages .timeline-category-bar::before,
:root .editorial-pages .timeline-category-bar::after { display: none; }
:root .editorial-pages .timeline-filter-row { gap: 18px; padding: 2px 0; align-items: center; }
:root .editorial-pages .filter-label { color: var(--folio-muted); font-size: 9px; min-width: 116px; }
:root .editorial-pages :is(.category-tabs, .tag-tabs) { gap: 4px; min-width: 0; }
:root .editorial-pages :is(.category-tab, .tag-tab) {
  color: var(--folio-muted); background: transparent; border: 1px solid transparent; box-shadow: none; min-height: 44px;
  padding: 8px 12px; border-radius: 3px; font: 12px / 1.6 var(--sans); transform: none;
}
:root .editorial-pages :is(.category-tab.active, .tag-tab.active) { background: var(--folio-card); border-color: var(--folio-line); color: var(--folio-accent); }
:root .editorial-pages :is(.tab-count, .tag-count) { color: var(--folio-muted); background: transparent; font: 10px var(--mono); }
:root .editorial-pages .tab-dot { background: var(--folio-accent); box-shadow: none; width: 4px; height: 4px; }
:root .editorial-pages .timeline-search-bar { margin: 0 0 24px; padding: 4px 24px 20px; background: var(--folio-paper); border: 1px solid var(--folio-line); border-top: 0; border-radius: 0 0 3px 3px; }
:root .editorial-pages .timeline-search-form { max-width: none; }
:root .editorial-pages .timeline-search-input-wrap { background: var(--folio-card); box-shadow: none; border: 1px solid var(--folio-line); padding: 4px; border-radius: 3px; gap: 8px; }
:root .editorial-pages .timeline-search-input-wrap input[type="search"] { color: var(--folio-ink); font: 14px var(--sans); min-width: 0; height: 44px; padding: 0 8px; }
:root .editorial-pages .timeline-search-input-wrap input::placeholder { color: var(--folio-muted); opacity: 1; }
:root .editorial-pages .search-prefix-icon { color: var(--folio-muted); margin-left: 8px; }
:root .editorial-pages .timeline-search-submit { padding: 10px 18px; flex-shrink: 0; }
:root .editorial-pages .timeline-search-status { color: var(--folio-ink); background: none; border: 0; padding: 8px 0 0; display: flex; flex-wrap: wrap; overflow-wrap: anywhere; }
:root .editorial-pages .timeline-clear-search { color: var(--folio-accent); min-height: 44px; display: inline-flex; align-items: center; }
:root .editorial-pages .timeline-scroll-shell { margin: 0; }
:root .editorial-pages .timeline-browse-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-bottom: 1px solid var(--folio-line); padding: 12px 24px; font: 15px / 1.6 var(--serif); }
.timeline-controls { display: flex; gap: 8px; }
.timeline-controls[hidden] { display: none; }
:root .editorial-pages .timeline-controls button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--folio-line); background: var(--folio-card); color: var(--folio-accent); border-radius: 50%; cursor: pointer; font-size: 18px; }
:root .editorial-pages .timeline-controls button:disabled { opacity: .35; cursor: default; }
:root .editorial-pages .timeline-lock-hint { top: 92px; right: 24px; box-shadow: none; backdrop-filter: none; background: var(--folio-card); border-color: var(--folio-line); color: var(--folio-muted); }
:root .editorial-pages .timeline-viewport { background: var(--folio-paper); box-shadow: none; border: 0; border-radius: 0 0 3px 3px; scrollbar-width: thin; scrollbar-color: var(--folio-gold) transparent; }
:root .editorial-pages .timeline-axis-rail { color: var(--folio-muted); }
:root .editorial-pages .timeline-empty-board { padding: 36px 24px; }

/* Projects: a quiet, useful catalogue instead of decorative title-only boards. */
:root .editorial-pages .projects-overview-bar { margin-top: 28px; padding: 12px 24px; box-shadow: none; border: 0; }
:root .editorial-pages :is(.chip-item, .chip-num, .projects-jump-link) { color: var(--folio-accent); text-shadow: none; }
:root .editorial-pages .chip-item { background: none; border: 0; padding: 0; }
:root .editorial-pages .projects-jump-link { min-height: 44px; display: inline-flex; align-items: center; font: 12px / 1.6 var(--sans); }
:root .editorial-pages .projects-section { margin-top: 0; padding: 0; }
:root .editorial-pages .section-header-row { margin-bottom: 20px; border: 0; padding: 0; }
:root .editorial-pages .section-kicker { color: #d3ccbd; font: 9px var(--mono); letter-spacing: .12em; }
:root .editorial-pages .section-title { color: #f4ebda; font: 24px / 1.5 var(--serif); margin-top: 6px; }
.project-folio-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; list-style: none; padding: 0; margin: 0; }
:root .editorial-pages .folio-project { min-width: 0; border-top: 3px solid var(--folio-gold); }
:root .editorial-pages .folio-project-link { height: 100%; display: flex; flex-direction: column; gap: 0; border: 0; padding: 28px; color: var(--folio-ink); }
.folio-project-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 10px / 1.6 var(--mono); letter-spacing: .08em; color: var(--folio-muted); }
:root .editorial-pages .badge { border-color: var(--folio-line); color: var(--folio-accent); border-radius: 2px; padding: 3px 8px; font: 11px / 1.6 var(--sans); }
:root .editorial-pages .folio-project h3 { margin: 24px 0 14px; font: 500 32px / 1.4 var(--serif); letter-spacing: -.02em; overflow-wrap: anywhere; }
:root .editorial-pages .folio-project-summary { font: 14px / 1.9 var(--sans); color: var(--folio-muted); margin: 0 0 26px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.folio-project-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: space-between; margin-top: auto; color: var(--folio-muted); font: 10px / 1.6 var(--mono); overflow-wrap: anywhere; }
.folio-project-bottom { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--folio-line); margin-top: 20px; padding-top: 18px; color: var(--folio-accent); font: 12px / 1.6 var(--sans); }
.folio-project-bottom > :last-child { font-size: 22px; }
:root .editorial-pages .projects-pagination { margin: 26px 0 0; padding: 0; border: 0; gap: 12px; }
:root .editorial-pages .page-btn { background: var(--folio-paper); color: var(--folio-accent); border: 1px solid var(--folio-line); box-shadow: none; min-height: 44px; font: 12px / 1.6 var(--sans); padding: 10px 16px; }
:root .editorial-pages .pagination-status { color: #ded2bc; }

/* Reading paper: cover within the page, consistent measure, bounded native sticky contents. */
:root .editorial-pages :is(.memory-open, .memory-open.letter-only) { display: block; padding: 0; width: 100%; max-width: none; }
:root .editorial-pages :is(.memory-letter, .letter-only .memory-letter, .project-detail, .about-sheet) { max-width: none; width: 100%; margin: 0; padding: 42px 48px; transform: none; border-top: 3px solid var(--folio-gold); }
:root .editorial-pages .article-header { max-width: 880px; margin: 0 0 32px; padding: 0 0 28px; border-bottom: 1px solid var(--folio-line); text-align: left; }
:root .editorial-pages :is(.article-header h1, .project-header h1, .about-heading h1) { color: var(--folio-ink); font: 500 clamp(28px, 3.3vw, 44px) / 1.45 var(--serif); letter-spacing: -.015em; margin: 0 0 18px; }
:root .editorial-pages :is(.article-summary, .project-header > p, .about-desc) { color: var(--folio-muted); font: 15px / 1.9 var(--sans); max-width: 50em; margin: 0 0 18px; }
:root .editorial-pages .article-byline { color: var(--folio-muted); font: 11px / 1.8 var(--mono); margin-top: 20px; }
:root .editorial-pages :is(.reader-photo, .letter-only .reader-photo) { display: block; position: relative; width: 100%; max-width: 880px; padding: 0; margin: 0 0 34px; background: var(--folio-card); border: 1px solid var(--folio-line); box-shadow: none; transform: none; }
:root .editorial-pages .reader-photo :is(.reader-clip, .photo-frame-no, .photo-location) { display: none; }
:root .editorial-pages .reader-photo > img { aspect-ratio: 16 / 8; max-height: 450px; object-fit: cover; filter: none; }
:root .editorial-pages .reader-photo-caption { padding: 12px 18px; margin: 0; display: flex; justify-content: space-between; gap: 16px; color: var(--folio-muted); font: 11px / 1.6 var(--sans); }
:root .editorial-pages .reader-photo-caption strong { font: inherit; }
:root .editorial-pages .reading-layout { display: grid; grid-template-columns: minmax(0, 1fr) 204px; gap: 40px; align-items: start; }
:root .editorial-pages .reading-layout.no-outline { grid-template-columns: minmax(0, 760px); justify-content: center; }
:root .editorial-pages .reading-layout > .prose { min-width: 0; font-size: 16px; line-height: 2; }
:root .editorial-pages .article-toc { display: block; position: sticky; top: 110px; align-self: start; margin: 0; padding: 0 0 0 20px; border: 0; border-left: 1px solid var(--folio-line); color: var(--folio-muted); }
:root .editorial-pages .article-toc summary { font: 16px / 1.6 var(--serif); cursor: pointer; color: var(--folio-ink); padding: 8px 0 14px; }
:root .editorial-pages .article-toc nav { max-height: max(0px, calc(100dvh - 180px)); overflow-y: auto; scrollbar-width: thin; }
:root .editorial-pages .article-toc a { display: block; padding: 8px 10px; font: 12px / 1.7 var(--sans); color: var(--folio-muted); overflow-wrap: anywhere; border-left: 2px solid transparent; }
:root .editorial-pages .article-toc .toc-level-3 { padding-left: 20px; }
:root .editorial-pages .article-toc a[aria-current] { color: var(--folio-accent); background: var(--folio-card); border-color: var(--folio-accent); }
:root .editorial-pages .memory-letter-end { border-top: 1px solid var(--folio-line); padding-top: 24px; margin-top: 40px; }
:root .editorial-pages .memory-letter-end > span { font: italic 22px / 1.6 var(--serif); }
:root .editorial-pages .memory-browse a { min-height: 44px; }

/* The project outline is portalled to body by site.js: style it at body scope. */
:root .editorial-pages .page-wrap.project-detail-wrap { background: none; border: 0; box-shadow: none; border-radius: 0; }
:root .editorial-pages .page-wrap.project-detail-wrap::before,
:root .editorial-pages .page-wrap.project-detail-wrap::after { display: none; }
:root .editorial-pages .project-header { padding: 24px 0 0; }
:root .editorial-pages .project-header .badge { margin-bottom: 16px; }
:root .editorial-pages .project-facts { color: var(--folio-muted); font-size: 11px; overflow-wrap: anywhere; }
:root .editorial-pages .project-next-step { background: var(--folio-card); border-color: var(--folio-gold); color: var(--folio-ink) !important; }
:root .editorial-pages .project-tabs { gap: 8px; padding: 6px; margin: 30px 0; border: 1px solid var(--folio-line); background: var(--folio-card); border-radius: 3px; }
:root .editorial-pages .project-tabs a { min-height: 46px; display: flex; justify-content: center; align-items: center; flex: 1; margin: 0; padding: 10px 18px; color: var(--folio-muted); border: 0; font: 13px / 1.6 var(--sans); border-radius: 2px; text-align: center; }
:root .editorial-pages .project-tabs a[aria-current] { color: var(--folio-card); background: var(--folio-accent); box-shadow: none; }
:root .editorial-pages .project-outline { box-shadow: none; background: var(--folio-card); }
:root .editorial-pages :is(.release-card, .update-card) { background: var(--folio-card); border: 1px solid var(--folio-line); border-radius: 3px; padding: 24px; margin-bottom: 20px; box-shadow: none; color: var(--folio-ink); }
:root .editorial-pages .project-subscription-card { margin-top: 38px; }

/* A compact logbook; summaries remain short and full notes stay in the project. */
:root .editorial-pages .update-filters-bar { display: flex; gap: 18px; align-items: end; margin: 28px 0 0; padding: 20px 24px; box-shadow: none; }
:root .editorial-pages .filter-field { flex: 1; min-width: 0; }
:root .editorial-pages .filter-field span { color: var(--folio-muted); font: 10px / 1.6 var(--sans); }
:root .editorial-pages .filter-field select { width: 100%; min-width: 0; min-height: 44px; color: var(--folio-ink); background: var(--folio-card); border: 1px solid var(--folio-line); box-shadow: none; font: 13px var(--sans); appearance: auto; }
:root .editorial-pages .update-filters-bar .filter-btn { background: var(--folio-accent); color: var(--folio-card); border-color: var(--folio-accent); min-height: 44px; }
:root .editorial-pages .updates-timeline-section { padding: 8px 32px; border-top: 3px solid var(--folio-gold); }
:root .editorial-pages .projects-activity-timeline { padding: 0; margin: 0; }
:root .editorial-pages :is(.projects-activity-timeline, .activity-timeline-item, .activity-card)::before,
:root .editorial-pages :is(.projects-activity-timeline, .activity-timeline-item, .activity-card)::after { display: none; }
:root .editorial-pages .activity-timeline-item { display: block; padding: 0; margin: 0; border: 0; }
:root .editorial-pages .activity-timeline-item + .activity-timeline-item { border-top: 1px solid var(--folio-line); }
:root .editorial-pages .activity-card { padding: 26px 0 20px; margin: 0; background: none; border: 0; border-radius: 0; box-shadow: none; transform: none; color: var(--folio-ink); }
:root .editorial-pages .activity-meta-bar { padding: 0; margin: 0 0 12px; border: 0; gap: 12px; }
:root .editorial-pages .activity-meta-left { gap: 12px 20px; min-width: 0; flex-wrap: wrap; }
:root .editorial-pages .activity-time-box { color: var(--folio-muted); background: none; border: 0; padding: 0; box-shadow: none; font: 10px / 1.6 var(--mono); }
:root .editorial-pages .activity-project-pill { color: var(--folio-accent); background: none; border: 0; padding: 0; box-shadow: none; font: 11px / 1.6 var(--sans); min-height: 28px; max-width: 100%; }
:root .editorial-pages .activity-project-pill strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:root .editorial-pages :is(.pill-icon, .punch-holes) { display: none; }
:root .editorial-pages .punch-text { color: var(--folio-muted); font: 10px / 1.6 var(--mono); }
:root .editorial-pages .activity-kind-label { color: var(--folio-gold); font: 10px / 1.6 var(--sans); white-space: nowrap; border: 1px solid var(--folio-line); border-radius: 2px; padding: 3px 7px; }
:root .editorial-pages .activity-title { font: 500 23px / 1.5 var(--serif); margin: 0 0 12px; color: var(--folio-ink); }
:root .editorial-pages .activity-title a { display: inline-block; padding-block: 8px; margin-block: -8px; color: inherit; text-decoration: underline; text-decoration-color: var(--folio-line); text-underline-offset: .22em; }
:root .editorial-pages .activity-excerpt { color: var(--folio-muted); font: 13px / 1.9 var(--sans); margin: 0; -webkit-line-clamp: 2; }
:root .editorial-pages .activity-foot { border: 0; padding: 4px 0 0; margin: 0; justify-content: flex-start; }
:root .editorial-pages .activity-more-link { color: var(--folio-accent); display: inline-flex; align-items: center; min-height: 44px; font: 11px / 1.6 var(--sans); border: 0; padding: 0; }
:root .editorial-pages .updates-pagination { padding-bottom: 24px; }
:root .editorial-pages .updates-pagination .pagination-status { color: var(--folio-muted); }

/* About and download verification use the same paper, fields and contact treatment. */
:root .editorial-pages .about-heading { padding: 0 0 30px; margin: 0 0 30px; border-bottom: 1px solid var(--folio-line); }
:root .editorial-pages .about-desc { border: 0; padding-bottom: 0; margin-bottom: 0; }
:root .editorial-pages .about-eyebrow { color: var(--folio-gold); font: 10px / 1.7 var(--mono); letter-spacing: .1em; margin-bottom: 24px; }
.about-editorial-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 48px; align-items: start; }
.about-editorial-layout.no-contact { grid-template-columns: minmax(0, 760px); }
:root .editorial-pages .about-prose { min-width: 0; max-width: none; font: 16px / 2 var(--sans); }
:root .editorial-pages .about-prose::first-letter { float: none; font: inherit; padding: 0; margin: 0; }
:root .editorial-pages .about-contact-card { padding: 24px; margin: 0; background: var(--folio-card); border: 1px solid var(--folio-line); border-top: 3px solid var(--folio-gold); border-radius: 3px; box-shadow: none; color: var(--folio-ink); }
:root .editorial-pages :is(.about-contact-kicker, .about-contact-mark, .about-contact-entry dt) { color: var(--folio-gold); }
:root .editorial-pages :is(.about-contact-heading h2, .about-contact-email, .about-contact-qq) { color: var(--folio-ink); }
/* The card is only 280px wide: two auto-balanced columns left each entry about
   100px, so an ordinary address like hi@example.com broke mid-word. */
:root .editorial-pages .about-contact-list { grid-template-columns: minmax(0, 1fr); gap: 0; }
:root .editorial-pages :is(.about-contact-email, .about-contact-qq) { overflow-wrap: break-word; }
:root .editorial-pages :is(.about-contact-note, .about-contact-entry dd, .subscription-status, .download-verify-note) { color: var(--folio-muted); }
:root .editorial-pages .about-contact-heading h2 { font: 24px / 1.5 var(--serif); }
:root .editorial-pages .about-contact-entry { display: block; padding: 14px 0; border-color: var(--folio-line); }
:root .editorial-pages .about-contact-entry dd { margin: 6px 0 0; }
:root .editorial-pages .about-contact-email { display: inline-flex; align-items: center; min-height: 44px; }
:root .editorial-pages .about-action-row { margin-top: 30px; }
:root .editorial-pages .about-sheet::before,
:root .editorial-pages .about-sheet::after { display: none; }
:root .editorial-pages .download-verify-wrap { max-width: 860px; }
:root .editorial-pages .download-verify-sheet { padding: 36px 40px; border-top: 3px solid var(--folio-gold); }
:root .editorial-pages .download-verify-sheet .reader-return { color: var(--folio-accent); min-height: 44px; font: 12px / 1.6 var(--sans); }
:root .editorial-pages .download-verify-heading h1 { color: var(--folio-ink); font: 500 32px / 1.45 var(--serif); }
:root .editorial-pages :is(.download-verify-kicker, .download-verify-summary span) { color: var(--folio-gold); }
:root .editorial-pages .download-verify-summary { background: var(--folio-card); border: 1px solid var(--folio-line); border-radius: 3px; }
:root .editorial-pages .download-verify-summary strong { color: var(--folio-ink); }
:root .editorial-pages :is(.project-subscription-form input, .download-answer-field input) { background: var(--folio-paper); border: 1px solid var(--folio-line); color: var(--folio-ink); min-height: 46px; font-size: 16px; }
:root .editorial-pages :is(.project-subscription-form label, .download-answer-field) > span { color: var(--folio-muted); }

@media (hover: hover) {
  :root .editorial-pages .folio-project:hover { background: var(--folio-card); border-top-color: var(--folio-accent); }
  :root .editorial-pages :is(.activity-title a, .projects-jump-link, .folio-project-link):hover { text-decoration: none; }
  :root .editorial-pages .folio-project-link:hover h3,
  :root .editorial-pages .activity-title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
  :root .editorial-pages :is(.category-tab, .tag-tab, .timeline-controls button):hover:not(:disabled) { background: var(--folio-card); border-color: var(--folio-gold); }
}
@media (max-width: 1050px) {
  :root .editorial-pages :is(.articles-canvas-wrap, .projects-canvas-wrap, .reading-wrap, .project-detail-wrap) { padding: 36px 28px; }
  :root .editorial-pages :is(.memory-letter, .letter-only .memory-letter, .project-detail, .about-sheet) { padding: 34px 30px; }
  :root .editorial-pages .reading-layout { gap: 26px; grid-template-columns: minmax(0, 1fr) 180px; }
  .about-editorial-layout { grid-template-columns: minmax(0, 1fr) 250px; gap: 28px; }
}
@media (max-width: 900px) {
  :root .editorial-pages .reading-layout { display: flex; flex-direction: column; gap: 26px; }
  :root .editorial-pages .reading-layout > * { width: 100%; }
  :root .editorial-pages .article-toc { order: -1; position: static; border: 1px solid var(--folio-line); background: var(--folio-card); padding: 0 16px; border-radius: 3px; }
  :root .editorial-pages .article-toc summary { padding: 12px 0; }
  :root .editorial-pages .article-toc nav { max-height: 40vh; padding-bottom: 12px; }
  :root .editorial-pages .article-toc a { min-height: 44px; }
  .about-editorial-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
}
@media (max-width: 620px) {
  :root .editorial-pages :is(.articles-canvas-wrap, .projects-canvas-wrap, .reading-wrap, .project-detail-wrap) { padding: 30px 16px; }
  :root .editorial-pages :is(.timeline-page-header, .projects-canvas-header) { margin-bottom: 20px; padding-bottom: 0; }
  :root .editorial-pages :is(.timeline-page-header h1, .projects-canvas-header h1) { font-size: 32px; line-height: 1.4; }
  :root .editorial-pages :is(.timeline-page-header p, .projects-desc) { font-size: 13px; }
  :root .editorial-pages .timeline-category-bar { padding: 12px 14px 6px; }
  :root .editorial-pages .timeline-filter-row { display: flex; flex-direction: column; align-items: stretch; gap: 2px; }
  :root .editorial-pages .filter-label { flex: 0 0 auto; font-size: 8px; min-width: 0; padding-left: 8px; }
  :root .editorial-pages :is(.category-tabs, .tag-tabs) { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; padding: 2px; }
  :root .editorial-pages :is(.category-tab, .tag-tab) { flex-shrink: 0; white-space: nowrap; padding-inline: 9px; font-size: 11px; }
  :root .editorial-pages .timeline-search-bar { padding: 8px 14px 16px; }
  :root .editorial-pages .search-prefix-icon { display: none; }
  :root .editorial-pages .timeline-search-input-wrap { gap: 2px; }
  :root .editorial-pages .timeline-search-input-wrap input[type="search"] { font-size: 16px; padding: 0 6px; }
  :root .editorial-pages .timeline-search-submit { padding: 10px; font-size: 11px; }
  :root .editorial-pages .timeline-browse-bar { padding: 10px 14px; font-size: 13px; }
  :root .editorial-pages .timeline-lock-hint { display: none; }
  /* Keep the horizontal archive, but align cards on one side of the rail on
     phones. The first card must be readable without scrolling past a spacer. */
  :root .editorial-pages .timeline-viewport { padding: 14px 10px 20px; }
  :root .editorial-pages .timeline-track { padding: 44px 18px 12px; }
  :root .editorial-pages .timeline-slots-wrap { padding: 0 30px 0 0; gap: 28px; }
  :root .editorial-pages .timeline-slot { width: min(260px, calc(100vw - 86px)); min-height: 0; }
  :root .editorial-pages .timeline-card-zone { min-height: 0; flex: 1; order: 0; justify-content: flex-start; }
  :root .editorial-pages .timeline-card-zone:empty { display: none; }
  :root .editorial-pages .timeline-stem { display: none; }
  :root .editorial-pages .timeline-stem.stem-upper { display: block; visibility: visible; height: 24px; order: 1; }
  :root .editorial-pages .timeline-node { order: 2; }
  :root .editorial-pages .timeline-divider { min-height: 48px; align-self: flex-end; margin: 0; }
  :root .editorial-pages .timeline-divider:first-child,
  :root .editorial-pages .timeline-divider:nth-child(2) { position: absolute; top: -36px; left: 0; min-height: 0; }
  :root .editorial-pages .timeline-divider:nth-child(2) { left: 76px; }
  :root .editorial-pages .timeline-axis-rail { top: auto; bottom: 35px; transform: none; left: 18px; right: 18px; }
  :root .editorial-pages .rail-label { display: none; }
  :root .editorial-pages .stack-hint { color: var(--folio-muted); }
  :root .editorial-pages .projects-overview-bar { margin-top: 22px; padding: 10px 16px; gap: 6px; }
  :root .editorial-pages .projects-jump-link { font-size: 11px; }
  :root .editorial-pages .projects-section { margin-top: 24px; }
  .project-folio-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  :root .editorial-pages .folio-project-link { padding: 22px; }
  :root .editorial-pages .folio-project h3 { font-size: 28px; margin: 20px 0 12px; }
  :root .editorial-pages .folio-project-summary { font-size: 13px; margin-bottom: 22px; }
  :root .editorial-pages :is(.memory-letter, .letter-only .memory-letter, .project-detail, .about-sheet, .download-verify-sheet) { padding: 26px 20px; }
  :root .editorial-pages .reader-return { gap: 12px; flex-wrap: wrap; margin-bottom: 18px; font-size: 8px; }
  :root .editorial-pages .reader-return a { min-height: 44px; display: inline-flex; align-items: center; }
  :root .editorial-pages :is(.article-header h1, .project-header h1, .about-heading h1, .download-verify-heading h1) { font-size: 28px; }
  :root .editorial-pages :is(.article-summary, .project-header > p, .about-desc) { font-size: 14px; }
  :root .editorial-pages .reading-layout > .prose { font-size: 15px; line-height: 1.95; }
  :root .editorial-pages .reader-photo-caption { padding: 10px; font-size: 10px; }
  :root .editorial-pages .project-tabs { gap: 3px; padding: 4px; }
  :root .editorial-pages .project-tabs a { padding: 10px 6px; font-size: 11px; }
  :root .editorial-pages :is(.release-card, .update-card) { padding: 18px 14px; }
  :root .editorial-pages .update-filters-bar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 16px; gap: 12px; margin-top: 24px; }
  :root .editorial-pages .filter-btn { grid-column: 1 / -1; width: 100%; }
  :root .editorial-pages .updates-timeline-section { padding: 4px 20px; }
  :root .editorial-pages .activity-card { padding: 22px 0 14px; }
  :root .editorial-pages .activity-meta-bar { align-items: flex-start; }
  :root .editorial-pages .activity-meta-left { gap: 5px; flex-direction: column; align-items: flex-start; }
  :root .editorial-pages .activity-title { font-size: 21px; }
  :root .editorial-pages .activity-excerpt { -webkit-line-clamp: 3; }
  :root .editorial-pages .about-contact-card { padding: 20px 16px; }
  :root .editorial-pages .about-prose { font-size: 15px; }
  :root .editorial-pages .memory-browse { align-items: flex-start; }
  :root .editorial-pages .memory-browse a span { font-size: 12px; }
  :root .editorial-pages .page-btn { padding-inline: 12px; font-size: 11px; }
}
