:root{--ink:#191916;--paper:#f4f1ea;--cream:#ebe5d8;--rose:#a45d56;--muted:#716d64;--line:#c9c2b5;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit}.topbar{height:76px;padding:10px clamp(20px,5vw,76px);display:flex;justify-content:space-between;align-items:center;background:var(--paper);position:sticky;top:0;z-index:5;border-bottom:1px solid #d9d3c8}.brand img{width:200px;max-height:48px;object-fit:contain}.topbar nav{display:flex;gap:26px}.topbar nav a{text-decoration:none;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase}.topbar nav a:hover{color:var(--rose)}.menu-toggle{display:none}.section-wrap{max-width:1160px;margin:auto;padding-left:clamp(24px,7vw,100px);padding-right:clamp(24px,7vw,100px)}.cover{min-height:600px;padding-top:72px;padding-bottom:38px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6%;position:relative}.cover-copy{padding-bottom:26px}.eyebrow{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rose);font-weight:700;margin:0 0 20px}.cover h1{font:500 clamp(4.4rem,9vw,8rem)/.87 var(--serif);letter-spacing:-.07em;margin:0;color:#181815}.cover h1 em{font-weight:500}.byline{font:italic 1.4rem var(--serif);margin:20px 0}.cover-note{font:1.3rem/1.45 var(--serif);color:#59554d}.cover-credit{font-size:.68rem;color:var(--muted);margin:19px 0 0;max-width:390px}.cover-credit strong{color:var(--ink);font-weight:600}.dot{padding:0 7px;color:var(--rose)}.cover-art{border:1px solid #b9b1a4;box-shadow:14px 14px 0 #e4ddd0;transform:rotate(1deg);line-height:0}.cover-art img{width:100%;height:auto;display:block;filter:grayscale(1)}.scroll-cue{position:absolute;bottom:18px;left:clamp(24px,7vw,100px);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;text-decoration:none}.scroll-cue span{font-size:1rem;padding-left:10px}.edition-strip{background:var(--ink);color:var(--paper);display:flex;justify-content:space-around;padding:12px 5%;font-size:.64rem;letter-spacing:.15em;text-transform:uppercase}.two-messages{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-top:100px;padding-bottom:108px}.message h2,.story h2,.section-heading h2,.team h2,.thanks h2,.glt h2{font:500 clamp(2.5rem,4vw,4.2rem)/1.08 var(--serif);letter-spacing:-.04em;margin:0 0 25px}.message p:not(.eyebrow):not(.signature){font-size:.91rem;line-height:1.82;color:#393832}.message .rule{height:1px;width:54px;background:var(--rose);margin:30px 0}.signature{font:italic 1.4rem var(--serif);margin:26px 0 0}.signature span{display:block;font:500 .7rem var(--sans);letter-spacing:.07em;color:var(--muted)}.president{border-left:1px solid var(--line);padding-left:9%}.story{background:#e8e1d5;max-width:none;display:grid;grid-template-columns:1fr 2fr;gap:8%;padding-top:92px;padding-bottom:92px}.story-mark{font:700 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--rose);margin:0}.story h2 em,.thanks h2 em{color:var(--rose);font-weight:500}.story .lead{font:1.25rem/1.5 var(--serif);max-width:620px}.story p:not(.eyebrow){max-width:660px}.small-note{font-size:.68rem;color:#827c71;font-style:italic}.cast-section{background:#f8f6f1;padding:96px 0 110px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:46px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:220px;color:var(--muted);font:italic 1.05rem var(--serif)}.cast-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.cast-card{display:grid;grid-template-columns:132px 1fr;background:var(--paper);min-height:198px}.cast-card img{width:132px;height:100%;min-height:198px;object-fit:cover;filter:grayscale(1)}.cast-card div{padding:21px 24px}.cast-card h3{font:600 1.2rem var(--serif);margin:0}.cast-card .role{margin:0 0 10px;color:var(--rose);font-size:.73rem;text-transform:uppercase;letter-spacing:.14em}.cast-card p:last-child{font-size:.76rem;line-height:1.6;color:#5e5a52;margin:0}.team{padding-top:100px;padding-bottom:100px;display:grid;grid-template-columns:1fr 1.1fr;gap:13%}.team-intro>p:last-child{color:var(--muted);max-width:280px}.team-list p{border-bottom:1px solid var(--line);padding:12px 0;margin:0;display:flex;justify-content:space-between;gap:20px;font-size:.82rem}.team-list span{color:var(--muted)}.team-list strong{text-align:right;font-weight:600;white-space:nowrap}.thanks{background:var(--cream);padding:90px 0 86px}.thanks h2{max-width:700px}.thanks-copy{max-width:680px;color:#514d45;margin-bottom:36px}.sponsor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.sponsor-tile{height:110px;background:#fff;display:grid;place-items:center;padding:15px 20px}.sponsor-tile img{max-width:100%;max-height:78px;object-fit:contain;filter:grayscale(1)}.sponsor-caption{text-align:center;color:var(--muted);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;margin-top:20px}.glt{padding-top:92px;padding-bottom:92px;display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.glt p{max-width:430px;color:#5c584f}.button{display:inline-block;background:var(--ink);color:white;padding:11px 19px;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;margin-top:12px}.glt-card{background:var(--ink);color:var(--paper);padding:38px 40px;text-align:center}.glt-card span{font:italic 2rem var(--serif)}.glt-card p{color:#e7e1d6;margin:10px auto 20px;font-size:.9rem}.glt-card a{font-size:.76rem;color:#fff}footer{background:#111;color:#eee;text-align:center;padding:38px 24px 32px}footer img{width:200px;max-height:55px;object-fit:contain}footer p{font:italic 1.1rem var(--serif)}footer small{display:block;color:#aaa;font-size:.68rem;max-width:600px;margin:12px auto}footer>a{display:inline-block;margin-top:18px;color:#ddd;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;text-decoration:none}footer>a.footer-brand{margin:0;letter-spacing:normal;text-transform:none}
@media(max-width:740px){.topbar{height:64px}.brand img{width:170px}.menu-toggle{display:block;border:0;background:none;text-transform:uppercase;font:600 .7rem var(--sans);letter-spacing:.1em}.menu-toggle span{font-size:1rem;margin-left:5px}#site-nav{display:none;position:absolute;top:63px;left:0;right:0;background:#f4f1ea;padding:12px 24px 22px;box-shadow:0 12px 14px #0001}#site-nav.open{display:grid;gap:0}#site-nav a{padding:10px 0;border-bottom:1px solid var(--line)}.cover{grid-template-columns:1fr;min-height:auto;padding-top:52px;padding-bottom:62px;gap:10px}.cover-copy{padding-bottom:0}.cover h1{font-size:clamp(4.6rem,18vw,7rem)}.cover-art{max-width:540px;margin:8px 8px 20px}.cover-note{margin-bottom:8px}.scroll-cue{bottom:15px}.edition-strip{gap:6px;flex-wrap:wrap;justify-content:center;font-size:.55rem}.edition-strip span{padding:0 7px}.two-messages{grid-template-columns:1fr;padding-top:70px;padding-bottom:70px;gap:54px}.president{border-left:0;border-top:1px solid var(--line);padding:48px 0 0}.story{grid-template-columns:1fr;gap:14px;padding-top:65px;padding-bottom:65px}.cast-section{padding:68px 0 76px}.section-heading{display:block}.section-heading>p{margin-top:12px}.cast-grid{grid-template-columns:1fr;gap:12px}.cast-card{grid-template-columns:104px 1fr;min-height:170px}.cast-card img{width:104px;min-height:170px}.cast-card div{padding:17px}.cast-card h3{font-size:1.05rem}.team{grid-template-columns:1fr;gap:28px;padding-top:70px;padding-bottom:70px}.team h2{font-size:3rem}.team-list p{display:block}.team-list strong{display:block;text-align:left;margin-top:3px}.thanks{padding:68px 0}.sponsor-grid{grid-template-columns:repeat(2,1fr);gap:8px}.sponsor-tile{height:95px;padding:12px}.sponsor-tile img{max-height:70px}.glt{grid-template-columns:1fr;gap:34px;padding-top:70px;padding-bottom:70px}.glt-card{padding:30px 24px}}
@media(min-width:741px) and (max-width:980px){.topbar nav{gap:13px}.topbar nav a{font-size:.67rem}.cast-card{grid-template-columns:108px 1fr}.cast-card img{width:108px}.cast-card div{padding:17px}}
@media print{.topbar,.scroll-cue,.button{display:none}.cover{min-height:auto}.cast-section,.thanks,.story,.two-messages,.team,.glt{break-inside:avoid}}

/* Cast portraits use the supplied six-card photo sheet. */
.cast-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.cover h1.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.cover-art img{filter:none}
.cast-card{display:block;min-height:0;background:transparent}
.cast-photo{display:block;position:relative;width:100%;aspect-ratio:250/320;padding:0;border:0;background:#201b20;overflow:hidden;text-align:left;color:#fff;cursor:pointer;font:inherit}
.cast-photo>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.cast-photo>img{filter:saturate(.6) sepia(.14) brightness(1.04)}
.cast-caption{position:absolute;inset:auto 0 0;padding:48px 18px 13px;background:linear-gradient(transparent,rgba(20,15,20,.83));display:block;color:#fff;text-shadow:0 1px 4px #0007;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}
.cast-caption strong,.cast-bio>strong{font:500 1.25rem var(--serif)}
.cast-caption>span{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.cast-bio{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;overflow:auto;padding:clamp(17px,2vw,27px);background:rgba(27,23,26,.94);color:#f8f3eb;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;font-size:clamp(.72rem,.9vw,.9rem);line-height:1.62}
.cast-bio>strong{margin-bottom:3px}
.cast-bio .role{display:block;color:#e6b7a9;font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;margin-bottom:12px}
.cast-photo:hover .cast-bio,.cast-photo:focus-visible .cast-bio{opacity:1;visibility:visible}
.cast-photo:hover>img{transform:scale(1.035)}
.cast-photo:focus-visible{outline:3px solid var(--rose);outline-offset:4px}
.bio-dialog{width:min(620px,calc(100% - 32px));max-height:min(82vh,760px);padding:42px clamp(24px,6vw,56px) 25px;border:1px solid #bcb3a7;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #0005}
.bio-dialog::backdrop{background:rgba(20,18,17,.72);backdrop-filter:blur(3px)}
.bio-dialog-content{font-size:.95rem;line-height:1.8}
.bio-dialog-content>strong{font:500 2rem var(--serif)}
.bio-dialog-content>.role{display:block;color:var(--rose);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;margin:3px 0 22px}
.bio-dialog-hint{font-size:.68rem;color:var(--muted);margin:24px 0 0}
.bio-close{position:absolute;right:14px;top:8px;border:0;background:transparent;font:300 2rem var(--sans);color:var(--ink);cursor:pointer}
@media(max-width:740px){.cast-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cast-caption{padding:44px 11px 12px}.cast-caption strong{font-size:1rem}.cast-caption>span{font-size:.58rem}.cast-bio{display:none}}
@media(prefers-reduced-motion:reduce){.cast-photo>img,.cast-bio{transition:none}}

/* Page-one cover flows from the theatre intro to artwork, then copy. */
.cover{display:block;min-height:0;padding-top:48px;padding-bottom:52px}
.cover>.eyebrow{margin-bottom:0}
.cover-art{max-width:960px;margin:22px auto 0;transform:none}
.cover-copy{max-width:960px;margin:34px auto 0;padding:0}
.cover-copy .cover-note{width:100%;margin:0 0 20px;padding:clamp(18px,2.5vw,28px) clamp(12px,3vw,32px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#ebe5d8;text-align:center;font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.3}
.cover-copy .cover-credit{max-width:600px;margin-top:10px}
.cover .scroll-cue{position:static;display:inline-block;margin-top:30px}
@media(max-width:740px){.cover{padding-top:34px;padding-bottom:42px}.cover-art{max-width:none;margin-top:18px}.cover-copy{margin-top:26px}.cover .scroll-cue{margin-top:25px}}
