:root {
  --paper: #f6f1e7;
  --paper-deep: #eee6d8;
  --ink: #201d19;
  --ink-soft: #5e574e;
  --wood: #5e3a23;
  --wood-deep: #3e2718;
  --gold: #aa8650;
  --line: rgba(32, 29, 25, .16);
  --white: #fffdf8;
  --shadow: 0 24px 70px rgba(35, 25, 17, .14);
  --max: 1180px;
  --radius: 20px;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { max-width: 100%; display: block; }
button, input, textarea { font: inherit; }
::selection { background: #d9c6a5; color: var(--ink); }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 999; background: var(--ink); color: white; padding: .75rem 1rem; border-radius: 999px; }
.skip-link:focus { top: 1rem; }
.container { width: min(calc(100% - 40px), var(--max)); margin: 0 auto; }
.eyebrow { margin: 0 0 .75rem; text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; font-weight: 750; color: var(--wood); }
.display { font-family: var(--serif); font-weight: 400; letter-spacing: -.03em; line-height: 1.02; }
.section { padding: 7rem 0; }
.section-sm { padding: 4.5rem 0; }
.section-title { margin: 0; font-size: clamp(2.4rem, 5vw, 4.7rem); }
.section-lede { max-width: 720px; font-size: 1.12rem; color: var(--ink-soft); margin: 1.25rem 0 0; }
.rule { border: 0; border-top: 1px solid var(--line); margin: 0; }

.site-header {
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(32,29,25,.08);
}
.nav-wrap { height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { text-decoration: none; display: inline-flex; flex-direction: column; line-height: 1.05; }
.brand strong { font-family: var(--serif); font-weight: 600; font-size: 1.3rem; letter-spacing: -.02em; }
.brand span { margin-top: .28rem; color: var(--ink-soft); font-size: .68rem; text-transform: uppercase; letter-spacing: .15em; }
.nav-links { list-style: none; display: flex; align-items: center; gap: 1.6rem; margin: 0; padding: 0; }
.nav-links a { text-decoration: none; font-size: .9rem; font-weight: 650; color: #49433c; position: relative; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--ink); }
.nav-links a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -.4rem; height: 1px; background: var(--wood); transition: right .2s ease; }
.nav-links a:hover::after, .nav-links a[aria-current="page"]::after { right: 0; }
.nav-toggle { display:none; border:0; background:transparent; padding:.5rem; cursor:pointer; }
.nav-toggle span { display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; }

.hero { min-height: min(820px, calc(100svh - 78px)); position: relative; display: grid; align-items: end; overflow: hidden; background: #171511; }
.hero-media, .hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media img { object-fit: cover; object-position: center 52%; }
.hero::after { content:''; position:absolute; inset:0; background: linear-gradient(90deg, rgba(15,12,10,.78) 0%, rgba(15,12,10,.46) 40%, rgba(15,12,10,.12) 72%), linear-gradient(0deg, rgba(15,12,10,.58) 0%, rgba(15,12,10,0) 50%); }
.hero-content { position: relative; z-index: 2; color: white; padding: clamp(4rem, 9vh, 7rem) 0; max-width: 870px; }
.hero-kicker { font-size: .76rem; text-transform:uppercase; letter-spacing:.19em; font-weight:800; margin:0 0 1.25rem; color: #f1dfbd; }
.hero h1 { font-family: var(--serif); font-weight: 400; line-height: .93; letter-spacing: -.045em; font-size: clamp(4rem, 10vw, 8.2rem); margin: 0; }
.hero-sub { font-family: var(--serif); font-size: clamp(1.2rem, 2.6vw, 1.8rem); margin: 1.45rem 0 0; color: rgba(255,255,255,.9); }
.hero-actions { display:flex; gap:.85rem; flex-wrap:wrap; margin-top:2.2rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.6rem; min-height:48px; padding:.75rem 1.15rem; border:1px solid transparent; border-radius:999px; text-decoration:none; font-size:.9rem; font-weight:750; transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.button:hover { transform: translateY(-2px); }
.button-light { background:var(--white); color:var(--ink); }
.button-ghost { color:white; border-color:rgba(255,255,255,.48); background:rgba(255,255,255,.06); }
.button-dark { background:var(--ink); color:white; }
.button-outline { border-color:var(--line); background:transparent; }

.intro-grid { display:grid; grid-template-columns: 1.2fr .8fr; gap:clamp(3rem,7vw,8rem); align-items:start; }
.intro-grid .big-copy { font-family:var(--serif); font-size:clamp(2rem,4vw,3.8rem); line-height:1.12; letter-spacing:-.025em; margin:0; }
.intro-grid .body-copy { color:var(--ink-soft); font-size:1.05rem; }

.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:3rem; }
.card { border:1px solid var(--line); border-radius:var(--radius); padding:2rem; background:rgba(255,255,255,.28); min-height:310px; display:flex; flex-direction:column; }
.card .num { font-family:var(--serif); font-style:italic; color:var(--gold); font-size:1rem; }
.card h3 { font-family:var(--serif); font-weight:500; font-size:2rem; line-height:1.1; margin:2.8rem 0 1rem; }
.card p { margin:0; color:var(--ink-soft); }
.card a { margin-top:auto; padding-top:2rem; font-weight:750; text-decoration:none; }
.card a:hover { text-decoration:underline; text-underline-offset:.25em; }

.split { display:grid; grid-template-columns: 1fr 1fr; min-height:680px; background:var(--ink); color:white; }
.split-media { min-height:520px; }
.split-media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.split-copy { display:flex; align-items:center; }
.split-copy-inner { width:min(560px, calc(100% - 80px)); margin:0 auto; padding:5rem 0; }
.split-copy p { color:rgba(255,255,255,.74); }
.split-copy .eyebrow { color:#d7bd93; }

.media-grid { display:grid; grid-template-columns: 1.15fr .85fr; gap:1.2rem; margin-top:3rem; }
.embed-card { background:#191713; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.ratio { position:relative; width:100%; aspect-ratio:16/9; }
.ratio iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.embed-meta { padding:1.25rem 1.4rem; color:white; }
.embed-meta strong { font-family:var(--serif); font-size:1.25rem; font-weight:500; }
.embed-meta span { display:block; color:rgba(255,255,255,.62); font-size:.85rem; margin-top:.25rem; }

.quote-band { background:var(--wood-deep); color:white; padding:5.5rem 0; }
.quote-band blockquote { margin:0; max-width:980px; font-family:var(--serif); font-size:clamp(2.1rem,5vw,4.7rem); line-height:1.05; letter-spacing:-.03em; }
.quote-band p { color:#d9c7ac; }

.page-hero { padding:7.5rem 0 4.5rem; border-bottom:1px solid var(--line); }
.page-hero h1 { margin:0; font-size:clamp(4rem,9vw,7.4rem); }
.page-hero .lead { max-width:780px; color:var(--ink-soft); font-size:1.15rem; margin-top:1.5rem; }
.bio-grid { display:grid; grid-template-columns:minmax(260px,.75fr) 1.25fr; gap:clamp(3rem,8vw,8rem); align-items:start; }
.portrait { border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); position:sticky; top:110px; }
.bio-copy { font-size:1.05rem; }
.bio-copy p:first-child { font-family:var(--serif); font-size:1.55rem; line-height:1.45; color:var(--ink); }
.bio-copy p { color:var(--ink-soft); }
.bio-copy strong { color:var(--ink); }
.detail-list { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-top:3rem; }
.detail { background:var(--paper); padding:1.5rem; }
.detail span { display:block; color:var(--ink-soft); font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:.35rem; }
.detail strong { font-family:var(--serif); font-weight:500; font-size:1.08rem; }

.works-list { display:grid; gap:1rem; margin-top:2.5rem; }
.work-row { border-top:1px solid var(--line); display:grid; grid-template-columns:1.2fr .8fr .3fr; align-items:center; gap:1rem; padding:1.4rem 0; }
.work-row:last-child { border-bottom:1px solid var(--line); }
.work-row h3 { font-family:var(--serif); font-weight:500; font-size:1.7rem; margin:0; }
.work-row p { margin:0; color:var(--ink-soft); }
.work-row .year { text-align:right; color:var(--ink-soft); }

.gallery { display:grid; grid-template-columns: 1.4fr .9fr; grid-auto-rows:minmax(260px,420px); gap:1rem; margin-top:3rem; }
.gallery figure { margin:0; overflow:hidden; border-radius:var(--radius); position:relative; }
.gallery figure:nth-child(1) { grid-row: span 2; }
.gallery img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery figure:hover img { transform:scale(1.025); }
.gallery figcaption { position:absolute; left:1rem; bottom:1rem; background:rgba(20,18,15,.82); color:white; padding:.5rem .75rem; border-radius:999px; font-size:.78rem; backdrop-filter:blur(10px); }

.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,7vw,7rem); align-items:start; }
.contact-panel { border-top:1px solid var(--line); padding-top:1.25rem; }
.contact-link { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:1.1rem 0; border-bottom:1px solid var(--line); text-decoration:none; }
.contact-link strong { font-family:var(--serif); font-size:1.4rem; font-weight:500; }
.contact-link span { color:var(--ink-soft); }
.contact-link:hover strong { color:var(--wood); }

.site-footer { background:#171512; color:white; padding:4rem 0 2rem; }
.footer-top { display:grid; grid-template-columns:1.5fr 1fr; gap:4rem; align-items:end; padding-bottom:3rem; }
.footer-title { margin:0; font-family:var(--serif); font-size:clamp(2.5rem,6vw,5rem); font-weight:400; line-height:1; }
.footer-links { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; justify-content:flex-end; }
.footer-links a { color:rgba(255,255,255,.78); text-decoration:none; }
.footer-links a:hover { color:white; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); padding-top:1.5rem; display:flex; justify-content:space-between; gap:1rem; color:rgba(255,255,255,.52); font-size:.82rem; }

@media (max-width: 900px) {
  .section { padding:5.5rem 0; }
  .nav-toggle { display:block; }
  .nav-links { position:absolute; top:77px; left:0; right:0; display:none; flex-direction:column; align-items:flex-start; gap:0; background:var(--paper); border-bottom:1px solid var(--line); padding:1rem 20px 1.3rem; }
  .nav-links.open { display:flex; }
  .nav-links li { width:100%; }
  .nav-links a { display:block; padding:.8rem 0; }
  .intro-grid, .bio-grid, .contact-grid, .split, .media-grid, .footer-top { grid-template-columns:1fr; }
  .cards { grid-template-columns:1fr; }
  .card { min-height:260px; }
  .split { min-height:0; }
  .split-media { min-height:440px; }
  .portrait { position:relative; top:auto; max-width:520px; }
  .gallery { grid-template-columns:1fr; grid-auto-rows:380px; }
  .gallery figure:nth-child(1) { grid-row:auto; }
  .footer-links { justify-content:flex-start; }
}
@media (max-width: 620px) {
  .container { width:min(calc(100% - 28px), var(--max)); }
  .nav-wrap { height:70px; }
  .nav-links { top:69px; padding-left:14px; padding-right:14px; }
  .brand span { display:none; }
  .hero { min-height:760px; }
  .hero-media img { content:url('images/hero-conducting-mobile.webp'); object-position:center center; }
  .hero::after { background:linear-gradient(0deg, rgba(15,12,10,.8) 0%, rgba(15,12,10,.2) 72%), linear-gradient(90deg, rgba(15,12,10,.34), rgba(15,12,10,.12)); }
  .hero-content { padding:4rem 0 3.5rem; }
  .hero h1 { font-size:clamp(3.7rem,18vw,5.6rem); }
  .hero-sub { font-size:1.15rem; }
  .button { width:100%; }
  .section, .section-sm { padding:4.5rem 0; }
  .page-hero { padding:5rem 0 3.5rem; }
  .page-hero h1 { font-size:clamp(3.4rem,16vw,5rem); }
  .split-copy-inner { width:min(calc(100% - 32px),560px); padding:4rem 0; }
  .detail-list { grid-template-columns:1fr; }
  .work-row { grid-template-columns:1fr; gap:.25rem; }
  .work-row .year { text-align:left; }
  .gallery { grid-auto-rows:300px; }
  .footer-bottom { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
}

/* 2026 refinement */
.body-copy p { margin: 0 0 1.2rem; }
.body-copy p:last-child { margin-bottom: 0; }
.body-copy a, .bio-copy a, .work-row a, .featured-work-copy a:not(.button), .split-copy p a {
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
  text-decoration-color: color-mix(in srgb, currentColor 48%, transparent);
}
.body-copy a:hover, .bio-copy a:hover, .work-row a:hover, .featured-work-copy a:not(.button):hover, .split-copy p a:hover {
  text-decoration-color: currentColor;
}
.page-hero { padding: 6.2rem 0 3.8rem; }
.page-hero .lead { margin-bottom: 0; }
.feature-work-home { background: var(--paper-deep); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.feature-work-home-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(3rem,7vw,8rem); align-items:end; }
.feature-work-home .section-title { font-size:clamp(2.7rem,5vw,5.2rem); }
.feature-work-home .body-copy { max-width:560px; justify-self:end; font-size:1.04rem; color:var(--ink-soft); }

.education-section { background: var(--paper-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.education-block { margin-top:2.5rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.education-primary { padding:2.3rem 0 2rem; display:grid; grid-template-columns:.55fr 1.1fr 1fr; gap:1.5rem; align-items:baseline; }
.education-primary span, .education-secondary span { font-size:.76rem; text-transform:uppercase; letter-spacing:.13em; color:var(--ink-soft); }
.education-primary > span { font-weight:400; }
.education-secondary span { font-weight:700; }
.education-primary strong, .education-primary .education-degree { font-family:var(--serif); font-size:clamp(2rem,4vw,3.4rem); line-height:1; }
.education-primary strong { font-weight:500; }
.education-primary .education-degree { font-weight:400; }
.education-primary p { margin:0; color:var(--ink-soft); text-align:right; }
.education-secondary { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.education-secondary > div { display:flex; flex-direction:column; gap:.4rem; padding:1.5rem 0 1.6rem; }
.education-secondary > div + div { border-left:1px solid var(--line); padding-left:2rem; }
.education-secondary strong { font-family:var(--serif); font-weight:500; font-size:1.16rem; }
.wide-photo { border-radius:var(--radius); width:100%; max-height:680px; object-fit:cover; object-position:center 45%; box-shadow:var(--shadow); }

.featured-work { background:#1b1814; color:white; }
.featured-work-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(3rem,8vw,9rem); align-items:end; }
.featured-work .eyebrow { color:#d8bd92; }
.featured-work-title h2 { margin:.4rem 0 .8rem; font-size:clamp(3.3rem,7vw,7rem); }
.featured-work-type { margin:0; color:rgba(255,255,255,.6); font-size:.93rem; text-transform:uppercase; letter-spacing:.12em; }
.featured-work-copy { color:rgba(255,255,255,.78); font-size:1.08rem; max-width:590px; }
.featured-work-copy > p { margin:0 0 2rem; }
.album-details { border-top:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); padding:1.1rem 0; display:grid; gap:.25rem; font-size:.9rem; }
.album-details span:first-child { color:white; font-weight:700; }
.featured-work-actions { margin-top:1.7rem; }
.featured-work .button-dark { background:var(--white); color:var(--ink); }
.compositions-section { background:var(--paper); }
.recordings-section { background:var(--paper-deep); border-top:1px solid var(--line); }
.commission-band { border-top:1px solid var(--line); }

@media (max-width: 900px) {
  .feature-work-home-grid, .featured-work-grid { grid-template-columns:1fr; }
  .feature-work-home .body-copy { justify-self:start; }
  .education-primary { grid-template-columns:1fr; gap:.5rem; }
  .education-primary p { text-align:left; }
}

@media (max-width: 620px) {
  .page-hero { padding:4.5rem 0 3rem; }
  .feature-work-home { padding:3.8rem 0; }
  .education-block { margin-top:2rem; }
  .education-primary { padding:1.8rem 0 1.5rem; }
  .education-secondary { grid-template-columns:1fr; }
  .education-secondary > div { padding:1.25rem 0 1.35rem; }
  .education-secondary > div + div { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .featured-work-title h2 { font-size:clamp(3rem,15vw,4.8rem); }
  .featured-work-copy { font-size:1rem; }
}

/* September 2026 polish */
.homepage-intro { text-wrap: balance; }
.homepage-intro span + span::before { content: " "; }

/* Gallery images are intentionally uncaptioned. */
.gallery figure { background: var(--paper-deep); }

.contact-hero { padding-bottom: 3.4rem; }
.contact-hero-inner { max-width: 860px; }
.contact-hero .lead { max-width: 650px; }
.contact-section { padding-top: 5.5rem; }
.contact-layout {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: clamp(3.5rem, 8vw, 8.5rem);
  align-items: start;
}
.contact-intro { max-width: 430px; }
.contact-intro h2 {
  margin: 0 0 1.3rem;
  font-size: clamp(2.5rem, 4.6vw, 4.15rem);
  line-height: 1.02;
}
.contact-intro > p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.06rem;
  line-height: 1.7;
}
.contact-secondary-links {
  display: grid;
  gap: .7rem;
  margin-top: 2.2rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--line);
}
.contact-secondary-links a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  text-decoration: none;
  font-size: .95rem;
  font-weight: 680;
}
.contact-secondary-links a:hover { color: var(--wood); }
.contact-form {
  background: rgba(255,255,255,.28);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 4px);
  padding: clamp(1.5rem, 3.6vw, 2.7rem);
  box-shadow: 0 18px 50px rgba(35,25,17,.07);
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.form-field { margin-bottom: 1.25rem; }
.form-field label {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  margin: 0 0 .45rem;
  color: var(--ink);
  font-size: .82rem;
  font-weight: 760;
  letter-spacing: .03em;
}
.form-optional {
  color: var(--ink-soft);
  font-size: .74rem;
  font-weight: 520;
  letter-spacing: 0;
}
.form-field input,
.form-field textarea {
  width: 100%;
  border: 1px solid rgba(32,29,25,.2);
  border-radius: 11px;
  background: rgba(255,253,248,.78);
  color: var(--ink);
  padding: .82rem .9rem;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.form-field textarea { resize: vertical; min-height: 170px; line-height: 1.55; }
.form-field input:focus,
.form-field textarea:focus {
  border-color: var(--wood);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(94,58,35,.09);
}
.form-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.form-submit-row {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  margin-top: .35rem;
}
.form-submit { min-width: 145px; border: 0; cursor: pointer; }
.form-submit:disabled { opacity: .58; cursor: wait; transform: none; }
.form-status {
  margin: 0;
  min-height: 1.4em;
  color: var(--ink-soft);
  font-size: .88rem;
  line-height: 1.45;
}
.form-status.success { color: #315b3b; }
.form-status.error { color: #8a3028; }

@media (max-width: 900px) {
  .contact-layout { grid-template-columns: 1fr; gap: 2.8rem; }
  .contact-intro { max-width: 650px; }
}

@media (max-width: 620px) {
  .homepage-intro {
    font-size: clamp(1.75rem, 8.8vw, 2.05rem) !important;
    line-height: 1.13 !important;
    letter-spacing: -.022em !important;
    max-width: 100%;
    text-wrap: initial;
  }
  .homepage-intro span { display: block; white-space: nowrap; }
  .homepage-intro span + span::before { content: ""; }
  .contact-hero { padding-bottom: 2.7rem; }
  .contact-section { padding-top: 3.6rem; }
  .contact-layout { gap: 2.3rem; }
  .contact-intro h2 { font-size: 2.55rem; margin-bottom: 1rem; }
  .contact-form { padding: 1.25rem; border-radius: 16px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .form-field { margin-bottom: 1rem; }
  .form-submit-row { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .form-submit { width: 100%; }
}

/* Keep the Saint Joseph photo sequence visually connected. */
.saint-joseph-section { padding-bottom: 1rem; }
.photo-continuation { padding-top: 0; }
@media (max-width: 620px) {
  .saint-joseph-section { padding-bottom: 1rem; }
  .photo-continuation { padding-top: 0; }
}

/* Works page: selected compositions paired with their available media. */
.featured-video {
  margin-top: 1.8rem;
  border-radius: var(--radius);
  overflow: hidden;
  background: #0f0e0c;
  box-shadow: 0 20px 55px rgba(0,0,0,.24);
}
.selected-compositions-section { background: var(--paper); }
.selected-work-block {
  display: grid;
  grid-template-columns: minmax(240px,.72fr) minmax(0,1.28fr);
  gap: clamp(2.5rem,7vw,7rem);
  align-items: center;
  padding: 4rem 0;
  border-top: 1px solid var(--line);
}
.selected-work-block:first-of-type { margin-top: 2.5rem; }
.selected-work-block-last { border-bottom: 1px solid var(--line); }
.selected-work-copy { max-width: 430px; }
.selected-work-copy h3 {
  margin: 0 0 1rem;
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(2.2rem,4vw,3.6rem);
  line-height: 1.03;
  letter-spacing: -.025em;
}
.selected-work-copy p:last-child { margin: 0; color: var(--ink-soft); font-size: 1.03rem; }
.selected-work-copy a {
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
  text-decoration-color: color-mix(in srgb, currentColor 48%, transparent);
}
.selected-work-copy a:hover { text-decoration-color: currentColor; }
.selected-work-media { margin: 0; }
.selected-work-text-only { grid-template-columns: 1fr; }
.selected-work-text-only .selected-work-copy { max-width: 720px; }
.full-works-note {
  margin: 2.2rem 0 0;
  color: var(--ink-soft);
  font-size: .98rem;
}
.full-works-note a { color: var(--ink); font-weight: 700; text-underline-offset: .22em; }

@media (max-width: 900px) {
  .selected-work-block { grid-template-columns: 1fr; gap: 1.8rem; padding: 3.2rem 0; }
  .selected-work-copy { max-width: 650px; }
}

@media (max-width: 620px) {
  .featured-video { margin-top: 1.5rem; }
  .selected-work-block:first-of-type { margin-top: 2rem; }
  .selected-work-block { padding: 2.7rem 0; gap: 1.4rem; }
  .full-works-note { margin-top: 1.7rem; }
}


/* Final typography polish: avoid awkward single-word wrap lines on narrow screens. */
.section-title,
.page-hero h1,
.page-hero .lead,
.big-copy,
.featured-work-title h2,
.selected-work-copy h3,
.contact-intro h2,
.footer-title {
  text-wrap: balance;
}

.body-copy p,
.bio-copy p,
.featured-work-copy p,
.selected-work-copy p,
.full-works-note,
.contact-intro > p,
.contact-secondary-links a,
.album-details span {
  text-wrap: pretty;
  orphans: 2;
  widows: 2;
}

@media (max-width: 620px) {
  .section-title {
    font-size: clamp(2.15rem, 11vw, 3.15rem);
    line-height: 1.04;
  }
  .page-hero .lead {
    max-width: 32ch;
  }
  .body-copy,
  .bio-copy,
  .selected-work-copy,
  .contact-intro {
    max-width: 100%;
  }
  .full-works-note {
    max-width: 34ch;
    line-height: 1.65;
  }
}
