:root {
  --paper: #fff;
  --ink: #4d4c50;
  --dark: #363638;
  --muted: #727174;
  --line: #e8e8e7;
  --wash: #f5f5f4;
  --font: "Gill Sans", "Gill Sans MT", GillSans, "Trebuchet MS", "PingFang SC", "Microsoft YaHei", sans-serif;
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 28px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: 5px; text-decoration-thickness: 1px; overflow-wrap: anywhere; -webkit-tap-highlight-color: rgba(54, 54, 56, .08); }
a:hover { color: #111; }
a:focus-visible, button:focus-visible, summary:focus-visible, img:focus-visible { outline: 2px solid #59585e; outline-offset: 5px; }
.skip-link { position: fixed; left: 16px; top: -80px; padding: 12px 18px; z-index: 10; background: white; }
.skip-link:focus { top: 12px; }
.site-shell { display: grid; grid-template-columns: 230px minmax(0, 740px); gap: clamp(52px, 6vw, 100px); max-width: 1328px; margin: auto; padding: 66px 40px 48px; align-items: start; }
.site-sidebar { position: sticky; top: 48px; max-height: calc(100vh - 80px); overflow: auto; scrollbar-width: thin; padding: 0 14px 10px 0; }
.wordmark { display: inline-block; color: #666569; text-decoration: none; font-size: 34px; font-weight: 400; letter-spacing: .32em; line-height: 1.2; }
.site-label { margin: 23px 0 55px; font-size: 12px; letter-spacing: .13em; line-height: 1.8; color: var(--muted); }
.series-nav summary, .reading-tools summary { font-size: 13px; line-height: 1.8; cursor: pointer; color: var(--dark); letter-spacing: .07em; padding: 9px 0; -webkit-tap-highlight-color: rgba(54, 54, 56, .08); }
.series-nav ol { list-style: none; padding: 9px 0 0; margin: 0; }
.series-nav li { margin: 0 0 14px; }
.series-nav a { display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 10px; align-items: baseline; font-size: 13px; line-height: 1.8; text-decoration: none; }
.series-nav .nav-number { color: var(--muted); font-family: "Helvetica Neue", Helvetica, sans-serif; font-size: 12px; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.series-nav .nav-text { min-width: 0; word-break: normal; }
.series-nav a[aria-current="page"] { color: var(--dark); font-weight: 600; }
.series-nav a[aria-current="page"] .nav-text { text-decoration: underline; text-decoration-color: #c5c4c7; text-underline-offset: 6px; }
.reading-tools { margin-top: 30px; border-top: 1px solid var(--line); padding-top: 9px; }
.reading-tools ol { padding-left: 18px; margin: 8px 0 10px; }
.reading-tools li { font-size: 12px; line-height: 1.8; padding-left: 2px; margin-bottom: 10px; }
.reading-tools a { text-decoration: none; }
.reading-tools a:hover { text-decoration: underline; }
.archive-back { display: inline-block; margin-top: 34px; font-size: 12px; color: var(--muted); }
main { min-width: 0; }
.article, .archive-index { font-size: 17px; line-height: 2; overflow-wrap: break-word; }
.article > header { padding-bottom: 25px; border-bottom: 1px solid var(--line); margin-bottom: 30px; }
.article h1 { margin: 0; color: var(--dark); font-weight: 500; line-height: 1.45; }
.title-series { display: block; font-size: 15px; line-height: 1.9; color: var(--muted); letter-spacing: .05em; margin-bottom: 17px; }
.title-subject { display: block; font-size: clamp(29px, 2.7vw, 38px); letter-spacing: .025em; text-wrap: balance; }
.title-part { white-space: nowrap; font-size: .78em; font-weight: 400; color: var(--muted); }
.article header .article-meta { display: flex; align-items: baseline; flex-wrap: nowrap; gap: 8px; margin: 12px 0 0; font-size: 13px; line-height: 1.8; color: var(--muted); white-space: nowrap; letter-spacing: 0; }
.meta-review, .meta-reading { font-size: inherit; letter-spacing: .02em; }
.meta-divider { color: #aaa9ab; font-weight: 400; }
.surgical-credit { font-size: inherit; font-weight: 400; }
.article p { font-size: 17px; line-height: 2; margin: 0 0 24px; text-align: left; }
.article header .article-deck { font-size: 18px; font-weight: 400; line-height: 1.8; color: var(--ink); margin: 18px 0 22px; letter-spacing: .01em; }
.article header .byline { font-size: 13px; color: var(--muted); line-height: 1.8; margin: 0; }
.article h2 { margin: 52px 0 24px; padding: 13px 17px; background: var(--wash); border-left: 2px solid #b8b7bb; color: var(--dark); font-size: 23px; font-weight: 500; line-height: 1.65; scroll-margin-top: 28px; }
.article h3 { margin: 34px 0 18px; border-bottom: 1px solid var(--line); padding: 0 0 10px; font-size: 19px; color: var(--dark); font-weight: 600; line-height: 1.75; scroll-margin-top: 28px; }
.article strong, .article b { font-weight: 600; color: var(--dark); }
.article code { font: inherit; background: none; }
.article figure { margin: 34px 0 38px; padding: 0; break-inside: avoid; }
.article img { display: block; width: 100%; max-width: 100%; height: auto; margin: 0 auto; background: white; cursor: zoom-in; }
.article img.legend-image { margin-top: 12px; }
.article figcaption, .article .caption { font-size: 14px; color: #656468; line-height: 1.9; margin: 14px 0 26px; text-align: left; }
.article figure figcaption { margin-bottom: 0; }
.article .reference, .article .references { color: #68676b; font-size: 13px; line-height: 1.9; overflow-wrap: anywhere; }
.article .reference { margin: 0 0 14px; }
.article .references li { margin-bottom: 14px; }
.article ul, .article ol { padding-left: 25px; }
.article hr { border: 0; border-top: 1px solid var(--line); margin: 28px 0; }
.article-footer { margin-top: 50px; padding: 24px 0 0; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; font-size: 13px; line-height: 1.8; color: var(--muted); }
.archive-index h1 { margin: 0 0 18px; font-size: 36px; font-weight: 500; line-height: 1.6; color: var(--dark); letter-spacing: .03em; }
.archive-index .index-intro { color: var(--muted); margin: 0 0 45px; font-size: 15px; line-height: 1.9; }
.series-list { list-style: none; padding: 0; margin: 0; }
.series-list li { border-top: 1px solid var(--line); }
.series-list a { display: grid; grid-template-columns: 45px minmax(0, 1fr); gap: 15px; text-decoration: none; padding: 28px 0 32px; }
.series-list .sequence { font-size: 13px; color: var(--muted); padding-top: 5px; }
.series-list .entry-title { display: block; font-size: 24px; color: var(--dark); font-weight: 500; line-height: 1.6; }
.series-list .entry-description { display: block; margin-top: 10px; font-size: 14px; color: var(--muted); line-height: 1.85; }
.archive-notes { margin-top: 25px; padding-top: 22px; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.9; color: var(--muted); }
dialog { width: min(1100px, 96vw); max-height: 95vh; border: 1px solid var(--line); padding: 18px; background: white; color: var(--ink); }
dialog::backdrop { background: #000b; }
.zoom-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; font-size: 13px; }
.zoom-toolbar span { color: var(--muted); }
button { font: inherit; color: var(--dark); background: white; border: 1px solid #c5c4c7; padding: 8px 12px; cursor: pointer; }
dialog img { display: block; width: auto; max-width: 100%; height: auto; max-height: 76vh; object-fit: contain; margin: auto; }
dialog p { font-size: 14px; line-height: 1.8; margin: 14px 0 0; }
@media (min-width: 901px) { .site-sidebar summary { list-style: none; cursor: default; pointer-events: none; } .site-sidebar summary::-webkit-details-marker { display: none; } }
@media (max-width: 1100px) and (min-width: 901px) { .site-shell { grid-template-columns: 195px minmax(0, 1fr); gap: 40px; padding: 48px 30px; } }
@media (max-width: 900px) {
  .site-shell { display: block; max-width: 788px; padding: 32px 24px 40px; }
  .site-sidebar { position: static; max-height: none; overflow: visible; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; column-gap: 20px; margin-bottom: 36px; }
  .wordmark { font-size: 25px; width: max-content; }
  .site-label { margin: 4px 0 0; font-size: 11px; align-self: center; text-align: right; letter-spacing: .06em; }
  .series-nav { grid-column: 1 / -1; border-top: 1px solid var(--line); margin-top: 25px; }
  .series-nav summary, .reading-tools summary { padding: 11px 0; min-height: 44px; font-size: 12px; }
  .series-nav ol { display: block; padding: 4px 0 10px; }
  .series-nav li { margin: 0; }
  .series-nav a { min-height: 44px; padding: 10px 0; font-size: 14px; line-height: 1.75; }
  .reading-tools { grid-column: 1 / -1; margin-top: 0; border-bottom: 1px solid var(--line); padding-top: 0; }
  .reading-tools li { font-size: 13px; }
  .archive-back { display: none; }
  .title-subject { font-size: 31px; }
}
@media (max-width: 480px) {
  .site-shell { padding: 28px 18px 32px; }
  .site-sidebar { margin-bottom: 29px; }
  .article > header { padding-bottom: 23px; margin-bottom: 27px; }
  .title-series { font-size: 12px; letter-spacing: .025em; margin-bottom: 13px; }
  .title-subject { font-size: 29px; line-height: 1.5; letter-spacing: 0; }
  .article header .article-meta { gap: 6px; font-size: 11px; margin-top: 10px; }
  .article, .article p { font-size: 16px; line-height: 1.95; }
  .article p { margin-bottom: 23px; }
  .article header .article-deck { font-size: 16px; line-height: 1.8; margin: 16px 0 20px; }
  .article header .byline { font-size: 12px; line-height: 1.85; margin: 0; }
  .article h2 { font-size: 20px; padding: 12px 13px; margin: 38px 0 21px; }
  .article h3 { font-size: 18px; margin-top: 30px; }
  .article figure { margin: 28px 0 32px; }
  .article .caption, .article figcaption { font-size: 13px; line-height: 1.85; }
  .article .reference, .article .references { font-size: 12px; line-height: 1.9; }
  .archive-index h1 { font-size: 28px; line-height: 1.65; }
  .archive-index .index-intro { font-size: 14px; margin-bottom: 28px; }
  .series-list a { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 24px 0 28px; }
  .series-list .entry-title { font-size: 21px; }
  .series-list .entry-description { font-size: 13px; }
  .zoom-toolbar { font-size: 12px; gap: 8px; }
  .zoom-toolbar span { display: none; }
}
@media print {
  .site-sidebar, .article-footer, dialog, .skip-link { display: none; }
  .site-shell { display: block; max-width: none; padding: 0; }
  .article h2 { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

/* Use the largest original GIF's display size throughout desktop articles. */
@media (min-width: 901px) {
  .article img[data-kind="gif"] {
    width: min(100%, 640px);
    max-width: 100% !important; /* Override each archive image's inline native-width cap. */
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: fill;
  }
}
