
    :root { --paper:#f5f2eb; --ink:#292c27; --muted:#696b61; --line:#d8d7cc; --accent:#894a35; }
    * { box-sizing:border-box; margin:0; padding:0; }
    html { scroll-behavior:smooth; }
    body { background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; line-height:1.65; }
    a { color:inherit; text-underline-offset:5px; }
    button { font:inherit; }
    a:focus-visible, button:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
    .skip { position:absolute; left:20px; top:-80px; background:var(--paper); padding:12px; z-index:10; }
    .skip:focus { top:12px; }
    .site-header { margin:0 5vw; padding:26px 0; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:24px; }
    .brand { text-decoration:none; font-size:13px; letter-spacing:.16em; text-transform:uppercase; }
    .site-nav { display:flex; gap:28px; font-size:12px; }
    .site-nav a { text-decoration:none; }
    .site-nav .active { color:var(--accent); border-bottom:1px solid; }
    .site-nav a:hover { color:var(--accent); }
    .intro { max-width:1200px; margin:auto; padding:64px 5vw 42px; text-align:center; }
    .eyebrow { font-size:10px; text-transform:uppercase; letter-spacing:.22em; color:var(--accent); font-weight:600; }
    h1,h2,h3,.standfirst { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
    h1 { font-size:clamp(76px,10vw,136px); line-height:1.1; letter-spacing:-.055em; margin:14px 0; }
    .subtitle { font:italic clamp(24px,3vw,35px)/1.3 Georgia,serif; }
    .intro-description { max-width:490px; margin:23px auto; color:var(--muted); font-size:14px; }
    .byline { font-size:10px; letter-spacing:.12em; text-transform:uppercase; display:flex; justify-content:center; flex-wrap:wrap; gap:10px 22px; }
    .hero, .wide { max-width:1320px; margin:0 auto; width:90%; }
    .photo-link { display:block; background:#e2e0d6; cursor:zoom-in; }
    .photo-link img { display:block; width:100%; height:auto; }
    figcaption { font-size:11px; color:var(--muted); margin-top:10px; display:flex; gap:16px; justify-content:space-between; }
    .reading-layout { display:grid; grid-template-columns:180px minmax(0,680px); gap:65px; max-width:1015px; margin:80px auto 68px; padding:0 28px; }
    .contents { font-size:12px; border-top:1px solid var(--line); padding-top:20px; }
    .contents p { margin-bottom:15px; }
    .contents a { display:block; text-decoration:none; color:var(--muted); padding:8px 0; }
    .contents a:hover { color:var(--accent); }
    .standfirst { font-size:clamp(23px,2.5vw,30px); line-height:1.5; }
    .prose { max-width:680px; margin:0 auto; }
    .prose p { margin-top:22px; color:#55594f; font-size:16px; line-height:1.9; }
    .chapter { padding:0 6vw; margin:80px auto 38px; scroll-margin-top:30px; }
    h2 { font-size:clamp(30px,4vw,46px); line-height:1.2; letter-spacing:-.025em; margin-top:12px; }
    .pair { display:grid; grid-template-columns:1fr 1fr; gap:28px; max-width:1320px; width:90%; margin:32px auto; }
    .interlude { max-width:810px; margin:75px auto; padding:32px 30px; text-align:center; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font:italic clamp(24px,3vw,34px)/1.5 Georgia,serif; }
    .closing { padding:0 6vw; margin:60px auto 80px; }
    .endnote { border-top:1px solid var(--line); padding-top:25px; margin-top:40px; font-size:12px; color:var(--muted); }
    .explore { margin:0 5vw; padding:40px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:25px; align-items:center; }
    .explore h2 { font-size:30px; margin-top:5px; }
    .explore a { font-size:13px; }
    footer { padding:24px 5vw; background:#252b24; color:#d5d8cd; font-size:11px; display:flex; justify-content:space-between; gap:20px; }
    dialog { border:0; max-width:none; max-height:none; width:100vw; height:100dvh; background:#111; color:#fff; padding:65px 65px 80px; }
    dialog::backdrop { background:#111; }
    dialog[open] { display:flex; align-items:center; justify-content:center; }
    dialog img { max-width:100%; max-height:100%; object-fit:contain; }
    .viewer-button { position:absolute; color:#fff; background:#242424; border:1px solid #555; cursor:pointer; width:44px; height:44px; border-radius:50%; }
    .viewer-close { top:15px; right:20px; font-size:25px; }
    .previous { left:12px; top:calc(50% - 22px); }
    .next { right:12px; top:calc(50% - 22px); }
    .viewer-caption { position:absolute; bottom:22px; left:65px; right:65px; text-align:center; font-size:13px; color:#ddd; }
    @media(max-width:700px) {
      .site-header { flex-direction:column; gap:14px; padding:22px 0; }
      .brand { font-size:11px; }
      .site-nav { gap:25px; }
      .intro { padding:42px 6vw 30px; }
      .reading-layout { grid-template-columns:1fr; gap:30px; margin:42px auto; padding:0 6vw; }
      .contents { display:flex; flex-wrap:wrap; gap:0 18px; }
      .contents p { width:100%; margin-bottom:4px; }
      .pair { grid-template-columns:1fr; gap:28px; }
      .chapter { margin-top:52px; }
      .interlude { margin:45px 6vw; padding:25px 0; }
      figcaption { font-size:10px; }
      .hero figcaption span:last-child { display:none; }
      .explore { align-items:flex-start; flex-direction:column; }
      footer { flex-direction:column; gap:8px; }
      dialog { padding:65px 12px 105px; }
      .viewer-caption { left:18px; right:18px; bottom:22px; }
    }
    @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
  /* Shared collection and supporting-page layouts. */
body { min-height:100vh; display:flex; flex-direction:column; }
main { flex:1; }
.site-nav { font-size:14px; }
.eyebrow,.byline { font-size:12px; }
figcaption { font-size:12px; }
.contents { font-size:14px; }
footer { font-size:12px; margin-top:auto; }
.intro h1.long-title { font-size:clamp(44px,7vw,88px); letter-spacing:-.04em; }
.collection-intro { max-width:1000px; padding:65px 5vw 48px; margin:auto; text-align:center; }
.collection-intro h1 { font-size:clamp(45px,6vw,78px); letter-spacing:-.04em; margin:16px 0 22px; }
.collection-intro p:last-child { max-width:610px; margin:auto; color:var(--muted); }
.collection { width:90%; max-width:1320px; margin:0 auto 70px; }
.collection-heading { border-top:1px solid var(--line); padding:24px 0; display:flex; justify-content:space-between; align-items:baseline; gap:20px; }
.collection-heading h2 { margin:0; }
.collection-heading a { font-size:14px; }
.cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 28px; }
.card { text-decoration:none; display:block; }
.card img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.card h3 { font-size:28px; line-height:1.2; margin:15px 0 8px; }
.card p { color:var(--muted); font-size:15px; }
.card:hover h3 { color:var(--accent); }
.card .eyebrow { display:block; margin-top:15px; }
.info-page { max-width:740px; padding:65px 6vw 85px; margin:0 auto; }
.info-page h1 { font-size:clamp(42px,6vw,70px); margin-bottom:28px; }
.info-page p { margin:20px 0; }
.contact-form { margin-top:35px; }
.contact-form label { display:block; margin:18px 0 6px; }
.contact-form input,.contact-form textarea { width:100%; padding:12px; border:1px solid #9b9f91; border-radius:0; background:#fff; color:var(--ink); font:inherit; }
.contact-form textarea { resize:vertical; }
.contact-form button { margin-top:22px; padding:12px 24px; border:0; background:var(--ink); color:#fff; cursor:pointer; }
.contact-form button:disabled { opacity:.55; cursor:not-allowed; }
.form-note { font-size:14px; color:var(--muted); }
@media(max-width:700px) { .cards { grid-template-columns:1fr; gap:35px; } .collection-intro { padding-top:42px; } .collection-heading { align-items:flex-start; flex-direction:column; gap:12px; } .site-nav { gap:20px; } figcaption { font-size:12px; } }

/* Let homepage image heights follow their landscape frame, not HTML height attributes. */
.home-page .card img { width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; }
