/* A restrained type palette; the name keeps its original Gladiolus script. */
:root { --font-serif: Georgia, 'Times New Roman', serif; --font-sans: Arial, Helvetica, sans-serif; }
body { font-family: var(--font-sans); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-serif); }
#footer .copyright, #footer .quiet-link,
.eyebrow, .chapter-number, .review-feature figcaption,
.quiet-link, #publications .portfolio-caption > p:first-child,
#publications .portfolio-caption > .text-muted { font-family: var(--font-sans); }
.chapter-description { font-family: var(--font-serif); }

/* Scroll transforms are set in name-mark.js; all other styling stays original. */
header.masthead { min-height: 560px; --name-start-y: 300px; }
header.masthead .intro-text { padding: 0; }
header.masthead .intro-text .intro-lead-in {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  position: absolute;
  z-index: 1100;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
  margin: 0;
  line-height: 1;
  font-weight: normal;
  pointer-events: none;
}
.scroll-header-ready header.masthead .intro-lead-in { position: fixed; }
.name-bar {
  position: fixed;
  inset: 0 0 auto;
  height: 64px;
  z-index: 1090;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
  opacity: var(--bar-opacity, 0);
  pointer-events: none;
}
.name-mark {
  display: inline-flex;
  align-items: center;
  gap: .16em;
  height: 0;
  color: inherit;
  font: inherit;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  pointer-events: auto;
  transform: translateY(var(--mark-y, var(--name-start-y))) scale(var(--mark-scale, 1));
  transform-origin: center;
}
.name-mark:hover { color: inherit; text-decoration: none; }
.name-mark:focus-visible { outline: 1px solid currentColor; outline-offset: .12em; }
.name-word {
  opacity: var(--word-opacity, 1);
  transform: translateX(var(--word-shift, 0em));
}
.name-flip { display: inline-grid; perspective: 900px; }
.name-rotor {
  display: grid;
  transform-style: preserve-3d;
  transform: rotateY(var(--flip-angle, 0deg));
}
.name-front, .name-back {
  grid-area: 1 / 1;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.name-back {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Songti SC", "Noto Serif CJK SC", "Yu Mincho", serif;
  font-size: .54em;
  transform: rotateY(180deg);
}
.name-mark { color: var(--mark-color, white); }
.name-mark:hover { color: var(--mark-color, white); }
section[id] { scroll-margin-top: 64px; }
@media (max-width: 767px) {
  header.masthead { min-height: 280px; --name-start-y: 150px; }
  header.masthead .intro-text .intro-lead-in { font-size: 18vw; }
}
/* Reduced motion uses a direct state change instead of a spinning transition. */
@media (prefers-reduced-motion: reduce) {
  .name-rotor { transform: none; }
  .name-back { transform: none; visibility: hidden; }
  .is-compact .name-front { visibility: hidden; }
  .is-compact .name-back { visibility: visible; }
}

/* Quiet links and a short correspondence section instead of a form. */
.quiet-link {
  color: #394f52;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .25em;
}
.quiet-link:hover { color: #212529; }
.quiet-link:focus-visible { outline: 2px solid #394f52; outline-offset: 5px; }
.book-purchase { display: inline-block; padding: 8px 0; font-size: 15px; }
section#contact.contact-note { background: #fff; padding: 64px 0 52px; }
.contact-inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 24px;
  align-items: baseline;
  border-top: 1px solid #dce1e1;
  padding-top: 40px;
}
.contact-inner h2 { font-size: 26px; font-weight: 400; margin: 0; }
.contact-inner p { margin: 0 0 8px; color: #596367; }
.contact-email { font-size: 18px; overflow-wrap: anywhere; }
#footer { background: white; padding: 22px 0 30px; }
.footer-inner { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
#footer .copyright, #footer .quiet-link { font-size: 14px; line-height: 1.6; }
@media (max-width: 575px) {
  section#contact.contact-note { padding: 40px 0 32px; }
  .contact-inner { grid-template-columns: 1fr; gap: 16px; padding-top: 28px; }
  .footer-inner { flex-wrap: wrap; }
}

/* Editorial refresh: generous margins, book typography, and quiet rules. */
body { color: #283335; background: #fff; -webkit-font-smoothing: antialiased; }
.container { width: calc(100% - 64px); max-width: 1120px; padding-left: 0; padding-right: 0; }
.page-section { padding: 96px 0; }
p { line-height: 1.8; }
.text-muted { color: #5c696c !important; }
.page-section h2.section-heading, .contact-inner h2 {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(36px, 4.5vw, 54px);
  letter-spacing: -.035em;
  line-height: 1.15;
  margin: 0 0 44px;
  text-align: left;
}
.eyebrow { display: block; font-size: 13px; letter-spacing: .17em; text-transform: uppercase; margin-bottom: 16px; color: #56696c; }
.book-row { display: grid; grid-template-columns: .85fr 1.3fr; gap: 9%; margin: 0; align-items: start; }
.book-row + .book-row { margin-top: 80px; padding-top: 80px; border-top: 1px solid #d8dfe0; }
.book-row > .book-art, .book-row > .book-copy { width: 100%; max-width: none; padding: 0; }
.book-art > .text-center { background: #edf1f1; padding: 44px 36px 22px; }
.book-art img { max-width: 240px; width: 100%; box-shadow: 5px 12px 22px rgba(27, 44, 48, .14); }
.book-art .book-purchase { margin-top: 14px; }
#books .elp-header { font-family: var(--font-serif); font-size: clamp(40px, 5vw, 62px); font-weight: 400; letter-spacing: -.04em; line-height: 1; margin: 0 0 18px; }
.book-copy > .text-muted { font-size: 14px; margin-bottom: 28px; }
.book-copy > p:empty { display: none; }
.book-copy .book-quote { font-family: var(--font-serif); font-size: 19px; line-height: 1.65; color: #38474a; }
.book-copy .quote-credit { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; margin: 16px 0 32px; }
.book-copy > p:last-child { margin-bottom: 0; }
#bio { background-color: #dce6e7 !important; }
#bio .row { margin: 0; }
#bio .col-lg-12 { padding: 0; }
#bio .row + .row { display: grid; grid-template-columns: .85fr 1.3fr; gap: 9%; align-items: start; }
#bio .elp-col { max-width: none; width: 100%; padding: 0; }
.author-portrait { display: block; width: 100%; max-width: 340px; border-radius: 0; }
.bio-copy { font-family: var(--font-serif); font-size: 18px; }
.bio-copy p:last-child { margin-bottom: 0; }
#publications { background: #fff; }
#publications .row, #events .row:first-child, #media .row:first-child { margin: 0; }
#publications .col-lg-12, #events .col-lg-12, #media .col-lg-12 { padding: 0; }
.publication-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 64px; }
#publications .portfolio-item { border-top: 1px solid #d8dfe0; padding: 25px 0 22px; }
#publications .portfolio-caption > p:first-child { font-size: 13px; letter-spacing: .08em; font-weight: 600; margin: 0 0 5px; }
#publications .portfolio-caption > .text-muted { font-size: 13px; line-height: 1.5; margin-bottom: 16px; }
#publications .portfolio-caption > p:not(:first-child):not(.text-muted), #publications a { font-family: var(--font-serif); font-size: 20px; line-height: 1.5; }
#publications a { color: #334f53; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
#publications .portfolio-caption p { margin-bottom: 8px; }
#events { background-color: #e9eeee !important; }
#events .row.align-items-start { margin-left: 0; margin-right: 0; gap: 8%; }
#events .col-md-5 { padding: 0; flex: 0 0 35%; max-width: 35%; }
#events .col-md-7 { padding: 0; flex: 1; }
#events img { border-radius: 0 !important; }
#events h4 { font-family: var(--font-serif); font-size: 27px; font-weight: 400; }
#events .col-md-7 > div { padding: 18px 0 22px; border-top: 1px solid #bdcbce; }
#media { background: #fff !important; }
#media .row + .row { align-items: center; }
#media img { width: 100%; }
section#contact.contact-note { background: #f0f4f3; padding: 52px 0 56px; }
.contact-inner { border: 0; padding: 0; }
.contact-inner h2 { font-size: 34px; margin: 0; }
#footer { background: #f0f4f3; padding-top: 0; }
#footer .footer-inner { border-top: 1px solid #d6dfde; padding-top: 24px; }
@media (max-width: 767px) {
  .container { width: calc(100% - 40px); }
  .page-section { padding: 64px 0; }
  .page-section h2.section-heading { margin-bottom: 32px; }
  .book-row, #bio .row + .row { grid-template-columns: 1fr; gap: 32px; }
  .book-art > .text-center { padding: 32px 28px 18px; }
  .book-art img { max-width: 210px; }
  .book-row + .book-row { margin-top: 52px; padding-top: 52px; }
  .author-portrait { max-width: 280px; }
  .publication-list { grid-template-columns: 1fr; }
  #events .row.align-items-start { display: block; }
  #events .col-md-5 { max-width: 320px; }
  #events .col-md-7 { max-width: 100%; }
  #media .row + .row { gap: 24px; }
  #media .portfolio-item { max-width: 100%; flex: 0 0 100%; }
  #media img { max-width: 400px; }
}

/* Book chapters: the reviews become the visual center of the page. */
.book-chapters { padding: 0; }
.book-chapters > .section-intro { padding-top: 88px; padding-bottom: 64px; }
.book-chapters .section-heading { font-family: var(--font-serif); font-size: clamp(48px, 7vw, 88px); font-weight: 400; line-height: 1.03; letter-spacing: -.055em; margin: 0; }
.book-chapter { padding: 80px 0; }
.stellar-chapter { background: #edf2f2; }
.chapter-grid { display: grid; grid-template-columns: .85fr 1.25fr; gap: 64px 9%; align-items: start; }
.chapter-art { text-align: center; }
.chapter-number { display: block; text-align: left; font-size: 12px; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 44px; }
.chapter-cover { display: block; width: 82%; max-width: 320px; height: auto; margin: 0 auto 32px; box-shadow: 12px 18px 30px #18383a25; }
.stellar-chapter .chapter-cover { padding-bottom: 20px; background: #fff; }
.chapter-art .quiet-link { display: inline-block; padding: 8px 0; font-size: 14px; }
.chapter-copy h3 { font-family: var(--font-serif); font-size: clamp(64px, 9vw, 112px); font-weight: 400; line-height: .95; letter-spacing: -.06em; margin: 0 0 42px; }
.review-feature { margin: 0; }
.review-feature blockquote { font-family: var(--font-serif); font-size: clamp(22px, 2.3vw, 28px); line-height: 1.55; letter-spacing: -.015em; margin: 0 0 28px; }
.review-feature figcaption { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.review-feature figcaption span { display: block; font-size: 13px; text-transform: none; letter-spacing: 0; opacity: .7; margin-top: 5px; }
.janus-chapter { background: #233c40; color: #f2f3ee; padding: 96px 0; }
.janus-chapter .chapter-art { grid-column: 2; grid-row: 1; }
.janus-chapter .chapter-copy { grid-column: 1; grid-row: 1; }
.janus-chapter .chapter-grid { grid-template-columns: 1.25fr .85fr; }
.janus-chapter .quiet-link, .janus-chapter .eyebrow { color: #d2e0df; }
.janus-chapter .chapter-cover { box-shadow: 12px 18px 35px #0004; }
.chapter-description { font-size: 16px; line-height: 1.75; opacity: .85; margin-bottom: 32px; }
#bio { background: #fff !important; padding-top: 110px; padding-bottom: 110px; }
#bio .author-portrait { margin-top: 8px; }
#publications { background: #f1f4f3; }
#publications .portfolio-item { border-color: #cbd6d5; }
#events { background: #fff !important; }
#media { border-top: 1px solid #d8dfe0; }
@media (max-width: 767px) {
  .book-chapters > .section-intro { padding-top: 56px; padding-bottom: 44px; }
  .book-chapter { padding: 48px 0; }
  .chapter-grid, .janus-chapter .chapter-grid { grid-template-columns: 1fr; gap: 44px; }
  .chapter-number { margin-bottom: 28px; }
  .chapter-cover { max-width: 250px; }
  .chapter-copy h3 { margin-bottom: 28px; }
  .janus-chapter .chapter-art, .janus-chapter .chapter-copy { grid-column: auto; grid-row: auto; }
  #bio { padding-top: 64px; padding-bottom: 64px; }
}

.review-following { margin-top: 32px; }
.review-following::before { content: ""; display: block; width: 56px; border-top: 1px solid #9eb4b7; margin-bottom: 32px; }

/* Two landscape views, followed by a row of three reading portraits. */
.gallery-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; align-items: start; }
.gallery-grid figure { grid-column: span 2; margin: 0; }
.gallery-grid .gallery-landscape { grid-column: span 3; }
#media .gallery-grid img { display: block; width: 100%; max-width: none; height: auto; }
.gallery-reading-portrait { overflow: hidden; }
#media .gallery-reading-portrait img { transform: scale(1.2); transform-origin: 70% 55%; }
@media (max-width: 767px) { .gallery-grid { gap: 14px; } }
@media (max-width: 479px) {
  .gallery-grid { grid-template-columns: 1fr; gap: 24px; }
  .gallery-grid figure, .gallery-grid .gallery-landscape { grid-column: auto; }
}
