:root{
	--bg:#191714;
	--paper:#191714;
	--ink:#f5f1ea;
	--muted:#6d665e;
	--accent:#8f3d2f;
	--line:#d9d0c5;
	--dark:#171512;
	--max:1180px;
	--nav:72px;
	}
*{
	box-sizing:border-box;
	}

html{
	scroll-behavior:smooth;
	scroll-padding-top:var(--nav);
	}
body{
	margin:0;
	background:var(--bg);
	color:var(--ink);
	font:17px/1.65 Georgia,'Times New Roman',serif;
	}
img{
	display:block;
	max-width:100%;
	}
a{
	color:inherit;
	}
.container{
	width:min(calc(100% - 2rem),var(--max));
	margin:auto;
	}
.site-header{
	position:sticky;
	top:0;
	z-index:20;
	background:rgba(23,21,18,.96);
	color:#fff;
	border-bottom:1px solid rgba(255,255,255,.12)
	}
.nav-wrap{
	min-height:var(--nav);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1rem
}
.brand{
	text-decoration:none;
	font:600 1.05rem/1.1 Arial,sans-serif;
	letter-spacing:.08em;
	text-transform:uppercase
}
.nav-toggle{
	display:none;
	background:none;
	border:1px solid #777;
	color:#fff;
	padding:.55rem .7rem
}
.site-nav{
	display:flex;
	gap:1.2rem
}
.site-nav a{
	text-decoration:none;
	font:600 .78rem/1 Arial,sans-serif;
	letter-spacing:.09em;
	text-transform:uppercase;
	color:#ddd
}
	.site-nav a:hover,.site-nav a.active{
	color:#fff
}
.hero{
	min-height:86vh;
	display:grid;
	align-items:end;
	background:linear-gradient(90deg,rgba(0,0,0,.75),rgba(0,0,0,.12)),url('../images/sg03.jpg') center/cover;
	color:#fff
	}
.hero-inner{
	padding:8rem 0 6rem;
	max-width:740px
	}
.eyebrow{
	font:600 .8rem/1 Arial,sans-serif;
	letter-spacing:.2em;
	text-transform:uppercase;
	color:#d8c5b5
	}
.hero h1{
	font-size:clamp(3.3rem,8vw,7rem);
	line-height:.9;
	margin:.3rem 0 1rem
	}
.hero p{
	font-size:1.35rem;
	margin:0 0 2rem
	}
.button{
	display:inline-block;
	text-decoration:none;
	background:var(--accent);
	color:#fff;
	padding:.8rem 1.15rem;
	border:0;
	font:700 .8rem/1 Arial,sans-serif;
	letter-spacing:.08em;
	text-transform:uppercase;
	cursor:pointer
	}
.button.secondary{
	background:transparent;
	border:1px solid #fff;
	margin-left:.5rem
	}
.section{
	padding:6rem 0;
	border-bottom:1px solid var(--line)
	}
.section.alt{
	background:var(--paper)
	}
.section.dark{
	background:var(--dark);
	color:#fff
	}
.section-head{
	max-width:760px;
	margin-bottom:2.5rem
	}
.section h2{
	font-size:clamp(2.3rem,5vw,4rem);
	line-height:1;
	margin:.25rem 0
	}
.lede{
	font-size:1.2rem;
	color:var(--muted)
	}
.dark .lede{
	color:#bbb
	}
.quotes{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:1rem;
	margin-bottom:4rem
	}
.quote{
	margin:0;
	padding:1.5rem;
	background:var(--paper);
	border-top:3px solid var(--accent)
	}
.quote cite{
	display:block;
	margin-top:1rem;
	color:var(--muted);
	font-size:.85rem
	}
.bio-grid{
	display:grid;
	grid-template-columns:minmax(260px,.75fr) 1.5fr;
	gap:3rem;
	align-items:start
	}
.bio-grid img{
	aspect-ratio:4/5;
	object-fit:cover
	}
.timeline{
	display:grid;
	gap:1rem
	}
.event{
	display:grid;
	grid-template-columns:190px 1fr;
	gap:1.5rem;
	padding:1.35rem 0;
	border-top:1px solid var(--line)
	}
.event time{
	font-weight:bold
	}
.event h3{
	margin:0 0 .25rem;
	font-size:1.2rem
	}
.event p{
	margin:.1rem 0;
	color:var(--muted)
	}
details{
	border-top:1px solid var(--line);
	padding:1rem 0
	}
summary{
	cursor:pointer;
	font-weight:bold;
	font-size:1.1rem
	}
.media-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:1rem
	}
.media-card{
	background:#26231f;
	padding:1.4rem
	}
.media-card h3{
	margin-top:0
	}
.media-placeholder{
	aspect-ratio:16/9;
	background:#0e0d0c;
	display:grid;
	place-items:center;
	color:#aaa;
	margin-bottom:1rem
	}
.repertoire-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:1rem 2rem
	}
.rep-block{
	background:var(--paper);
	padding:1.25rem
	}
.rep-block h3{
	margin-top:0;
	color:var(--accent)
	}
.rep-block h4{
	margin-bottom:.15rem
	}
.rep-block p{
	margin:.1rem 0;
	color:#fffdf9
	}
.gallery{
	columns:4 240px;
	column-gap:.75rem
	}
.gallery button{
	display:block;
	width:100%;
	border:0;
	padding:0;
	margin:0 0 .75rem;
	background:none;
	cursor:zoom-in
	}
.gallery img{
	width:100%;
	height:auto
	}
.lightbox{
	position:fixed;
	inset:0;
	z-index:50;
	background:rgba(0,0,0,.93);
	display:none;
	place-items:center;
	padding:2rem
	}
.lightbox.open{
	display:grid
	}
.lightbox img{
	max-height:90vh;
	max-width:92vw
	}
.lightbox-close{
	position:absolute;
	right:1rem;
	top:1rem;
	color:#fff;
	background:none;
	border:1px solid #777;
	font-size:1.6rem
	}
.contact-grid{
	display:grid;
	grid-template-columns:.8fr 1.2fr;
	gap:3rem
	}
.contact-list{
	font-size:1.15rem
	}
.contact-form{
	display:grid;
	gap:1rem
	}
.contact-form label{
	font:700 .78rem/1 Arial,sans-serif;
	letter-spacing:.08em;
	text-transform:uppercase
	}
.contact-form input,.contact-form textarea{
	width:100%;
	padding:.85rem;
	border:1px solid var(--line);
	background:#fff;
	font:inherit
	}
.contact-form textarea{
	min-height:180px
	}
.site-footer{
	padding:2rem 0;
	background:#0f0e0d;
	color:#aaa;
	font-size:.9rem
	}
.footer-wrap{
	display:flex;
	justify-content:space-between;
	gap:1rem
	}
.note{
	padding:1rem;
	border-left:3px solid var(--accent);
	background:#efe6dc;
	color:#51483f
	}
.skip-link{
	position:absolute;
	left:-9999px
	}
.skip-link:focus{
	left:1rem;
	top:1rem;
	z-index:99;
	background:#fff;
	padding:.5rem
	}
@media(max-width:850px){
		.nav-toggle{
		display:block
		}
	.site-nav{
		display:none;
		position:absolute;
		left:0;
		right:0;
		top:var(--nav);
		background:#171512;
		padding:1.25rem;
		flex-direction:column
		}
	.site-nav.open{
		display:flex
		}
	.quotes,.media-grid,.repertoire-grid{
		grid-template-columns:1fr
		}
	.bio-grid,.contact-grid{
		grid-template-columns:1fr
		}
	.event{
		grid-template-columns:1fr;
		gap:.25rem
		}
	.hero{
		min-height:75vh
		}
	.section{
		padding:4rem 0
		}
	.footer-wrap{
		flex-direction:column
		}
	}
@media(prefers-reduced-motion:reduce){
	html{
		scroll-behavior:auto
		}
	}
.lightbox__figure {
	display: flex;
	flex-direction: column;
	max-width: min(92vw, 1400px);
	max-height: 92vh;
	margin: 0;
	}
.lightbox__image {
	display: block;
	max-width: 100%;
	max-height: calc(92vh - 5rem);
	object-fit: contain;
	}
.lightbox__caption {
	padding: 0.9rem 1.25rem;
	color: #fff;
	background: rgba(0, 0, 0, 0.78);
	font-size: 0.95rem;
	line-height: 1.45;
	text-align: center;
	}
.lightbox__caption:empty {
	display: none;
	}
.lightbox-prev,
.lightbox-next {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 3.5rem;
	height: 4.5rem;
	padding: 0;
	border: 0;
	border-radius: 0.25rem;
	color: #fff;
	background: rgba(0, 0, 0, 0.45);
	font-size: 3rem;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	}
.lightbox-prev {
	left: 1rem;
	}
.lightbox-next {
	right: 1rem;
	}
.lightbox-prev:hover,
.lightbox-next:hover,
.lightbox-prev:focus-visible,
.lightbox-next:focus-visible {
	background: rgba(0, 0, 0, 0.75);
	}
@media (max-width: 700px) {
	.lightbox-prev,
	.lightbox-next {
		width: 2.75rem;
		height: 3.75rem;
		font-size: 2.5rem;
		}
	.lightbox-prev {
		left: 0.25rem;
		}
	.lightbox-next {
		right: 0.25rem;
		}
	}
.audio-player {
	display: block;
	width: 100%;
	margin-top: 1rem;
	}