:root{--paper:#f7f5ee;
--ink:#30382e;
--olive:#555d3d;
--muted:#666b60;
--line:#d9dbd0;
--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;
scroll-padding-top:24px}
body{margin:0;
background:var(--paper);
color:var(--ink);
font-family:Arial,Helvetica,sans-serif;
font-size:1.0625rem;
line-height:1.75}
a{color:inherit;
text-decoration:none}
a:hover{color:var(--olive)}
button{font:inherit}
a,button,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--olive);
outline-offset:6px}
img{display:block;
max-width:100%;
object-fit:cover}
figure{margin:0}
.wrap{width:min(1280px,calc(100% - 112px));
margin-inline:auto}
.preview{text-align:center;
background:#e9eade;
color:#555d3d;
font-size:0.875rem;
padding:5px 20px;
letter-spacing:.03em}
.preview span{margin:0 8px}
.site-header{min-height:112px;
display:flex;
align-items:center;
justify-content:space-between;
gap:30px;
border-bottom:1px solid var(--line)}
.brand{font-family:var(--serif);
font-size:29px;
line-height:1.2;
white-space:nowrap;
letter-spacing:-1px}
.brand span{display:block;
font-family:Arial,sans-serif;
font-size:0.8125rem;
letter-spacing:2.7px;
margin-top:9px}
.site-header nav{display:flex;
align-items:center;
gap:34px;
font-size:1rem}
.site-header nav>a:not(.button){padding:12px 0;
border-bottom:1px solid transparent}
.site-header nav>a[aria-current=page]{border-color:var(--olive)}
.button{display:inline-flex;
align-items:center;
justify-content:space-between;
gap:45px;
background:var(--olive);
color:#fff;
padding:17px 26px;
font-size:1rem;
min-height:50px;
transition:background .18s}
.button:hover{background:#3f482e;
color:white}
.button span{font-size:19px;
line-height:1}
.button.small{padding:12px 20px;
gap:22px;
min-height:46px}
.menu-toggle{display:none}
.skip{position:absolute;
left:16px;
top:-100px;
background:var(--ink);
color:white;
z-index:100;
padding:12px}
.skip:focus{top:16px}
.hero{display:grid;
grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
gap:68px;
padding-top:65px;
padding-bottom:60px;
align-items:center}
.eyebrow{display:block;
text-transform:uppercase;
font-size:0.8125rem;
letter-spacing:2px;
line-height:1.7;
margin:0 0 24px;
color:var(--olive)}
.hero .eyebrow{display:flex;
align-items:center;
gap:13px;
font-size:0.8125rem;
letter-spacing:1.7px}
.dash{display:block;
width:28px;
height:1px;
background:var(--olive)}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);
font-weight:400}
h1{font-size:clamp(52px,5.2vw,78px);
line-height:1.09;
letter-spacing:-3px;
margin-bottom:28px}
em{font-weight:400;
color:var(--olive)}
h2{font-size:clamp(36px,3.6vw,52px);
line-height:1.15;
letter-spacing:-1.8px;
margin-bottom:26px}
h3{font-size:25px;
line-height:1.25;
letter-spacing:-.5px;
margin-bottom:10px}
p{color:var(--muted);
margin-bottom:24px}
.lead{font-size:1.0625rem;
max-width:360px;
line-height:1.85;
margin-bottom:30px}
.hero .text-link{display:block;
width:fit-content;
margin-top:18px}
.text-link{font-size:1rem;
padding:9px 0;
border-bottom:1px solid #979c89;
display:inline-block;
line-height:1.5}
.hero-note{font-size:0.75rem;
letter-spacing:2px;
margin:38px 0 0;
color:var(--muted)}
.hero-photo{position:relative;
padding:0 0 0 18px}
.hero-photo:before{content:'';
position:absolute;
inset:24px -15px 45px 34px;
background:#e1e2d5;
z-index:-1}
.hero-photo img{width:100%;
height:570px;
object-position:50% 37%;
filter:saturate(.7)}
figcaption{display:flex;
justify-content:space-between;
gap:10px;
padding-top:18px;
font-size:0.8125rem;
color:var(--muted)}
figcaption span:first-child{font-family:var(--serif);
font-style:italic;
font-size:1.0625rem;
color:var(--ink)}
.intro-line{border-top:1px solid var(--line);
border-bottom:1px solid var(--line);
display:flex;
align-items:center;
justify-content:space-between;
gap:30px;
padding-block:38px}
.intro-line>span{font-size:0.8125rem;
letter-spacing:1.5px;
text-transform:uppercase}
.intro-line p{font-family:var(--serif);
font-size:29px;
line-height:1.35;
color:var(--ink);
margin:0}
.intro-line>a{font-size:28px;
border:1px solid var(--line);
width:48px;
height:48px;
border-radius:50%;
text-align:center}
.section{padding-block:100px}
.split{display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:110px;
align-items:start}
.measure{max-width:360px}
.numbered article{display:flex;
gap:24px;
padding:25px 0;
border-bottom:1px solid var(--line)}
.numbered article:first-child{padding-top:0}
.numbered article>span{font-family:var(--serif);
font-style:italic;
color:var(--olive);
font-size:1rem;
margin-top:5px}
.numbered p{font-size:1rem;
margin:0}
.invitation{padding:70px 0;
background:#ebedde}
.invitation .eyebrow{padding-top:12px}
.placeholder{font-size:1rem;
padding-left:20px;
border-left:2px solid #b5bba3;
line-height:1.9;
max-width:620px}
.meet{align-items:center}
.portrait-detail{padding:0 55px 0 25px}
.portrait-detail img{width:100%;
height:460px;
object-position:50% 30%;
filter:saturate(.55)}
.music-note{border-top:1px solid var(--line);
margin-top:38px;
padding-top:25px;
display:flex;
gap:20px;
align-items:center}
.music-note>span{font-size:38px;
color:var(--olive)}
.music-note h3{font-size:20px}
.music-note a{font-size:1rem;
text-decoration:underline;
text-underline-offset:5px}
.closing{background:#343e31;
color:var(--paper);
padding:70px 0;
text-align:center}
.closing .eyebrow{color:#c1c7aa}
.closing h2{font-size:60px}
.closing em{color:#c4cbae}
.button.light{background:#e8ecd9;
color:#30382e;
margin-top:10px}
.button.light:hover{background:white}
.quiet-link{display:block;
color:#d3d8c9;
font-size:0.875rem;
margin-top:22px;
text-decoration:underline;
text-underline-offset:5px}
.footer-top{display:flex;
justify-content:space-between;
align-items:center;
padding:55px 0 40px}
.footer-top>div{display:flex;
gap:35px;
font-size:1rem}
.footer-bottom{display:flex;
justify-content:space-between;
border-top:1px solid var(--line);
padding:22px 0;
font-size:0.8125rem;
color:var(--muted)}
.page-hero{padding-block:85px 75px}
.page-hero .lead{max-width:560px}
.rule{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);
padding:20px 0}
.faq details:first-child{border-top:1px solid var(--line)}
summary{display:flex;
justify-content:space-between;
gap:20px;
align-items:center;
cursor:pointer;
list-style:none;
min-height:30px;
font-size:1rem}
summary::-webkit-details-marker{display:none}
summary span{font-size:20px;
transition:transform .15s}
.faq details[open] summary span{transform:rotate(45deg)}
.faq details p{font-size:1rem;
margin:18px 25px 0 0}
.about-hero{align-items:center;
padding-top:65px}
.about-photo img{height:560px;
width:100%;
object-position:50% 30%;
filter:saturate(.65)}
.record-art{background:#e3e5d7;
aspect-ratio:1;
display:grid;
place-items:center;
padding:40px}
.record{width:100%;
aspect-ratio:1;
border-radius:50%;
background:repeating-radial-gradient(circle,#30352d 0px,#30352d 3px,#3b4136 4px,#30352d 5px);
display:grid;
place-items:center}
.record>span{border-radius:50%;
text-align:center;
line-height:1.2;
background:#c9cdaf;
width:36%;
aspect-ratio:1;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
font-family:var(--serif);
font-size:30px}
.record small{display:block;
margin-top:4px;
font-family:Arial;
font-size:0.75rem;
letter-spacing:1px}
.recording{border-top:1px solid var(--line);
padding-top:25px}
.booking-heading{padding-bottom:30px}
.booking-tabs{display:flex;
gap:25px;
border-bottom:1px solid var(--line);
margin-top:45px}
.booking-tabs a{font-size:1rem;
padding:14px 0}
.booking-tabs a[aria-current=page]{border-bottom:2px solid var(--olive)}
.booking-section{padding-bottom:75px}
.booking-empty{padding:65px 30px;
background:#ebedde;
text-align:center}
.booking-empty p{max-width:520px;
margin:0 auto 20px;
font-size:1rem}
.booking-help{font-size:1rem;
margin-top:25px}
.booking-shell{border:1px solid var(--line);
background:white}
.booking-shell iframe{display:block;
width:100%;
min-height:780px;
border:0}
.resource{padding:50px 0;
border-bottom:1px solid var(--line)}
blockquote{max-width:700px;
margin:30px auto}
blockquote p{font-family:var(--serif);
font-size:30px}
cite{font-size:1rem}

@media(min-width:1600px){.hero-photo img{height:640px}
.hero{padding-block:80px}
.hero h1{font-size:84px}
}

@media(max-width:1050px){.wrap{width:calc(100% - 64px)}
.hero{gap:36px}
.hero-photo img{height:510px}
.hero h1{font-size:58px}
.split{gap:55px}
.site-header nav{gap:20px}
.portrait-detail{padding:0 20px 0 0}
.hero .eyebrow{font-size:0.75rem;
letter-spacing:1px}
}

@media(max-width:760px){.wrap{width:calc(100% - 40px)}
.preview{font-size:0.8125rem}
.site-header{min-height:88px;
flex-wrap:wrap;
gap:0;
padding-block:18px;
position:relative}
.brand{font-size:25px}
.brand span{font-size:0.75rem;
letter-spacing:2px}
.site-header nav{width:100%;
flex-direction:column;
align-items:stretch;
gap:0;
padding-top:20px}
.site-header nav a{min-height:48px}
.js .site-header nav{display:none}
.js .site-header nav.open{display:flex}
.js .menu-toggle{display:flex;
align-items:center;
gap:12px;
border:1px solid var(--line);
background:transparent;
padding:9px 14px;
min-height:44px;
font-size:1rem;
color:var(--ink)}
.hero{grid-template-columns:1fr;
gap:35px;
padding-top:40px;
padding-bottom:35px}
.hero h1{font-size:clamp(48px,10vw,70px);
letter-spacing:-2px}
.hero .eyebrow{font-size:0.75rem;
letter-spacing:1.1px}
.hero .lead{max-width:360px}
.hero-note{margin-top:26px}
.hero-photo{padding-left:0;
margin-right:10px}
.hero-photo img{height:480px;
object-position:50% 32%}
.hero-photo:before{inset:16px -10px 48px 16px}
figcaption{font-size:0.75rem}
.intro-line{flex-wrap:wrap;
gap:20px;
padding-block:28px}
.intro-line>span{width:100%;
font-size:0.75rem}
.intro-line p{font-size:23px;
max-width:calc(100% - 65px)}
.intro-line p br{display:none}
.intro-line>a{flex-shrink:0}
.section{padding-block:60px}
.split{grid-template-columns:1fr;
gap:35px}
h2{font-size:39px}
.invitation{padding:45px 0}
.invitation .split{gap:10px}
.portrait-detail{padding:0 35px 0 0}
.portrait-detail img{height:390px}
.closing{padding:55px 0}
.closing h2{font-size:48px}
.footer-top{display:block;
padding-block:35px}
.footer-top>div{gap:25px;
margin-top:30px}
.footer-bottom{flex-direction:column;
gap:5px}
.page-hero{padding-block:55px}
.page-hero h1{font-size:54px;
letter-spacing:-2px}
.about-photo img{height:460px}
.record-art{max-width:450px;
width:100%}
.booking-empty{padding:40px 20px}
.booking-shell iframe{min-height:850px}
.booking-tabs{margin-top:30px}
.booking-heading{padding-bottom:25px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{transition:none!important;
animation:none!important}
}

.archive-gallery{display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:24px;
margin-block:40px}
.archive-gallery img{width:100%;
height:360px}
.archive-copy{max-width:750px}
.archive-copy p{white-space:pre-line}
.archive-notice{font-size:1rem}
.archive-links{display:flex;
gap:24px;
flex-wrap:wrap;
padding-top:35px}
.archive-links a{font-size:1rem;
text-decoration:underline;
text-underline-offset:5px}
@media(max-width:760px){.archive-gallery{grid-template-columns:1fr}
.archive-gallery img{height:auto}
.page-hero:has(.archive-copy) h1{font-size:42px;
overflow-wrap:anywhere}
}

.archive-section{padding-bottom:75px}
.archive-section .eyebrow{margin-bottom:0}

/* User-supplied portraits: preserve the framing and avoid enlarging the garden image. */
.portrait-detail--smiling{padding:0 25px;
display:flex;
justify-content:center}

.portrait-detail--smiling img{width:100%;
max-width:360px;
height:auto;
aspect-ratio:1500/1614;
filter:none}

.about-photo--garden{width:100%;
max-width:400px;
justify-self:center}

.about-photo--garden img{width:100%;
height:auto;
aspect-ratio:400/585;
filter:none}

@media(max-width:760px){.portrait-detail--smiling{padding:0 20px}
.about-photo--garden{max-width:350px}
}

/* Existing writing and performances, surfaced as an editorial collection. */
.resources-heading{display:flex;
justify-content:space-between;
align-items:center;
gap:30px;
margin-bottom:35px}

.resources-heading h2{margin-bottom:0}
.resources-heading>.text-link{flex-shrink:0}

.resource-features{display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:65px}

.resource-features article{border-top:1px solid var(--line);
padding-top:28px}

.resource-features h3{font-size:32px;
max-width:460px}
.resource-features p{max-width:490px}

.resource-features .eyebrow,.resource-listing .eyebrow{margin-bottom:14px}

.resource-jumps{display:flex;
flex-wrap:wrap;
gap:28px;
margin-top:35px;
font-size:1rem}

.resource-jumps a{border-bottom:1px solid var(--line);
padding:10px 0}

.resource-listing article+article{border-top:1px solid var(--line);
margin-top:35px;
padding-top:35px}

.resource-listing h3{font-size:32px}
.resource-listing p{margin-bottom:12px}

.resource-aside{border-top:1px solid var(--line);
padding-top:25px;
margin-top:35px}

.resource-aside .eyebrow{margin-bottom:12px}
.resource-aside p{font-size:1rem;
margin-bottom:10px}

.resource-back{width:fit-content;
padding:10px 0;
text-decoration:underline;
text-underline-offset:5px}

@media(max-width:760px){.resources-heading{align-items:flex-start;
flex-direction:column;
gap:12px}
.resource-features{grid-template-columns:1fr;
gap:35px}
.resource-jumps{gap:20px}
.footer-top>div{flex-wrap:wrap}
.resource-features h3,.resource-listing h3{font-size:29px}
}


.concert-video{max-width:960px;
margin:35px 0}
.concert-player{aspect-ratio:16/9;
background:var(--ink)}
.concert-player iframe{display:block;
width:100%;
height:100%;
border:0}
.concert-video figcaption{align-items:baseline;
flex-wrap:wrap;
font-size:1rem}
.concert-video figcaption a{text-decoration:underline;
text-underline-offset:4px;
padding:8px 0}


/* Readable typography and generous targets across all page types. */
html{font-size:100%}

body{line-height:1.7}

.lead{font-size:1.125rem;
max-width:44ch;
line-height:1.7}

.hero .lead{max-width:42ch}

.eyebrow,.hero .eyebrow{font-size:.8125rem;
letter-spacing:.1em}

.hero-note{font-size:.8125rem;
letter-spacing:.1em}

.brand span{letter-spacing:.12em;
white-space:normal;
max-width:32ch}

.site-header nav{gap:24px}

.site-header nav>a{display:inline-flex;
align-items:center;
min-height:48px;
padding:10px 6px}

.site-header nav>a[aria-current],.booking-tabs a[aria-current]{font-weight:700;
border-bottom:2px solid var(--olive)}

.button{font-size:1rem;
line-height:1.5;
min-height:48px;
padding:14px 24px}

.button.small{min-height:48px;
padding:12px 18px;
gap:16px}

.text-link{font-size:1rem;
min-height:44px;
padding:10px 2px;
line-height:1.5}

.quiet-link{font-size:1rem;
min-height:44px;
padding:10px 8px;
width:fit-content;
max-width:100%;
margin-inline:auto}

.footer-top>div{flex-wrap:wrap;
gap:12px 24px;
justify-content:flex-end}

.footer-top>div a,.archive-links a,.music-note a,.concert-video figcaption a{display:inline-flex;
align-items:center;
min-height:44px;
padding:10px 2px;
font-size:1rem}

.footer-bottom{font-size:.875rem}

.resource-jumps a{min-height:44px;
padding:10px 4px}

.resource-back{font-size:1rem;
min-height:44px;
letter-spacing:0;
text-transform:none}

.resource-features h3 a,.resource-listing h3 a{display:block;
min-height:44px;
text-decoration:underline;
text-decoration-thickness:1px;
text-underline-offset:5px;
text-decoration-color:#979c89}

.booking-tabs{gap:16px;
flex-wrap:wrap}

.booking-tabs a{min-height:48px;
font-size:1rem;
padding:12px 8px}

.faq details{padding:8px 0}

.faq summary{font-size:1.0625rem;
min-height:56px;
padding:10px 4px;
line-height:1.5}

.faq summary span{flex-shrink:0}

.faq details p{font-size:1rem;
margin:8px 4px 20px}

figcaption{font-size:.875rem;
flex-wrap:wrap;
line-height:1.5}

.archive-copy{max-width:68ch}

.archive-copy h2{font-size:1.625rem;
line-height:1.4;
letter-spacing:-.02em;
margin-top:40px;
margin-bottom:16px}

.archive-gallery a{display:block}

.archive-gallery img{object-fit:contain;
height:360px;
background:#ebedde}

.section{padding-block:80px}

.page-hero{padding-block:60px}

.booking-heading{padding-bottom:24px}

.resource-group{padding-block:60px}

h1,h2,h3{overflow-wrap:break-word;
text-wrap:balance}

a:hover{text-decoration:underline;
text-underline-offset:5px}

.button:hover,.brand:hover{text-decoration:none}

:focus-visible{outline:3px solid #687147;
outline-offset:4px}

main:focus{outline:none}

@media(max-width:1100px){
.site-header{flex-wrap:wrap;
min-height:96px;
padding-block:18px;
gap:0}

.site-header nav{width:100%;
flex-direction:column;
align-items:stretch;
gap:4px;
padding-top:20px}

.site-header nav>a{min-height:48px;
padding:12px}

.js .site-header nav{display:none}

.js .site-header nav.open{display:flex}

.js .menu-toggle{display:flex;
align-items:center;
gap:12px;
min-height:48px;
border:1px solid #979c89;
background:transparent;
padding:10px 14px;
color:var(--ink);
font-size:1rem}

.footer-top{gap:30px}
.footer-top>div{justify-content:flex-start}

}

@media(max-width:760px){
.wrap{width:calc(100% - 40px)}

.preview{font-size:.8125rem;
line-height:1.5;
padding:8px 20px}

.brand{font-size:25px}
.brand span{font-size:.75rem}

.hero .eyebrow{font-size:.8125rem;
letter-spacing:.07em}

.hero-note{font-size:.8125rem}

.hero h1,.page-hero h1{font-size:clamp(2.625rem,10vw,3.5rem);
letter-spacing:-.04em}

h2{font-size:clamp(2rem,8vw,2.5rem)}

.closing h2{font-size:clamp(2.25rem,10vw,3rem)}

.section{padding-block:48px}
.page-hero{padding-block:40px}
.resource-group{padding-block:40px}

.booking-heading{padding-bottom:24px}
.footer-top>div{gap:6px 20px}

.intro-line>span{font-size:.8125rem}
.intro-line p{font-size:25px}

.resource-jumps{gap:8px 16px}
.archive-links{gap:8px 20px}

.resource-features{gap:28px}
.concert-video{margin-block:24px}

.archive-gallery{gap:20px}
.archive-gallery img{height:auto}

.archive-copy h2{font-size:1.5rem}

.page-hero:has(.archive-copy) h1{font-size:clamp(2.25rem,9vw,3rem)}

}

@media(max-width:360px){.wrap{width:calc(100% - 32px)}
.brand{font-size:23px}
.brand span{font-size:.75rem}
.js .menu-toggle{padding:10px;
gap:6px}
.numbered article{gap:16px}
.booking-tabs{gap:8px}
.booking-tabs a{padding-inline:4px}
}

/* Keep the homepage introduction calm and easy to read. */
.hero .eyebrow{font-size:1rem;text-transform:none;letter-spacing:0;line-height:1.5}
.hero .eyebrow .dash{display:none}
.hero h1{font-size:clamp(2.625rem,4.5vw,4rem);line-height:1.15;letter-spacing:-.025em}
.hero-note{text-transform:none;letter-spacing:0;font-size:1rem}

.closing p{color:#e5e8da}
.button{max-width:100%;gap:16px}
@media(max-width:360px){.button{padding-inline:16px;gap:10px}}

.lesson-change{padding-bottom:48px}
.lesson-change p{max-width:60ch}
.lesson-change .button{text-align:center}

/* Album artwork and accessible native audio controls. */
.album-section{align-items:start}
.album-player{min-width:0;border:1px solid var(--line);background:#eeeee4}
.album-cover{display:block;width:100%;height:auto}
.album-details{padding:clamp(20px,4vw,36px)}
.album-details h2{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.2;margin:12px 0}
.album-tracks{list-style:none;padding:0;margin:24px 0 0}
.album-tracks li{border-top:1px solid var(--line);padding:16px 0}
.album-tracks li:last-child{padding-bottom:0}
.album-tracks h3{font:inherit;font-weight:600;margin:0 0 12px}
.album-tracks audio{display:block;width:100%;min-width:0}

.featured-recording{padding:32px clamp(20px,4vw,40px);margin-bottom:48px;background:#eeeee4;border:1px solid var(--line)}
.featured-recording h2{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.25;margin:12px 0}
.featured-recording h2 span{display:block;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-size:1.125rem;font-weight:400;line-height:1.6;margin-top:8px;color:var(--muted)}
.featured-recording audio{display:block;width:100%;max-width:640px;margin-top:24px}

.live-recordings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;margin-top:36px}
.live-recording{min-width:0}
.live-recording h3{font-size:1.4rem;margin:0 0 16px}
.live-recording iframe{display:block;border:0;width:100%;margin-bottom:12px}
@media(max-width:760px){.live-recordings-grid{grid-template-columns:1fr}}
