/* The Lyric theme. Generated by build/tools/build_css.py from concept.css + wp.css: edit those. */
/* ===== concept: shared (concept/assets/site.css) ===== */
/* The Lyric Theater: four-page concept. Shared styles.
   Palette (from their sign at dusk and the town's logo):
     dusk #1a1d33 / #252a47 / #2e3458, letterboard white #eef3f6, marquee red #b3121b,
     bulb amber #ffd36b, neon teal #45d6bd, Clinch slate #4f7483, fern #40632f.
   Type: Big Shoulders Display (the sign's tall capitals: letterboards, dates, show titles),
         EB Garamond (the serif of their logo's "Lyric": story, playbill, room names),
         Work Sans (everything you read to get something done). */
/* Self-hosted OFL fonts (subset to Latin; licences in assets/fonts/). */
@font-face{font-family:"Big Shoulders Display";src:url(../fonts/big-shoulders.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(../fonts/eb-garamond.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(../fonts/eb-garamond-italic.woff2) format("woff2");font-weight:400 800;font-style:italic;font-display:swap}
@font-face{font-family:"Work Sans";src:url(../fonts/work-sans.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{
  --dusk:#1a1d33; --dusk-2:#252a47; --dusk-3:#2e3458; --ridge:#3a4069; --ridge-2:#4b4f7a;
  --board:#eef3f6; --board-2:#dfe6eb; --paper:#f7f9fa;
  --ink:#1a1d33; --ink-2:#3d4160; --ink-3:#5a5f7d;
  --red:#b3121b; --red-dk:#8f0e16; --bulb:#ffd36b; --bulb-dk:#8a5a00; --teal:#45d6bd; --teal-dk:#0f6e60;
  --slate:#4f7483; --fern:#40632f; --fern-2:#67923e;
  --text:#f4f1f8; --muted:#c7c6dc;
  --f-sign:"Big Shoulders Display","Arial Narrow",sans-serif;
  --f-book:"EB Garamond",Garamond,Georgia,serif;
  --f-ui:"Work Sans",system-ui,sans-serif;
  --gut:16px; --max:1240px;
  /* category colours (ticket tear-offs and filters) */
  --c-theatre:#b3121b; --c-music:#0f6e60; --c-kids:#ffd36b; --c-community:#4f7483;
}
@media (min-width:768px){:root{--gut:32px}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--dusk);color:var(--text);font:400 1.0625rem/1.6 var(--f-ui);overflow-x:clip}
img,svg,canvas{max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--bulb);outline-offset:3px;border-radius:3px}
.light :focus-visible,.on-light:focus-visible{outline-color:var(--red)}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:8px;z-index:60}.skip:focus{left:16px;background:var(--board);color:var(--ink);padding:.6rem 1rem;border-radius:4px}
.wrap{width:min(var(--max),100% - var(--gut)*2);margin-inline:auto}
.narrow{max-width:46rem}
p{margin:0 0 1rem}
h2,h3,h4{margin:0}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;text-decoration:none;font:600 1rem/1.2 var(--f-ui);padding:.65rem 1.2rem;border-radius:4px;border:2px solid transparent;cursor:pointer}
.btn-primary{background:var(--bulb);color:var(--ink)}
.btn-primary:hover{background:#ffe29a}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dk)}
.btn-ghost{border-color:var(--muted);color:var(--text);background:transparent}
.btn-ghost:hover{border-color:#fff}
.light .btn-ghost,.paper .btn-ghost{border-color:var(--ink-3);color:var(--ink)}
.light .btn-ghost:hover,.paper .btn-ghost:hover{border-color:var(--ink)}
.textlink{font-weight:600;text-underline-offset:.2em;text-decoration-thickness:1px}
.textlink:hover{text-decoration-thickness:2px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:40;background:rgba(26,29,51,.95);border-bottom:1px solid #353a5e;transition:background .2s}
@supports (backdrop-filter:blur(6px)){.site-header{background:rgba(26,29,51,.88);backdrop-filter:blur(8px)}}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:84px;transition:min-height .2s}
.logo{display:block;flex:0 0 auto}
.logo img{display:block;width:150px;height:auto;transition:width .2s}
#site-nav ul{display:flex;gap:22px;list-style:none;margin:0;padding:0;font-weight:500;font-size:.98rem}
#site-nav a{text-decoration:none;padding:.5rem 0;display:inline-block}
#site-nav a:hover,#site-nav a[aria-current="page"]{color:var(--bulb)}
#site-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:.35em;text-decoration-thickness:2px}
.hdr-actions{display:flex;align-items:center;gap:10px}
.tix{background:var(--red);color:#fff;text-decoration:none;font-weight:600;padding:.6rem 1.05rem;border-radius:4px;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.tix:hover{background:#d0182a}
.menu{display:none;background:none;border:2px solid var(--muted);color:var(--text);font:600 .95rem var(--f-ui);padding:.4rem .75rem;border-radius:4px;min-height:44px;cursor:pointer}
@media (max-width:1060px){
  #site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--dusk);border-bottom:1px solid #353a5e;padding:8px var(--gut) 18px}
  .menu-open #site-nav{display:block}
  #site-nav ul{flex-direction:column;gap:0;font-size:1.08rem}
  #site-nav a{display:block;padding:.75rem 0;border-bottom:1px solid #2f3456}
  .menu{display:inline-block}
}
@media (max-width:899.98px){.site-header .wrap{min-height:64px;gap:8px}.logo img{width:112px}.tix{padding:.5rem .8rem}}
/* once scrolled, the bar slims down (phones about 52 px) */
.site-header.ow-stuck .wrap{min-height:68px}
.site-header.ow-stuck .logo img{width:124px}
@media (max-width:899.98px){.site-header.ow-stuck .wrap{min-height:52px}.site-header.ow-stuck .logo img{width:88px}.site-header.ow-stuck .tix,.site-header.ow-stuck .menu{min-height:40px;padding-block:.35rem}}
@media (prefers-reduced-motion:reduce){.site-header .wrap,.logo img{transition:none}}

/* ---------- letterboard headings ---------- */
.lb{margin:0 0 1.4rem;display:block;font:900 clamp(1.7rem,3.4vw,2.6rem)/1 var(--f-sign);text-transform:uppercase;letter-spacing:.04em}
.lb-board{position:relative;display:inline-block;max-width:100%;padding:.34em .62em .26em;color:var(--red);
  background:linear-gradient(180deg,#f6f9fb 0,#eef3f6 55%,#e0e7ec 100%);border-radius:3px;
  box-shadow:0 0 0 4px #c9141e,0 0 0 9px #f1e3bc,0 0 0 11px #9e101a}
/* the cream band carries a row of bulbs (top and bottom) */
.lb-board::before,.lb-board::after{content:"";position:absolute;left:-9px;right:-9px;height:5px;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,#ffd36b 0 1.6px,transparent 2.2px) 0 0/11px 5px repeat-x}
.lb-board::before{top:-9px}.lb-board::after{bottom:-9px}
/* two aluminium tracks the letters hang on */
.lb-text{position:relative;display:inline-block;padding:.06em 0;background:
  linear-gradient(#b9c3cb,#b9c3cb) 0 0/100% 2px no-repeat,linear-gradient(#b9c3cb,#b9c3cb) 0 100%/100% 2px no-repeat}
.on-dark .lb-board{box-shadow:0 0 0 4px #c9141e,0 0 0 9px #f1e3bc,0 0 0 11px #9e101a,0 0 34px 6px rgba(255,190,90,.22)}
.lb-word{display:inline-block;white-space:nowrap}
.lb-l{display:inline-block}
.lb-anim .lb:not(.lb-in) .lb-l{transform:translateY(-.9em) rotate(-6deg);opacity:0}
.lb-anim .lb .lb-l{transition:transform .5s cubic-bezier(.25,1.45,.45,1) calc(var(--i) * 40ms),opacity .2s linear calc(var(--i) * 40ms)}
.lb-sub{display:block;font:500 1.0625rem/1.5 var(--f-ui);text-transform:none;letter-spacing:0;color:inherit;margin-top:1.2rem}
@media (max-width:599.98px){.lb{font-size:1.65rem}.lb-board{box-shadow:0 0 0 3px #c9141e,0 0 0 7px #f1e3bc,0 0 0 9px #9e101a}.lb-board::before,.lb-board::after{left:-7px;right:-7px}.lb-board::before{top:-7px}.lb-board::after{bottom:-7px}}

/* ---------- proposed wording (visible with ?review=1) and gaps ---------- */
.lyric-review .pw{text-decoration:underline dashed #e8a33a 1.5px;text-underline-offset:.22em;background:rgba(255,211,107,.08)}
.lyric-review .pw::after{content:"Proposed";display:inline-block;margin-left:.4em;padding:0 .4em;border-radius:3px;background:#ffd36b;color:#1a1d33;
  font:600 .68rem/1.55 var(--f-ui);letter-spacing:.02em;vertical-align:.25em;text-decoration:none;text-transform:none}
.lyric-review .light .pw,.lyric-review .paper .pw{text-decoration-color:#a35d00;background:rgba(179,18,27,.05)}
.lyric-review .pw-board .lb-board{outline:2px dashed #e8a33a;outline-offset:16px}
.lyric-review .pw-board::after{content:"Proposed";display:inline-block;margin-left:1.6rem;padding:0 .4em;border-radius:3px;background:#ffd36b;color:#1a1d33;font:600 .7rem/1.55 var(--f-ui);vertical-align:middle;letter-spacing:.02em;text-transform:none}
.gap{border:2px dashed #8b8fb8;color:var(--muted);padding:.55rem .85rem;border-radius:4px;font-size:.92rem;line-height:1.45;margin:1rem 0 0;max-width:62ch}
.light .gap,.paper .gap{border-color:#8a8fae;color:var(--ink-2)}
.gap-inline{border-bottom:2px dashed currentColor}
.unconfirmed{font-size:.86rem;color:var(--ink-3);margin:.4rem 0 0}

/* ---------- section rhythm ---------- */
.sec{padding:clamp(48px,6.5vw,96px) 0}
.on-dark{background:var(--dusk);color:var(--text)}
.on-dark-3{background:var(--dusk-3);color:var(--text)}
.light{background:var(--board);color:var(--ink)}
.paper{background:var(--paper);color:var(--ink)}
.lede{font:400 clamp(1.15rem,1.6vw,1.35rem)/1.5 var(--f-book);max-width:40ch}
.muted{color:var(--muted)}
.light .muted,.paper .muted{color:var(--ink-2)}

/* ---------- terrain dividers: the real ridgelines around St. Paul ---------- */
.ridge{display:block;width:100%;height:clamp(64px,8.4vw,124px);margin:-1px 0;position:relative;z-index:1}
.ridge svg{display:block;width:100%;height:100%}
.ridge-cap{position:absolute;right:var(--gut);bottom:6px;margin:0;font-size:.74rem;color:rgba(26,29,51,.7)}
.ridge-cap.dark{color:rgba(244,241,248,.62)}

/* ---------- ticket stubs (upcoming shows) ---------- */
.stub{--cat:var(--c-theatre);--catfg:#fff;position:relative;display:grid;grid-template-columns:1fr 112px;background:var(--paper);color:var(--ink);border-radius:8px;
  -webkit-mask:radial-gradient(circle 11px at calc(100% - 112px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 11px at calc(100% - 112px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat;
  mask:radial-gradient(circle 11px at calc(100% - 112px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 11px at calc(100% - 112px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
.stub[data-cat="music"]{--cat:var(--c-music)}
.stub[data-cat="kids"]{--cat:var(--c-kids);--catfg:var(--ink)}
.stub[data-cat="community"]{--cat:var(--c-community)}
.stub-main{padding:18px 22px 20px;min-width:0;border-right:2px dashed #b9bfd0}
.stub-kind{margin:0;font:600 .9rem/1.3 var(--f-ui);color:var(--ink-2);display:flex;align-items:center;gap:.5rem}
.stub-kind::before{content:"";width:.7rem;height:.7rem;border-radius:2px;background:var(--cat);flex:0 0 auto}
.stub h3{font:900 clamp(1.55rem,2.4vw,2rem)/1.02 var(--f-sign);text-transform:uppercase;letter-spacing:.02em;margin:.35rem 0 .35rem;color:var(--red)}
.stub h3 a{text-decoration:none}.stub h3 a:hover{text-decoration:underline;text-decoration-thickness:2px}
.stub-who{margin:0 0 .3rem;font-size:.95rem;color:var(--ink-2)}
.stub-lead{margin:0 0 .9rem;font-size:.97rem;color:#33374f;max-width:62ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.stub-perfs{margin:0 0 .9rem;padding:0;list-style:none;font:800 1.05rem/1.35 var(--f-sign);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);display:flex;flex-wrap:wrap;gap:.1rem 1.2rem}
.stub-acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.stub-tear{background:var(--cat);color:var(--catfg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px 6px;
  font:800 1rem/1.05 var(--f-sign);letter-spacing:.08em;text-transform:uppercase;border-radius:0 8px 8px 0}
.stub-tear b{display:block;font:900 3.1rem/1 var(--f-sign);letter-spacing:0;margin:.06em 0}
.stub-tear .t{margin-top:.45rem;font-weight:700;font-size:.92rem;letter-spacing:.04em;opacity:.95}
.stub-tear .more{margin-top:.3rem;font-size:.82rem;letter-spacing:.02em;text-transform:none;font-family:var(--f-ui);font-weight:600}
@media (max-width:599.98px){
  .stub{grid-template-columns:1fr 84px;-webkit-mask:radial-gradient(circle 9px at calc(100% - 84px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at calc(100% - 84px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat;
    mask:radial-gradient(circle 9px at calc(100% - 84px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at calc(100% - 84px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
  .stub-main{padding:14px 14px 16px}
  .stub-tear b{font-size:2.4rem}
}

/* ---------- notices (announcements: shorter than a ticket) ---------- */
.notice{position:relative;background:#e4ebf0;color:var(--ink);border-radius:6px;padding:14px 18px 16px 22px;border-left:6px solid var(--slate)}
.notice[data-kind="Campaign"],.notice[data-kind="Sponsors"]{border-left-color:var(--bulb-dk)}
.notice[data-kind="Auditions"],.notice[data-kind="Call for performers"]{border-left-color:var(--red)}
.notice[data-kind="Volunteer"]{border-left-color:var(--fern)}
.notice-kind{margin:0;font:600 .88rem/1.3 var(--f-ui);color:var(--ink-2)}
.notice h3{font:600 1.32rem/1.2 var(--f-book);margin:.15rem 0 .3rem}
.notice p{margin:0 0 .6rem;font-size:.97rem;max-width:64ch}
.notice .textlink{color:var(--red-dk)}

/* ---------- Add to my calendar ---------- */
.addcal{position:relative;display:inline-block}
.addcal summary{list-style:none;display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.55rem .9rem;border-radius:4px;border:2px solid var(--ink-3);color:var(--ink);font:600 .97rem/1.2 var(--f-ui);cursor:pointer;background:transparent}
.addcal summary::-webkit-details-marker{display:none}
.addcal summary:hover{border-color:var(--ink)}
.on-dark .addcal summary,.addcal.dark summary{border-color:var(--muted);color:var(--text)}
.addcal-menu{position:absolute;z-index:30;left:0;top:calc(100% + 6px);min-width:260px;margin:0;padding:6px;list-style:none;background:#fff;color:var(--ink);border-radius:6px;box-shadow:0 10px 28px rgba(10,12,30,.28);border:1px solid #c9cfda}
.addcal-menu a,.addcal-menu button{display:flex;align-items:center;width:100%;min-height:44px;padding:.5rem .7rem;border:0;background:none;font:500 .97rem/1.3 var(--f-ui);color:var(--ink);text-align:left;text-decoration:none;border-radius:4px;cursor:pointer}
.addcal-menu a:hover,.addcal-menu button:hover{background:#eef3f6}
.addcal-g{font:600 .85rem/1.3 var(--f-ui);color:var(--ink-2);padding:.55rem .7rem .2rem;border-top:1px solid #e1e5ec}
.addcal-g:first-child{border-top:0}
@media (max-width:599.98px){.addcal{position:static}.addcal-menu{left:12px;right:12px;min-width:0}.stub .addcal-menu,.notice .addcal-menu{left:8px;right:8px}}
.stub-acts{position:relative}
.stub .btn-ghost,.notice .btn-ghost{border-color:var(--ink-3);color:var(--ink)}
.stub .btn-ghost:hover,.notice .btn-ghost:hover{border-color:var(--ink)}
.stub .addcal summary,.notice .addcal summary{border-color:var(--ink-3);color:var(--ink)}
.stub .gap,.notice .gap{border-color:#8a8fae;color:var(--ink-2)}
.stub :focus-visible,.notice :focus-visible{outline-color:var(--red)}

/* ---------- subscribe ---------- */
.subscribe{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.subscribe-l{font-weight:600}

/* ---------- footer at night ---------- */
.night-foot{position:relative;background:#0f1124;color:var(--muted);overflow:hidden}
.street{position:relative;display:block;width:100%;height:auto;aspect-ratio:1440/360;min-height:220px}
.street svg{position:absolute;inset:0;width:100%;height:100%}
.foot-body{position:relative;padding:8px 0 28px}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:28px 40px;align-items:start}
.foot-grid h2{font:600 1.15rem/1.3 var(--f-book);color:var(--text);margin:0 0 .5rem}
.foot-grid ul{list-style:none;margin:0;padding:0}
.foot-grid li a{display:inline-block;padding:.3rem 0;text-decoration:none}
.foot-grid li a:hover{color:var(--bulb);text-decoration:underline}
.foot-grid address{font-style:normal;line-height:1.7}
.foot-grid address a{text-underline-offset:.2em}
.foot-logo{display:block;width:180px;height:auto;margin:0 0 .8rem}
.river-wrap{position:relative;background:#06071a;padding:6px 0 4px}
.river-band{display:block;width:100%;height:auto}
.river-cap{position:absolute;right:var(--gut);bottom:8px;font-size:.8rem;color:#a4a6c4;margin:0}
@media (max-width:599.98px){.river-cap{position:static;padding:0 var(--gut) 6px}}
.foot-legal{border-top:1px solid #2a2d4a;margin-top:20px;padding-top:14px;font-size:.88rem;display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between}
@media (max-width:899.98px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid > :first-child{grid-column:1/-1}}
@media (max-width:479.98px){.foot-grid{grid-template-columns:1fr}}
.street .glow{animation:none}

/* ---------- review bar (concept only) ---------- */
.reviewbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:70;max-width:760px;background:#fff;color:#1a1d33;border:2px solid #1a1d33;border-radius:8px;padding:.6rem .8rem;font-size:.86rem;line-height:1.45;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.reviewbar p{margin:0}
.reviewbar a{display:inline-block;padding:.15rem .35rem;margin:.1rem 0;color:#1a1d33}
.reviewbar a[aria-current]{background:#1a1d33;color:#fff;border-radius:3px}
.rb-links span{margin-left:.6rem;font-weight:600}

/* ---------- photos ---------- */
.ph{margin:0}
.ph img{display:block;width:100%;height:auto;border-radius:6px}
.ph figcaption{font-size:.86rem;margin-top:.45rem;color:inherit;opacity:.82}

/* ===== concept: home hero (concept/assets/hero.css) ===== */
/* Home hero: direction A2 (copied from directions/a2-dusk-3d.html), plus the 2:3 poster case and day/dusk/night. */
.hero{display:grid;grid-template-columns:100%;background:var(--dusk);position:relative}
.stage{grid-area:1/1;position:relative;aspect-ratio:16/9;overflow:hidden;background:#1b1d36}
[data-time="day"] .stage{background:#9fb6cc}
[data-time="night"] .stage{background:#0d0f22}
.stage picture,.stage .poster,.stage .poster-lit,.stage .gl{position:absolute;inset:0;width:100%;height:100%;display:block}
.stage .poster,.stage .poster-lit{object-fit:cover}
.poster-lit{opacity:0;transition:opacity 1.4s ease}
.poster-lit.on{opacity:1}
.gl{opacity:0;transition:opacity .25s linear}
.gl.on{opacity:1}
.board-overlay{position:absolute;left:0;top:0;display:block;transform-origin:0 0;filter:brightness(.74);transition:filter 1.4s ease;opacity:0}
.board-overlay.ready{opacity:1}
.is-lit .board-overlay,[data-time="day"] .board-overlay{filter:none}
@media (prefers-reduced-motion:reduce){.board-overlay{filter:none}.poster-lit,.board-overlay{transition:none}}
.stage::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
.poster-mode .stage::after{display:none}
.scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(22,24,44,.8) 0%,rgba(22,24,44,.52) 30%,rgba(22,24,44,0) 52%),
             linear-gradient(0deg,var(--dusk) 0,rgba(26,29,51,0) 14%)}
[data-time="day"] .scrim{background:linear-gradient(90deg,rgba(22,24,44,.86) 0%,rgba(22,24,44,.66) 32%,rgba(22,24,44,0) 56%),linear-gradient(0deg,var(--dusk) 0,rgba(26,29,51,0) 16%)}
.copy-top,.now,.pause{grid-area:1/1;z-index:2;width:min(1240px,100% - 32px);justify-self:center}
.copy-top{align-self:start;padding-top:clamp(28px,4.2vw,72px)}
.copy-top > *{max-width:30rem}
.place{margin:0 0 .5rem;color:var(--teal);font-weight:600;letter-spacing:.01em}
.sub{font-size:clamp(.95rem,1.1vw,1.05rem);color:var(--muted);max-width:46ch;margin:.25rem 0 0;line-height:1.45}
.now{align-self:end;padding-bottom:clamp(36px,4.6vw,76px)}
.np-who{margin:0;color:var(--muted);font-size:.98rem}
.np-title{font:900 clamp(3rem,5.6vw,5.4rem)/.92 var(--f-sign);text-shadow:0 2px 18px rgba(14,15,30,.55);text-transform:uppercase;letter-spacing:.02em;margin:.3rem 0 .5rem;color:var(--board)}
.np-title a{text-decoration:none}.np-title a:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.08em}
.np-when{margin:0;display:flex;flex-wrap:wrap;gap:.2rem 1.4rem;font:800 clamp(1.2rem,1.7vw,1.5rem)/1.2 var(--f-sign);letter-spacing:.04em;text-transform:uppercase;color:var(--bulb)}
.np-note{margin:.45rem 0 0;color:var(--muted);font-size:.95rem;max-width:40ch}
.now.two .np-title{font-size:clamp(2.2rem,3.7vw,3.5rem);margin:.15rem 0 .3rem}
.now.two .np-when{font-size:clamp(1.05rem,1.4vw,1.25rem)}
.now.two .np + .np{margin-top:16px;padding-top:14px;border-top:1px solid rgba(199,198,220,.28)}
.now.two .actions{margin-top:10px}
.np{display:flex;gap:20px;align-items:flex-start;max-width:42rem}
.np.has-img .np-title{font-size:clamp(2.5rem,4.1vw,4.1rem)}
.now.two .np.has-img .np-title{font-size:clamp(1.9rem,2.9vw,2.8rem)}
.np-text{min-width:0;flex:1 1 auto}
.np-line{margin:.35rem 0 0;color:var(--text);font-size:1.02rem;max-width:40ch}
.np-progress{margin-top:.6rem;max-width:26rem}
.np-progress progress{display:block;width:100%;height:12px;border:0;border-radius:6px;background:#3a3f66;overflow:hidden;accent-color:var(--bulb)}
.np-progress progress::-webkit-progress-bar{background:#3a3f66}.np-progress progress::-webkit-progress-value{background:var(--bulb)}.np-progress progress::-moz-progress-bar{background:var(--bulb)}
.np-prog-text{margin:.3rem 0 0;color:var(--muted);font-size:.92rem}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:20px}

/* The poster case: the show's own graphic at its own shape (portrait poster or landscape banner), whole and uncropped,
   in a thin aluminium frame like the real case beside the box office (Matt 2026-10-23). */
.case{flex:0 0 auto;position:relative;width:clamp(150px,12.5vw,196px);aspect-ratio:var(--ar,2/3);border-radius:3px;overflow:hidden;margin-top:.35rem;
  background:#14152a;box-shadow:0 0 0 2px #9aa3ad,0 0 0 4px #5f6670,0 10px 26px rgba(0,0,0,.5)}
.case.wide{width:clamp(210px,17vw,270px)}
.now.two .case{width:clamp(118px,9.4vw,150px)}
.now.two .case.wide{width:clamp(170px,13vw,210px)}
.case img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.case::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.16) 0,rgba(255,255,255,0) 34%,rgba(255,255,255,0) 70%,rgba(255,255,255,.07) 100%)}
.lyric-review .case-note{display:block;position:absolute;left:4px;right:4px;bottom:4px;z-index:2;font:600 .62rem/1.25 var(--f-ui);color:#1a1d33;background:#ffd36b;border-radius:2px;padding:2px 4px}

.pause{align-self:end;display:flex;justify-content:flex-end;align-items:flex-end;flex-direction:column;gap:8px;padding-bottom:clamp(14px,2vw,26px);pointer-events:none}
.pause button{pointer-events:auto;display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:.5rem .95rem;border-radius:999px;
  background:rgba(22,24,44,.72);border:1px solid #5a5f8f;color:var(--text);font:500 .92rem var(--f-ui);cursor:pointer}
.pause button:hover{border-color:var(--bulb)}
.pause .dot{width:10px;height:10px;border-radius:50%;background:var(--bulb);box-shadow:0 0 8px var(--bulb)}
.pause button[aria-pressed="true"] .dot{background:#8a8aa8;box-shadow:none}
.no-cycle .pause button{display:none}
.sunline{margin:0;font-size:.86rem;color:var(--muted);background:rgba(22,24,44,.62);padding:.25rem .65rem;border-radius:999px;pointer-events:auto}

@media (max-width:899.98px){
  .stage{aspect-ratio:3/4}
  .scrim,[data-time="day"] .scrim{background:linear-gradient(180deg,rgba(22,24,44,.82) 0%,rgba(22,24,44,.45) 24%,rgba(22,24,44,0) 40%),
                    linear-gradient(0deg,var(--dusk) 0,rgba(26,29,51,0) 12%)}
  .copy-top{padding-top:20px}
  .sub{font-size:1rem;margin-top:.5rem}
  .now{grid-area:auto;grid-row:2;align-self:auto;padding:4px 0 34px}
  .np-title{font-size:clamp(2.4rem,12vw,3.1rem)}
  .now.two .np-title{font-size:clamp(2rem,9.5vw,2.5rem)}
  .np{gap:14px}
  .case,.now.two .case{width:96px;margin-top:.25rem}
  .case.wide,.now.two .case.wide{width:150px}
  .np.has-img .np-title,.now.two .np.has-img .np-title{font-size:clamp(1.8rem,8.2vw,2.3rem)}
  .pause{display:none}
}
/* only used to export the poster stills */
.poster-mode .stage picture,.poster-mode .poster-lit,.poster-mode .board-overlay,.poster-mode .scrim{display:none}
.poster-mode .copy-top,.poster-mode .now,.poster-mode .pause{visibility:hidden}

/* ===== concept: home sections (concept/src/index.html) ===== */

/* ---- Coming up ---- */
.coming{background:var(--dusk-3)}
.coming-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px 32px;margin-bottom:2.2rem}
.coming-head .lb{margin:0}
.flow{list-style:none;margin:0;padding:0;display:grid;gap:18px;max-width:58rem}
.flow-notice{max-width:46rem}
.coming-grid{display:grid;grid-template-columns:minmax(0,58rem) minmax(0,1fr);gap:28px clamp(28px,4vw,64px);align-items:start}
.coming-aside{position:sticky;top:110px;border-left:2px dashed #5a5f8f;padding:6px 0 6px 24px}
.aside-l{color:var(--muted);max-width:24ch}
@media (max-width:899.98px){.coming-grid{grid-template-columns:1fr}.coming-aside{position:static;border-left:0;padding:0}}
.subscribe .btn{min-height:44px}
/* ---- What is the Lyric? (story teaser) ---- */
.story-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center}
.story-grid .lede{font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.42;max-width:32ch;margin-bottom:1.2rem}
.story-facts{font:400 1.12rem/1.6 var(--f-book);color:var(--ink-2);max-width:54ch}
.seatfield{margin:0}
.seatfield svg{display:block;width:100%;height:auto;overflow:visible}
.sf-on{fill:var(--red)}.sf-off{fill:none;stroke:#9aa3b5;stroke-width:1}.sf-stage{fill:var(--ink)}
.seatfield figcaption{font:400 1.05rem/1.5 var(--f-book);color:var(--ink-2);margin-top:1rem;max-width:44ch}
.seatfield figcaption b{font:900 1.5rem/1 var(--f-sign);color:var(--red);letter-spacing:.02em}
/* ---- Get involved ---- */
.involve{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,5vw,72px);align-items:start}
.roles{list-style:none;margin:0;padding:0;counter-reset:none}
.roles li{padding:20px 0;border-top:1px solid #3d4270}
.roles li:last-child{border-bottom:1px solid #3d4270}
.roles h3{font:500 clamp(1.45rem,2.2vw,1.85rem)/1.15 var(--f-book);margin:0 0 .35rem;color:#fff}
.roles p{margin:0 0 .5rem;color:var(--muted);max-width:52ch}
.roles a{color:var(--bulb)}
.involve .ph img{aspect-ratio:4/3;object-fit:cover}
/* ---- Rentals: a felt price board ---- */
.rent-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);align-items:start}
.felt{background:#1c1c22;color:#f2f2ee;border-radius:6px;padding:26px 26px 22px;box-shadow:inset 0 0 0 10px #5b4632,inset 0 0 0 12px #3a2c1f,0 14px 30px rgba(20,20,40,.25);
  background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px)}
.felt h3{font:800 1.05rem/1.2 var(--f-sign);letter-spacing:.14em;text-transform:uppercase;color:#f2f2ee;margin:0 0 1rem;padding:0 12px}
.felt dl{margin:0;padding:0 12px}
.felt .row{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;padding:.42rem 0}
.felt dt{display:flex;align-items:baseline;gap:10px;flex:1 1 auto}
.felt dt::after{content:"";flex:1 1 auto;border-bottom:2px dotted rgba(242,242,238,.35);transform:translateY(-.3em);min-width:20px}
.felt dt{font:700 clamp(1.15rem,1.7vw,1.4rem)/1.2 var(--f-sign);letter-spacing:.06em;text-transform:uppercase}
.felt .dots{flex:1 1 auto;border-bottom:2px dotted rgba(242,242,238,.35);transform:translateY(-.3em);min-width:20px}
.felt dd{margin:0;font:800 clamp(1.15rem,1.7vw,1.4rem)/1.2 var(--f-sign);letter-spacing:.06em;color:#ffd36b;white-space:nowrap}
.felt dd.cap{flex:1 0 100%;white-space:normal;font:400 .92rem/1.4 var(--f-ui);letter-spacing:0;text-transform:none;color:#c9c9d6;margin-top:.15rem}
.rent-copy p{max-width:56ch}
.rent-copy .lede{max-width:34ch;margin-bottom:1rem}
.rent-photos{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;margin-top:22px}
.rent-photos img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}
/* ---- Plan your visit ---- */
.visit{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.visit dl{margin:0}
.visit .item{display:grid;grid-template-columns:11rem 1fr;gap:6px 24px;padding:18px 0;border-top:1px solid #c9d1d9}
.visit dt{font:600 1.3rem/1.25 var(--f-book)}
.visit dd{margin:0;max-width:52ch}
.visit dd p{margin:0 0 .5rem}
@media (max-width:640px){.visit .item{grid-template-columns:1fr}}
/* ---- Gallery strip ---- */
.strip{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:10px}
.strip img{width:100%;height:clamp(150px,18vw,260px);object-fit:cover;display:block;border-radius:4px}
@media (max-width:767.98px){.strip{grid-template-columns:1fr 1fr}.strip img{height:150px}}
/* ---- Donate: sponsor a seat ---- */
.give{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(28px,5vw,72px);align-items:center}
.seatmap{margin:0;position:relative}
.seatmap svg{display:block;width:100%;height:auto}
.sm-off{fill:#2a2e52;stroke:#4b507f;stroke-width:1}
.sm-on{fill:#ffd36b;filter:drop-shadow(0 0 4px rgba(255,211,107,.85))}
.sm-stage{fill:#b3121b}
.seatmap-label{position:absolute;left:0;bottom:-4px;font-size:.8rem;color:var(--muted);background:rgba(26,29,51,.8);padding:.15rem .5rem;border-radius:3px}
.js .seatmap:not(.in) .sm-on{fill:#2a2e52;filter:none}
.js .seatmap .sm-on{transition:fill .5s ease var(--d),filter .5s ease var(--d)}
.give-prog{margin:1.2rem 0}
.give-prog progress{display:block;width:100%;max-width:26rem;height:12px;border:0;border-radius:6px;background:#3a3f66;overflow:hidden}
.give-prog progress::-webkit-progress-bar{background:#3a3f66}.give-prog progress::-webkit-progress-value{background:var(--bulb)}.give-prog progress::-moz-progress-bar{background:var(--bulb)}
.give-prog p{margin:.45rem 0 0;color:var(--muted)}
/* ---- Newsletter gap ---- */
.news{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 56px;align-items:center}
.news form{display:flex;flex-wrap:wrap;gap:10px}
.news label{flex:1 0 100%;font-weight:600}
.news input{flex:1 1 14rem;min-height:44px;padding:.55rem .75rem;border-radius:4px;border:2px solid #8b8fb8;background:#23274a;color:var(--text);font:inherit}
.news button{opacity:.65}
@media (prefers-reduced-motion:reduce){.js .seatmap .sm-on{transition:none}}
@media (max-width:899.98px){.story-grid,.involve,.rent-grid,.visit,.give,.news{grid-template-columns:1fr}}

/* ===== concept: events (concept/src/events.html) ===== */

.ev-top{padding:clamp(36px,5vw,72px) 0 clamp(20px,3vw,36px)}
.ev-top .lb{font-size:clamp(1.8rem,4.2vw,3.3rem)}
.ev-top .lede{color:var(--muted);max-width:44ch;margin-top:.6rem}
/* subscribe: a prominent ticket-window panel */
.sub-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 36px;align-items:center;background:var(--dusk-2);border:1px solid #444a7a;border-radius:10px;padding:22px 26px;margin-top:28px}
.sub-panel h2{font:600 clamp(1.35rem,2vw,1.6rem)/1.2 var(--f-book);margin:0 0 .3rem}
.sub-panel p{margin:0;color:var(--muted);max-width:56ch}
.sub-acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sub-acts .btn-ghost{background:transparent}
@media (max-width:899.98px){.sub-panel{grid-template-columns:1fr}}
/* filters */
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 6px}
.filters p{margin:0 8px 0 0;font-weight:600}
.chip{min-height:44px;padding:.45rem .95rem;border-radius:999px;border:2px solid #5a5f8f;background:transparent;color:var(--text);font:500 .97rem var(--f-ui);cursor:pointer;display:inline-flex;align-items:center;gap:.45rem}
.chip::before{content:"";width:.7rem;height:.7rem;border-radius:2px;background:var(--c,#c7c6dc)}
.chip[aria-pressed="true"]{background:var(--board);color:var(--ink);border-color:var(--board)}
.count{color:var(--muted);font-size:.95rem;margin:.4rem 0 0}
/* month groups */
.month{margin-top:clamp(28px,4vw,48px)}
.month-h{display:flex;align-items:baseline;gap:16px;margin:0 0 16px;font:900 clamp(1.6rem,3vw,2.3rem)/1 var(--f-sign);text-transform:uppercase;letter-spacing:.05em;color:var(--bulb)}
.month-h::after{content:"";flex:1 1 auto;height:2px;background:repeating-linear-gradient(90deg,#ffd36b 0 3px,transparent 3px 11px);opacity:.55;align-self:center}
.list{list-style:none;margin:0;padding:0;display:grid;gap:16px;max-width:60rem}
.list li[hidden]{display:none}
/* the quieter archive */
.archive{background:var(--paper);color:var(--ink)}
.archive h2{font:500 clamp(1.5rem,2.4vw,2rem)/1.2 var(--f-book);margin:0 0 .4rem}
.archive details{border-top:1px solid #cfd6de;padding:6px 0}
.archive summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font:700 1.15rem var(--f-sign);letter-spacing:.06em;text-transform:uppercase}
.past{list-style:none;margin:0 0 14px;padding:0;columns:2 22rem;column-gap:48px}
.past li{break-inside:avoid;display:grid;grid-template-columns:5.6rem 1fr;gap:12px;padding:.42rem 0;border-bottom:1px dotted #c3cad3;font-size:.97rem}
.past time{font:700 .98rem/1.4 var(--f-sign);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.past .k{color:var(--ink-3);font-size:.85rem}

/* ===== concept: show page (concept/src/show-little-shop.html) ===== */

/* ---- cover ---- */
.cover{padding:clamp(28px,4vw,64px) 0 clamp(40px,5vw,80px);background:radial-gradient(120% 90% at 18% 30%,#2b2f57 0,#1a1d33 62%)}
.cover-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.crumbs{margin:0 0 1rem;font-size:.95rem;color:var(--muted)}
.crumbs a{color:var(--muted)}
.cover .case{width:clamp(220px,24vw,340px);margin:0}
.who{font:italic 400 clamp(1.15rem,1.6vw,1.4rem)/1.35 var(--f-book);color:var(--muted);margin:0}
.show-title{font:900 clamp(3.2rem,8vw,7.4rem)/.88 var(--f-sign);text-transform:uppercase;letter-spacing:.015em;margin:.25rem 0 .6rem;color:var(--board);text-shadow:0 0 30px rgba(255,90,60,.25)}
.tag{font:400 clamp(1.2rem,1.8vw,1.5rem)/1.4 var(--f-book);margin:0 0 1.4rem;max-width:36ch}
.cover-grid > div{min-width:0}
.perfs{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px;max-width:44rem}
.perf{display:grid;grid-template-columns:86px 1fr;background:var(--paper);color:var(--ink);border-radius:6px;overflow:hidden}
.perf .d{background:var(--red);color:#fff;text-align:center;padding:10px 4px;font:800 .95rem/1.05 var(--f-sign);letter-spacing:.08em;text-transform:uppercase;border-right:2px dashed var(--paper)}
.perf .d b{display:block;font:900 2.4rem/1 var(--f-sign);letter-spacing:0}
.perf .b{padding:10px 14px}
.perf .t{font:800 1.3rem/1.1 var(--f-sign);letter-spacing:.04em;text-transform:uppercase;margin:0}
.perf p{margin:.2rem 0 0;font-size:.93rem;color:var(--ink-2)}
.perf.hallow .d{background:#5b2a86}
.buy{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.prices{margin:.9rem 0 0;color:var(--muted)}
@media (max-width:899.98px){.cover-grid{grid-template-columns:1fr}.cover .case{width:min(300px,78vw)}}

/* ---- the programme (playbill style) ---- */
.prog{background:#f3f1ea;color:var(--ink);background:var(--paper)}
.prog-sheet{max-width:1080px;margin:0 auto;border:1px solid var(--ink);outline:1px solid var(--ink);outline-offset:5px;padding:clamp(22px,4vw,56px);background:#fff}
.prog-mast{text-align:center;border-bottom:3px double var(--ink);padding-bottom:20px;margin-bottom:28px}
.prog-mast p{margin:0;font:italic 400 1.15rem/1.4 var(--f-book)}
.prog-mast h2{font:500 clamp(2rem,4.4vw,3.4rem)/1.05 var(--f-book);margin:.3rem 0 .4rem;letter-spacing:.01em}
.prog-mast .credit{font:400 1rem/1.5 var(--f-ui);color:var(--ink-2)}
.cols{columns:2 22rem;column-gap:56px;column-rule:1px solid #d5dae2}
.blk{break-inside:avoid;margin:0 0 30px}
.blk h3{font:800 1.05rem/1.2 var(--f-sign);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .7rem;color:var(--red)}
.blk p{font:400 1.13rem/1.6 var(--f-book);margin:0 0 .8rem}
.roles2{list-style:none;margin:0;padding:0;font:400 1.1rem/1.5 var(--f-book)}
.roles2 li{display:flex;align-items:baseline;gap:8px;padding:.15rem 0}

.roles2 .dots{flex:1 1 auto;border-bottom:2px dotted #9aa3b5;transform:translateY(-.3em);min-width:24px}
.roles2 .n{color:var(--ink-3);text-align:right;min-width:0}
.roles2 .r{min-width:0}
.note{position:relative;border:2px dashed #8a8fae;border-radius:4px;padding:18px 20px}
.note p:first-of-type::first-letter{float:left;font:500 3.4rem/.8 var(--f-book);margin:.08em .1em 0 0;color:var(--red)}
.facts{list-style:none;margin:0;padding:0}
.facts li{padding:.45rem 0;border-bottom:1px dotted #c3cad3;font-size:1rem}
.facts b{font-weight:600}

/* ===== concept: history (concept/src/history.html) ===== */

.h-top{padding:clamp(36px,5vw,80px) 0 clamp(28px,4vw,56px)}
.h-top .lb{font-size:clamp(2rem,5vw,3.6rem)}
.h-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:end}
.h-intro .lede{font-size:clamp(1.3rem,2.1vw,1.75rem);line-height:1.4;max-width:30ch;color:var(--text)}
.quote{margin:0;border-left:4px solid var(--red);padding:.2rem 0 .2rem 1.2rem}
.quote p{font:italic 400 clamp(1.4rem,2.4vw,2rem)/1.3 var(--f-book);margin:0 0 .5rem;color:#fff}
.quote footer{font-size:.95rem;color:var(--muted)}
/* then and now */
.tn{position:relative;max-width:640px;aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:#23274a;margin:0}
.tn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 30%}
.tn .then{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0);background:repeating-linear-gradient(135deg,#2a2e52 0 14px,#262a4b 14px 28px);display:flex;align-items:center;justify-content:flex-start}
.tn .then p{margin:0 0 0 6%;max-width:min(40%,15rem);border:2px dashed #c7c6dc;border-radius:4px;padding:.8rem;font-size:.9rem;line-height:1.4;color:var(--text);background:rgba(26,29,51,.85)}
.tn .div{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:3px;margin-left:-1.5px;background:var(--bulb);box-shadow:0 0 12px rgba(255,211,107,.8);pointer-events:none}
.tn .lab{position:absolute;top:12px;font:800 1rem/1 var(--f-sign);letter-spacing:.1em;text-transform:uppercase;background:rgba(26,29,51,.85);color:#fff;padding:.4rem .6rem;border-radius:3px}
.tn .lab.l{left:12px}.tn .lab.r{right:12px}
.tn-ctl{display:flex;align-items:center;gap:14px;max-width:640px;margin-top:12px}
.tn-ctl label{font-weight:600;white-space:nowrap}
.tn-ctl input{flex:1;accent-color:var(--bulb);min-height:44px}
.tn-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
/* timeline */
.tl{list-style:none;margin:0;padding:0;position:relative;max-width:62rem}
.tl::before{content:"";position:absolute;left:clamp(116px,13vw,190px);top:8px;bottom:8px;width:3px;margin-left:-1.5px;
  background:repeating-linear-gradient(180deg,#b3121b 0 10px,transparent 10px 18px)}
.tl > li{display:grid;grid-template-columns:clamp(116px,13vw,190px) minmax(0,1fr);gap:0 clamp(24px,3vw,44px);padding:0 0 clamp(30px,4vw,52px)}
.yr{justify-self:end;position:relative;z-index:1;margin-right:14px;white-space:nowrap}
.yr .lb-board{font:900 clamp(1.25rem,2vw,1.7rem)/1 var(--f-sign);padding:.3em .45em .22em;letter-spacing:.04em}
.yr .lb{margin:0;font-size:inherit}
.tl h2{font:500 clamp(1.5rem,2.4vw,2rem)/1.2 var(--f-book);margin:.15rem 0 .55rem;padding-left:clamp(18px,2.4vw,32px)}
.tl .body{padding-left:clamp(18px,2.4vw,32px)}
.tl p{font:400 1.15rem/1.65 var(--f-book);max-width:60ch;margin:0 0 .8rem;color:var(--ink)}
.cite{font:600 .78rem/1 var(--f-ui);vertical-align:super;margin-left:.15em}
.cite a{color:var(--red-dk);text-decoration:none;padding:0 .1em}
.on-dark .cite a{color:var(--bulb)}
.conflict{border-left:4px solid #b06d00;background:#fff6dc;padding:.7rem .9rem;margin:.4rem 0 .9rem;max-width:60ch;font-size:.96rem;line-height:1.5;color:#3d2c00}
.conflict b{font-weight:600}
.money{display:flex;flex-wrap:wrap;gap:10px 28px;margin:.4rem 0 1rem;padding:0;list-style:none}
.money li{font-size:.98rem}
.money b{display:block;font:900 1.9rem/1.05 var(--f-sign);color:var(--red);letter-spacing:.02em}
.sf2 svg{display:block;width:100%;max-width:420px;height:auto}
.sf-on{fill:var(--red)}.sf-off{fill:none;stroke:#9aa3b5;stroke-width:1}.sf-stage{fill:var(--ink)}
.sources ol{margin:0;padding-left:1.4rem;font-size:.95rem;max-width:72ch}
.sources li{margin:0 0 .45rem}
.sources a{word-break:break-word}
@media (max-width:899.98px){.h-intro,.tn-wrap{grid-template-columns:1fr}}
@media (max-width:599.98px){
  .tl::before{left:14px}
  .tl > li{grid-template-columns:1fr;padding-left:34px}
  .yr{justify-self:start;margin:0 0 .4rem -8px}
  .tl h2,.tl .body{padding-left:0}
}

/* ===== WordPress: the concept's design applied to block markup ===== */
.vh,.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link.screen-reader-text:focus{clip:auto;width:auto;height:auto;margin:0;left:16px;top:8px;z-index:100000;background:var(--board);color:var(--ink);padding:.6rem 1rem;border-radius:4px;white-space:normal;overflow:visible}
body{font:400 1.0625rem/1.6 var(--f-ui)}
.wp-site-blocks{overflow-x:clip}
:where(.wp-site-blocks) > *{margin-block-start:0;margin-block-end:0}
:where(.is-layout-flow) > *{margin-block-start:0}
.wp-block-group.wrap{width:min(var(--max),100% - var(--gut)*2);margin-inline:auto}
img{height:auto}

/* ---------- header (template part) ---------- */
.site-header-part{position:sticky;top:var(--wp-admin--admin-bar--height,0);z-index:40}
@media (max-width:600px){.admin-bar .site-header-part{top:0}}
.site-header{background:rgba(26,29,51,.95);border-bottom:1px solid #353a5e}
@supports (backdrop-filter:blur(6px)){.site-header{background:rgba(26,29,51,.88);backdrop-filter:blur(8px)}}
.site-header .hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:84px;transition:min-height .2s}
.site-header .wp-block-site-logo{flex:0 0 auto;margin:0}
.site-header .wp-block-site-logo img{display:block;width:150px;height:auto;transition:width .2s}
.site-header .wp-block-navigation{margin-left:auto;font-weight:500;font-size:.98rem}
.site-header .wp-block-navigation__container{gap:22px}
.site-header .wp-block-navigation-item__content{text-decoration:none;padding:.5rem 0;display:inline-block}
.site-header .wp-block-navigation-item__content:hover,.site-header .wp-block-navigation-item__content[aria-current="page"]{color:var(--bulb)}
.site-header .wp-block-navigation-item__content[aria-current="page"]{text-decoration:underline;text-underline-offset:.35em;text-decoration-thickness:2px}
.site-header .hdr-actions{flex:0 0 auto;gap:10px;margin:0}
.site-header .hdr-actions .wp-block-button__link{padding:.6rem 1.05rem;white-space:nowrap}
.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close{min-height:44px;min-width:44px;border:2px solid var(--muted)!important;border-radius:4px;padding:.4rem .75rem!important;font:600 .95rem var(--f-ui)!important;color:var(--text)!important}
.wp-block-navigation__responsive-container-close{position:absolute;top:12px;right:16px}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--dusk)!important;color:var(--text)!important;padding:72px var(--gut) 24px!important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:0!important;align-items:stretch!important;width:100%}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{width:100%}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{display:block;width:100%;padding:.85rem 0!important;border-bottom:1px solid #2f3456;font-size:1.15rem}
/* the menu button takes over below 1060px (seven items and Get Tickets need the room) */
@media (max-width:1060px){
  .site-header .wp-block-navigation{order:3;margin-left:0}
  .site-header .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex}
  .site-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){display:none}
  .site-header .hdr-actions{margin-left:auto}
}
@media (max-width:899.98px){.site-header .hdr{min-height:64px;gap:8px}.site-header .wp-block-site-logo img{width:112px}.site-header .hdr-actions .wp-block-button__link{padding:.5rem .8rem}}
.site-header-part.ow-stuck .hdr{min-height:68px}
.site-header-part.ow-stuck .wp-block-site-logo img{width:124px}
@media (max-width:899.98px){.site-header-part.ow-stuck .hdr{min-height:52px}.site-header-part.ow-stuck .wp-block-site-logo img{width:88px}
  .site-header-part.ow-stuck .hdr-actions .wp-block-button__link,.site-header-part.ow-stuck .wp-block-navigation__responsive-container-open{min-height:40px;padding-block:.35rem!important}}
@media (prefers-reduced-motion:reduce){.site-header .hdr,.site-header .wp-block-site-logo img{transition:none}}

/* ---------- buttons ---------- */
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none;border:2px solid transparent}
.wp-block-button__link:hover{background:#ffe29a}
.is-style-red .wp-block-button__link{background:var(--red);color:#fff}
.is-style-red .wp-block-button__link:hover{background:var(--red-dk)}
.is-style-ghost .wp-block-button__link{background:transparent;color:var(--text);border-color:var(--muted)}
.is-style-ghost .wp-block-button__link:hover{background:transparent;border-color:#fff}
:is(.light,.paper,.prog) .is-style-ghost .wp-block-button__link{color:var(--ink);border-color:var(--ink-3)}
:is(.light,.paper,.prog) .is-style-ghost .wp-block-button__link:hover{border-color:var(--ink)}
.is-style-lede{font:400 clamp(1.15rem,1.6vw,1.35rem)/1.5 var(--f-book);max-width:40ch}

/* ---------- sections built from groups ---------- */
.sec > .wp-block-group.wrap > .wp-block-heading:not(.lb){margin:0 0 .8rem}
.wp-block-image{margin:0}
.wp-block-image img{border-radius:6px}
.ph figcaption,.wp-block-image figcaption{font-size:.86rem;margin-top:.45rem;opacity:.85}
.page-body{padding:clamp(36px,5vw,72px) 0 clamp(48px,6vw,96px)}
.prose{max-width:46rem}
.prose > *{margin:0 0 1rem}
.prose h2{font:500 clamp(1.5rem,2.4vw,2rem)/1.2 var(--f-book);margin:2.2rem 0 .7rem}
.prose h3{font:600 1.3rem/1.25 var(--f-book);margin:1.8rem 0 .5rem}
.prose ul,.prose ol{padding-left:1.3rem}
.prose li{margin:0 0 .35rem}
.prose a{text-underline-offset:.2em}
.prose .lb{margin-bottom:1.6rem}
.light a:not(.wp-block-button__link):not(.btn),.paper a:not(.wp-block-button__link):not(.btn){color:var(--red-dk)}
.light .muted,.paper .muted{color:var(--ink-2)}

/* the felt price board, from a table block */
.is-style-felt{margin:0}
.is-style-felt table{background:#1c1c22;color:#f2f2ee;border-radius:6px;border-collapse:separate;border-spacing:0;width:100%;padding:22px 26px;
  box-shadow:inset 0 0 0 10px #5b4632,inset 0 0 0 12px #3a2c1f,0 14px 30px rgba(20,20,40,.25);background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px)}
.is-style-felt td,.is-style-felt th{border:0;padding:.42rem 12px;vertical-align:baseline}
.is-style-felt thead th{font:800 1.05rem/1.2 var(--f-sign);letter-spacing:.14em;text-transform:uppercase;text-align:left;padding-bottom:.9rem;color:#f2f2ee}
.is-style-felt thead th:last-child{text-align:right}
.is-style-felt td:first-child{font:700 clamp(1.1rem,1.6vw,1.35rem)/1.2 var(--f-sign);letter-spacing:.06em;text-transform:uppercase;position:relative}
.is-style-felt td:first-child small{display:block;font:400 .9rem/1.4 var(--f-ui);letter-spacing:0;text-transform:none;color:#c9c9d6;margin-top:.2rem}
.is-style-felt td:last-child{font:800 clamp(1.1rem,1.6vw,1.35rem)/1.2 var(--f-sign);letter-spacing:.06em;color:#ffd36b;white-space:nowrap;text-align:right;
  background:radial-gradient(circle,rgba(242,242,238,.35) 1px,transparent 1.5px) 0 72%/8px 8px repeat-x}
.is-style-felt figcaption{color:var(--ink-2);font-size:.86rem;margin-top:.5rem}

/* rooms (trees and the river) */
.rooms{display:grid;gap:clamp(28px,4vw,48px)}
.room{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(20px,4vw,56px);align-items:start;border-top:1px solid #c9d1d9;padding-top:clamp(20px,3vw,36px)}
.room h2{font:500 clamp(1.7rem,3vw,2.4rem)/1.1 var(--f-book);margin:0 0 .6rem}
.room .price{font:800 1.5rem/1 var(--f-sign);color:var(--red);letter-spacing:.04em;margin:.2rem 0 1rem}
.room ul{margin:0;padding-left:1.1rem}
.room li{margin:0 0 .35rem}
@media (max-width:899.98px){.room{grid-template-columns:1fr}}

/* gallery */
.lyric-gallery.wp-block-gallery{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:12px!important}
.lyric-gallery.wp-block-gallery .wp-block-image{width:auto!important;margin:0!important}
.lyric-gallery.wp-block-gallery .wp-block-image img{aspect-ratio:4/3;object-fit:cover;width:100%;height:100%!important}
.strip.wp-block-gallery{display:grid!important;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:10px!important}
.strip.wp-block-gallery .wp-block-image{width:auto!important;margin:0!important}
.strip.wp-block-gallery .wp-block-image img{width:100%;height:clamp(150px,18vw,260px)!important;object-fit:cover;border-radius:4px}
@media (max-width:767.98px){.strip.wp-block-gallery{grid-template-columns:1fr 1fr}.strip.wp-block-gallery .wp-block-image img{height:150px!important}}

/* history timeline from groups */
.tl{display:block}
.tl > .tl-item{display:grid;grid-template-columns:clamp(116px,13vw,190px) minmax(0,1fr);gap:0 clamp(24px,3vw,44px);padding:0 0 clamp(30px,4vw,52px);position:relative}
.tl > .tl-item > .lb{justify-self:end;margin:0 14px 0 0;font-size:inherit;white-space:nowrap;position:relative;z-index:1}
.tl > .tl-item > .lb .lb-board{font:900 clamp(1.25rem,2vw,1.7rem)/1 var(--f-sign);padding:.3em .45em .22em;letter-spacing:.04em}
.tl > .tl-item > .tl-body{padding-left:clamp(18px,2.4vw,32px);min-width:0}
.tl > .tl-item > .tl-body > h2{font:500 clamp(1.5rem,2.4vw,2rem)/1.2 var(--f-book);margin:.15rem 0 .55rem}
.tl .tl-body > p{font:400 1.15rem/1.65 var(--f-book);max-width:60ch;margin:0 0 .8rem;color:var(--ink)}
.is-style-conflict{border-left:4px solid #b06d00;background:#fff6dc;padding:.7rem .9rem;margin:.4rem 0 .9rem;max-width:60ch;font-size:.96rem;line-height:1.5;color:#3d2c00}
.is-style-conflict p{margin:0}
.money.wp-block-group{display:flex;flex-wrap:wrap;gap:10px 28px;margin:.4rem 0 1rem}
.money p{font-size:.98rem;margin:0}
.money strong{display:block;font:900 1.9rem/1.05 var(--f-sign);color:var(--red);letter-spacing:.02em}
@media (max-width:599.98px){
  .tl > .tl-item{grid-template-columns:1fr;padding-left:34px}
  .tl > .tl-item > .lb{justify-self:start;margin:0 0 .6rem -8px}
  .tl > .tl-item > .tl-body{padding-left:0}
}
.tn-block{max-width:640px}
.tn .then.has-img{background:none}
.tn .then img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tn img.tn-now{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 30%;border-radius:0}
.sources ol{margin:0;padding-left:1.4rem;font-size:.95rem;max-width:72ch}
.sources li{margin:0 0 .45rem}
.quote.wp-block-quote{margin:0;border-left:4px solid var(--red);padding:.2rem 0 .2rem 1.2rem}
.quote.wp-block-quote p{font:italic 400 clamp(1.4rem,2.4vw,2rem)/1.3 var(--f-book);margin:0 0 .5rem;color:#fff}
.quote.wp-block-quote cite{font-size:.95rem;color:var(--muted);font-style:normal}

/* team lists on About */
.team{columns:2 18rem;column-gap:48px;list-style:none;padding:0;margin:0}
.team li{break-inside:avoid;padding:.5rem 0;border-bottom:1px dotted #c3cad3}
.team strong{display:block;font:600 1.15rem/1.3 var(--f-book)}

/* seat map with the progress bar */
.seat-give{display:grid;gap:12px}
.seatmap.dark .sm-on{fill:#2a2e52;filter:none}
.seatmap figcaption.seatmap-label{position:static;display:inline-block;margin-top:6px}

/* show page */
.show-cover .cover-grid > .case{width:clamp(220px,24vw,340px);margin:0}
.show-cover .cover-grid > .case.wide{width:clamp(300px,36vw,480px)}
.perf .pn{display:block;margin:.2rem 0 0;font-size:.93rem;color:var(--ink-2)}
.perf.noted .d{background:#5b2a86}
.perf.gone .d{background:#4b4f6a}
.show-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.prog-sheet .cols{columns:2 22rem;column-gap:56px;column-rule:1px solid #d5dae2}
.prog-sheet .blk{break-inside:avoid;margin:0 0 30px}
.prog-sheet .blk > h3{font:800 1.05rem/1.2 var(--f-sign);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .7rem;color:var(--red)}
.prog-sheet .blk p{font:400 1.13rem/1.6 var(--f-book);margin:0 0 .8rem}
.prog-sheet .blk ul{list-style:none;margin:0;padding:0}
.prog-sheet .blk li{padding:.45rem 0;border-bottom:1px dotted #c3cad3;font-size:1rem}
.prog-sheet a{color:var(--red-dk)}
.ann-cover{padding:clamp(28px,4vw,64px) 0 clamp(40px,5vw,72px)}
.ann-grid{display:grid;gap:clamp(24px,4vw,56px);align-items:start}
.ann-grid.has-img{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.ann-title{font:900 clamp(2.6rem,6vw,5rem)/.92 var(--f-sign);text-transform:uppercase;letter-spacing:.015em;margin:.25rem 0 .6rem;color:var(--board)}
@media (max-width:899.98px){.ann-grid.has-img{grid-template-columns:1fr}}

/* footer (template part) */
.night-foot .foot-grid > *{min-width:0}
.night-foot .wp-block-navigation__container{flex-direction:column;align-items:flex-start;gap:0}
.night-foot .wp-block-navigation-item__content{display:inline-block;padding:.3rem 0;text-decoration:none}
.night-foot .wp-block-navigation-item__content:hover{color:var(--bulb);text-decoration:underline}
.night-foot .wp-block-site-logo img{width:180px;height:auto;display:block;margin:0 0 .8rem}
.night-foot .river-note{font-size:.8rem;color:#a4a6c4;margin:0;padding:0 var(--gut) 6px;text-align:right;background:#06071a}
.night-foot .foot-legal p{margin:0}
.night-foot .foot-legal a{color:inherit}
.night-foot a{color:var(--muted)}
.lyric-contact{font-style:normal;line-height:1.7}
.lyric-contact a{text-underline-offset:.2em}

/* forms (Forminator) on dark */
.light .forminator-ui,.paper .forminator-ui{color:var(--ink)}

/* ---------- proposed wording and gaps ---------- */
.is-style-gap{display:none!important}
.lyric-review .is-style-gap{display:block!important;border:2px dashed #8b8fb8;color:var(--muted);padding:.55rem .85rem;border-radius:4px;font-size:.92rem;line-height:1.45;margin:1rem 0 0;max-width:62ch}
.lyric-review :is(.light,.paper,.prog) .is-style-gap{border-color:#8a8fae;color:var(--ink-2)}
.lyric-review .is-style-gap::before{content:"Gap (editors only): ";font-weight:600}
.lyric-review .pw{text-decoration:underline dashed #e8a33a 1.5px;text-underline-offset:.22em;background:rgba(255,211,107,.08)}
.lyric-review .pw::after,.lyric-review .is-style-proposed::after{content:"Proposed";display:inline-block;margin-left:.4em;padding:0 .4em;border-radius:3px;background:#ffd36b;color:#1a1d33;
  font:600 .68rem/1.55 var(--f-ui);letter-spacing:.02em;vertical-align:.25em;text-decoration:none;text-transform:none}
.lyric-review .is-style-proposed{outline:2px dashed #e8a33a;outline-offset:4px}
.lyric-review .wp-block-group.is-style-proposed::after{display:block;width:max-content;margin:.5rem 0 0}
.lyric-review :is(.light,.paper,.prog) .pw{text-decoration-color:#a35d00;background:rgba(179,18,27,.05)}
.lyric-review .pw-board .lb-board{outline:2px dashed #e8a33a;outline-offset:16px}
.lyric-review .lb .pw::after{display:none}
.lyric-review .pw-board::after{content:"Proposed";display:inline-block;margin-left:1.6rem;padding:0 .4em;border-radius:3px;background:#ffd36b;color:#1a1d33;font:600 .7rem/1.55 var(--f-ui);vertical-align:middle;letter-spacing:.02em;text-transform:none}
.prog-sheet .blk:first-child{break-inside:auto}

/* home sections built from groups */
.roles > .role{padding:20px 0;border-top:1px solid #3d4270}
.roles > .role:last-child{border-bottom:1px solid #3d4270}
.roles .role :is(h2,h3){font:500 clamp(1.45rem,2.2vw,1.85rem)/1.15 var(--f-book);margin:0 0 .35rem;color:#fff}
.roles .role p{margin:0 0 .5rem;color:var(--muted);max-width:52ch}
.roles .role a{color:var(--bulb)}
.involve .ph img{aspect-ratio:4/3;object-fit:cover;width:100%}
.visit .item{display:grid;grid-template-columns:11rem 1fr;gap:6px 24px;padding:18px 0;border-top:1px solid #c9d1d9}
.visit .item > :is(h2,h3){font:600 1.3rem/1.25 var(--f-book);margin:0;grid-row:1/span 4}
.visit .item > :not(h2,h3){grid-column:2;margin:0 0 .5rem;max-width:52ch}
@media (max-width:640px){.visit .item{grid-template-columns:1fr}.visit .item > :is(h2,h3){grid-row:auto}.visit .item > :not(h2,h3){grid-column:1}}
.visit-list{margin:0}
.rent-photos{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;margin-top:22px}
.rent-photos img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.rent-copy > .wp-block-buttons{margin:0 0 1rem}
.coming-aside .wp-block-buttons{margin-top:.6rem}
.subscribe p{margin:0}
.sub-panel .sub-acts{margin:0}
.give > .wp-block-group > .wp-block-buttons{margin-top:1.2rem}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.contact-grid h3{font:600 1.25rem/1.25 var(--f-book);margin:1.2rem 0 .3rem}
@media (max-width:899.98px){.contact-grid{grid-template-columns:1fr}}
.light .wp-block-heading:not(.lb):is(h2){font:500 clamp(1.5rem,2.4vw,2rem)/1.2 var(--f-book)}
.sources h2,.archive h2{font:500 clamp(1.5rem,2.4vw,2rem)/1.2 var(--f-book);margin:0 0 .6rem}
.cite{font:600 .78rem/1 var(--f-ui);vertical-align:super;margin-left:.15em}
.cite a{color:var(--red-dk);text-decoration:none;padding:0 .1em}
.on-dark .cite a,.on-dark-3 .cite a{color:var(--bulb)}
.credit{font:400 1rem/1.5 var(--f-ui)!important;color:var(--ink-2)}
.show-details h4,.prog-sheet h4{font:800 1rem/1.2 var(--f-sign);letter-spacing:.12em;text-transform:uppercase;margin:1.2rem 0 .5rem;color:var(--red)}
.prog-mast{text-align:center;border-bottom:3px double var(--ink);padding-bottom:20px;margin-bottom:28px}
.tl .seatfield{max-width:420px}.tl .seatfield figcaption{font:400 1.05rem/1.5 var(--f-book);color:var(--ink-2)}
.prose .seatfield,.donate-seats .seatfield{max-width:520px}
.contact-grid > .wp-block-group:first-child{min-height:25rem}
