:root,
[data-theme="light"] {
  --text-xs: clamp(.75rem, .71rem + .2vw, .875rem);
  --text-sm: clamp(.875rem, .83rem + .25vw, 1rem);
  --text-base: clamp(1rem, .96rem + .2vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + .7vw, 1.5rem);
  --text-xl: clamp(1.7rem, 1.25rem + 2vw, 3.2rem);
  --text-hero: clamp(3.2rem, 1.55rem + 6.2vw, 7.25rem);
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem;
  --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem;
  --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; --space-32: 8rem;
  --font-display: "Instrument Serif", Georgia, serif;
  --font-body: "Work Sans", "Helvetica Neue", sans-serif;
  --color-bg: #f3eee5; --color-surface: #fbf7f0; --color-surface-2: #e9e0d4;
  --color-text: #28211e; --color-muted: #6d625b; --color-faint: #9c8e84;
  --color-line: #d5c9bc; --color-accent: #7a2e30; --color-accent-hover: #582023;
  --color-dark: #201a18; --color-on-dark: #fff8ed; --color-paper: #fffaf2;
  --shadow: 0 1rem 2rem rgb(48 28 22 / 14%), 0 2.4rem 4rem rgb(48 28 22 / 10%);
  --radius-sm: .375rem; --radius-md: .6rem; --content-wide: 78rem;
  --transition-interactive: 180ms cubic-bezier(.16,1,.3,1);
}
[data-theme="dark"] {
  --color-bg: #181412; --color-surface: #211b18; --color-surface-2: #2b2420;
  --color-text: #eee5d9; --color-muted: #b6a99e; --color-faint: #81736b;
  --color-line: #40362f; --color-accent: #d4948f; --color-accent-hover: #ecb5ae;
  --color-dark: #0f0d0c; --color-on-dark: #fff8ed; --color-paper: #29221e;
  --shadow: 0 1rem 2rem rgb(0 0 0 / 28%), 0 2.4rem 4rem rgb(0 0 0 / 22%);
}
.skip-link { position:fixed; z-index:100; top:var(--space-3); left:var(--space-3); padding:var(--space-3) var(--space-4); color:var(--color-on-dark); background:var(--color-accent); transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; z-index:50; top:0; display:flex; align-items:center; justify-content:space-between; min-height:5rem; padding:var(--space-3) clamp(var(--space-4),4vw,var(--space-16)); background:color-mix(in srgb,var(--color-bg) 92%,transparent); border-bottom:1px solid color-mix(in srgb,var(--color-text) 12%,transparent); backdrop-filter:blur(16px); }
.brand { display:flex; align-items:center; gap:var(--space-3); }
.brand-mark { width:2.35rem; color:var(--color-accent); fill:none; stroke:currentColor; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.brand span { display:grid; line-height:1.1; }
.brand strong { font-family:var(--font-display); font-size:var(--text-lg); font-weight:400; }
.brand small { margin-top:var(--space-1); color:var(--color-muted); font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; }
.navigation { display:flex; align-items:center; gap:clamp(var(--space-4),2.5vw,var(--space-8)); font-size:var(--text-sm); }
.navigation a { padding-block:var(--space-3); border-bottom:1px solid transparent; }
.navigation a:hover { border-color:currentColor; }
.theme-toggle,.menu-toggle { display:grid; width:2.75rem; height:2.75rem; place-items:center; }
.theme-toggle svg { width:1.15rem; fill:none; stroke:currentColor; stroke-width:1.7; }
.menu-toggle { display:none; }
.hero { position:relative; display:grid; min-height:min(52rem,calc(88svh - 5rem)); overflow:hidden; align-items:end; isolation:isolate; }
.hero-image,.hero-shade { position:absolute; z-index:-2; inset:0; }
.hero-image { background:url("./assets/hero.webp") center/cover no-repeat; transform:scale(1.01); }
.hero-shade { z-index:-1; background:linear-gradient(90deg,rgb(248 244 237 / 97%) 0%,rgb(248 244 237 / 79%) 38%,rgb(248 244 237 / 8%) 68%); }
[data-theme="dark"] .hero-shade { background:linear-gradient(90deg,rgb(24 20 18 / 97%) 0%,rgb(24 20 18 / 80%) 38%,rgb(24 20 18 / 16%) 70%); }
.hero-content { width:min(100%,var(--content-wide)); padding:clamp(var(--space-16),7vw,var(--space-24)) clamp(var(--space-4),7vw,var(--space-24)); }
.eyebrow { margin-bottom:var(--space-5); font-size:var(--text-xs); font-weight:600; letter-spacing:.17em; text-transform:uppercase; }
.hero h1 { max-width:11ch; font-family:var(--font-display); font-size:var(--text-hero); font-weight:400; letter-spacing:-.035em; }
.hero h1 em,.themes-intro em { font-weight:400; }
.hero-intro { max-width:37rem; margin-block:var(--space-8); color:var(--color-muted); }
.hero-credit { position:absolute; right:clamp(var(--space-4),4vw,var(--space-16)); bottom:var(--space-5); color:var(--color-muted); font-size:var(--text-sm); }
.button { display:inline-flex; align-items:center; min-height:3.25rem; gap:var(--space-5); padding:var(--space-3) var(--space-6); font-size:var(--text-sm); font-weight:500; }
.button:hover { gap:var(--space-8); }
.button-primary { color:#fffaf0; background:var(--color-accent); }
.button-primary:hover { background:var(--color-accent-hover); }
.section { padding:clamp(var(--space-20),9vw,var(--space-32)) clamp(var(--space-4),6vw,var(--space-24)); }
.publications-section,.vita-section { max-width:var(--content-wide); margin-inline:auto; }
.section-heading { display:grid; align-items:end; margin-bottom:clamp(var(--space-12),6vw,var(--space-24)); gap:var(--space-12); grid-template-columns:minmax(0,1.35fr) minmax(16rem,.65fr); }
.section-heading h2,.vita-heading h2,.contact-section h2 { font-family:var(--font-display); font-size:var(--text-xl); font-weight:400; }
.section-heading>p { color:var(--color-muted); }
.current-book { display:grid; align-items:center; padding:clamp(var(--space-8),5vw,var(--space-16)); gap:clamp(var(--space-10),7vw,var(--space-24)); color:var(--color-on-dark); background:var(--color-dark); grid-template-columns:minmax(13rem,.65fr) minmax(0,1.35fr); }
.current-cover { width:min(76%,17rem); margin-inline:auto; }
.current-cover img { width:100%; box-shadow:var(--shadow); transform:rotate(-1.2deg); }
.current-book h3 { max-width:14ch; margin-block:var(--space-3); font-family:var(--font-display); font-size:var(--text-xl); font-weight:400; }
.current-book>div>p:not(.book-meta,.book-subtitle) { color:#d9cec3; }
.book-meta { color:var(--color-accent); font-size:var(--text-xs); font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.current-book .book-meta { color:#e6aaa4; }
.book-subtitle { margin-bottom:var(--space-6); color:#d9cec3; font-size:var(--text-lg); }
.edition-copy { display:grid; margin-top:var(--space-8); gap:var(--space-8); grid-template-columns:1fr 1fr; }
.edition-copy span { display:block; margin-bottom:var(--space-2); color:#e6aaa4; font-size:var(--text-xs); font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.edition-copy p { color:#d9cec3; font-size:var(--text-sm); }
.cover-gallery-heading { display:flex; align-items:end; justify-content:space-between; margin-top:clamp(var(--space-16),8vw,var(--space-32)); gap:var(--space-8); }
.cover-gallery-heading>p:last-child { color:var(--color-muted); font-size:var(--text-sm); }
.cover-gallery { display:grid; margin-top:var(--space-8); gap:clamp(var(--space-4),3vw,var(--space-8)); grid-template-columns:repeat(5,minmax(0,1fr)); }
.cover-gallery figure { min-width:0; }
.cover-gallery img { width:100%; aspect-ratio:639/900; object-fit:cover; background:var(--color-surface-2); box-shadow:0 .6rem 1.4rem rgb(48 28 22 / 12%); }
.cover-gallery figcaption { margin-top:var(--space-3); color:var(--color-muted); font-size:var(--text-xs); line-height:1.35; }
.text-link { display:inline-flex; min-height:2.75rem; align-items:center; gap:var(--space-2); color:var(--color-accent); font-size:var(--text-sm); font-weight:500; border-bottom:1px solid currentColor; }
.current-book .text-link { color:#f4c2bd; }
.text-link:hover { color:var(--color-accent-hover); }
.filter-bar { display:flex; flex-wrap:wrap; margin-block:clamp(var(--space-12),7vw,var(--space-20)) var(--space-8); gap:var(--space-2); }
.filter-button { min-height:2.75rem; padding:var(--space-2) var(--space-4); color:var(--color-muted); border:1px solid color-mix(in srgb,var(--color-text) 18%,transparent); border-radius:999px; font-size:var(--text-sm); }
.filter-button:hover,.filter-button.is-active { color:var(--color-on-dark); background:var(--color-accent); border-color:var(--color-accent); }
.publication-grid { display:grid; list-style:none; border-top:1px solid var(--color-line); }
.publication-card { display:block; padding-block:clamp(var(--space-6),3vw,var(--space-10)); border-bottom:1px solid var(--color-line); content-visibility:auto; contain-intrinsic-size:16rem; }
.publication-card[hidden] { display:none; }
.cover-wrap,.type-cover { width:100%; aspect-ratio:639/900; background:var(--color-surface-2); box-shadow:0 .6rem 1.4rem rgb(48 28 22 / 12%); }
.cover-wrap img { width:100%; height:100%; object-fit:cover; background:var(--color-surface-2); }
.type-cover { display:flex; flex-direction:column; justify-content:space-between; padding:var(--space-5); color:#f4e9dc; background:#51433c; }
.type-cover span,.type-cover small { font-size:var(--text-xs); letter-spacing:.1em; text-transform:uppercase; }
.type-cover strong { font-family:var(--font-display); font-size:var(--text-lg); font-weight:400; line-height:1; overflow-wrap:anywhere; }
.publication-copy { position:relative; min-height:100%; padding-right:clamp(var(--space-12),8vw,var(--space-24)); }
.publication-no { position:absolute; top:0; right:0; color:var(--color-faint); font-family:var(--font-display); font-size:var(--text-xl); line-height:1; }
.publication-copy h3 { max-width:27ch; margin-block:var(--space-2) var(--space-4); padding-right:var(--space-12); font-family:var(--font-display); font-size:var(--text-lg); font-weight:400; }
.publication-copy>p:not(.book-meta,.bibliographic) { max-width:70ch; color:var(--color-muted); }
.bibliographic { margin-top:var(--space-5); color:var(--color-text); font-size:var(--text-sm); }
.publication-copy .text-link { margin-top:var(--space-4); }
.filter-empty { padding:var(--space-12); color:var(--color-muted); text-align:center; }
.themes-section { display:grid; max-width:none; color:var(--color-on-dark); background:var(--color-dark); gap:clamp(var(--space-16),8vw,var(--space-32)); grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.themes-intro h2 { font-family:var(--font-display); font-size:var(--text-xl); font-weight:400; }
.themes-list { border-top:1px solid rgb(255 255 255 / 18%); }
.themes-list article { display:grid; padding-block:var(--space-8); gap:var(--space-4); border-bottom:1px solid rgb(255 255 255 / 18%); grid-template-columns:2.5rem minmax(0,.7fr) minmax(0,1fr); }
.themes-list span { color:#d4948f; font-size:var(--text-xs); }
.themes-list h3 { font-family:var(--font-display); font-size:var(--text-lg); font-weight:400; }
.themes-list p { color:#cfc2b7; font-size:var(--text-sm); }
.vita-section { display:grid; gap:clamp(var(--space-12),7vw,var(--space-24)); grid-template-columns:minmax(13rem,.55fr) minmax(0,1.45fr); }
.vita-heading { position:sticky; top:8rem; align-self:start; }
.vita-copy .lead { margin-bottom:var(--space-8); font-family:var(--font-display); font-size:var(--text-lg); line-height:1.35; }
.vita-details { display:grid; gap:var(--space-12); }
.vita-block { padding-top:var(--space-6); border-top:1px solid var(--color-line); }
.vita-block h3 { margin-bottom:var(--space-5); font-size:var(--text-base); }
.vita-timeline { list-style:none; }
.vita-timeline li { display:grid; padding-block:var(--space-3); gap:var(--space-5); border-bottom:1px solid color-mix(in srgb,var(--color-line) 60%,transparent); grid-template-columns:7rem 1fr; }
.vita-timeline time { color:var(--color-accent); font-size:var(--text-sm); font-variant-numeric:tabular-nums; }
.vita-timeline span,.memberships li { color:var(--color-muted); font-size:var(--text-sm); }
.memberships ul { padding-left:var(--space-5); }
.contact-section { max-width:none; color:var(--color-on-dark); background:var(--color-accent); text-align:center; }
.contact-section h2 { margin-inline:auto; }
.contact-section p:not(.eyebrow) { margin:var(--space-5) auto var(--space-8); color:#f0d8d2; }
.button-light { color:var(--color-dark); background:var(--color-on-dark); }
.site-footer { display:grid; align-items:center; padding:var(--space-10) clamp(var(--space-4),5vw,var(--space-16)); gap:var(--space-8); background:var(--color-bg); grid-template-columns:1fr auto auto; font-size:var(--text-xs); }
.footer-brand { display:flex; align-items:center; gap:var(--space-3); }
.footer-brand p span { color:var(--color-muted); }
.site-footer nav { display:flex; gap:var(--space-5); }
.site-footer button { color:var(--color-muted); font-size:inherit; }
dialog { width:min(calc(100% - 2rem),36rem); margin:auto; padding:var(--space-8); color:var(--color-text); background:var(--color-surface); border:1px solid var(--color-line); border-radius:var(--radius-md); box-shadow:var(--shadow); }
dialog::backdrop { background:rgb(20 16 14 / 60%); backdrop-filter:blur(4px); }
dialog h2 { margin-bottom:var(--space-5); font-family:var(--font-display); font-size:var(--text-xl); font-weight:400; }
dialog p+p { margin-top:var(--space-4); }
.dialog-close { float:right; width:2.75rem; height:2.75rem; color:var(--color-muted); font-size:var(--text-lg); }
@media (max-width:800px) {
  .menu-toggle { display:grid; gap:.36rem; }
  .menu-toggle>span:not(.sr-only) { width:1.3rem; height:1px; background:currentColor; }
  .navigation { position:absolute; top:100%; right:0; left:0; display:none; flex-direction:column; align-items:stretch; padding:var(--space-4); background:var(--color-bg); border-bottom:1px solid var(--color-line); box-shadow:var(--shadow); }
  .navigation.is-open { display:flex; }
  .navigation a { min-height:2.75rem; padding:var(--space-3); }
  .theme-toggle { align-self:flex-end; }
  .hero { min-height:calc(88svh - 5rem); }
  .hero-image { background-position:63% center; }
  .hero-shade { background:linear-gradient(90deg,rgb(248 244 237 / 98%) 0%,rgb(248 244 237 / 78%) 68%,rgb(248 244 237 / 25%) 100%); }
  [data-theme="dark"] .hero-shade { background:linear-gradient(90deg,rgb(24 20 18 / 98%) 0%,rgb(24 20 18 / 82%) 70%,rgb(24 20 18 / 42%) 100%); }
  .hero-credit { display:none; }
  .edition-copy { grid-template-columns:1fr; }
  .cover-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .section-heading,.themes-section,.vita-section { grid-template-columns:1fr; }
  .themes-list article { grid-template-columns:2.5rem 1fr; }
  .themes-list p { grid-column:2; }
  .vita-heading { position:static; }
  .site-footer { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .brand small { display:none; }
  .current-book { grid-template-columns:1fr; }
  .cover-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .publication-copy { padding-right:0; }
  .publication-no { display:none; }
  .publication-copy h3 { padding-right:0; }
  .type-cover { padding:var(--space-3); }
  .type-cover strong { font-size:var(--text-base); }
  .vita-timeline li { grid-template-columns:1fr; gap:var(--space-1); }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}
