
:root{
  --paper:#F6F0E4; --paper-2:#EDE4D3; --ink:#1B1712; --ink-2:#4F463B; --rule:#CDBFA6;
  --red:#9E1B22; --red-dk:#7E141A; --gold:#B8892B; --night:#1E1A16;
  --display:'Cinzel', 'Times New Roman', serif;
  --serif:'Libre Caslon Text', Georgia, serif;
  --sans:'Source Sans 3', system-ui, sans-serif;
  --marquee:'Big Shoulders Display', Impact, sans-serif; --dark:#14131A; --dark-2:#1E1D26; --amber:#E8B44A;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--red)}
a:hover{color:var(--red-dk)}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.eyebrow{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.1;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border-radius:2px;font-family:var(--sans);font-weight:700;font-size:16px;text-decoration:none;border:2px solid var(--red);transition:background .15s,color .15s}
.btn-solid{background:var(--red);color:#fff}
.btn-solid:hover{background:var(--red-dk);border-color:var(--red-dk);color:#fff}
.btn-line{background:transparent;color:var(--red)}
.btn-line:hover{background:var(--red);color:#fff}
.ornament{display:flex;align-items:center;gap:14px;color:var(--gold)}
.ornament::before,.ornament::after{content:"";flex:1;height:1px;background:var(--rule)}

/* concept strip */
.concept{background:var(--ink);color:var(--paper);text-align:center;font-size:14px;padding:8px 16px}
.concept a{color:#E9C77B}

/* utility */
.utility{border-bottom:1px solid var(--rule);font-size:14px;color:var(--ink-2)}
.utility .wrap{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;align-items:center;padding-top:10px;padding-bottom:10px}
.utility .lines{display:flex;flex-direction:column;gap:2px}
.utility .contact{display:flex;gap:20px;flex-wrap:wrap}
.utility .contact a{color:var(--ink);text-decoration:none;font-weight:600}

/* masthead */
.masthead{text-align:center;padding:34px 0 0}
.masthead .name{font-family:var(--display);font-weight:800;font-size:clamp(34px,6vw,64px);letter-spacing:.04em;line-height:1;text-transform:uppercase}
.masthead .society{font-family:var(--display);font-weight:700;font-size:clamp(13px,1.8vw,17px);letter-spacing:.24em;text-transform:uppercase;color:var(--red);margin-top:10px}
.masthead .ornament{max-width:520px;margin:18px auto 0;font-size:14px}
nav.main{border-top:1px solid var(--ink);border-bottom:3px double var(--ink);margin-top:26px}
nav.main ul{list-style:none;margin:0 auto;padding:0 16px;max-width:1180px;display:flex;flex-wrap:wrap;justify-content:center;gap:0 6px}
nav.main a{display:block;padding:14px 16px;font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-decoration:none}
nav.main a:hover{color:var(--red)}
nav.main a.tix{color:var(--red)}

/* hero */
.hero{padding:64px 0 72px}
.hero .wrap{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.hero .copy{flex:999 1 460px;min-width:0}
.hero h1{font-size:clamp(40px,5.6vw,68px);margin-top:16px}
.hero h1 em{font-style:italic;color:var(--red)}
.hero p.lede{font-size:20px;color:var(--ink-2);max-width:560px;margin:24px 0 0}
.hero p.lede strong{color:var(--ink)}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.hero figure{flex:1 1 360px;min-width:0;max-width:470px;margin:0}
.print{background:#fff;padding:14px 14px 0;box-shadow:0 1px 0 var(--rule),0 22px 40px rgba(60,40,20,.18);transform:rotate(1.2deg)}
.print img{filter:sepia(.35) contrast(1.05)}
.print figcaption{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-2);padding:12px 4px 14px;text-align:center}

/* two ways in */
.ways{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.ways .wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.way{padding:44px 36px;display:flex;flex-direction:column;gap:12px}
.way + .way{border-left:1px dashed var(--ink-2)}
.tag{align-self:flex-start;font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;padding:5px 10px;border-radius:2px}
.tag-pp{background:var(--red);color:#fff}
.tag-live{border:1.5px solid var(--ink);color:var(--ink)}
.way h2{font-size:32px}
.way p{margin:0;color:var(--ink-2)}
@media (max-width:760px){.ways .wrap{grid-template-columns:1fr}.way + .way{border-left:0;border-top:1px dashed var(--ink-2)}.way{padding:36px 8px}}

/* sections */
section.block{padding:84px 0}
.head{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-end;margin-bottom:36px}
.head h2{font-size:clamp(34px,4vw,48px);margin-top:8px}

/* what's on list */
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{font:600 15px var(--sans);min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.events{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.event{display:grid;grid-template-columns:96px 120px minmax(0,1fr) auto;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--rule)}
.date{text-align:center;font-family:var(--display);line-height:1}
.date .m{display:block;font-size:14px;font-weight:700;letter-spacing:.16em;color:var(--red)}
.date .d{display:block;font-size:40px;font-weight:800;margin-top:4px}
.date .r{display:block;font-family:var(--sans);font-size:13px;color:var(--ink-2);margin-top:6px;letter-spacing:0}
.thumb{width:120px;height:120px;overflow:hidden;background:var(--ink);border-radius:2px}
.thumb img{width:100%;height:100%;object-fit:cover;object-position:top}
.thumb.crop img{width:300%;max-width:none;height:auto;margin-top:-61%}
.thumb.c2 img{margin-left:-100%}
.thumb.c3 img{margin-left:-200%}
.thumb.wide img{object-fit:contain;object-position:center}
.info h3{font-size:26px}
.info .meta{font-size:15px;color:var(--ink-2);margin-top:6px}
.info .tag{margin-bottom:10px;display:inline-block}
.event.pp{background:linear-gradient(90deg,rgba(158,27,34,.06),transparent 60%)}
.age{display:inline-block;margin-left:8px;font:700 12px var(--sans);background:var(--ink);color:#fff;padding:2px 7px;border-radius:2px;vertical-align:middle}
@media (max-width:760px){
  .event{grid-template-columns:64px 96px minmax(0,1fr);gap:14px 18px}
  .thumb{width:96px;height:96px}
  .event .btn{grid-column:3;justify-self:start}
  .date .d{font-size:32px}
}
@media (max-width:520px){
  .event{grid-template-columns:64px minmax(0,1fr);gap:14px 16px}
  .events .thumb{display:none}
  .event .btn{grid-column:2}
}

/* season */
.season{background:var(--red);color:#fff;padding:84px 0}
.season .eyebrow{color:#F3D9A4}
.season h2{font-size:clamp(34px,4.4vw,54px);margin-top:10px}
.season .lead{font-size:19px;max-width:640px;margin:14px 0 0;color:#FBEDEA}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}
.play{background:#fff;color:var(--ink);padding:10px 10px 18px;box-shadow:0 14px 28px rgba(0,0,0,.25)}
.play .art{aspect-ratio:458/490;overflow:hidden}
.play .art img{width:300%;max-width:none;margin-top:-61%}
.play.c2 .art img{margin-left:-100%}
.play.c3 .art img{margin-left:-200%}
.play h3{font-size:22px;margin:16px 6px 0}
.play p{margin:4px 6px 0;font-size:15px;color:var(--ink-2)}
@media (max-width:820px){.trio{grid-template-columns:1fr;max-width:420px}}
.stub{margin-top:44px;display:flex;flex-wrap:wrap;align-items:stretch;background:var(--paper);color:var(--ink);border-radius:4px;max-width:820px}
.stub .price{padding:22px 32px;border-right:2px dashed var(--red);display:flex;flex-direction:column;justify-content:center;text-align:center}
.stub .price span{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.2em;color:var(--red)}
.stub .price strong{font-family:var(--serif);font-size:60px;line-height:1}
.stub .terms{flex:1 1 300px;padding:22px 28px;display:flex;flex-direction:column;gap:14px;justify-content:center}
.stub .terms p{margin:0;font-size:16px}
.stub .actions{display:flex;flex-wrap:wrap;gap:12px}

/* involve */
.trio-text{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px}
.trio-text .n{font-family:var(--display);font-weight:800;font-size:44px;color:var(--gold);line-height:1}
.trio-text h3{font-size:26px;margin-top:12px}
.trio-text p{color:var(--ink-2);margin:10px 0 14px}
.trio-text a{font-weight:700}
@media (max-width:980px){.trio-text{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.trio-text{grid-template-columns:1fr;gap:32px}}

/* history */
.history{background:var(--night);color:var(--paper)}
.history .eyebrow{color:#E9C77B}
.history .wrap{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.history figure{flex:1 1 380px;min-width:0;margin:0}
.history figure img{filter:sepia(.25)}
.history figcaption{font-size:14px;color:#BFB4A3;margin-top:10px;font-style:italic;font-family:var(--serif)}
.history .copy{flex:999 1 440px;min-width:0}
.history h2{font-size:clamp(34px,4vw,48px);margin-top:8px}
.timeline{list-style:none;margin:32px 0 0;padding:0;border-left:2px solid #E9C77B}
.timeline li{padding:0 0 22px 24px;position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:9px;width:12px;height:12px;border-radius:50%;background:#E9C77B}
.timeline b{font-family:var(--display);font-size:22px;color:#E9C77B;display:block;line-height:1.2}
.facts{display:flex;flex-wrap:wrap;gap:32px;margin-top:8px;padding-top:24px;border-top:1px solid #4A4238}
.facts div{font-size:14px;color:#BFB4A3}
.facts strong{display:block;font-family:var(--serif);font-size:34px;color:var(--paper);line-height:1.1}
.history a{color:#E9C77B}

/* rent + shop */
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.panel{border:1.5px solid var(--ink);padding:40px;display:flex;flex-direction:column;gap:14px}
.panel h2{font-size:34px}
.panel p{margin:0;color:var(--ink-2)}
.shop{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.shop img{width:150px;box-shadow:0 12px 24px rgba(60,40,20,.25)}
.shop .t{flex:1 1 220px;display:flex;flex-direction:column;gap:12px}
@media (max-width:820px){.duo{grid-template-columns:1fr}.panel{padding:28px}}

/* newsletter */
.news{border-top:3px double var(--ink);border-bottom:3px double var(--ink);padding:52px 0;text-align:center}
.news h2{font-size:clamp(28px,3.4vw,40px)}
.news p{color:var(--ink-2);margin:8px 0 22px}
.news form{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:flex-end}
.news label{display:flex;flex-direction:column;gap:6px;text-align:left;font-weight:700;font-size:14px;flex:0 1 340px}
.news input{font:inherit;min-height:50px;padding:0 16px;border:1.5px solid var(--ink);border-radius:2px;background:#fff;color:var(--ink)}
.news button{font:700 16px var(--sans);min-height:50px;padding:0 28px;border:0;border-radius:2px;background:var(--ink);color:var(--paper);cursor:pointer}

/* footer */
footer{padding:56px 0 28px;font-size:15px;color:var(--ink-2)}
footer .cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
footer .h{font-family:var(--display);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:14px;color:var(--ink);margin-bottom:8px}
footer a{color:var(--ink-2);display:block;text-decoration:none;padding:2px 0}
footer a:hover{color:var(--red)}
footer .legal{margin-top:40px;padding-top:18px;border-top:1px solid var(--rule);font-size:13px;text-align:center}
@media (max-width:820px){footer .cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){footer .cols{grid-template-columns:1fr}.panel{padding:24px}.stub .price{border-right:0;border-bottom:2px dashed var(--red);flex:1 1 100%}}

/* ===== Concept C: marquee front ===== */
.concept{background:var(--amber);color:var(--dark)}
.concept a{color:var(--dark);font-weight:700}
.top{background:var(--dark);color:#F3EEE4}
.top .utility{border-bottom:1px solid #2E2D38;color:#C9C3B8}
.top .utility .contact a{color:#F3EEE4}
.top .masthead .name{color:#F3EEE4}
.top .masthead .society{color:var(--amber)}
.top .masthead .ornament{color:var(--amber)}
.top .masthead .ornament::before,.top .masthead .ornament::after{background:#3A3846}
.bulbs{height:14px;margin-top:22px;background-image:radial-gradient(circle,#F6D58E 0 3px,rgba(232,180,74,.35) 4px,transparent 6px);background-size:22px 14px;background-position:center}
.top nav.main{border-top:1px solid #3A3846;border-bottom:1px solid #3A3846;margin-top:14px}
.top nav.main a{color:#F3EEE4}
.top nav.main a:hover{color:var(--amber)}
.top nav.main a.tix{background:var(--amber);color:var(--dark);margin:6px 0 6px 8px;padding:8px 18px;border-radius:2px}
.hero-c{position:relative;overflow:hidden;background:var(--dark);color:#F3EEE4;padding:72px 0 88px}
.hero-c .bg{position:absolute;top:0;right:0;width:64%;height:100%;object-fit:cover;object-position:35% 40%;opacity:.28;filter:sepia(.5)}
.hero-c .shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--dark) 36%,rgba(20,19,26,.55) 68%,rgba(20,19,26,.8) 100%)}
.hero-c .wrap{position:relative;display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.hero-c .copy{flex:999 1 480px;min-width:0}
.hero-c .eyebrow{color:var(--amber)}
.hero-c h1{font-family:var(--serif);font-size:clamp(42px,6vw,76px);margin-top:16px;line-height:1.02}
.hero-c h1 em{color:var(--amber)}
.hero-c .lede{font-size:20px;color:#DDD7CC;max-width:580px;margin:26px 0 0}
.hero-c .lede strong{color:#fff}
.hero-c .ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.btn-amber{background:var(--amber);border-color:var(--amber);color:var(--dark)}
.btn-amber:hover{background:#F6D58E;border-color:#F6D58E;color:var(--dark)}
.btn-ghost{border-color:#F3EEE4;color:#F3EEE4;background:transparent}
.btn-ghost:hover{background:#F3EEE4;color:var(--dark)}
.ticket{flex:1 1 340px;min-width:0;max-width:410px;background:var(--paper);color:var(--ink);border-radius:6px;box-shadow:0 24px 50px rgba(0,0,0,.5);position:relative}
.ticket .bottom-part{position:relative}
.ticket .bottom-part::before,.ticket .bottom-part::after{content:"";position:absolute;left:-12px;top:-13px;width:24px;height:24px;border-radius:50%;background:var(--dark)}
.ticket .bottom-part::after{left:auto;right:-12px}
.ticket .top-part{padding:24px 24px 20px}
.ticket .lbl{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.ticket img{margin-top:14px;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 12%;border-radius:2px}
.ticket .bottom-part{border-top:2px dashed var(--rule);padding:18px 24px 22px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 16px}
.ticket .bottom-part .btn{flex:1 1 100%}
.ticket .d{font-family:var(--marquee);font-weight:900;font-size:46px;line-height:.9;color:var(--red);text-align:center}
.ticket .d small{display:block;font-size:14px;letter-spacing:.14em}
.ticket .t{flex:1;min-width:0}
.ticket .t b{font-family:var(--serif);font-size:20px;display:block;line-height:1.15}
.ticket .t span{font-size:14px;color:var(--ink-2)}
.date .d{font-family:var(--marquee);font-weight:900;font-size:48px}
.stub .price strong{font-family:var(--marquee);font-weight:900;font-size:72px}
.facts strong{font-family:var(--marquee);font-weight:900;font-size:42px}
footer{background:var(--dark);color:#C9C3B8}
footer .h{color:#F3EEE4}
footer a{color:#C9C3B8}
footer a:hover{color:var(--amber)}
footer .legal{border-top-color:#2E2D38}
footer a[style]{color:var(--amber)!important}
.news{border:0;background:var(--amber)}
.news p{color:var(--dark)}
@media (max-width:760px){.date .d{font-size:36px}}

.ns-float{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;background:#0E0D13;border-top:1px solid #2E2D38;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .45s ease,transform .45s ease,visibility 0s linear .45s}
.ns-float.show{opacity:1;visibility:visible;transform:none;transition:opacity .45s ease,transform .45s ease,visibility 0s}
.ns-float form{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}
.ns-float label{font-family:var(--serif);font-weight:700;font-size:17px;color:#F3EEE4;white-space:nowrap;margin-right:4px}
.ns-float .nf-short{display:none}
.ns-float input{font:inherit;font-size:14px;width:220px;min-width:0;height:32px;padding:0 10px;border:1px solid #3A3846;border-radius:2px;background:#1E1D26;color:#F3EEE4}
.ns-float input::placeholder{color:#8E8778}
.ns-float input:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:var(--amber)}
.ns-float button{font:700 13px var(--sans);height:32px;padding:0 14px;border:0;border-radius:2px;background:var(--amber);color:var(--dark);cursor:pointer;white-space:nowrap}
@media (max-width:620px),(max-height:500px) and (orientation:landscape){
  .ns-float .nf-long{display:none}.ns-float .nf-short{display:inline}
  .ns-float label{font:700 12px var(--sans);letter-spacing:.04em}
  .ns-float form{gap:8px}
  .ns-float input{flex:1 1 auto;width:auto;max-width:260px;height:28px;font-size:13px}
  .ns-float button{height:28px;font-size:12px;padding:0 12px}
}
@media (prefers-reduced-motion:reduce){.ns-float,.ns-float.show{transition:none;transform:none}}


.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.news-strip{background:var(--dark);color:#F3EEE4;padding:30px 0}
.news-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px 40px;flex-wrap:wrap}
.news-strip h2{font-size:clamp(24px,2.6vw,32px);color:#F3EEE4}
.news-strip p{margin:4px 0 0;color:#BFB4A3;font-size:16px}
.news-strip form{display:flex;gap:10px;flex:0 1 460px;flex-wrap:wrap}
.news-strip input{font:inherit;flex:1 1 220px;min-width:0;width:100%;min-height:48px;padding:0 14px;border:1px solid #3A3846;border-radius:2px;background:#1E1D26;color:#F3EEE4}
.news-strip input::placeholder{color:#8E8778}
.news-strip input:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:var(--amber)}
.news-strip button{font:700 16px var(--sans);min-height:48px;padding:0 24px;border:0;border-radius:2px;background:var(--amber);color:var(--dark);cursor:pointer}
@media (max-width:520px){.news-strip form{flex-basis:100%;min-width:0}.news-strip input{flex-basis:100%}.news-strip button{flex:1 1 100%}}

footer a.soc-link{display:flex;align-items:center;gap:8px}
.soc{width:16px;height:16px;flex:0 0 16px;opacity:.85}
footer a.soc-link:hover .soc{opacity:1}
/* centre the hero "Next on stage" ticket when it drops below the text */
@media (max-width:960px){.hero-c .ticket{margin-left:auto;margin-right:auto}}
/* phones held sideways: keep the pinned bar slim */
@media (max-height:500px) and (orientation:landscape){
  nav.sticky-nav ul{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:0 8px;scrollbar-width:none}
  nav.sticky-nav li:first-child{margin-left:auto}
  nav.sticky-nav li:last-child{margin-right:auto}
  nav.sticky-nav ul::-webkit-scrollbar{display:none}
  nav.sticky-nav a{padding:10px 8px;font-size:11px;letter-spacing:.08em;white-space:nowrap}
  nav.sticky-nav a.tix{padding:5px 12px;margin:5px 4px}
  .nav-strip .mini-news{display:none!important}
  .nav-strip .wrap{justify-content:center;padding-top:4px;padding-bottom:4px}
  .mini-news-link{display:inline-block!important;font:700 12px var(--sans);letter-spacing:.04em;color:var(--amber);border:1px solid var(--amber);padding:3px 12px;border-radius:2px;text-decoration:none}
  [id]{scroll-margin-top:84px}
}
a.thumb{display:block;transition:transform .15s,box-shadow .15s}
a.thumb:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.25)}
.map-band{position:relative;height:240px;background:#2A2D3A;border-bottom:1px solid var(--rule)}
.map-band iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(.25) contrast(1.05)}
.map-link{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:16px;text-decoration:none}
.map-link span{background:var(--dark);color:#F3EEE4;font-weight:700;font-size:15px;padding:10px 18px;border-radius:3px;box-shadow:0 6px 16px rgba(0,0,0,.3)}
.map-link:hover span,.map-link:focus-visible span{background:var(--amber);color:var(--dark)}
@media (max-width:620px){.map-band{height:190px}.map-link span{font-size:13px;padding:8px 12px;text-align:center}}
.sponsor-band{margin-top:36px;padding-top:24px;border-top:1px solid #2E2D38;text-align:center;--g:clamp(8px,3vw,40px);--t:min(108px,calc((100vw - 48px - 3 * var(--g)) / 6.62))}
.sb-head{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#BFB4A3;margin-bottom:16px}
.sb-row{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:var(--g)}
.sb-row .sp-logo{flex:0 0 auto;width:auto;height:var(--t);padding:calc(var(--t) * .1);background:#FFFFFF;border-radius:3px;opacity:1;box-sizing:border-box}
.sb-row .sp-logo img{display:block;height:100%;width:auto;max-width:none;max-height:none}
.sb-row .sp-logo.flush{padding:0;background:none;border-radius:0}
.sp-row.light .sp-logo.flush{padding:0;border:0;background:none}
.sb-more{display:inline-block;margin-top:14px;font-size:13px;color:var(--amber)!important;padding:0}
.foot-extra{display:flex;flex-wrap:wrap;gap:28px 48px;align-items:flex-end;justify-content:space-between;margin-top:40px}
.foot-extra .member-badge{margin-top:0}
.sp-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}
.sp-logo{display:flex;align-items:center;justify-content:center;width:112px;height:60px;background:#FFFFFF;border-radius:3px;padding:6px;opacity:.88;transition:opacity .15s}
.sp-logo:hover{opacity:1}
.sp-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.sp-row.light .sp-logo{background:#fff;border:1px solid var(--rule);opacity:1}
.member-badge{display:inline-flex;align-items:center;gap:16px;margin-top:36px;text-decoration:none;color:#C9C3B8}
.member-badge img{width:72px;height:72px;flex:0 0 72px}
.member-badge b{display:block;font-family:var(--display);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:#F3EEE4}
.member-badge small{display:block;font-size:13px;margin-top:4px}
.member-badge:hover b{color:var(--amber)}
.foot-map{margin:12px 0 8px;border:1px solid #3A3846;border-radius:3px;overflow:hidden;max-width:300px}
.foot-map iframe{display:block;width:100%;height:150px;border:0;filter:grayscale(.35) contrast(1.05)}
.roles{columns:3;column-gap:28px}
@media (max-width:620px){.roles{columns:2}}
/* sticky main menu */
.top .masthead{padding-bottom:14px}
.sticky-bar{position:sticky;top:0;z-index:50;box-shadow:0 6px 18px rgba(0,0,0,.28)}
.nav-strip{background:#0E0D13;border-top:1px solid #2E2D38}
.nav-strip .wrap{display:flex;justify-content:center;align-items:center;padding-top:6px;padding-bottom:6px}
.mini-news-link{display:none}
@media (max-width:620px){.nav-strip .mini-news{display:none}.nav-strip .wrap{justify-content:center;padding-top:5px;padding-bottom:5px}.mini-news-link{display:inline-block;font:700 12px var(--sans);letter-spacing:.04em;color:var(--amber);border:1px solid var(--amber);padding:4px 12px;border-radius:2px;text-decoration:none}}
nav.main.sticky-nav{margin:0;background:var(--dark);border-top:1px solid #3A3846;border-bottom:1px solid #3A3846}
nav.sticky-nav a{color:#F3EEE4}
nav.sticky-nav a:hover{color:var(--amber)}
nav.sticky-nav a[aria-current="page"]{color:var(--amber)}
nav.sticky-nav a.tix{background:var(--amber);color:var(--dark);margin:6px 0 6px 8px;padding:8px 18px;border-radius:2px}
nav.sticky-nav a.tix:hover{background:#F6D58E;color:var(--dark)}
[id]{scroll-margin-top:112px}
@media (max-width:760px){
  nav.sticky-nav ul{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:0 8px;scrollbar-width:none}
  nav.sticky-nav ul::-webkit-scrollbar{display:none}
  nav.sticky-nav ul{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
  nav.sticky-nav a{padding:12px 10px;font-size:12px;white-space:nowrap}
  nav.sticky-nav a.tix{padding:6px 12px;margin:6px 4px}
}
.util-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.mini-news{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.mini-news label{color:#BFB4A3}
.mini-news input{font:inherit;font-size:13px;width:170px;min-height:32px;padding:4px 10px;border:1px solid #3A3846;border-radius:2px;background:#1E1D26;color:#F3EEE4}
.mini-news input::placeholder{color:#8E8778}
.mini-news input:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:var(--amber)}
.mini-news button{font:700 13px var(--sans);min-height:32px;padding:4px 12px;border:1px solid var(--amber);border-radius:2px;background:transparent;color:var(--amber);cursor:pointer}
.mini-news button:hover{background:var(--amber);color:var(--dark)}

/* ===== full site additions ===== */
.skip{position:absolute;left:-9999px;top:0;background:var(--amber);color:var(--dark);padding:10px 16px;z-index:10;font-weight:700}
.skip:focus{left:16px;top:16px}
nav.main a[aria-current="page"]{color:var(--amber)}
.page-head{position:relative;overflow:hidden;background:var(--dark);color:#F3EEE4;padding:56px 0 64px;border-top:1px solid #2E2D38}
.page-head .bg{position:absolute;top:0;right:0;width:55%;height:100%;object-fit:cover;opacity:.18;filter:sepia(.5)}
.page-head .shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--dark) 40%,rgba(20,19,26,.6) 100%)}
.page-head .wrap{position:relative}
.crumbs{font-size:14px;color:#BFB4A3;margin-bottom:14px}
.crumbs a{color:#BFB4A3}
.page-head .eyebrow{color:var(--amber)}
.page-head h1{font-family:var(--serif);font-size:clamp(38px,5.4vw,64px);margin-top:10px;line-height:1.05}
.page-head p.sub{font-size:20px;color:#DDD7CC;max-width:680px;margin:18px 0 0}
.layout{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.layout .main{flex:999 1 560px;min-width:0}
.layout aside{flex:1 1 300px;min-width:0;max-width:420px}
.prose{max-width:760px}
.prose h2{font-size:clamp(28px,3.2vw,38px);margin:48px 0 14px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:22px;margin:28px 0 8px}
.prose p{margin:0 0 16px;color:var(--ink-2)}
.prose ul{margin:0 0 16px;padding-left:22px;color:var(--ink-2)}
.prose li{margin-bottom:6px}
.prose strong{color:var(--ink)}
.note{background:var(--paper-2);border-left:4px solid var(--gold);padding:16px 20px;margin:20px 0;font-size:16px;color:var(--ink-2)}
.box{background:#fff;border:1px solid var(--rule);padding:28px;display:flex;flex-direction:column;gap:12px}
.box h3{font-size:22px}
.box p{margin:0;color:var(--ink-2);font-size:16px}
.box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:16px}
.box dt{font-weight:700}
.box dd{margin:0;color:var(--ink-2)}
.box.dark{background:var(--dark);color:#F3EEE4;border-color:var(--dark)}
.box.dark p,.box.dark dd{color:#C9C3B8}
.box.dark a{color:var(--amber)}
.stack{display:flex;flex-direction:column;gap:20px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.cards,.cards.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.cards,.cards.two,.cards.four{grid-template-columns:1fr}}
.people{width:100%;border-collapse:collapse;font-size:17px}
.people th,.people td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
.people th{font-family:var(--display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);font-weight:700}
.table-box{overflow-x:auto}
.docs{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.docs li{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--rule)}
.docs b{font-family:var(--serif);font-size:19px;display:block}
.docs span{font-size:15px;color:var(--ink-2)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.form label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:15px}
.form .full{grid-column:1/-1}
.form input,.form select,.form textarea{font:inherit;font-weight:400;min-height:48px;padding:10px 14px;border:1.5px solid var(--ink);border-radius:2px;background:#fff;color:var(--ink)}
.form textarea{min-height:130px}
@media (max-width:620px){.form{grid-template-columns:1fr}}
.show-hero{background:var(--dark);color:#F3EEE4;padding:48px 0 64px;border-top:1px solid #2E2D38}
.show-hero .wrap{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.show-hero .poster{flex:1 1 340px;min-width:0;max-width:460px}
.show-hero .poster img{box-shadow:0 22px 44px rgba(0,0,0,.5);border-radius:3px}
.show-hero .poster .crop-box{aspect-ratio:458/490;overflow:hidden;border-radius:3px;box-shadow:0 22px 44px rgba(0,0,0,.5)}
.show-hero .poster .crop-box img{width:300%;max-width:none;margin-top:-61%;box-shadow:none}
.show-hero .poster .crop-box.c2 img{margin-left:-100%}
.show-hero .poster .crop-box.c3 img{margin-left:-200%}
.show-hero .details{flex:999 1 440px;min-width:0}
.show-hero h1{font-family:var(--serif);font-size:clamp(40px,5.4vw,68px);line-height:1.02;margin:16px 0 0}
.show-hero .by{font-size:19px;color:#DDD7CC;margin-top:10px}
.show-hero .tag-live{border-color:#F3EEE4;color:#F3EEE4}
.facts-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:30px 0 0;border:1px solid #3A3846;border-radius:4px}
.facts-row div{padding:16px 18px;border-right:1px solid #3A3846}
.facts-row div:last-child{border-right:0}
.facts-row dt{font-family:var(--display);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#BFB4A3;font-weight:700}
.facts-row dd{margin:6px 0 0;font-family:var(--serif);font-size:20px;line-height:1.25}
@media (max-width:620px){.facts-row{grid-template-columns:1fr}.facts-row div{border-right:0;border-bottom:1px solid #3A3846}.facts-row div:last-child{border-bottom:0}}
.show-hero .ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:26px}
.show-hero .ctas small{color:#BFB4A3;font-size:14px}
.ph{background:#FFF4D6;padding:0 4px;border-radius:2px}

.ps-posters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
.ps-posters a{display:block;line-height:0;border:1px solid var(--rule);box-shadow:0 2px 8px rgba(0,0,0,.12);transition:transform .15s,box-shadow .15s}
.ps-posters a:hover,.ps-posters a:focus-visible{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.18)}
.ps-posters img{height:130px;width:auto;display:block}
.past-seasons{border-top:1px solid var(--rule)}
.ps-intro{max-width:760px;color:var(--ink-2);margin:-12px 0 8px}
.ps-grid{columns:3 300px;column-gap:28px;margin-top:28px}
.ps-season{break-inside:avoid;background:#fff;border:1px solid var(--rule);padding:20px 22px;margin:0 0 24px}
.ps-season h3{font-family:var(--marquee);font-weight:900;font-size:34px;line-height:1;color:var(--red)}
.ps-note{font-size:14px;color:var(--ink-2);font-style:italic;margin:8px 0 0}
.ps-season ul,.ps-musicals ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.ps-season li{display:flex;flex-direction:column;gap:1px;padding-top:10px;border-top:1px dashed var(--rule)}
.ps-season li:first-child{border-top:0;padding-top:0}
.ps-when{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#86621A}
.ps-title{font-family:var(--serif);font-size:18px;line-height:1.3;color:var(--ink)}
.ps-title a{color:var(--red)}
.ps-detail{font-size:14px;line-height:1.5;color:var(--ink-2)}
.ps-musicals{background:var(--dark);color:#F3EEE4;padding:28px;margin-top:40px}
.ps-musicals h3{font-family:var(--serif);font-size:28px}
.ps-musicals .ps-note{color:#BFB4A3}
.ps-musicals ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 28px}
.ps-musicals li{display:flex;flex-direction:column}
.ps-musicals .ps-when{color:var(--amber)}
.ps-musicals .ps-title{color:#F3EEE4;font-size:17px}
.past-seasons em{font-style:normal}
.past-seasons .ps-note{font-style:normal}
.ps-title{font-weight:400}
.ps-title em,.ps-title b{font-weight:700}
.ps-detail em{font-weight:600;color:var(--ink)}
.ps-musicals .ps-title{font-weight:400}
@media (max-width:900px){.ps-musicals ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.ps-musicals ul{grid-template-columns:1fr}.ps-season h3{font-size:28px}}
