:root{--paper:#f5f1e8;--ink:#242626;--muted:#62625d;--red:#8a293a;--line:#d6d1c7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.7 Arial,sans-serif}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--red)}:focus-visible{outline:3px solid var(--red);outline-offset:5px}.skip{position:absolute;left:15px;top:-100px;z-index:10;background:var(--paper);padding:10px}.skip:focus{top:10px}header{min-height:84px;display:flex;justify-content:space-between;align-items:center;padding:20px 6%;gap:20px;border-bottom:1px solid var(--line)}.brand{font:16px Georgia,serif;letter-spacing:4px;text-transform:uppercase;text-decoration:none}nav{display:flex;gap:30px;font-size:14px}nav a{text-decoration:none}.hero{text-align:center;background:var(--ink);color:var(--paper);padding:70px 20px 55px}.eyebrow{font-size:14px;letter-spacing:3px;text-transform:uppercase;color:var(--red);font-weight:600;margin:0 0 15px}.hero .eyebrow{color:#d5959e}h1,h2,h3,.work{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(58px,8vw,116px);letter-spacing:-4px;line-height:1.05;margin:20px 0}h2{font-size:clamp(40px,5vw,60px);line-height:1.12;margin:0 0 24px;letter-spacing:-1.5px}h3{font-size:29px;line-height:1.25;margin:10px 0}.subtitle{font-size:18px;color:#d5d2ca}.event{display:flex;gap:30px;justify-content:center;font-size:14px;letter-spacing:1px;text-transform:uppercase;margin-top:28px}.venue{font-size:14px;color:#bdbdb6;margin:8px 0 0}.ensemble-photo{margin:0;position:relative}.ensemble-photo img{display:block;width:100%;height:auto;max-height:720px;object-fit:cover;object-position:center 46%}.ensemble-photo figcaption{font-size:12px;text-align:right;padding:5px 6%;color:var(--muted)}.section{max-width:1120px;margin:auto;padding:85px 35px}.intro{color:var(--muted);margin-bottom:36px}.piece{border-top:1px solid var(--line)}.piece:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.piece summary{display:grid;grid-template-columns:45px 1fr 210px 22px;align-items:center;gap:20px;padding:28px 0}.number{color:var(--red);font:20px Georgia,serif}.work{display:block;font-size:29px;line-height:1.25}.movement{display:block;font-size:16px;color:var(--muted);margin-top:5px}.composer{text-align:right;font-size:16px}.plus{color:var(--red);font-size:26px;font-weight:300}details[open]>summary .plus{transform:rotate(45deg)}.note{margin:0 42px 30px 65px;max-width:780px}.note p{margin-top:0}.source{font-size:14px;color:var(--muted)}.metadata{font-size:14px;border-left:2px solid var(--red);padding-left:15px;color:var(--muted)}.roster{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;border-top:1px solid var(--line);padding-top:30px;margin-top:40px}.roster h3{font-size:24px}.role{font-size:14px;color:var(--muted);line-height:1.6}.about-copy{max-width:780px}.artists{background:#eae5db}.people{display:grid;grid-template-columns:repeat(3,1fr);gap:42px 30px;margin-top:35px}.person img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block;filter:grayscale(1)}.person summary{font-size:14px;color:var(--red);margin-top:15px;text-decoration:underline;text-underline-offset:4px}.person details p{font-size:16px}.composers{display:grid;grid-template-columns:1fr 1fr;gap:0 45px}.composer-bio{border-top:1px solid var(--line);padding:20px 0}.composer-bio summary{display:flex;justify-content:space-between;align-items:center}.composer-bio h3{font-size:25px}.composer-bio p{font-size:16px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px}.section-heading p{max-width:280px;color:var(--muted);font-size:16px}footer{background:var(--ink);color:var(--paper);padding:38px 6%;display:flex;justify-content:space-between;gap:20px;font-size:14px}footer a{font-family:Georgia,serif;font-size:22px;text-decoration:none}@media(max-width:700px){header{padding:19px 20px;flex-wrap:wrap;justify-content:center;gap:12px}.brand{font-size:14px}nav{gap:28px}.hero{padding:45px 20px 35px}h1{letter-spacing:-2px}.event{display:block;font-size:13px}.event span{display:block;margin:5px}.ensemble-photo img{max-height:none}.section{padding:55px 23px}.piece summary{grid-template-columns:28px 1fr 20px;gap:12px;padding:24px 0}.work{font-size:25px}.composer{grid-column:2;grid-row:2;text-align:left;font-size:15px}.plus{grid-column:3;grid-row:1/3}.note{margin:0 0 26px 40px}.roster{grid-template-columns:1fr 1fr;gap:25px 15px}.people{grid-template-columns:minmax(0,1fr);gap:45px}.person{min-width:0}.person details p{font-size:17px;line-height:1.75}.person summary{min-height:44px;padding:10px 0}.person h3{font-size:24px}.composers{grid-template-columns:1fr}.section-heading{display:block}footer{display:block}footer span{display:block;margin-top:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{nav,.skip,.plus{display:none}.hero,footer{background:white;color:black}.hero .eyebrow{color:black}.section{padding:25px 0}.ensemble-photo img{max-height:380px;object-fit:contain}.piece,.person{break-inside:avoid}body{background:white;font-size:12pt}.people{grid-template-columns:repeat(3,1fr)}a{text-decoration:none}}
/* October review: focused reading views and uncropped session photography. */
header{position:sticky;top:0;z-index:20;background:var(--paper);min-height:72px}nav a{padding:8px 0;border-bottom:2px solid transparent}nav a[aria-current="page"]{color:var(--red);border-color:var(--red)}.hero{padding:34px 20px 30px}.hero h1{font-size:clamp(48px,7vw,80px);margin:12px 0}.hero .eyebrow{margin-bottom:8px}.hero .event{margin-top:18px}.hero-link{display:inline-block;margin-top:15px;font-size:14px;color:#eee}.section{padding-top:55px}.section[hidden]{display:none}.roster{margin:25px 0 35px;gap:24px}.roster img{width:100%;height:auto;display:block;border-radius:3px}.roster h3{font-size:23px;line-height:1.25}.roster .role{margin-top:8px}.roster>div{min-width:0}.ensemble-story,.archive-photo{border-top:1px solid var(--line);padding:20px 0}.ensemble-story>summary,.archive-photo>summary{color:var(--red);text-decoration:underline;text-underline-offset:5px;min-height:44px}.about-copy{margin-top:18px}.quartet-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.quartet-gallery figure{margin:0}.quartet-gallery figure:last-child{grid-column:1/-1}.quartet-gallery img{display:block;width:100%;height:auto}.quartet-gallery figcaption{font-size:12px;color:var(--muted);margin-top:5px}.archive-photo .ensemble-photo img{object-fit:contain;max-height:none}.inline-bio{margin-top:25px;border-top:1px solid var(--line)}.inline-bio h3{font-size:23px}.inline-bio img{width:150px;height:auto;float:left;margin:15px 20px 10px 0}.inline-bio::after{content:'';display:block;clear:both}.pending-note{color:var(--muted);font-style:italic}.person img{filter:none}.people{align-items:start}.piece>summary{padding:22px 0}.note{max-width:820px}.inline-bio summary{min-height:44px}.inline-bio summary>h3{margin-right:15px}
@media(max-width:700px){html{scroll-padding-top:112px}header{gap:4px;padding:10px 16px;min-height:92px}.brand{width:100%;text-align:center}nav{justify-content:space-around;width:100%;gap:15px}nav a{min-height:44px;padding:7px 12px}.hero{padding:26px 20px}.hero .subtitle{font-size:16px}.hero .event{font-size:12px;margin-top:15px}.section{padding:35px 20px}.roster{gap:24px 14px}.roster h3{font-size:21px}.quartet-gallery{grid-template-columns:1fr}.quartet-gallery figure:last-child{grid-column:auto}.note{margin-left:0;padding-left:0}.piece>summary{gap:10px}.piece .work{font-size:24px}.inline-bio h3{font-size:21px}.people{margin-top:25px}.person img{max-width:380px}.inline-bio img{float:none;width:140px}.event span{margin:4px}.hero-link{margin-top:10px}.section h2{font-size:40px}}
@media print{header{position:static}.section[hidden]{display:block}.hero-link{display:none}.roster img{max-height:200px;object-fit:contain}.quartet-gallery{display:none}}

/* Match the three wider portraits to Shruti's face scale; source images stay intact. */
.roster .portrait-frame{width:100%;aspect-ratio:2/3;overflow:hidden;border-radius:3px}
.roster .portrait-frame img{width:100%;height:100%;object-fit:cover;border-radius:0}
.roster .portrait-gideon img{transform:scale(1.45);transform-origin:46% 42%}
.roster .portrait-ayden img{transform:scale(1.5);transform-origin:48% 13%}
.roster .portrait-joe img{transform:scale(1.6);transform-origin:50% 34%}

/* A work reveals its note, portrait, and complete biography in one step. */
section.inline-bio{max-width:none;padding-top:22px}.inline-bio>h3{margin:0 0 22px}
section.inline-bio img{width:280px;max-width:100%;height:auto;float:left;margin:0 24px 18px 0}
.close-details{display:inline-flex;align-items:center;justify-content:center;min-height:46px;max-width:100%;padding:10px 18px;margin:24px 0 8px;border:1px solid var(--red);border-radius:3px;background:transparent;color:var(--red);font:inherit;font-size:15px;line-height:1.4;cursor:pointer;text-align:center}
.close-details:hover{background:var(--red);color:var(--paper)}.close-details[hidden]{display:none}
@media(max-width:700px){section.inline-bio img{width:320px;max-width:100%;float:none;display:block;margin:0 0 22px}section.inline-bio>h3{font-size:25px}.close-details{width:100%;font-size:16px}}
@media print{.close-details{display:none}}

/* Quartet gallery: cinematic opening, followed by members, biography and group portraits. */
.quartet-cinematic{margin:26px 0 36px}.quartet-cinematic img{width:100%;height:auto;display:block}
.quartet-gallery .group-frame{width:100%;aspect-ratio:3/2;overflow:hidden}
.quartet-gallery .group-frame img{width:100%;height:100%;object-fit:cover}
.quartet-gallery .group-bridge img{transform:scale(1.16);transform-origin:0% 28%}
.quartet-gallery .group-woodland img{transform:scale(1.24);transform-origin:50% 28%}
.quartet-gallery .ensemble-photo img{height:auto;max-height:none;object-fit:contain}
@media(max-width:700px){.quartet-cinematic{margin:22px 0 30px}}

/* Composer portrait sources remain proportionate and fully visible. */
.inline-bio .composer-portrait{width:280px;max-width:100%;float:left;margin:0 24px 18px 0}
.inline-bio .composer-portrait img{width:100%;height:auto;float:none;margin:0;display:block}
.composer-portrait figcaption{font:12px/1.5 Arial,sans-serif;color:var(--muted);margin-top:7px}
.inline-bio .compact-portrait{width:160px}.inline-bio .wide-portrait{float:none;width:100%;max-width:620px}
@media(max-width:700px){.inline-bio .composer-portrait{float:none;width:320px;max-width:100%;margin:0 0 22px}.inline-bio .compact-portrait{width:160px}.inline-bio .wide-portrait{width:100%;max-width:100%}}

/* Mark-approved gentle web display lift; source image bytes and educator/composer images are unchanged. */
img[src^="assets/WL8A"]{filter:brightness(1.12) contrast(.98)}

/* Directed refinement: the two woodland photos preceding the approved bench in phone order. Bench stays at its approved treatment. */
img[src="assets/WL8A8377-enhanced-w2048.webp"],img[src="assets/WL8A8378-enhanced-w2048.webp"]{filter:brightness(1.2) contrast(.96)}

/* Requested composer-photo credits stay with their portraits and remain readable. */
.composer-portrait.mark-supplied figcaption{font-size:14px;line-height:1.5}
