@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Manrope:wght@400;500;600&display=swap');

:root { --ivory:#f7f5ef; --white:#fff; --ink:#1e2927; --quiet:#65716d; --sage:#73867d; --mist:#dfe5df; --line:#d5dad5; --clay:#a65d49; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--ivory); font:400 16px/1.7 "Manrope",Arial,sans-serif; }
a { color:inherit; text-underline-offset:.2em; }
.skip-link { position:absolute; top:-5rem; left:1rem; z-index:20; padding:.65rem 1rem; background:var(--ink); color:white; }
.skip-link:focus { top:1rem; }
.site-header { width:min(1240px,calc(100% - 3rem)); margin:auto; min-height:104px; display:flex; align-items:center; justify-content:space-between; gap:2rem; border-bottom:1px solid var(--line); }
.identity { display:flex; align-items:center; gap:1rem; text-decoration:none; }
.identity .monogram { width:50px; height:50px; display:grid; place-items:center; border:1px solid var(--sage); border-radius:50%; font:400 1rem "Instrument Serif",serif; letter-spacing:.08em; }
.identity strong,.identity small { display:block; }
.identity strong { font:500 1rem/1.3 "Manrope",sans-serif; letter-spacing:.02em; }
.identity small { color:var(--quiet); font-size:.71rem; letter-spacing:.09em; text-transform:uppercase; }
nav { display:flex; gap:clamp(1rem,3vw,2.7rem); }
nav a { color:#394440; font-size:.78rem; text-decoration:none; }
nav a:hover,nav a:focus { color:var(--clay); }
.hero { width:min(1240px,calc(100% - 3rem)); margin:auto; display:grid; grid-template-columns:.88fr 1.12fr; min-height:720px; align-items:center; gap:clamp(3rem,7vw,7rem); padding:5rem 0; }
.eyebrow,.section-label,.availability { color:var(--clay); font-size:.67rem; line-height:1.4; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
h1,h2,p { margin-top:0; }
h1 { margin:.7rem 0 2rem; font:400 clamp(4.5rem,7vw,7.5rem)/.82 "Instrument Serif",Georgia,serif; letter-spacing:-.045em; }
h1 span { display:inline-block; color:var(--sage); font-size:.38em; font-style:italic; letter-spacing:0; }
.intro { max-width:35rem; color:#47534f; font-size:1.15rem; }
.text-link { display:inline-block; margin-top:1rem; color:var(--clay); font-size:.78rem; font-weight:600; text-decoration:none; border-bottom:1px solid #c9998b; }
.portrait { margin:0; }
.portrait img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.portrait figcaption { margin-top:.8rem; color:var(--quiet); font-size:.7rem; }
.introduction,.engagements { width:min(1120px,calc(100% - 3rem)); margin:auto; display:grid; grid-template-columns:210px 1fr; gap:3rem; padding:8rem 0; }
.section-label { color:var(--quiet); padding-top:.65rem; }
h2 { font:400 clamp(3rem,5vw,5.4rem)/.98 "Instrument Serif",Georgia,serif; letter-spacing:-.025em; }
.prose-columns { columns:2 280px; column-gap:3.5rem; }
.prose-columns p { break-inside:avoid; }
.quote-band { padding:7rem max(1.5rem,calc((100vw - 970px)/2)); color:white; text-align:center; background:var(--sage); }
.quote-band blockquote { margin:0 auto 1.5rem; max-width:900px; font:400 clamp(2.5rem,5vw,4.7rem)/1.05 "Instrument Serif",serif; }
.quote-band p { margin:0; font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.section-heading h2 { margin-bottom:0; }
.section-heading p { max-width:320px; margin-bottom:.5rem; color:var(--quiet); font-size:.8rem; }
.schedule { border-top:1px solid var(--ink); }
.schedule article { display:grid; grid-template-columns:120px 1fr auto; gap:2rem; align-items:center; padding:1.5rem 0; border-bottom:1px solid var(--line); }
time { font:400 2.25rem/1 "Instrument Serif",serif; }
time span { display:block; margin-bottom:.3rem; color:var(--quiet); font:500 .63rem "Manrope",sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.schedule h3 { margin:0 0 .1rem; font:400 1.35rem "Instrument Serif",serif; }
.schedule p { margin:0; color:var(--quiet); font-size:.78rem; }
.availability { color:var(--clay)!important; text-align:right; }
.program { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(3rem,8vw,8rem); padding:8rem max(1.5rem,calc((100vw - 1120px)/2)); background:white; }
.program__lead h2 { font-size:clamp(2.7rem,4.5vw,4.6rem); }
.details { margin:0; }
.details div { display:flex; justify-content:space-between; gap:1.5rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.details dt { color:var(--quiet); font-size:.75rem; }
.details dd { margin:0; text-align:right; font:400 1.1rem "Instrument Serif",serif; }
details { grid-column:1/-1; padding:1.1rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
summary { cursor:pointer; color:var(--clay); font-size:.78rem; font-weight:600; }
details p { max-width:760px; margin:1rem 0 0; color:var(--quiet); }
.notice { width:min(970px,calc(100% - 3rem)); margin:8rem auto; display:grid; grid-template-columns:90px 1fr; gap:3rem; }
.notice__mark { width:62px; height:62px; display:grid; place-items:center; border:1px solid var(--sage); border-radius:50%; color:var(--sage); font:italic 2rem "Instrument Serif",serif; }
.notice h2 { font-size:clamp(2.5rem,4vw,4rem); }
.contact { padding:8rem 1.5rem; color:white; text-align:center; background:var(--ink); }
.contact h2 { max-width:780px; margin:0 auto 2rem; }
.contact a { color:white; font-size:1.05rem; }
footer { width:min(1240px,calc(100% - 3rem)); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:3rem; padding:3rem 0; color:var(--quiet); font-size:.67rem; }
footer strong,footer span { display:block; }
footer strong { color:var(--ink); font-size:.8rem; }
footer p { max-width:440px; margin:0; text-align:right; }
@media (max-width:780px) { .site-header { align-items:flex-start; flex-direction:column; padding:1.5rem 0; } nav { width:100%; flex-wrap:wrap; } .hero { grid-template-columns:1fr; min-height:0; padding:4rem 0; } .hero__copy { order:2; } .introduction,.engagements { grid-template-columns:1fr; padding:5rem 0; } .section-heading { align-items:flex-start; flex-direction:column; } .schedule article { grid-template-columns:80px 1fr; gap:1rem; } .availability { grid-column:2; text-align:left; } .program { grid-template-columns:1fr; padding-block:5rem; } .notice { grid-template-columns:1fr; margin-block:5rem; } footer { align-items:flex-start; flex-direction:column; } footer p { text-align:left; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
