:root{--paper: #f2f0e9;--ink: #141311;--accent: #3a9ad4;--accent-ink: #1e7ab2;--line: #c8c4b6}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.frame{border:2px solid var(--ink);margin:14px}header{display:flex;justify-content:space-between;align-items:stretch;border-bottom:2px solid var(--ink)}header .cell{padding:1.1rem 1.6rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}header .cell+.cell{border-left:2px solid var(--ink)}header .mark{font-weight:700}header .spacer{flex:1}header a{color:var(--ink);text-decoration:none}header a:hover{color:var(--accent-ink)}header .cell.active{background:var(--ink)}header .cell.active a{color:var(--paper)}footer{display:flex;justify-content:space-between;padding:1.1rem 1.6rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}footer a{color:var(--ink);text-decoration:none;margin-left:1.6rem}footer a:hover{color:var(--accent-ink)}.hero{position:relative;padding:5.5rem 3rem 4rem 190px;overflow:hidden;border-bottom:2px solid var(--ink)}.hero .staff{position:absolute;left:0;right:0;top:34%;height:128px;pointer-events:none}.hero .staff i{display:block;height:1px;background:var(--line);margin-bottom:31px}.hero .staff .clef{position:absolute;left:3rem;top:64px;transform:translateY(-50%);font-family:Apple Symbols,Segoe UI Symbol,serif;font-size:210px;line-height:1;color:#a19b8b}.hero .fullname{position:relative;display:block;margin-bottom:1.1rem;font-size:.74rem;letter-spacing:.34em;text-transform:uppercase;color:var(--accent-ink)}.hero h1{position:relative;font-size:clamp(4rem,12vw,11rem);line-height:.88;font-weight:800;letter-spacing:-.04em;text-transform:uppercase}.hero h1 .accent{color:var(--accent)}.hero .meta{position:relative;display:flex;flex-wrap:wrap;gap:3rem;margin-top:2.6rem;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase}.hero .meta b{color:var(--accent-ink)}.ticker{border-bottom:2px solid var(--ink);overflow:hidden;white-space:nowrap;background:var(--ink);color:var(--paper)}.ticker .track{display:inline-block;padding:.8rem 0;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;animation:slide 28s linear infinite}.ticker .track span{margin:0 2.2rem}.ticker .track .dot{color:var(--accent)}@keyframes slide{0%{transform:translate(0)}to{transform:translate(-50%)}}.voices{display:grid;grid-template-columns:1fr 1fr;border-bottom:2px solid var(--ink)}.voice{padding:3.2rem 3rem 3.6rem;position:relative;cursor:pointer;transition:background .3s,color .3s}.voice+.voice{border-left:2px solid var(--ink)}.voice:hover{background:var(--accent);color:#fff}.voice h2{font-size:clamp(2.4rem,5vw,4.4rem);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;margin:0 0 1.4rem}.voice p{font-size:.95rem;line-height:1.7;max-width:26rem;color:#55524a;transition:color .3s}.voice:hover p{color:#ffffffeb}.voice p a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.voice p a:hover{color:var(--accent-ink)}.voice:hover p a{text-decoration-color:#ffffffb3}.voice:hover p a:hover{color:#fff;text-decoration-color:#fff}.voice .arrow{position:absolute;top:3rem;right:3rem;font-size:2.2rem;font-weight:300;transition:transform .3s}.voice:hover .arrow{transform:translate(6px,-6px)}.voice .tags{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.6rem}.voice .tags span{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;border:1px solid currentColor;border-radius:999px;padding:.4rem .9rem}.upcoming{border-bottom:2px solid var(--ink)}.upcoming .head{padding:1.1rem 1.6rem;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;border-bottom:2px solid var(--ink);background:var(--accent);color:#fff;font-weight:700}.upcoming .row{display:grid;grid-template-columns:12rem 1fr auto;gap:2rem;padding:1.6rem;align-items:baseline;border-bottom:1px solid var(--line)}.upcoming .row:last-child{border-bottom:none}.upcoming .row .d{font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}.upcoming .row .w{font-family:Georgia,serif;font-style:italic;font-size:1.35rem}.upcoming .row .v{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#55524a}.page-hero{padding:4rem 3rem 3rem 190px;border-bottom:2px solid var(--ink);position:relative;overflow:hidden}.page-hero .staff{position:absolute;left:0;right:0;top:15%;height:128px;pointer-events:none}.page-hero .staff i{display:block;height:1px;background:var(--line);margin-bottom:31px}.page-hero .staff .clef{position:absolute;left:3rem;top:64px;transform:translateY(-50%);font-family:Apple Symbols,Segoe UI Symbol,serif;font-size:210px;line-height:1;color:#a19b8b}.page-hero h1{position:relative;font-size:clamp(3.4rem,9vw,8rem);line-height:.9;font-weight:800;letter-spacing:-.03em;text-transform:uppercase}.page-hero p.lede{position:relative;max-width:40rem;margin-top:2rem;font-family:Georgia,serif;font-size:1.15rem;line-height:1.75;color:#44413a}.page-hero p.lede a{color:var(--accent-ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.page-hero p.lede a:hover{color:var(--ink)}.bio-hero{border-bottom:none;padding-bottom:1rem}.bio-body{display:grid;grid-template-columns:1fr minmax(300px,420px);gap:3rem;align-items:start;padding:0 3rem 3.5rem}.bio-body .bio-text .lede{max-width:none;margin-top:0}.bio-body .bio-text .lede+.lede{margin-top:1.8rem}.bio-photo{margin:0;border:2px solid var(--ink)}.bio-photo img{display:block;width:100%;height:auto}.cta-band{padding:3rem;text-align:center;background:var(--ink);color:var(--paper)}.cta-band p{font-family:Georgia,serif;font-style:italic;font-size:1.5rem;margin-bottom:1.6rem}.cta-band a{display:inline-block;border:2px solid var(--accent);color:#fff;background:var(--accent);text-decoration:none;padding:.9rem 2.4rem;font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;font-weight:700}.cta-band a:hover{background:transparent;color:var(--accent)}.filters{display:flex;border-bottom:2px solid var(--ink);overflow-x:auto}.filters .label{padding:1rem 1.6rem;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;font-weight:700;background:var(--accent);color:#fff;border-right:2px solid var(--ink);white-space:nowrap}.filters button{background:none;border:none;border-right:1px solid var(--line);cursor:pointer;padding:1rem 1.15rem;font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;font-family:inherit;color:var(--ink);white-space:nowrap}.filters button.on{background:var(--ink);color:var(--paper)}.filters button:hover{color:var(--accent-ink)}.filters button.on:hover{color:var(--paper)}.works .row{display:grid;grid-template-columns:6rem 1fr 18rem 10rem 8rem;gap:1.6rem;padding:1.7rem 1.6rem;align-items:baseline;border-bottom:1px solid var(--line);transition:background .25s,color .25s}.works .row:hover{background:var(--accent);color:#fff}.works .year{font-weight:700;font-size:.8rem;letter-spacing:.12em}.works .title{font-family:Georgia,serif;font-style:italic;font-size:1.5rem}.works .inst{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#55524a}.works .row:hover .inst{color:#ffffffd9}.works .dur{font-size:.74rem;letter-spacing:.12em;color:#55524a}.works .row:hover .dur{color:#ffffffd9}.works .listen{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;text-align:right;font-weight:700;color:var(--accent-ink)}.works .row:hover .listen{color:#fff}.works .listen a{color:inherit;text-decoration:none}.works .listen a:hover{text-decoration:underline}.creds{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.cred{padding:2.6rem 3rem}.cred+.cred{border-left:2px solid var(--ink)}.cred h3{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:1.6rem}.cred ul{list-style:none}.cred li{padding:.7rem 0;border-top:1px solid var(--line);font-size:.95rem;line-height:1.5}.cred li b{font-weight:700}.cred li span{color:#55524a}.hero-photo{margin:0;border-bottom:2px solid var(--ink);background:#000}.hero-photo img{display:block;width:100%;height:clamp(320px,44vh,540px);object-fit:cover;object-position:50% 36%}.hero-photo figcaption{padding:.7rem 1.6rem;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:#55524a;text-align:right;background:var(--paper)}.now{display:grid;grid-template-columns:auto 1fr;border-bottom:2px solid var(--ink)}.now .tag{padding:2rem 1.6rem;background:var(--accent);color:#fff;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;font-weight:700;display:flex;align-items:center;border-right:2px solid var(--ink)}.now .body{padding:2rem 3rem}.now .body .what{font-family:Georgia,serif;font-style:italic;font-size:1.6rem}.now .body .who{margin-top:.6rem;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:#55524a}.section-head{padding:1.1rem 1.6rem;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;border-bottom:2px solid var(--ink);background:var(--accent);color:#fff;font-weight:700}.engagements .row{display:grid;grid-template-columns:12rem 1fr 16rem;gap:2rem;padding:1.7rem 1.6rem;align-items:baseline;border-bottom:1px solid var(--line);transition:background .25s,color .25s}.engagements .row:hover{background:var(--accent);color:#fff}.engagements .when{font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.engagements .role{font-family:Georgia,serif;font-style:italic;font-size:1.4rem}.engagements .org{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#55524a}.engagements .row:hover .org{color:#ffffffd9}.skills{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.skill{padding:2.4rem 2.4rem 2.6rem}.skill+.skill{border-left:2px solid var(--ink)}.skill .n{font-size:2rem;font-weight:800;color:var(--accent-ink)}.skill h3{font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;margin:1rem 0 .8rem}.skill p{font-size:.92rem;line-height:1.65;color:#55524a}.contact-grid{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:2px solid var(--ink)}.contact-card{padding:2.8rem 2.4rem 3rem;position:relative;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:.5rem;transition:background .3s,color .3s}.contact-card+.contact-card{border-left:2px solid var(--ink)}.contact-card:hover{background:var(--accent);color:#fff}.contact-card .k{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent-ink)}.contact-card:hover .k{color:#fff}.contact-card .v{font-family:Georgia,serif;font-style:italic;font-size:1.6rem}.contact-card .arrow{position:absolute;top:2.8rem;right:2.4rem;font-size:1.4rem;transition:transform .3s}.contact-card:hover .arrow{transform:translate(5px,-5px)}.contact-form{padding:2.8rem 3rem 3.2rem;border-bottom:2px solid var(--ink);max-width:760px}.contact-form .field{margin-bottom:1.4rem}.contact-form label{display:block;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:.5rem}.contact-form input,.contact-form textarea{width:100%;background:#fff;border:1px solid var(--line);color:var(--ink);font-family:inherit;font-size:.98rem;padding:.8rem 1rem;border-radius:0}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent)}.contact-form textarea{min-height:150px;resize:vertical}.contact-form .send{display:inline-block;border:2px solid var(--accent);background:var(--accent);color:#fff;font-family:inherit;font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;font-weight:700;padding:.9rem 2.4rem;cursor:pointer;transition:background .25s,color .25s}.contact-form .send:hover{background:transparent;color:var(--accent)}.contact-form .send:disabled{opacity:.5;cursor:default}.contact-form .form-status{margin-top:1.1rem;font-size:.9rem;line-height:1.5;font-family:Georgia,serif;font-style:italic}.contact-form .form-status.ok{color:#2f7d32}.contact-form .form-status.err{color:#b3261e}.contact-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.contact-alt{padding:1.1rem 1.6rem;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;border-bottom:2px solid var(--ink);color:var(--accent-ink);font-weight:700}@media(max-width:820px){.frame{margin:8px}header{flex-wrap:wrap}header .spacer{display:none}header .cell{flex:1 1 auto;text-align:center;padding:.85rem .6rem;font-size:.6rem;letter-spacing:.12em}header .cell.mark{flex-basis:100%;text-align:left;border-bottom:2px solid var(--ink)}header .cell+.cell{border-left:2px solid var(--ink)}.hero{padding:3rem 1.5rem 2.5rem}.page-hero{padding:2.6rem 1.5rem 2.2rem}.bio-body{grid-template-columns:1fr;gap:1.8rem;padding:0 1.5rem 2.2rem}.bio-photo{order:-1}.hero .staff,.page-hero .staff{display:none}.hero .meta{flex-direction:column;gap:.7rem}.voices{grid-template-columns:1fr}.voice+.voice{border-left:none;border-top:2px solid var(--ink)}.voice{padding:2.4rem 1.5rem 2.6rem}.voice .arrow{top:2rem;right:1.5rem}.upcoming .row{grid-template-columns:1fr;gap:.35rem}.works .row{grid-template-columns:3.2rem 1fr;column-gap:1rem;row-gap:.25rem;padding:1.3rem 1.1rem}.works .year{grid-column:1;grid-row:1 / span 3}.works .title{grid-column:2;grid-row:1;font-size:1.25rem}.works .inst{grid-column:2;grid-row:2}.works .dur{display:none}.works .dur.has-prem{display:block;grid-column:2;grid-row:3;margin-top:.2rem}.works .dur.has-prem~.listen{grid-row:4}.works .listen{grid-column:2;grid-row:3;text-align:left;margin-top:.2rem}.creds{grid-template-columns:1fr}.cred+.cred{border-left:none;border-top:2px solid var(--ink)}.cred{padding:2rem 1.5rem}.now{grid-template-columns:1fr}.now .tag{border-right:none;border-bottom:2px solid var(--ink);justify-content:flex-start;padding:1rem 1.5rem}.now .body{padding:1.5rem}.engagements .row{grid-template-columns:1fr;gap:.3rem;padding:1.3rem 1.1rem}.skills{grid-template-columns:1fr}.skill+.skill{border-left:none;border-top:2px solid var(--ink)}.contact-grid{grid-template-columns:1fr}.contact-card+.contact-card{border-left:none;border-top:2px solid var(--ink)}.contact-form{padding:1.8rem 1.5rem 2.2rem}footer{flex-direction:column;gap:.8rem;align-items:flex-start}footer a{margin-left:0;margin-right:1.6rem}.cta-band p{font-size:1.25rem}}
