/* Static, dependency-free presentation. All typography uses local system fonts. */
:root {
  color-scheme: dark;
  --navy: #071625;
  --navy-light: #102338;
  --gold: #d9ad69;
  --ivory: #f4ede1;
  --muted: #aab8c5;
  --serif: Baskerville, "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --sans: "Avenir Next", Avenir, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { background: var(--navy); }
body { margin: 0; color: var(--ivory); font-family: var(--serif); -webkit-font-smoothing: antialiased; }
::selection { background: var(--gold); color: var(--navy); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.svg-library { position: absolute; width: 0; height: 0; overflow: hidden; }

.hero { position: relative; isolation: isolate; display: grid; place-items: center; min-height: clamp(400px, 28vw, 540px); overflow: hidden; background: var(--navy); }
.hero__image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 58%; }
.hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, transparent 12%, #07162545 34%, #07162570 50%, #07162530 67%, transparent 90%), linear-gradient(0deg, #0716253d, transparent 22%); }
.hero__content { width: 100%; padding: 34px 24px 36px; text-align: center; }
.name { margin: 0; font-weight: 400; text-transform: uppercase; line-height: .98; text-shadow: 0 2px 18px #0005; }
.name__given { display: block; padding-left: .18em; font-size: clamp(43px, 4.25vw, 74px); letter-spacing: .18em; }
.name__family { display: block; margin-top: 4px; padding-left: .075em; font-size: clamp(65px, 6.45vw, 112px); letter-spacing: .075em; color: var(--gold); }
.musical-divider { display: flex; align-items: center; justify-content: center; gap: 16px; width: min(100%, 440px); margin: 13px auto 12px; color: var(--gold); }
.musical-divider span { height: 1px; flex: 1; background: linear-gradient(90deg, transparent, var(--gold) 25%, var(--gold)); }
.musical-divider span:last-child { transform: scaleX(-1); }
.musical-divider svg { width: 23px; height: 42px; flex: 0 0 auto; }
.hero__subtitle { margin: 0; font: 400 clamp(11px, 1.05vw, 17px)/1.7 var(--sans); letter-spacing: .24em; text-transform: uppercase; }
.hero__subtitle span { color: var(--gold); padding: 0 .35em; }
.hero__introduction { max-width: 660px; margin: 14px auto 0; font-size: clamp(21px, 1.75vw, 29px); line-height: 1.3; font-style: italic; text-wrap: balance; text-shadow: 0 2px 10px #0009; }

.musical-journey { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; border-block: 1px solid #d9ad6960; background: #d9ad6935; }
.portrait { height: clamp(235px, 17vw, 330px); min-width: 0; margin: 0; overflow: hidden; background: var(--navy-light); }
.portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portrait--composing img { object-position: 45% 47%; }
.portrait--conducting img { object-position: 48% 40%; }
.portrait--organ img { object-position: 51% 49%; }

.reflections { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 50% 0%, #10233890, transparent 75%), var(--navy); }
.reflections::before { content: ""; position: absolute; z-index: -1; width: 100%; height: 240px; inset: auto 0 8px; background: url("../images/musical-staff.svg") center bottom / 100% 100% no-repeat; opacity: .13; pointer-events: none; }
.themes { width: min(1440px, 94%); margin: auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-top: 24px; }
.theme { position: relative; min-width: 0; text-align: center; padding: 0 18px 17px; }
.theme + .theme::before { content: ""; position: absolute; width: 1px; height: calc(100% - 18px); left: 0; top: 7px; background: linear-gradient(transparent, #d9ad6960 20%, #d9ad6940 80%, transparent); }
.theme__icon { display: block; width: 58px; height: 56px; margin: 0 auto 8px; color: var(--gold); }
.theme__icon--clef { width: 31px; }
.theme h3 { font-size: clamp(12px, 1vw, 17px); font-weight: 400; letter-spacing: .19em; text-transform: uppercase; margin: 0 0 7px; }
.theme p { margin: 0; color: var(--ivory); font-size: clamp(16px, 1.22vw, 20px); font-style: italic; line-height: 1.28; }
.closing { position: relative; text-align: center; padding: 0 22px; }
.quote-divider { width: min(1120px, 83%); margin: 0 auto 12px; display: flex; align-items: center; gap: 16px; color: var(--gold); }
.quote-divider span { height: 1px; flex: 1; background: linear-gradient(90deg, transparent, #d9ad69b0); }
.quote-divider span:last-child { transform: scaleX(-1); }
.quote-divider svg { width: 34px; height: 24px; }
blockquote { max-width: 1040px; margin: 0 auto; }
blockquote p { margin: 0; font-style: italic; font-size: clamp(23px, 1.85vw, 32px); line-height: 1.4; text-wrap: balance; }
blockquote cite { display: block; margin-top: 6px; font: 400 11px/1.6 var(--sans); font-style: normal; letter-spacing: .23em; text-transform: uppercase; color: var(--muted); }
.site-footer { padding: 20px 20px 15px; text-align: center; color: var(--muted); font: 400 10px/1.6 var(--sans); letter-spacing: .08em; }

@media (min-width: 2000px) {
  .hero { min-height: 580px; }
  .hero__content { padding-block: 45px; }
}
@media (max-width: 900px) {
  .hero { min-height: 390px; }
  .hero__image { object-position: center; }
  .hero::after { background: linear-gradient(90deg, #07162522, #07162570 40%, #07162570 60%, #07162522); }
  .portrait { height: 235px; }
  .portrait--composing img { object-position: 40% center; }
  .portrait--conducting img { object-position: 45% center; }
  .portrait--organ img { object-position: 48% center; }
  .themes { width: 100%; }
  .theme { padding-inline: 12px; }
  .theme h3 { font-size: 12px; letter-spacing: .14em; }
  .theme p { font-size: 16px; }
}
@media (max-width: 640px) {
  .hero { min-height: 440px; }
  .hero__image { object-position: 32% center; }
  .hero::after { background: linear-gradient(90deg, #0716257a, #071625ad 45%, #07162580), linear-gradient(0deg, #07162566, transparent 30%); }
  .hero__content { padding: 42px 20px; }
  .name__given { font-size: clamp(36px, 9.8vw, 60px); letter-spacing: .16em; }
  .name__family { font-size: clamp(50px, 14vw, 85px); margin-top: 9px; letter-spacing: .05em; }
  .musical-divider { width: 78%; margin-block: 16px 13px; gap: 14px; }
  .hero__subtitle { font-size: clamp(9px, 2.65vw, 14px); letter-spacing: .14em; white-space: nowrap; }
  .hero__subtitle span { padding-inline: .12em; }
  .hero__introduction { max-width: 360px; margin-top: 17px; font-size: clamp(21px, 5.4vw, 27px); line-height: 1.38; }
  .desktop-break { display: none; }
  .musical-journey { grid-template-columns: 1fr; gap: 2px; }
  .portrait { height: auto; aspect-ratio: 3 / 2; }
  .portrait img { object-position: center; }
  .themes { grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(520px, 100%); padding: 25px 12px 7px; row-gap: 18px; }
  .theme { padding: 0 10px 11px; }
  .theme:nth-of-type(3)::before { display: none; }
  .theme__icon { height: 51px; margin-bottom: 10px; }
  .theme h3 { font-size: 12px; letter-spacing: .12em; }
  .theme p { font-size: 16px; }
  .theme p br { display: none; }
  .quote-divider { width: 94%; margin-bottom: 14px; }
  blockquote p { font-size: 24px; line-height: 1.4; }
  blockquote cite { font-size: 10px; margin-top: 12px; }
  .site-footer { padding-top: 22px; padding-bottom: 20px; }
  .reflections::before { width: 180%; left: -40%; height: 210px; opacity: .1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
