/* Confident Kids — "House Lights" design system (Oct 2026)
   Brand: teal #17A2B8 / #138496, green #00C853, blue #116DFF→#4D9FFF, greys #F8F9FA #E9ECEF #6C757D
   Type: Playfair Display (display), Poppins (text), Courier Prime (script/stage-direction accent). All self-hosted. */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/playfair-display-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:700;font-display:swap;src:url(/assets/fonts/playfair-display-latin-700-italic.woff2) format("woff2")}
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/poppins-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/poppins-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Courier Prime";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/courier-prime-latin-400-normal.woff2) format("woff2")}

:root{
  --teal:#17A2B8;--teal-d:#138496;--teal-ink:#0b6372;--teal-glow:rgba(23,162,184,.55);
  --green:#00C853;--blue:#116DFF;--blue-2:#4D9FFF;
  --paper:#F8F9FA;--paper-2:#E9ECEF;--grey:#6C757D;--grey-ink:#555d64;
  --night:#07141a;--night-2:#0c1f26;--velvet:#0b3d46;--velvet-2:#062a31;
  --ink:#121a1e;--on-dark:#eef3f4;--on-dark-mute:#a8bcc1;
  --f-display:"Playfair Display",Georgia,"Times New Roman",serif;
  --f-text:Poppins,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-script:"Courier Prime","Courier New",monospace;
  --wrap:min(1180px,100% - 2.5rem);
  --ease:cubic-bezier(.22,.61,.36,1);--ease-stage:cubic-bezier(.77,0,.18,1);
  --r:4px;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;font:400 1rem/1.7 var(--f-text);color:var(--ink);background:var(--paper);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,picture,video,svg{display:block;max-width:100%;height:auto}
a{color:var(--teal-ink);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--teal-d)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:700;line-height:1.12;letter-spacing:-.01em;margin:0 0 .6em;text-wrap:balance}
p{margin:0 0 1.1em;text-wrap:pretty}
.sr,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:1rem;top:-3rem;z-index:100;background:var(--teal);color:#04181d;padding:.6rem 1rem;border-radius:var(--r)}
.skip:focus{top:1rem}
.wrap{width:var(--wrap);margin-inline:auto}
.narrow{max-width:46rem}
.small{font-size:.86rem}.muted{color:var(--grey-ink)}
.lead{font-size:clamp(1.05rem,.98rem + .4vw,1.25rem);line-height:1.65}
.display{font-size:clamp(2.4rem,1.6rem + 4vw,5rem);line-height:1.02;letter-spacing:-.02em}
.display em,.act-title em{font-style:italic;color:var(--teal)}
main{display:block}
main:focus{outline:none}
mark.tbc{background:repeating-linear-gradient(-45deg,#fff3c4 0 8px,#ffe89a 8px 16px);color:#4a3b00;padding:.05em .4em;border-radius:3px;font-size:.85em;font-family:var(--f-script);white-space:normal;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* ------- stage-direction accent ------- */
.act{font-family:var(--f-script);text-transform:uppercase;letter-spacing:.22em;font-size:.78rem;color:var(--teal-ink);margin:0 0 .9rem;display:flex;align-items:center;gap:.8rem}
.act::before{content:"";width:2.2rem;height:1px;background:currentColor;opacity:.7}
.scene--dark .act,.hero .act{color:var(--teal)}
.act-head{margin-bottom:clamp(1.8rem,3vw,3rem)}
.act-title{font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem)}
.direction{font-family:var(--f-script);font-style:normal;color:var(--grey-ink);font-size:.95rem}
.direction::before{content:"("}.direction::after{content:")"}

/* ------- buttons ------- */
.btn{--b:var(--teal);display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.75rem 1.5rem;border:1px solid var(--b);border-radius:999px;font:600 .92rem/1 var(--f-text);letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease)}
.btn--teal{background:var(--teal);color:#03171c}
.btn--teal:hover{background:#1fb5cc;color:#03171c;box-shadow:0 0 0 6px rgba(23,162,184,.18),0 10px 30px -10px var(--teal-glow)}
.btn--ghost{background:transparent;color:var(--on-dark);--b:rgba(238,243,244,.45)}
.btn--ghost:hover{color:#fff;--b:var(--teal);background:rgba(23,162,184,.12)}
.btn--ink{background:var(--ink);color:#fff;--b:var(--ink)}
.btn--ink:hover{background:var(--teal-ink);color:#fff;--b:var(--teal-ink)}
.btn--light{background:transparent;color:var(--on-dark);--b:rgba(238,243,244,.4)}
.btn--light:hover{background:var(--teal);color:#03171c;--b:var(--teal)}
.btn:active{transform:translateY(1px)}
.link-arrow{font-weight:600;text-decoration:none;display:inline-flex;gap:.5rem;align-items:center}
.link-arrow::after{content:"→";transition:transform .3s var(--ease)}
.link-arrow:hover::after{transform:translateX(4px)}

/* ------- proscenium header ------- */
.proscenium{position:sticky;top:0;z-index:50;background:rgba(7,20,26,.86);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(23,162,184,.22);color:var(--on-dark)}
.proscenium__in{width:var(--wrap);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.25rem}
.brand{display:flex;align-items:center;gap:.75rem;color:var(--on-dark);text-decoration:none}
.brand__logo{width:44px;height:auto;filter:brightness(0) invert(1);opacity:.95}
.brand__text{display:flex;flex-direction:column;line-height:1.1}
.brand__name{font-family:var(--f-display);font-size:1.15rem;letter-spacing:.01em}
.brand__sub{font-family:var(--f-script);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-mute)}
.nav{display:none}
.nav ul{list-style:none;margin:0;padding:0}
.nav a{color:var(--on-dark);text-decoration:none}
.nav-toggle{width:48px;height:48px;border:1px solid rgba(238,243,244,.25);background:transparent;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#fff}
.nav-toggle__bar,.nav-toggle__bar::before,.nav-toggle__bar::after{display:block;width:18px;height:1.5px;background:currentColor;transition:transform .35s var(--ease),opacity .2s}
.nav-toggle__bar{position:relative}.nav-toggle__bar::before,.nav-toggle__bar::after{content:"";position:absolute;left:0}
.nav-toggle__bar::before{top:-6px}.nav-toggle__bar::after{top:6px}
.nav-open .nav-toggle__bar{background:transparent}.nav-open .nav-toggle__bar::before{transform:translateY(6px) rotate(45deg)}.nav-open .nav-toggle__bar::after{transform:translateY(-6px) rotate(-45deg)}
/* mobile: the menu drops like a fly-curtain */
@media (max-width:63.99em){
  .nav{display:flex;flex-direction:column;justify-content:center;gap:2rem;position:fixed;inset:4.25rem 0 0;padding:2rem 1.5rem calc(2rem + env(safe-area-inset-bottom));background:linear-gradient(180deg,var(--velvet-2),var(--night) 70%);transform:translateY(-102%);transition:transform .6s var(--ease-stage),visibility 0s .6s;visibility:hidden}
  .nav::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 44px),var(--grain);pointer-events:none}
  .nav-open .nav{transform:none;visibility:visible;transition:transform .6s var(--ease-stage)}
  .nav li{border-bottom:1px solid rgba(238,243,244,.08)}
  .nav li a{display:block;padding:.7rem 0;font-family:var(--f-display);font-size:1.6rem}
  .nav a[aria-current]{color:var(--teal)}
  .nav-open{overflow:hidden}
}
@media (min-width:64em){
  .nav-toggle{display:none}
  .nav{display:flex;align-items:center;gap:1.6rem}
  .nav ul{display:flex;gap:1.35rem}
  .nav li a{font-size:.88rem;letter-spacing:.02em;padding:.4rem 0;position:relative;color:#d7e1e3}
  .nav li a::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;background:var(--teal);transition:left .35s var(--ease),right .35s var(--ease)}
  .nav li a:hover,.nav li a[aria-current]{color:#fff}
  .nav li a:hover::after,.nav li a[aria-current]::after{left:0;right:0}
  .nav__cta{min-height:40px;padding:.55rem 1.2rem}
}

/* ------- scene-change page transitions (cross-document View Transitions) ------- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:.28s var(--ease) both sceneOut}
::view-transition-new(root){animation:.5s var(--ease) .05s both sceneIn}
@keyframes sceneOut{to{opacity:0;transform:translateY(-8px)}}
@keyframes sceneIn{from{opacity:0;transform:translateY(14px)}}

/* ------- scenes ------- */
.scene{padding:clamp(4rem,8vw,8rem) 0;position:relative}
.scene--dark{background:radial-gradient(90% 70% at 50% -10%,rgba(23,162,184,.18),transparent 60%),var(--night);color:var(--on-dark)}
.scene--dark::after,.scene--paper::after{content:"";position:absolute;inset:0;background:var(--grain);pointer-events:none;opacity:.9}
.scene--dark a:not(.btn){color:#7fd6e4}
.scene--dark .muted,.scene--dark .direction{color:var(--on-dark-mute)}
.scene--paper{background:var(--paper)}
.scene--grey{background:var(--paper-2)}
.scene > .wrap{position:relative;z-index:1}

/* ------- hero with spotlight ------- */
.hero{position:relative;min-height:min(92svh,860px);display:grid;align-items:end;color:var(--on-dark);background:var(--night);overflow:hidden;isolation:isolate}
.hero__media,.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__media img{object-position:var(--focus,50% 35%);filter:saturate(.9) contrast(1.05)}
.hero__wash{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(7,20,26,.35) 0%,rgba(7,20,26,.15) 35%,rgba(7,20,26,.82) 78%,var(--night) 100%),
  radial-gradient(60% 60% at 15% 100%,rgba(23,162,184,.22),transparent 70%)}
.spot{position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(30rem 24rem at var(--sx,62%) var(--sy,38%),rgba(255,248,232,.62),rgba(255,244,222,.22) 38%,rgba(0,0,0,.32) 74%)}
.spot::after{content:"";position:absolute;inset:0;mix-blend-mode:screen;background:radial-gradient(16rem 13rem at var(--sx,62%) var(--sy,38%),rgba(255,246,226,.16),transparent 70%)}
@property --sx{syntax:"<percentage>";inherits:true;initial-value:62%}@property --sy{syntax:"<percentage>";inherits:true;initial-value:38%}
@media (pointer:coarse),(hover:none){.spot{animation:spotDrift 14s ease-in-out infinite alternate}}
@keyframes spotDrift{0%{--sx:30%;--sy:32%}35%{--sx:68%;--sy:28%}70%{--sx:58%;--sy:52%}100%{--sx:36%;--sy:46%}}
.hero__in{position:relative;z-index:2;width:var(--wrap);margin-inline:auto;padding:7rem 0 clamp(3rem,7vw,5.5rem)}
.hero h1{max-width:15ch;text-shadow:0 2px 30px rgba(0,0,0,.45)}
.hero .lead{max-width:38rem;color:#d9e5e7}
.hero__ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.marquee{display:inline-flex;align-items:center;gap:.7rem;padding:.42rem .95rem .42rem .75rem;border:1px solid rgba(23,162,184,.5);border-radius:999px;font:600 .72rem/1 var(--f-text);letter-spacing:.18em;text-transform:uppercase;color:#d8f3f7;background:rgba(7,20,26,.55);margin-bottom:1.4rem}
.bulbs{display:inline-flex;gap:4px}
.bulbs i{width:5px;height:5px;border-radius:50%;background:#fff6d8;box-shadow:0 0 6px 1px rgba(255,236,170,.8);animation:bulb 2.4s infinite}
.bulbs i:nth-child(2){animation-delay:.3s}.bulbs i:nth-child(3){animation-delay:.6s}
@keyframes bulb{50%{opacity:.35;box-shadow:none}}
.hero__credit{position:absolute;right:1.25rem;bottom:clamp(2.4rem,4.5vw,3.8rem);z-index:2;font-size:.62rem;letter-spacing:.06em;color:rgba(238,243,244,.42)}
.hero--page{min-height:clamp(22rem,55svh,34rem)}
.hero--page h1{max-width:20ch}

/* ------- reveal on scroll: elements are "lit" as they enter ------- */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.js .reveal.is-lit{opacity:1;transform:none}
.js .reveal[data-d="1"]{transition-delay:.08s}.js .reveal[data-d="2"]{transition-delay:.16s}.js .reveal[data-d="3"]{transition-delay:.24s}
.spotlit{position:relative}
.js .spotlit::before{content:"";position:absolute;inset:-30% -10%;background:radial-gradient(closest-side,rgba(23,162,184,.22),transparent);opacity:0;transition:opacity 1.2s var(--ease);pointer-events:none;z-index:-1}
.js .spotlit.is-lit::before{opacity:1}

/* ------- layouts ------- */
.split{display:grid;gap:clamp(2rem,5vw,5rem);align-items:center}
@media (min-width:52em){.split{grid-template-columns:1.05fr .95fr}.split--rev > :first-child{order:2}}
.frame{position:relative}
.frame picture,.frame img{border-radius:2px}
.frame::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--teal);z-index:-1;opacity:.6}
.figure-caption{font-family:var(--f-script);font-size:.75rem;color:var(--grey-ink);margin-top:.9rem;letter-spacing:.06em}

/* Proof strip: a programme-note row, not dashboard tiles */
.notes{display:grid;gap:0;border-top:1px solid rgba(238,243,244,.18)}
.notes > div{padding:1.6rem 0;border-bottom:1px solid rgba(238,243,244,.18)}
.notes strong{display:block;font-family:var(--f-display);font-size:clamp(2.2rem,1.8rem + 2vw,3.4rem);line-height:1;color:#fff;font-weight:700}
.notes span{font-family:var(--f-script);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-mute)}
@media (min-width:48em){.notes{grid-template-columns:repeat(4,1fr)}.notes > div{padding:2rem 1.5rem;border-bottom:0;border-left:1px solid rgba(238,243,244,.18)}.notes > div:first-child{border-left:0;padding-left:0}}

/* ------- playbill (programmes) ------- */
.playbill{background:#fbfcfc;color:var(--ink);padding:clamp(1.6rem,4vw,3rem);position:relative;box-shadow:0 30px 60px -30px rgba(7,20,26,.35),0 1px 0 rgba(0,0,0,.04);border:1px solid var(--paper-2)}
.playbill::before{content:"";position:absolute;inset:10px;border:1px solid rgba(11,99,114,.35);outline:1px solid rgba(11,99,114,.2);outline-offset:-5px;pointer-events:none}
.playbill > *{position:relative}
.playbill__top{text-align:center;border-bottom:1px solid rgba(11,99,114,.3);padding-bottom:1.2rem;margin-bottom:1.6rem}
.playbill__eyebrow{font-family:var(--f-script);letter-spacing:.3em;text-transform:uppercase;font-size:.72rem;color:var(--teal-ink);margin:0 0 .4rem}
.playbill h2,.playbill h3{margin:0}
.playbill__grades{font-family:var(--f-display);font-style:italic;color:var(--teal-ink);font-size:1.1rem;margin:.3rem 0 0}
.cast{list-style:none;padding:0;margin:0 0 1.4rem}
.cast li{display:flex;align-items:baseline;gap:.5rem;padding:.42rem 0}
.cast li::after{content:"";order:2;flex:1;border-bottom:1px dotted rgba(18,26,30,.35);transform:translateY(-.25em)}
.cast b{order:1;font-weight:600}
.cast span{order:3;font-family:var(--f-script);font-size:.85rem;color:var(--grey-ink);white-space:nowrap}
.playbill-grid{display:grid;gap:clamp(1.6rem,3vw,2.4rem)}
@media (min-width:60em){.playbill-grid{grid-template-columns:repeat(3,1fr)}}
.playbill picture img{aspect-ratio:4/3;object-fit:cover;width:100%;filter:grayscale(.15)}

/* programme listing (home) — numbered like a running order */
.running{list-style:none;margin:0;padding:0;counter-reset:ro}
.running li{counter-increment:ro;display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;padding:1.6rem 0;border-top:1px solid rgba(18,26,30,.14)}
.running li::before{content:counter(ro,upper-roman) ".";font-family:var(--f-display);font-style:italic;font-size:1.5rem;color:var(--teal-ink)}
.running h3{font-size:1.45rem;margin-bottom:.35rem}
.running p{margin:0;color:var(--grey-ink)}
.scene--dark .running li{border-color:rgba(238,243,244,.14)}.scene--dark .running p{color:var(--on-dark-mute)}.scene--dark .running li::before{color:var(--teal)}

/* ------- schools: "house list" ------- */
.houses{display:grid;gap:1px;background:rgba(18,26,30,.12);border:1px solid rgba(18,26,30,.12)}
@media (min-width:40em){.houses{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64em){.houses{grid-template-columns:repeat(3,1fr)}}
.house{background:var(--paper);padding:1.8rem;display:flex;flex-direction:column;gap:.8rem;position:relative;transition:background .4s var(--ease)}
.house:hover{background:#fff}
.house__logo{height:64px;width:auto;max-width:180px;object-fit:contain;align-self:flex-start;background:#fff;padding:6px;border-radius:2px}
.house h3{font-size:1.35rem;margin:0}
.house p{margin:0;color:var(--grey-ink);font-size:.92rem}
.house__links{margin-top:auto;display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.9rem}

/* ------- gallery ------- */
.gallery{columns:2 12rem;column-gap:.8rem}
.gallery figure{margin:0 0 .8rem;break-inside:avoid;position:relative;overflow:hidden;background:#0d1f25}
.gallery img{width:100%;transition:transform 1.2s var(--ease),filter .6s}
.gallery figure:hover img{transform:scale(1.04);filter:brightness(1.05)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem .8rem .6rem;font-size:.72rem;color:#e6eef0;background:linear-gradient(transparent,rgba(7,20,26,.85));opacity:0;transition:opacity .4s}
.gallery figure:hover figcaption,.gallery figure:focus-within figcaption{opacity:1}
@media (min-width:64em){.gallery{columns:4 14rem}}
.videos{display:grid;gap:1.4rem}
@media (min-width:48em){.videos{grid-template-columns:repeat(2,1fr)}}
.videos video{width:100%;aspect-ratio:16/9;background:#000}

/* ------- faculty (team) ------- */
.faculty{display:grid;gap:2rem 1.4rem;grid-template-columns:repeat(2,1fr)}
@media (min-width:48em){.faculty{grid-template-columns:repeat(3,1fr)}}
@media (min-width:72em){.faculty{grid-template-columns:repeat(4,1fr)}}
.player{margin:0}
.player picture{overflow:hidden;background:var(--paper-2)}
.player img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .8s var(--ease),transform 1.2s var(--ease)}
.player:hover img{filter:grayscale(0);transform:scale(1.03)}
.player figcaption{padding-top:.8rem}
.player b{display:block;font-family:var(--f-display);font-size:1.12rem}
.player span{font-family:var(--f-script);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-ink)}
.player--lead{grid-column:span 2}
@media (min-width:48em){.player--lead{grid-column:span 1}}

/* ------- news ------- */
.reviews{display:grid;gap:2.4rem}
@media (min-width:56em){.reviews{grid-template-columns:repeat(2,1fr)}}
.review{display:grid;gap:1rem;text-decoration:none;color:inherit}
.review picture img,.review .ph{aspect-ratio:16/10;object-fit:cover;width:100%}
.ph{background:radial-gradient(60% 80% at 50% 0,rgba(23,162,184,.35),transparent),var(--night);display:grid;place-items:center;color:var(--teal);font-family:var(--f-display);font-style:italic;font-size:1.6rem}
.review h3{font-size:1.5rem;margin:0}
.review time{font-family:var(--f-script);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-ink)}
.review:hover h3{color:var(--teal-ink)}
.prose{font-size:1.06rem}
.prose h2{font-size:1.7rem;margin-top:1.6em}
.prose img{margin:1.5rem 0}
.prose blockquote{margin:2rem 0;padding-left:1.4rem;border-left:2px solid var(--teal);font-family:var(--f-display);font-style:italic;font-size:1.3rem}

/* ------- screenplay quote ------- */
.script{font-family:var(--f-script);max-width:34rem;margin-inline:auto;font-size:1rem;line-height:1.6}
.script .who{text-align:center;text-transform:uppercase;letter-spacing:.08em;margin:0}
.script .paren{text-align:center;margin:0 0 .3rem;color:var(--on-dark-mute)}
.script .line{margin:0 auto;max-width:28rem}
.quote{font-family:var(--f-display);font-style:italic;font-size:clamp(1.5rem,1.1rem + 1.8vw,2.5rem);line-height:1.3;max-width:52rem}

/* ------- forms ------- */
.form{display:grid;gap:1.15rem}
.field{display:grid;gap:.4rem}
.field label,.legend{font-weight:600;font-size:.9rem}
.field .hint{font-size:.8rem;color:var(--grey-ink)}
input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #b9c1c7;border-radius:var(--r);padding:.8rem .9rem;min-height:48px;width:100%;transition:border-color .2s,box-shadow .2s}
textarea{min-height:7rem;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal-d);box-shadow:0 0 0 3px rgba(23,162,184,.25)}
input[aria-invalid=true],select[aria-invalid=true]{border-color:#b3261e}
.err{color:#b3261e;font-size:.82rem;font-weight:600}
.row2{display:grid;gap:1.15rem}
@media (min-width:40em){.row2{grid-template-columns:1fr 1fr}}
fieldset{border:0;padding:0;margin:0;min-width:0}
.check{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;font-size:.92rem}
.check input{width:1.3rem;height:1.3rem;min-height:0;margin-top:.2rem;accent-color:var(--teal-d)}
.alert{padding:1rem 1.2rem;border-left:3px solid #b3261e;background:#fbeceb;margin-bottom:1.4rem}
.alert--ok{border-color:var(--green);background:#e8f8ee}
.flash{width:var(--wrap);margin:1rem auto 0;padding:.9rem 1.1rem;border-left:3px solid var(--green);background:#e8f8ee}
.flash--err{border-color:#b3261e;background:#fbeceb}
.form .flash{width:auto;margin:0}
.grid-2{display:grid;gap:1.15rem}@media (min-width:40em){.grid-2{grid-template-columns:1fr 1fr}}
.btn--ghost-ink{background:transparent;color:var(--ink);--b:#9aa6ad}.btn--ghost-ink:hover{--b:var(--teal-ink);color:var(--teal-ink)}
@media print{.proscenium,.curtain-call,.usher,.btn,.act{display:none!important}.ticket{filter:none}}
.subscribe{display:flex;gap:.5rem;flex-wrap:wrap}
.subscribe input{flex:1 1 12rem;background:rgba(255,255,255,.06);border-color:rgba(238,243,244,.25);color:#fff}
.subscribe input::placeholder{color:#93a9ae}

/* ------- registration: acts as steps ------- */
.reg{display:grid;gap:2rem}
@media (min-width:64em){.reg{grid-template-columns:minmax(0,1fr) 22rem;align-items:start}}
.reg-acts{list-style:none;margin:0 0 1.6rem;padding:0;display:flex;gap:.4rem;flex-wrap:wrap;font-family:var(--f-script);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.reg-acts li{padding:.35rem .7rem;border:1px solid #c7cfd4;border-radius:999px;color:var(--grey-ink)}
.reg-acts li[aria-current]{border-color:var(--teal-d);background:var(--teal-d);color:#fff}
.step{border-top:1px solid #d5dbdf;padding-top:1.6rem;margin-top:.4rem}
.step > h2{font-size:1.5rem;display:flex;gap:.8rem;align-items:baseline}
.step > h2 small{font-family:var(--f-script);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-ink);font-weight:400}
.js .step[hidden]{display:none}
.step-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:1.4rem;flex-wrap:wrap}
.slots{display:grid;gap:.6rem}
.slot{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:center;padding:.85rem 1rem;border:1px solid #c7cfd4;border-radius:var(--r);background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.slot:has(input:checked){border-color:var(--teal-d);box-shadow:0 0 0 2px rgba(23,162,184,.25)}
.slot input{width:1.2rem;height:1.2rem;min-height:0;accent-color:var(--teal-d)}
.slot b{display:block;font-weight:600}
.slot small{color:var(--grey-ink)}
.slot[hidden]{display:none}
.aside-card{background:var(--night);color:var(--on-dark);padding:1.6rem;position:sticky;top:5.5rem}
.aside-card h3{font-size:1.25rem}
.aside-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;font-size:.9rem}
.aside-card dt{font-family:var(--f-script);color:var(--on-dark-mute);font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}

/* ------- the ticket ------- */
.ticket{display:grid;max-width:48rem;margin-inline:auto;background:#fdfdfc;color:var(--ink);filter:drop-shadow(0 30px 50px rgba(0,0,0,.45));
  --notch:radial-gradient(circle at 0 50%,transparent 14px,#000 15px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 14px,#000 15px) right/51% 100% no-repeat}
.ticket__main{padding:clamp(1.6rem,4vw,2.6rem);position:relative;background:linear-gradient(135deg,rgba(23,162,184,.07),transparent 40%),var(--grain),#fdfdfc}
.ticket__stub{padding:1.6rem;display:grid;justify-items:center;align-content:center;gap:.6rem;text-align:center;background:var(--paper-2);border-top:2px dashed #b7c0c5;position:relative}
.ticket__stub::before,.ticket__stub::after{content:"";position:absolute;top:-15px;width:28px;height:28px;border-radius:50%;background:var(--night)}
.ticket__stub::before{left:-14px}.ticket__stub::after{right:-14px}
@media (min-width:44em){.ticket{grid-template-columns:1fr 15rem}.ticket__stub{border-top:0;border-left:2px dashed #b7c0c5}.ticket__stub::before,.ticket__stub::after{top:auto;left:-15px;right:auto}.ticket__stub::before{top:-14px}.ticket__stub::after{bottom:-14px}}
.ticket__house{font-family:var(--f-script);letter-spacing:.3em;text-transform:uppercase;font-size:.7rem;color:var(--teal-ink);margin:0}
.ticket h1,.ticket h2{font-size:clamp(1.7rem,1.3rem + 1.6vw,2.5rem);margin:.5rem 0 1rem}
.ticket dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.4rem;margin:1.2rem 0 0}
.ticket dt{font-family:var(--f-script);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-ink)}
.ticket dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.ticket__ref{font-family:var(--f-script);font-size:1.15rem;letter-spacing:.12em}
.ticket__qr{width:150px;height:150px;background:#fff;padding:6px}
.js .ticket.stamp{animation:ticketIn .9s var(--ease-stage) both}
@keyframes ticketIn{from{opacity:0;transform:translateY(30px) rotate(-2deg)}to{opacity:1;transform:none}}
.admit{font-family:var(--f-display);font-style:italic;font-size:1.4rem;color:var(--teal-ink)}

/* ------- footer ------- */
.curtain-call{background:var(--night);color:var(--on-dark);padding:clamp(3.5rem,6vw,5rem) 0 1.5rem;position:relative;border-top:1px solid rgba(23,162,184,.25)}
.curtain-call::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 100% at 50% 0,rgba(23,162,184,.16),transparent 70%),var(--grain);pointer-events:none}
.curtain-call__grid{display:grid;gap:2.4rem;position:relative}
@media (min-width:56em){.curtain-call__grid{grid-template-columns:1.4fr 1fr 1fr 1.4fr}}
.curtain-call__line{font-family:var(--f-display);font-style:italic;font-size:1.6rem;line-height:1.25}
.curtain-call .muted{color:var(--on-dark-mute)}
.curtain-call a{color:#cfe8ec;text-decoration:none}.curtain-call a:hover{color:#fff;text-decoration:underline}
.ft-h{font-family:var(--f-script);font-weight:400;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin-bottom:1rem}
.ft-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;font-size:.93rem}
.curtain-call__base{position:relative;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid rgba(238,243,244,.12);margin-top:3rem;padding-top:1.2rem;color:var(--on-dark-mute)}

/* ------- usher (FAQ assistant) ------- */
.usher{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:60}
.usher__toggle{border:1px solid rgba(23,162,184,.6);background:var(--night);color:#e7f6f8;border-radius:999px;padding:.75rem 1.1rem;font:600 .82rem var(--f-text);letter-spacing:.06em;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.3);min-height:48px}
.usher__panel{position:absolute;right:0;bottom:3.8rem;width:min(22rem,calc(100vw - 2rem));background:#fff;border:1px solid var(--paper-2);box-shadow:0 30px 60px -20px rgba(7,20,26,.45);padding:1rem}
.usher__log{max-height:18rem;overflow:auto;display:grid;gap:.6rem;margin-bottom:.8rem;font-size:.9rem}
.usher__msg{margin:0;padding:.6rem .8rem;background:var(--paper);border-left:2px solid var(--teal)}
.usher__msg--me{background:#fff;border-left-color:var(--grey);text-align:right}
.usher__form{display:flex;gap:.5rem}
.usher__form input{min-height:44px;padding:.5rem .7rem}

/* ------- misc ------- */
.credits-table{width:100%;border-collapse:collapse;font-size:.88rem}
.credits-table th,.credits-table td{text-align:left;padding:.55rem .5rem;border-bottom:1px solid var(--paper-2);vertical-align:top}
.cta-band{text-align:center}
.cta-band .display{font-size:clamp(2.2rem,1.5rem + 3.5vw,4.2rem)}
.pill-row{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1.8rem}
.dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.2rem}
.dl dt{font-family:var(--f-script);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;color:var(--teal-ink);padding-top:.2rem}
.dl dd{margin:0}
.timetable{width:100%;border-collapse:collapse;font-size:.92rem}
.timetable th{font-family:var(--f-script);font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--teal-ink);text-align:left;padding:.5rem;border-bottom:1px solid #c7cfd4}
.timetable td{padding:.6rem .5rem;border-bottom:1px solid var(--paper-2)}
.table-scroll{overflow-x:auto}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
    .js .reveal{opacity:1;transform:none}
  [data-parallax]{transform:none!important;animation:none!important}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  .spot{display:none}
}
@media print{.proscenium,.topbar,.curtain-call,.usher{display:none}}
/* keep the floating usher from covering the last controls on the page */
body{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}
@media (min-width:60em){body{padding-bottom:0}}
/* timetable: stacked rows on phones */
.table-scroll{overflow-x:auto}
.tt-rep{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:40em){
  .timetable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .timetable tr{display:grid;grid-template-columns:5rem 1fr;padding:.7rem 0;border-bottom:1px solid #c7cfd4}
  .timetable td{display:contents}
  .timetable td::before{content:attr(data-l);font-family:var(--f-script);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--teal-ink);padding:.15rem 0}
  .timetable td:empty,.timetable td:empty::before{display:none}
  .timetable .tt-rep{position:static;width:auto;height:auto;clip:auto}
}

/* =====================================================================
   v2 "Matinée" — light, bright, elegant. Dark is reserved for the home hero.
   ===================================================================== */
:root{--paper:#FCFBF8;--paper-2:#F2F0EB;--ivory:#FAF7F1;--line:#E4E0D8;--ink:#1d2529;--grey-ink:#566067;--charcoal:#3b4145;
  --shadow-1:0 1px 2px rgba(29,37,41,.05),0 8px 24px -12px rgba(29,37,41,.18);--shadow-2:0 2px 4px rgba(29,37,41,.05),0 30px 60px -28px rgba(11,99,114,.35)}
body{background:var(--paper);color:var(--ink)}
h1,h2,h3{color:var(--ink)}
.hero h1,.hero h2{color:#fff}

.btn--teal{background:var(--teal-d);color:#fff;--b:var(--teal-d)}
.btn--teal:hover{background:var(--teal-ink);color:#fff;--b:var(--teal-ink);box-shadow:0 0 0 6px rgba(23,162,184,.14),0 14px 30px -12px rgba(11,99,114,.6)}
.btn--sm{min-height:42px;padding:.55rem 1.05rem;font-size:.84rem}
.hero .btn--teal{background:var(--teal);color:#04181d;--b:var(--teal)}.hero .btn--teal:hover{background:#fff;color:var(--teal-ink);--b:#fff}

/* scenes */
.scene{padding:clamp(2.75rem,5.5vw,5.25rem) 0}
.scene--paper{background:var(--paper)}
.scene--grey{background:var(--paper-2)}
.scene--ivory{background:var(--ivory);color:var(--ink)}
.scene--paper::after{opacity:.5}
.scene--lit{overflow:hidden}
.scene--lit::before{content:"";position:absolute;left:50%;top:-12rem;width:min(70rem,140vw);height:46rem;transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(50% 50% at 50% 30%,rgba(255,244,220,.95),rgba(255,248,236,.5) 40%,transparent 72%),conic-gradient(from 180deg at 50% 0,transparent 160deg,rgba(255,240,205,.35) 172deg,rgba(255,240,205,.35) 188deg,transparent 200deg)}
.scene--ivory .act{color:var(--teal-ink)}
.scene--ivory a:not(.btn){color:var(--teal-ink)}
.scene--ivory .muted{color:var(--grey-ink)}
.act{font-family:var(--f-text);font-weight:600;letter-spacing:.24em;font-size:.72rem}
.act::before{width:2.6rem;background:var(--teal)}
.act-title{font-size:clamp(2.2rem,1.4rem + 3.2vw,4rem);letter-spacing:-.025em;line-height:1.04}
.act-head{position:relative}
.sec-head{display:grid;gap:1rem 4rem;align-items:end;margin-bottom:clamp(2.4rem,4vw,3.6rem)}
.sec-head .act-head{margin:0}.sec-head .lead{margin:0;color:var(--grey-ink)}
@media (min-width:60em){.sec-head{grid-template-columns:1.1fr .9fr}}
.display em,.act-title em{color:var(--teal-d)}
.notes{border-top-color:var(--line)}
.notes>div{border-color:var(--line)!important}
.notes strong{color:var(--ink)}
.notes span{color:var(--grey-ink);font-family:var(--f-text);font-weight:600;font-size:.72rem}
@media (min-width:48em){.notes>div{border-left:1px solid var(--line)}}
.running li{border-color:var(--line)}
.direction{font-family:var(--f-text);font-size:.85rem;color:var(--teal-ink)}
.lead{color:var(--grey-ink)}.hero .lead{color:#e3ecee}
mark.tbc{font-family:var(--f-text);font-size:.78em}

/* editorial photo compositions */
.frame::after{border-color:rgba(23,162,184,.45)}
.frame img{box-shadow:var(--shadow-2)}
.frame--tall img{aspect-ratio:4/5;object-fit:cover;width:100%}
.collage{position:relative;padding:0 0 18% 0}
.collage__a img{width:86%;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--shadow-2)}
.collage__b{position:absolute;right:0;bottom:0;width:48%;border:10px solid var(--ivory);box-shadow:var(--shadow-2)}
.collage__b img{aspect-ratio:1/1;object-fit:cover;width:100%}
.collage--rev .collage__a img{margin-left:auto}
.collage--rev .collage__b{right:auto;left:0}
.scene--paper .collage__b{border-color:var(--paper)}
.collage__tag{position:absolute;left:-.4rem;top:2.2rem;writing-mode:vertical-rl;transform:rotate(180deg);font:600 .68rem var(--f-text);letter-spacing:.3em;text-transform:uppercase;color:var(--teal-ink);margin:0}
.collage__a,.frame{overflow:visible}
.collage__a picture,.collage__b picture{overflow:hidden;display:block}
.collage img,.frame img,.playbill picture img,.review picture img{transition:transform 1.4s var(--ease)}
.collage:hover .collage__a img{transform:scale(1.02)}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    [data-parallax]{animation:px linear both;animation-timeline:view();animation-range:cover}
    .collage__b[data-parallax]{animation-name:pxStrong}
    @keyframes px{from{transform:translateY(24px)}to{transform:translateY(-24px)}}
    @keyframes pxStrong{from{transform:translateY(70px)}to{transform:translateY(-50px)}}
    .act-title{animation:titleIn linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
    @keyframes titleIn{from{opacity:.15;letter-spacing:.02em}to{opacity:1;letter-spacing:-.025em}}
    .hero__media img{animation:heroPx linear both;animation-timeline:scroll(root);animation-range:0 100vh}
    @keyframes heroPx{to{transform:translateY(12%) scale(1.06)}}
  }
}
.hero__in{animation:heroIn 1.1s var(--ease) both}
@keyframes heroIn{from{opacity:0;transform:translateY(16px)}}

/* school billing cards */
.billing{display:grid;gap:clamp(1rem,2vw,1.6rem);grid-template-columns:1fr}
@media (min-width:40em){.billing{grid-template-columns:repeat(2,1fr)}.billing[data-n="5"] .bill:last-child,.billing[data-n="3"] .bill:last-child,.billing[data-n="1"] .bill{grid-column:1/-1}}
@media (min-width:64em){
  .billing{grid-template-columns:repeat(6,1fr)}
  .bill{grid-column:span 2}
  .billing[data-n="5"] .bill:nth-child(-n+2),.billing[data-n="4"] .bill,.billing[data-n="2"] .bill{grid-column:span 3}
  .billing[data-n="5"] .bill:last-child,.billing[data-n="3"] .bill:last-child{grid-column:span 2}
  .billing[data-n="1"] .bill{grid-column:1/-1}
  .billing[data-n="5"] .bill:nth-child(-n+2) .bill__photo{aspect-ratio:16/8}
}
.bill{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:var(--shadow-1);transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .6s}
.bill__photo{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2)}
.bill__photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) brightness(.97);transition:transform 1.4s var(--ease),filter .8s var(--ease)}
.bill__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(255,255,255,.0) 60%,#fff 100%),radial-gradient(60% 80% at var(--lx,50%) -10%,rgba(255,246,228,.0),transparent 70%);transition:background .6s}
.bill::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .7s var(--ease);background:radial-gradient(28rem 18rem at 50% -6rem,rgba(255,244,220,.75),rgba(255,244,220,.15) 45%,transparent 70%)}
.bill:hover,.bill:focus-within{transform:translateY(-6px);box-shadow:0 2px 4px rgba(29,37,41,.05),0 40px 70px -34px rgba(11,99,114,.55);border-color:rgba(23,162,184,.45)}
.bill:hover::before,.bill:focus-within::before{opacity:1}
.bill:hover .bill__photo img{transform:scale(1.06);filter:saturate(1) brightness(1.04)}
.bill__body{position:relative;z-index:3;display:flex;flex-direction:column;gap:.55rem;padding:0 1.6rem 1.5rem;flex:1}
.bill__crest{width:88px;height:88px;margin-top:-52px;margin-bottom:.4rem;display:grid;place-items:center;background:#fff;border-radius:50%;border:1px solid var(--line);box-shadow:0 10px 26px -12px rgba(29,37,41,.4);padding:12px;transition:transform .6s var(--ease)}
.bill:hover .bill__crest{transform:translateY(-4px)}
.bill__crest img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.bill__area{margin:0;font:600 .7rem/1.3 var(--f-text);letter-spacing:.2em;text-transform:uppercase;color:var(--teal-ink)}
.bill__name{font-size:1.5rem;margin:0;line-height:1.15}
.bill__name a{color:var(--ink);text-decoration:none;background:linear-gradient(var(--teal),var(--teal)) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease)}
.bill__name a:hover{background-size:100% 1px;color:var(--ink)}
.bill__meta{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:0;font-size:.86rem;color:var(--grey-ink)}
.bill__meta span+span::before{content:"·";margin-right:.9rem;color:var(--teal)}
.bill__actions{margin-top:auto;padding-top:1rem;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;border-top:1px solid var(--line)}
.bill__qr{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--teal-ink)!important;text-decoration:none;min-height:42px}
.bill__qr:hover{text-decoration:underline}
.qr-dialog{border:0;border-radius:8px;padding:2rem;max-width:min(24rem,92vw);text-align:center;box-shadow:0 40px 80px -30px rgba(7,20,26,.6)}
.qr-dialog::backdrop{background:rgba(29,37,41,.55);backdrop-filter:blur(4px)}
.qr-dialog img{margin:1rem auto;width:240px;height:240px}
.qr-dialog h3{font-size:1.4rem;margin:0}
.qr-dialog__acts{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin:0}
.qr-dialog .act{justify-content:center}
.invite{margin-top:clamp(2rem,4vw,3rem);display:flex;flex-wrap:wrap;gap:1.4rem;align-items:center;justify-content:space-between;padding:1.6rem 2rem;border:1px solid var(--line);border-left:3px solid var(--teal);background:#fff;border-radius:6px}
.invite .act{margin:0 0 .3rem}.invite__line{margin:0;font:700 1.5rem/1.2 var(--f-display)}

/* playbill, reviews, faculty hovers */
.playbill{transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.playbill:hover{transform:translateY(-6px);box-shadow:0 40px 70px -34px rgba(11,99,114,.5)}
.review picture{overflow:hidden;display:block;border-radius:4px}
.review:hover picture img{transform:scale(1.05)}
.player img{filter:grayscale(.35)}

/* forms & cards on light */
.aside-card{background:#fff;color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--teal);box-shadow:var(--shadow-1);border-radius:4px}
.aside-card dt{color:var(--teal-ink);font-family:var(--f-text);font-weight:600}
.aside-card a{color:var(--teal-ink)}
.emergency{margin:1.2rem 0 0;padding:.8rem 1rem;background:#fff6f4;border-left:3px solid #b3261e;font-size:.9rem}
.emergency a{color:#8c1d16!important;font-weight:600}
.signoff{margin:1.2rem 0 0;font-family:var(--f-display);font-style:italic;font-size:1.15rem;color:var(--teal-ink)}
.contact-card{margin:2rem 0;padding:1.4rem 1.6rem;background:#fff;border:1px solid var(--line);border-radius:6px}
.contact-card p{margin:0 0 .4rem}
.ticket{filter:drop-shadow(0 30px 50px rgba(11,99,114,.25))}
.ticket__stub::before,.ticket__stub::after{background:var(--ivory)}
.ticket__house,.ticket dt{font-family:var(--f-text);font-weight:600}
.reg-acts li{font-family:var(--f-text)}

/* footer — light */
.curtain-call{background:var(--paper-2);color:var(--ink);border-top:1px solid var(--line)}
.curtain-call::before{background:radial-gradient(50% 80% at 50% 0,rgba(255,244,220,.8),transparent 70%)}
.curtain-call .muted,.curtain-call__base{color:var(--grey-ink)}
.curtain-call a{color:var(--teal-ink)}.curtain-call a:hover{color:var(--ink)}
.curtain-call__base{border-top-color:var(--line)}
.ft-h{font-family:var(--f-text);font-weight:600;color:var(--teal-ink)}
.ft-logo{height:88px;width:auto;margin-bottom:1rem}
.curtain-call__line{color:var(--ink)}

/* usher */
.usher__toggle{background:#fff;color:var(--teal-ink);border-color:var(--teal);box-shadow:0 12px 30px -12px rgba(11,99,114,.5)}
.usher__toggle:hover{background:var(--teal-d);color:#fff}

/* =====================================================================
   v3 — floating proscenium header, colour banding, theatrical dividers
   ===================================================================== */
:root{--gold:#e3bd74;--gold-soft:rgba(227,189,116,.5);--tint:#E8F6F8;--deep:#0E5E6B;--deep-2:#0a4651;--hd-gap:max(1rem,calc((100vw - 78rem)/2))}

/* ---- header: transparent over the stage, frosted bar on scroll / light pages ---- */
.proscenium{position:fixed;top:0;left:0;right:0;z-index:60;background:transparent;border:0;color:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;
  transition:top .5s var(--ease),left .5s var(--ease),right .5s var(--ease),background-color .5s var(--ease),box-shadow .5s var(--ease),border-radius .5s var(--ease),color .3s}
.topbar{font-size:.76rem;letter-spacing:.04em;color:rgba(255,255,255,.78);border-bottom:1px solid rgba(255,255,255,.14);max-height:3rem;overflow:hidden;transition:max-height .45s var(--ease),opacity .3s}
.topbar__in{width:var(--wrap);margin-inline:auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:2.3rem}
.topbar a{color:#fff;text-decoration:none;font-weight:600}.topbar a:hover,.topbar a:focus-visible{text-decoration:underline}
.topbar__links{display:flex;gap:1.6rem}
@media (max-width:47.99em){.topbar__hours,.topbar__links a+a{display:none}.topbar__in{justify-content:center}}
@media (max-width:63.99em){.topbar__ex{display:none}}
.proscenium__in{width:var(--wrap);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:7.25rem;transition:min-height .5s var(--ease),padding .5s var(--ease)}
.brand{display:flex;align-items:center;gap:1.1rem;color:inherit;text-decoration:none;position:relative;z-index:3}
.brand__plate{position:relative;display:grid;place-items:center}
.brand__plate::before{content:"";position:absolute;inset:-22%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,246,228,.22),rgba(255,246,228,.06) 60%,transparent);transition:opacity .5s}
.brand__logo{position:relative;width:auto;height:100px;opacity:1;filter:brightness(0) invert(1) drop-shadow(0 0 14px rgba(255,240,210,.35));transition:height .5s var(--ease),filter .4s,transform .6s var(--ease)}
.brand:hover .brand__logo{transform:rotate(-6deg)}
.brand__text{display:flex;flex-direction:column;line-height:1}
.brand__name{font:600 1.4rem/1 var(--f-text);text-transform:uppercase;letter-spacing:.14em;color:inherit}
.brand__name b{font-weight:600;color:#8fdbe6}
.brand__sub{font:italic 400 .95rem/1 var(--f-display);letter-spacing:.04em;text-transform:none;color:rgba(255,255,255,.78);margin-top:.5rem;padding:0;border:0}
.nav{position:relative}
.nav a{color:inherit;text-decoration:none}
.nav-toggle{position:relative;z-index:3;border:1px solid currentColor;color:inherit;background:transparent}
.nav-toggle:focus-visible,.nav a:focus-visible,.ticket-pill:focus-visible,.brand:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

/* ticket pill */
.ticket-pill{--stub:3.7rem;display:inline-flex;align-items:stretch;min-height:44px;border:1px solid currentColor;border-radius:999px;color:inherit;text-decoration:none;overflow:hidden;
  -webkit-mask:radial-gradient(circle 5px at calc(100% - var(--stub)) 0,#0000 96%,#000) top/100% 51% no-repeat,radial-gradient(circle 5px at calc(100% - var(--stub)) 100%,#0000 96%,#000) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle 5px at calc(100% - var(--stub)) 0,#0000 96%,#000) top/100% 51% no-repeat,radial-gradient(circle 5px at calc(100% - var(--stub)) 100%,#0000 96%,#000) bottom/100% 51% no-repeat;
  transition:background-color .35s var(--ease),color .35s,box-shadow .35s}
.ticket-pill__main{display:flex;align-items:center;padding:0 1.1rem 0 1.35rem;font:600 .76rem/1 var(--f-text);letter-spacing:.18em;text-transform:uppercase}
.ticket-pill__stub{display:flex;align-items:center;justify-content:center;width:var(--stub);border-left:1px dashed currentColor;font:italic 400 .9rem/1 var(--f-display)}
.ticket-pill:hover{background:#fff;color:var(--teal-ink)}

/* desktop menu */
@media (min-width:64em){
  .nav-toggle,.nav__kicker,.nav__foot{display:none}
  .nav{display:flex;align-items:center;gap:2rem}
  .nav ul{display:flex;gap:1.6rem}
  .nav li a{display:block;padding:.6rem 0;font:500 .76rem/1 var(--f-text);letter-spacing:.16em;text-transform:uppercase;color:inherit;opacity:.86;transition:opacity .3s}
  .nav li a:hover,.nav li a[aria-current]{opacity:1;color:inherit}
  .nav li a::after{display:none}
  .nav__light{position:absolute;left:0;bottom:-.15rem;width:var(--lw,0);height:1px;transform:translateX(var(--lx,0));opacity:0;pointer-events:none;
    background:linear-gradient(90deg,transparent,var(--gold) 20%,#fff3d6 50%,var(--gold) 80%,transparent);transition:transform .55s var(--ease),width .55s var(--ease),opacity .4s}
  .nav__light::before{content:"";position:absolute;left:50%;bottom:0;width:calc(100% + 3rem);height:3.2rem;transform:translateX(-50%);border-radius:50%;
    background:radial-gradient(50% 100% at 50% 100%,rgba(255,244,222,.26),rgba(255,244,222,.06) 60%,transparent 75%)}
  .no-js .nav li a[aria-current]{box-shadow:inset 0 -1px var(--gold)}
}
@media (max-width:63.99em){
  .proscenium__in{min-height:5.25rem}
  .brand__logo{height:64px}.brand__name{font-size:1.05rem;letter-spacing:.12em}.brand__sub{font-size:.8rem}
  .nav__light{display:none}
  /* full-screen "programme" overlay */
  .nav{position:fixed;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:1.4rem;padding:6.5rem 2rem calc(2rem + env(safe-area-inset-bottom));color:#fff;transform:none;
    background:radial-gradient(90% 45% at 50% 0,rgba(255,240,210,.14),transparent 65%),linear-gradient(180deg,#0c3a43,#07181d 75%);opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s .45s;overflow-y:auto}
  .nav::before{display:none}
  .nav-open .nav{opacity:1;visibility:visible;transform:none;transition:opacity .45s var(--ease)}
  .nav__kicker{margin:0;font:600 .7rem/1 var(--f-text);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
  .nav ul{counter-reset:act}
  .nav li{border:0;opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .6s var(--ease)}
  .nav-open .nav li{opacity:1;transform:none}
  .nav-open .nav li:nth-child(2){transition-delay:.05s}.nav-open .nav li:nth-child(3){transition-delay:.1s}.nav-open .nav li:nth-child(4){transition-delay:.15s}.nav-open .nav li:nth-child(5){transition-delay:.2s}.nav-open .nav li:nth-child(6){transition-delay:.25s}.nav-open .nav li:nth-child(7){transition-delay:.3s}.nav-open .nav li:nth-child(8){transition-delay:.35s}.nav-open .nav li:nth-child(9){transition-delay:.4s}
  .nav li a{display:flex;align-items:baseline;gap:1rem;padding:.35rem 0;font:700 clamp(1.8rem,7.5vw,2.6rem)/1.15 var(--f-display);color:#fff}
  .nav li a::before{counter-increment:act;content:counter(act,upper-roman);min-width:2.2rem;font:italic 400 .9rem/1 var(--f-display);color:var(--gold)}
  .nav li a[aria-current]{color:#8fdbe6}
  .nav .ticket-pill{align-self:flex-start;margin-top:.6rem;color:#fff}
  .nav__foot{margin:0;display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:rgba(255,255,255,.7)}.nav__foot a{color:#fff;font-weight:600}
  .nav-open{overflow:hidden}
  .nav-open .proscenium{top:0!important;left:0!important;right:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;color:#fff!important}
  .nav-open .proscenium .topbar{max-height:0;opacity:0}
  .nav-open .brand__logo{filter:brightness(0) invert(1)!important}
  .nav-open .brand__name b{color:#8fdbe6!important}.nav-open .brand__sub{color:rgba(255,255,255,.75)!important}
}
@media (prefers-reduced-motion:reduce){.nav li{transform:none!important;transition:none!important}}

/* floating frosted bar: after scrolling, and always on pages without a dark stage */
.proscenium.is-compact,body:not(.has-stage) .proscenium{top:.75rem;left:var(--hd-gap);right:var(--hd-gap);border-radius:999px;color:var(--ink);
  background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 18px 40px -22px rgba(14,40,46,.45),0 0 0 1px rgba(29,37,41,.07)}
.proscenium.is-compact .topbar,body:not(.has-stage) .proscenium .topbar{max-height:0;opacity:0;border:0}
.proscenium.is-compact .proscenium__in,body:not(.has-stage) .proscenium__in{width:auto;padding:0 .6rem 0 1.1rem;min-height:4.1rem}
.proscenium.is-compact .brand__logo,body:not(.has-stage) .brand__logo{height:50px;filter:none}
.proscenium.is-compact .brand__plate::before,body:not(.has-stage) .brand__plate::before{opacity:0}
.proscenium.is-compact .brand__name,body:not(.has-stage) .brand__name{font-size:1.02rem;color:var(--charcoal)}
.proscenium.is-compact .brand__name b,body:not(.has-stage) .brand__name b{color:#107585}
.proscenium.is-compact .brand__sub,body:not(.has-stage) .brand__sub{color:var(--teal-ink);font-size:.78rem;margin-top:.3rem}
.proscenium.is-compact .nav__light,body:not(.has-stage) .nav__light{background:linear-gradient(90deg,transparent,#c99a45 25%,#c99a45 75%,transparent)}
.proscenium.is-compact .nav__light::before,body:not(.has-stage) .nav__light::before{background:radial-gradient(50% 100% at 50% 100%,rgba(227,189,116,.22),transparent 75%)}
.proscenium.is-compact .ticket-pill,body:not(.has-stage) .ticket-pill{color:var(--teal-ink)}
.proscenium.is-compact .ticket-pill:hover,body:not(.has-stage) .ticket-pill:hover{background:var(--teal-ink);color:#fff}
@media (max-width:63.99em){.proscenium.is-compact,body:not(.has-stage) .proscenium{border-radius:22px;top:.5rem;left:.6rem;right:.6rem}.proscenium.is-compact .brand__logo,body:not(.has-stage) .brand__logo{height:44px}.proscenium.is-compact .brand__sub,body:not(.has-stage) .brand__sub{display:none}}
body:not(.has-stage) main{padding-top:5.4rem}
.has-stage .hero__in{padding-top:11rem}
.hero--page{min-height:clamp(28rem,62svh,38rem)}

/* ---- colour banding ---- */
.scene--white,.scene--paper{background:#fff}
.scene--grey,.scene--tint{background:var(--tint)}
.scene--ivory{background:var(--ivory)}
.scene--deep{background:radial-gradient(70% 120% at 50% 0,rgba(255,244,220,.12),transparent 60%),linear-gradient(180deg,var(--deep),var(--deep-2));color:#eef6f7}
.scene--deep::after{display:none}
.scene--deep h2,.scene--deep h3,.scene--deep .act-title{color:#fff}
.scene--deep .act{color:var(--gold)}.scene--deep .act::before{background:var(--gold)}
.scene--deep a:not(.btn){color:#fff}
.scene--deep .muted,.scene--deep .lead{color:rgba(238,246,247,.8)}
.scene{position:relative}
.scene--tint .bill,.scene--tint .invite{box-shadow:0 1px 2px rgba(14,94,107,.06),0 14px 34px -18px rgba(14,94,107,.35)}
.scene--tint .collage__b{border-color:var(--tint)}.scene--white .collage__b{border-color:#fff}

/* dividers */
.edge{position:absolute;left:0;right:0;top:1px;transform:translateY(-100%);pointer-events:none;z-index:2}
.edge--angle{height:clamp(18px,3.2vw,46px);clip-path:polygon(0 100%,100% 0,100% 100%)}
.scene--ivory>.edge{background:var(--ivory)}.scene--tint>.edge,.scene--grey>.edge{background:var(--tint)}.scene--white>.edge,.scene--paper>.edge{background:#fff}.scene--deep>.edge{background:var(--deep)}
.ornament{display:flex;align-items:center;justify-content:center;gap:1rem;width:min(20rem,70%);margin:calc(clamp(2.75rem,5.5vw,5.25rem)*-.45) auto clamp(1.6rem,3vw,2.6rem)}
.ornament span{flex:1;height:1px;background:linear-gradient(90deg,transparent,#c99a45)}
.ornament span:last-child{background:linear-gradient(90deg,#c99a45,transparent)}
.ornament img{width:34px;height:auto;opacity:.6}
.ornament .orn--light{display:none}.scene--deep .ornament .orn--ink{display:none}.scene--deep .ornament .orn--light{display:block;opacity:.75}
.scene--tint::before{content:"";position:absolute;inset:0 0 auto;height:9rem;pointer-events:none;background:radial-gradient(45% 100% at 50% 0,rgba(255,255,255,.75),transparent 70%)}
.scene>.wrap{position:relative;z-index:1}

/* stats band */
.stats{padding:clamp(2.2rem,4vw,3.2rem) 0}
.notes--band{margin:0;border:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem 0}
@media (min-width:48em){.notes--band{grid-template-columns:repeat(4,1fr)}}
.notes--band>div{padding:0 1.2rem;border-color:rgba(255,255,255,.18)!important;text-align:center}
.notes--band strong{display:block;color:#fff;font:700 clamp(2.2rem,1.6rem + 2.4vw,3.4rem)/1 var(--f-display)}
.notes--band span{display:block;margin-top:.5rem;color:var(--gold);font:600 .7rem/1.3 var(--f-text);letter-spacing:.2em;text-transform:uppercase}

/* testimonials */
.sec-head--center{grid-template-columns:1fr!important;justify-items:center;text-align:center}
.sec-head--center .act{justify-content:center}
.tq-grid{display:grid;gap:clamp(1rem,2vw,1.5rem);grid-template-columns:1fr}
@media (min-width:52em){.tq-grid{grid-template-columns:repeat(2,1fr)}}
.tq{position:relative;margin:0;display:flex;flex-direction:column;padding:2.1rem 2rem 1.7rem;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);border-radius:8px;overflow:hidden;transition:transform .6s var(--ease),background-color .6s,border-color .6s}
.tq::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .7s;background:radial-gradient(26rem 14rem at 30% -4rem,rgba(255,244,220,.18),transparent 70%)}
.tq:hover{transform:translateY(-4px);background:rgba(255,255,255,.08);border-color:var(--gold-soft)}.tq:hover::before{opacity:1}
.tq__mark{font:700 4.6rem/.7 var(--f-display);color:var(--gold);height:2.2rem}
.tq__q{margin:0;flex:1}
.tq__q p{margin:0;font:italic 400 clamp(1.05rem,1rem + .3vw,1.2rem)/1.6 var(--f-display);color:#f3f8f8}
.tq__by{margin-top:1.4rem;padding-top:1rem;border-top:1px solid rgba(227,189,116,.35);display:flex;flex-direction:column;gap:.25rem}
.tq__name{font:600 .95rem/1.2 var(--f-text);color:#fff;letter-spacing:.02em}
.tq__role{font-size:.78rem;letter-spacing:.08em;color:rgba(238,246,247,.75)}
.tq--aside{margin-top:1.6rem;padding:1.4rem 1.3rem 1.2rem;background:var(--tint);border:0;border-left:3px solid var(--teal)}
.tq--aside:hover{transform:none;background:var(--tint)}
.tq--aside .tq__mark{color:var(--teal-d);font-size:3.4rem;height:1.6rem}
.tq--aside .tq__q p{color:var(--ink);font-size:1rem}
.tq--aside .tq__by{border-color:rgba(14,94,107,.2)}.tq--aside .tq__name{color:var(--ink)}.tq--aside .tq__role{color:var(--grey-ink)}

/* tighter rhythm */
.cta-band{padding:clamp(2.75rem,5vw,4.5rem) 0}
.collage{padding-bottom:12%}
.sec-head{margin-bottom:clamp(1.6rem,3vw,2.6rem)}
.running{margin-bottom:0}
.brand__name,.brand__sub{white-space:nowrap}
.nav-open .usher,.nav-open .usher-btn,.nav-open [class*="usher"]{visibility:hidden}

/* ---- v3.1: logo plate, ticket button, alignment, stage-edge divider ---- */
.brand{flex-shrink:0}
.proscenium .brand__plate{flex:0 0 auto;width:80px;height:80px;border-radius:50%;background:#fffdf8;display:grid;place-items:center;
  box-shadow:0 0 0 1px rgba(227,189,116,.75),0 0 0 5px rgba(255,253,248,.12),0 10px 28px -8px rgba(0,0,0,.55);transition:width .45s var(--ease),height .45s var(--ease),box-shadow .45s}
.proscenium .brand__plate::before{display:none}
.proscenium .brand__logo,.proscenium.is-compact .brand__logo,body:not(.has-stage) .proscenium .brand__logo,.nav-open .proscenium .brand__logo{width:84%!important;height:84%!important;max-width:none;object-fit:contain;filter:none!important;opacity:1}
.proscenium.is-compact .brand__plate,body:not(.has-stage) .proscenium .brand__plate{width:52px;height:52px;box-shadow:0 0 0 1px rgba(14,94,107,.22),0 4px 12px -6px rgba(14,40,46,.4)}
@media (max-width:63.99em){
  .proscenium .brand__plate{width:60px;height:60px}
  .proscenium.is-compact .brand__plate,body:not(.has-stage) .proscenium .brand__plate{width:46px;height:46px}
  .nav-open .proscenium .brand__plate{width:60px;height:60px}
}
/* ticket button: solid teal, notched sides (mask on a backing layer so focus rings and shadows stay crisp) */
.ticket-btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:0 1.35rem;color:#fff;text-decoration:none;
  font:600 .76rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:transform .25s var(--ease)}
.ticket-btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:10px;background:#107585;transition:background-color .25s;
  -webkit-mask:radial-gradient(circle 6px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 6px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;
          mask:radial-gradient(circle 6px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 6px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat}
.ticket-btn::after{content:"";position:absolute;inset:6px;z-index:-1;border-radius:6px;border:1px dashed rgba(255,255,255,.28);pointer-events:none}
.ticket-btn:hover{transform:translateY(-1px);color:#fff}.ticket-btn:hover::before{background:#0b5f6c}
.ticket-btn:active{transform:none}
.ticket-btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:10px}
.ticket-btn__icon{flex:0 0 auto;display:block}
@media (min-width:64em) and (max-width:89.99em){.ticket-btn__yr{display:none}}
@media (max-width:63.99em){.nav .ticket-btn{align-self:flex-start;margin-top:.6rem;color:#fff}}
/* alignment */
@media (min-width:64em){
  .nav{align-items:center;gap:clamp(1.1rem,2vw,2rem)}
  .nav ul{margin:0;padding:0;align-items:center;gap:clamp(.9rem,1.5vw,1.6rem)}
  .nav li{display:flex;align-items:center}
  .nav li a{padding:.75rem 0;line-height:1}
  .nav__light{bottom:.2rem}
}
.proscenium__in{align-items:center}
.topbar__in{padding:0}
.proscenium.is-compact .proscenium__in,body:not(.has-stage) .proscenium__in{padding:0 .5rem 0 .6rem}
/* stage lip under the hero: a gentle curve with a footlight line */
.edge--stage{left:-10%;right:-10%;top:2px;height:clamp(22px,3.4vw,46px);border-radius:50% 50% 0 0/100% 100% 0 0;border-top:1px solid var(--gold);
  box-shadow:0 -1px 0 rgba(255,236,196,.35),0 -10px 26px -6px rgba(227,189,116,.45)}
.scene--ivory>.edge--stage{background:var(--ivory)}.scene--paper>.edge--stage,.scene--white>.edge--stage{background:#fff}.scene--grey>.edge--stage,.scene--tint>.edge--stage{background:var(--tint)}
.scene:has(>.edge--stage){overflow-x:clip}
@media (max-width:47.99em){.hero__credit{display:none}}

/* ---- v4 header: logo only, bigger, no rules ---- */
.topbar,.proscenium,.proscenium.is-compact,.proscenium__in{border:0!important}
.topbar{border-bottom:0!important}
.proscenium .brand__plate{width:116px;height:116px;box-shadow:0 0 0 1px rgba(227,189,116,.28),0 12px 30px -10px rgba(0,0,0,.55)}
.proscenium .brand__logo,.proscenium.is-compact .brand__logo,body:not(.has-stage) .proscenium .brand__logo,.nav-open .proscenium .brand__logo{width:90%!important;height:90%!important;image-rendering:auto}
.proscenium__in{min-height:8.4rem}
.proscenium.is-compact .brand__plate,body:not(.has-stage) .proscenium .brand__plate{width:68px;height:68px;box-shadow:0 0 0 1px rgba(14,94,107,.12),0 4px 12px -6px rgba(14,40,46,.35)}
.proscenium.is-compact .proscenium__in,body:not(.has-stage) .proscenium__in{min-height:5rem;padding:0 .6rem 0 .45rem}
.proscenium.is-compact,body:not(.has-stage) .proscenium{box-shadow:0 18px 40px -22px rgba(14,40,46,.45)!important}
body:not(.has-stage) main{padding-top:6.4rem}
.has-stage .hero__in{padding-top:12.5rem}
@media (max-width:63.99em){
  .proscenium .brand__plate,.nav-open .proscenium .brand__plate{width:76px;height:76px}
  .proscenium__in{min-height:6.25rem}
  .proscenium.is-compact .brand__plate,body:not(.has-stage) .proscenium .brand__plate{width:56px;height:56px}
  .proscenium.is-compact .proscenium__in,body:not(.has-stage) .proscenium__in{min-height:4.4rem}
  body:not(.has-stage) main{padding-top:5.6rem}
}
.proscenium .brand__logo,.proscenium.is-compact .brand__logo,body:not(.has-stage) .proscenium .brand__logo,.nav-open .proscenium .brand__logo{width:96%!important;height:96%!important}

/* ---- v5: transparent logo, no plate; ivory ink on the stage, dark ink on light ---- */
.proscenium .brand__plate,.proscenium.is-compact .brand__plate,body:not(.has-stage) .proscenium .brand__plate{background:none!important;box-shadow:none!important;border-radius:0;position:relative}
.proscenium .brand__logo,.proscenium.is-compact .brand__logo,body:not(.has-stage) .proscenium .brand__logo,.nav-open .proscenium .brand__logo{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain;transition:opacity .4s var(--ease)}
.brand__logo--light{opacity:1;filter:drop-shadow(0 2px 10px rgba(0,0,0,.45))!important}
.brand__logo--ink{opacity:0}
.proscenium.is-compact .brand__logo--light,body:not(.has-stage) .proscenium .brand__logo--light{opacity:0}
.proscenium.is-compact .brand__logo--ink,body:not(.has-stage) .proscenium .brand__logo--ink{opacity:1}
.nav-open .proscenium .brand__logo--light{opacity:1}.nav-open .proscenium .brand__logo--ink{opacity:0}
.ornament img{opacity:.7}.scene--deep .ornament img{filter:brightness(0) invert(1)}
.proscenium .brand__plate .brand__logo--light{opacity:1}
.proscenium .brand__plate .brand__logo--ink{opacity:0}
.proscenium.is-compact .brand__plate .brand__logo--light,body:not(.has-stage) .proscenium .brand__plate .brand__logo--light{opacity:0}
.proscenium.is-compact .brand__plate .brand__logo--ink,body:not(.has-stage) .proscenium .brand__plate .brand__logo--ink{opacity:1}
.nav-open .proscenium .brand__plate .brand__logo--light{opacity:1}.nav-open .proscenium .brand__plate .brand__logo--ink{opacity:0}

/* ---- v6: ring-free logo mark (303x277), larger ---- */
.proscenium .brand__plate{width:142px;height:130px}
.proscenium__in{min-height:9.2rem}
.proscenium.is-compact .brand__plate,body:not(.has-stage) .proscenium .brand__plate{width:83px;height:76px}
.proscenium.is-compact .proscenium__in,body:not(.has-stage) .proscenium__in{min-height:5.6rem;padding:0 .6rem 0 1rem}
body:not(.has-stage) main{padding-top:7rem}
.has-stage .hero__in{padding-top:13.5rem}
.ft-logo{height:96px;width:auto}
@media (max-width:63.99em){
  .proscenium .brand__plate,.nav-open .proscenium .brand__plate{width:96px;height:88px}
  .proscenium__in{min-height:7rem}
  .proscenium.is-compact .brand__plate,body:not(.has-stage) .proscenium .brand__plate{width:66px;height:60px}
  .proscenium.is-compact .proscenium__in,body:not(.has-stage) .proscenium__in{min-height:4.6rem;padding:0 .5rem 0 .8rem}
  body:not(.has-stage) main{padding-top:6rem}
  .has-stage .hero__in{padding-top:10rem}
}

/* ---- Story feature photo (mask girl) ---- */
.story-frame{position:relative;margin:0;padding:clamp(.6rem,1.2vw,1rem);background:linear-gradient(160deg,#fffdf8,#f6efe1);border:1px solid rgba(201,154,69,.55);box-shadow:0 40px 80px -36px rgba(7,20,26,.45),0 0 0 6px rgba(253,249,240,.9),0 0 0 7px rgba(201,154,69,.28)}
.story-frame::before{content:"";position:absolute;inset:-12% -10%;z-index:-1;background:radial-gradient(ellipse at 60% 35%,rgba(255,206,130,.38),rgba(255,206,130,0) 62%);filter:blur(8px);pointer-events:none}
.story-frame__img{position:relative;overflow:hidden;aspect-ratio:3/2}
.story-frame__img img{display:block;width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.story-frame__img::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 60px rgba(7,20,26,.28);pointer-events:none}
.story-frame figcaption{margin:.8rem .2rem .1rem;font-family:var(--f-display);font-style:italic;font-size:1.2rem;color:var(--grey-ink,#4a4a4a);text-align:center}

/* ---- v7: Encore assistant (mask avatar) ---- */
.usher{right:clamp(.75rem,2vw,1.5rem);bottom:calc(clamp(.75rem,2vw,1.5rem) + env(safe-area-inset-bottom))}
.usher__toggle{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:none;border:0;padding:0;box-shadow:none;min-height:0;cursor:pointer;color:var(--night)}
.usher__toggle .usher__face{width:64px;height:64px;filter:drop-shadow(0 10px 18px rgba(7,20,26,.35))}
.usher__label{font:600 .7rem var(--f-text);letter-spacing:.14em;text-transform:uppercase;background:#fffdf8;color:#0b4f5c;border:1px solid rgba(201,154,69,.6);padding:.22rem .6rem;border-radius:999px;box-shadow:0 6px 14px -8px rgba(7,20,26,.4)}
.usher__toggle:focus-visible{outline:2px solid var(--teal);outline-offset:4px;border-radius:12px}
.usher__toggle[aria-expanded="true"] .usher__label{opacity:0}
/* mask drawing */
.usher__face .m-halo{fill:#0b2a33;stroke:#c99a45;stroke-width:1.2}
.usher__face .m-face--comedy{fill:#fdf9f0}
.usher__face .m-face--tragedy{fill:#2b2b2b}
.usher__face .m-rim{fill:none;stroke:#c99a45;stroke-width:1.1}
.usher__face .m-brow{fill:none;stroke:#17a2b8;stroke-width:1.4;stroke-linecap:round}
.usher__face .m-eye--l{fill:#fdf9f0}.usher__face .m-eye--r{fill:#2b2b2b}
.usher__face .m-mouth path{fill:none;stroke-width:1.8;stroke-linecap:round}
.usher__face .m-mouth--sad{stroke:#fdf9f0}.usher__face .m-mouth--smile{stroke:#2b2b2b;fill:#17a2b8!important;fill-opacity:.25}
.usher__face .m-star{fill:#c99a45}
.usher__face .m-head,.usher__face .m-eyes,.usher__face .m-mouth{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:no-preference){
  .usher__toggle .m-head{animation:m-float 5.5s ease-in-out infinite}
  .usher__face .m-eyes{animation:m-blink 6.5s infinite}
  .usher__toggle:hover .usher__face{transform:rotate(-7deg)}
  .usher__face{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
  .usher.is-thinking .usher__face .m-eyes{animation:m-look 1.4s ease-in-out infinite}
  .usher.is-thinking .usher__face .m-halo{animation:m-shimmer 1.4s ease-in-out infinite}
  .usher.is-talking .usher__face .m-mouth{animation:m-talk .32s ease-in-out infinite alternate}
}
@keyframes m-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
@keyframes m-blink{0%,93%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes m-look{0%,100%{transform:translateX(-1.4px)}50%{transform:translateX(1.4px)}}
@keyframes m-shimmer{0%,100%{stroke:#c99a45;stroke-width:1.2}50%{stroke:#f1d08a;stroke-width:2.4}}
@keyframes m-talk{from{transform:scaleY(1)}to{transform:scaleY(.72) translateY(.6px)}}
/* panel */
.usher__panel{bottom:6.4rem;width:min(24rem,calc(100vw - 1.5rem));padding:0;border:1px solid rgba(201,154,69,.45);border-radius:14px;overflow:hidden;background:#fffdf8;display:flex;flex-direction:column;max-height:min(36rem,calc(100vh - 8rem))}
.usher__panel[hidden]{display:none}
.usher__head{display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;background:linear-gradient(135deg,#07141a,#0b3a45);color:#fdf9f0;border-bottom:1px solid rgba(201,154,69,.5)}
.usher__face--sm{width:44px;height:44px;flex:none}
.usher__who{display:flex;flex-direction:column;line-height:1.15;flex:1}
.usher__who strong{font:600 1.15rem var(--f-display);letter-spacing:.02em}
.usher__who small{font-size:.74rem;opacity:.75}
.usher__close{background:none;border:1px solid rgba(253,249,240,.35);color:#fdf9f0;border-radius:50%;width:34px;height:34px;font-size:1.2rem;cursor:pointer}
.usher__log{flex:1;max-height:none;overflow:auto;padding:.9rem;margin:0;display:flex;flex-direction:column;gap:.6rem}
.usher__msg{margin:0;padding:.65rem .8rem;background:#fff;border:1px solid #ece4d3;border-left:3px solid var(--teal);border-radius:4px 12px 12px 12px;max-width:92%;font-size:.9rem;line-height:1.5}
.usher__msg p{margin:0}
.usher__msg--me{align-self:flex-end;background:#0b4f5c;color:#fff;border:0;border-radius:12px 4px 12px 12px;text-align:left}
.usher__acts{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}
.usher__act{display:inline-flex;align-items:center;min-height:34px;padding:.3rem .7rem;border-radius:999px;background:#0b4f5c;color:#fff!important;font-size:.78rem;font-weight:600;text-decoration:none}
.usher__act:hover{background:#17a2b8}
.usher__dots{display:inline-flex;gap:4px}.usher__dots i{width:6px;height:6px;border-radius:50%;background:#c99a45;animation:m-dot 1s infinite alternate}.usher__dots i:nth-child(2){animation-delay:.2s}.usher__dots i:nth-child(3){animation-delay:.4s}
@keyframes m-dot{to{opacity:.25;transform:translateY(-2px)}}
.usher__chips{display:flex;gap:.35rem;flex-wrap:wrap;padding:0 .9rem .6rem}
.usher__chip{border:1px solid rgba(23,162,184,.6);background:#fff;color:#0b4f5c;border-radius:999px;padding:.3rem .7rem;font:500 .76rem var(--f-text);cursor:pointer;min-height:32px}
.usher__chip:hover{background:#e7f6f8}
.usher__form{padding:.6rem .9rem;border-top:1px solid #ece4d3;display:flex;gap:.45rem}
.usher__form input{flex:1;min-height:44px;border:1px solid #d9cfba;border-radius:999px;padding:.5rem .9rem;background:#fff}
.usher__send{width:44px;height:44px;border-radius:50%;border:0;background:var(--teal);color:#fff;cursor:pointer;display:grid;place-items:center}
.usher__note{margin:0;padding:0 .9rem .7rem;font-size:.7rem;color:#6b6b6b}
@media (max-width:40em){.usher__panel{position:fixed;right:.5rem;left:.5rem;width:auto;bottom:calc(6.2rem + env(safe-area-inset-bottom))}.usher__toggle .usher__face{width:56px;height:56px}}
@media (prefers-reduced-motion:reduce){.usher__dots i{animation:none}}
.usher__toggle:hover,.usher__toggle:focus{background:none;color:var(--night)}

/* ---- v8: Karri page + YouTube facade ---- */
.karri-hero__grid{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (min-width:52em){.karri-hero__grid{grid-template-columns:1.1fr .9fr}}
.karri-hero__logo img{width:min(200px,50vw);height:auto;display:block;margin:.4rem 0 1rem}
.karri-hero__img img{width:100%;height:auto;filter:drop-shadow(0 30px 50px rgba(0,0,0,.45))}
.karri-tbc{margin:.8rem 0 1.2rem}
.karri-stores{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.6rem;margin:1rem 0}
.karri-stores .karri-store{width:11.5rem;margin:0;box-sizing:border-box}
.karri-store{display:inline-flex;align-items:center;gap:.55rem;min-height:48px;padding:.45rem 1rem;border-radius:10px;background:#07141a;color:#fff!important;text-decoration:none;border:1px solid rgba(201,154,69,.55);font-weight:600;line-height:1.05}
.karri-store svg{width:22px;height:22px}.karri-store small{display:block;font-size:.66rem;font-weight:400;opacity:.8}
.karri-store:hover{background:#0b4f5c}
.karri-ticks{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.45rem}
.karri-ticks li{padding-left:1.6rem;position:relative}
.karri-ticks li::before{content:"";position:absolute;left:0;top:.35em;width:1rem;height:.55rem;border-left:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(-45deg) scale(.8)}
.karri-phones{display:flex;justify-content:center;gap:1rem}
.karri-phone{display:block;width:min(14rem,42vw)}
.karri-phone img{width:100%;height:auto;border-radius:22px;border:6px solid #07141a;box-shadow:0 24px 40px -18px rgba(7,20,26,.55)}
.karri-phone--up{transform:translateY(-2rem)}
.karri-steps{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:1.2rem;counter-reset:none}
@media (min-width:48em){.karri-steps{grid-template-columns:repeat(2,1fr)}}
@media (min-width:72em){.karri-steps{grid-template-columns:repeat(3,1fr)}}
.karri-step{background:#fff;border:1px solid #ece4d3;border-top:3px solid var(--teal);border-radius:6px;padding:1.4rem 1.3rem 1.2rem;position:relative}
.karri-step__n{position:absolute;top:-1.1rem;right:1rem;width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;background:#07141a;color:#c99a45;font:600 1.05rem var(--f-display);border:1px solid #c99a45}
.karri-step h3,.karri-benefit h3{margin:.1rem 0 .4rem;font-family:var(--f-display)}
.karri-step ul{margin:.6rem 0 0;padding-left:1.1rem;font-size:.92rem;color:var(--grey-ink,#555)}
.karri-step .karri-store{min-height:42px;padding:.35rem .8rem}
.karri-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:2rem 0}
@media (min-width:48em){.karri-strip{grid-template-columns:repeat(4,1fr)}}
.karri-strip .karri-phone{width:100%}
.karri-benefits{display:grid;gap:1rem;margin-top:1.5rem}
@media (min-width:48em){.karri-benefits{grid-template-columns:repeat(3,1fr)}}
.karri-benefit{background:#fff;border:1px solid #ece4d3;border-radius:6px;padding:1.3rem}
.karri-mini{float:right;margin:0 0 .5rem .8rem}.karri-mini img{width:64px;height:auto;border-radius:8px;border:3px solid #07141a}
.karri-cols{display:grid;gap:1.2rem}@media (min-width:40em){.karri-cols{grid-template-columns:1fr 1fr}}
.karri-cols h3{font-family:var(--f-display);margin:0}
.karri-card{aspect-ratio:1.586;max-width:24rem;width:100%;margin-inline:auto;border-radius:18px;padding:1.4rem;position:relative;color:#fff;background:linear-gradient(135deg,#1db954 0%,#0f7a3a 60%,#07141a 100%);box-shadow:0 30px 60px -25px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.2)}
.karri-card img{width:7rem;height:auto}
.karri-card__chip{position:absolute;left:1.4rem;top:42%;width:2.6rem;height:2rem;border-radius:6px;background:linear-gradient(135deg,#f1d08a,#c99a45)}
.karri-card__num{position:absolute;left:1.4rem;bottom:2.8rem;letter-spacing:.18em;font-size:1.05rem}
.karri-card__name{position:absolute;left:1.4rem;bottom:1.2rem;font-size:.75rem;letter-spacing:.2em;opacity:.85}
.yt-facade{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#07141a;box-shadow:0 30px 50px -25px rgba(7,20,26,.6);margin:1.5rem 0 .8rem}
.yt-facade picture,.yt-facade img,.yt-facade iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.yt-facade__play{position:absolute;inset:0;margin:auto;width:84px;height:60px;background:none;border:0;cursor:pointer;transition:transform .2s}
.yt-facade__play:hover,.yt-facade__play:focus-visible{transform:scale(1.08)}

/* v8c school registration blocks (rebuilt from old school pages) */
.school-reg{align-items:start}
.school-pay{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.6rem}
.school-box{background:#fff;border:1px solid var(--paper-2);border-radius:18px;padding:1.4rem 1.5rem;box-shadow:0 10px 30px -18px rgba(14,28,36,.35)}
.school-box h3{font-family:var(--serif,inherit);font-size:1.25rem;margin:0 0 .5rem;color:var(--teal-deep,#0e6f7a)}
.school-box p{margin:0 0 1rem}
.store-badges{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.6rem;margin:0;padding:0}
.store-badges a{display:block;margin:0;padding:0;line-height:0}
.store-badges img{width:152px;height:48px;max-width:none;margin:0;display:block;object-fit:fill}
.qr-card{text-align:center;max-width:360px;margin-inline:auto;padding:2rem}
.qr-card img{width:220px;height:220px;margin:.6rem auto 0;display:block}

/* v8d hero rotator + neon glow accent */
@font-face{font-family:"Great Vibes";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/great-vibes-latin-400-normal.woff2) format("woff2")}
.hero-rot{display:grid}
.hero-rot__slide{grid-area:1/1;opacity:0;visibility:hidden;filter:blur(6px);transform:translateY(10px);transition:opacity .9s ease,filter .9s ease,transform .9s ease,visibility 0s linear .9s}
.hero-rot__slide.is-on{opacity:1;visibility:visible;filter:none;transform:none;transition:opacity .9s ease .15s,filter .9s ease .15s,transform .9s ease .15s,visibility 0s}
.hero-rot__slide .display{margin-bottom:.4em}
.hero .glow,.hero .glow--script{font-family:"Great Vibes","Playfair Display",cursive;font-style:normal;font-weight:400;font-size:1.55em;line-height:.9;letter-spacing:.01em;display:inline-block;padding:0 .12em .08em;color:#effeff;text-shadow:0 0 2px #fff,0 0 8px rgba(110,230,240,.8),0 0 20px rgba(64,210,222,.55),0 0 36px rgba(40,160,220,.35)}

.hero-rot__slide.is-on .glow,.hero .glow--solo{animation:ck-glow 2.4s ease-in-out .4s infinite alternate}
@keyframes ck-glow{0%{filter:drop-shadow(0 0 1px rgba(110,235,245,.25))}100%{filter:drop-shadow(0 0 9px rgba(110,235,245,.75)) drop-shadow(0 0 20px rgba(64,210,222,.45))}}
.hero-rot__ctrl{display:flex;align-items:center;gap:.8rem;margin:.2rem 0 1.2rem}
.hero-rot__ctrl:not([hidden]){display:flex}
.hero-rot__pause{background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:99px;font:inherit;font-size:.72rem;letter-spacing:.08em;padding:.3rem .8rem;cursor:pointer}
.hero-rot__pause:focus-visible{outline:2px solid #7fe3ec;outline-offset:2px}
.hero-rot__dots{display:flex;gap:.35rem}.hero-rot__dots i{width:18px;height:3px;border-radius:2px;background:rgba(255,255,255,.3);transition:background .4s}.hero-rot__dots i.on{background:#7fe3ec}
@media (prefers-reduced-motion:reduce){.hero-rot__slide{transition:none;filter:none;transform:none}.hero-rot__slide.is-on .glow{animation:none}}

.feature-film{background:#05080b;padding-block:clamp(3rem,6vw,6rem)}
.film-poster{position:relative;display:block;width:100%;max-width:1100px;margin:1.4rem 0 0;padding:0;border:0;border-radius:18px;overflow:hidden;background:#000;cursor:pointer;box-shadow:0 30px 80px -30px rgba(40,170,220,.45)}
.film-poster img{display:block;width:100%;height:auto;transition:transform .8s ease}
.film-poster:hover img{transform:scale(1.02)}
.film-play{position:absolute;inset:auto auto 1.2rem 1.2rem;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:#05080b;background:#7fe3ec;box-shadow:0 0 0 6px rgba(127,227,236,.25),0 0 30px rgba(127,227,236,.6)}
.film-poster:focus-visible{outline:3px solid #7fe3ec;outline-offset:4px}
.feature-film .glow,.feature-film .glow--script,dialog.vlb{padding:0;border:0;background:transparent;max-width:min(1200px,94vw);width:100%;overflow:visible}
dialog.vlb::backdrop{background:rgba(3,6,9,.88);backdrop-filter:blur(4px)}
dialog.vlb video{display:block;width:100%;height:auto;border-radius:12px;background:#000}
.vlb__close{position:absolute;top:-2.6rem;right:0;width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:none;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer}

/* v8h media protection (public only) */
body:not(.admin) img,body:not(.admin) video,body:not(.admin) picture,body:not(.admin) svg,body:not(.admin) .film-poster,body:not(.admin) .gallery figure{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}

/* v9c Karri Pay accent in Karri brand green (#33cc66, sampled from official logo) */
@font-face{font-family:"Ubuntu Karri";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/ubuntu-700-karri.woff2) format("woff2")}
.hero .glow--karri{font-family:"Ubuntu Karri",Ubuntu,"Trebuchet MS",sans-serif;font-weight:700;font-style:normal;letter-spacing:-.01em;font-size:.92em;color:#d9ffe6;text-shadow:0 0 2px #fff,0 0 8px rgba(51,204,102,.85),0 0 20px rgba(51,204,102,.55),0 0 36px rgba(30,160,80,.35)}
.hero-rot__slide.is-on .glow--karri{animation-name:ck-glow-karri}
@keyframes ck-glow-karri{0%{filter:drop-shadow(0 0 1px rgba(51,204,102,.25))}100%{filter:drop-shadow(0 0 9px rgba(70,220,120,.75)) drop-shadow(0 0 20px rgba(51,204,102,.45))}}

/* v9d social icons (header + footer), shown only when a real URL is set in admin */
.social{display:inline-flex;gap:.55rem;align-items:center}
.social a{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;color:#c9d1d6;transition:color .2s,background-color .2s}
.social a:hover,.social a:focus-visible{color:#fff;background:rgba(255,255,255,.12)}
.social--top a{width:1.6rem;height:1.6rem}.social--top svg{width:15px;height:15px}
.social--foot{margin:.4rem 0 .2rem}
@media (max-width:47.99em){.topbar__links .social--top{display:none}}
.social--foot a{color:#7d878d}.social--foot a:hover,.social--foot a:focus-visible{color:#0e7c86;background:rgba(14,124,134,.1)}

/* v9g premium "final curtain" footer */
.curtain-call.ftx{background:#05090b;color:#e9eef0;border-top:0;padding:clamp(3rem,6vw,4.5rem) 0 1.25rem;position:relative;overflow:hidden}
.curtain-call.ftx::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(55% 85% at 50% -10%,rgba(255,250,235,.13),rgba(255,250,235,.04) 45%,transparent 70%),radial-gradient(40% 60% at 12% 110%,rgba(23,162,184,.12),transparent 70%)}
.curtain-call.ftx::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,#c99a45 18%,#f1d38e 50%,#c99a45 82%,transparent);box-shadow:0 0 18px 2px rgba(241,211,142,.35)}
.ftx__grid{position:relative;display:grid;gap:2.2rem}
@media (min-width:40em){.ftx__grid{grid-template-columns:1fr 1fr}.ftx__brand{grid-column:1/-1}}
@media (min-width:64em){.ftx__grid{grid-template-columns:1.35fr 1.1fr .8fr 1.25fr;gap:2.6rem}.ftx__brand{grid-column:auto}}
.ftx__logo{height:clamp(120px,14vw,150px);width:auto;display:block;filter:drop-shadow(0 0 18px rgba(255,255,255,.18))}
.ftx__line{font-family:"Great Vibes","Playfair Display",cursive;font-size:clamp(1.7rem,2.4vw,2rem);line-height:1.1;color:#f1d38e;margin:.7rem 0 .5rem}
.ftx__blurb{color:#b9c6ca;font-size:.92rem;line-height:1.6;margin:0;max-width:34ch}
.ftx__h{font:600 .76rem/1 var(--f-text);letter-spacing:.2em;text-transform:uppercase;color:#f1d38e;margin:0 0 1.1rem;padding-bottom:.7rem;border-bottom:1px solid rgba(241,211,142,.22)}
.ftx__list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;font-size:.93rem;line-height:1.5}
.ftx__contact li{display:grid;grid-template-columns:18px 1fr;gap:.7rem;align-items:start;color:#c9d4d7}
.ftx-ico{color:#5fd0de;margin-top:.17rem}
.curtain-call.ftx a{color:#e9eef0;text-decoration:none;transition:color .2s}
.curtain-call.ftx a:hover,.curtain-call.ftx a:focus-visible{color:#f1d38e;text-decoration:underline;text-underline-offset:3px}
.ftx__contact a{overflow-wrap:anywhere}
.ftx__sub{display:flex;border:1px solid rgba(241,211,142,.4);border-radius:999px;background:rgba(255,255,255,.05);padding:4px;transition:border-color .2s,box-shadow .2s}
.ftx__sub:focus-within{border-color:#f1d38e;box-shadow:0 0 0 3px rgba(241,211,142,.18)}
.ftx__sub input{flex:1;min-width:0;background:transparent;border:0;color:#fff;font:400 .92rem var(--f-text);padding:.6rem .9rem;min-height:44px;outline:none}
.ftx__sub input::placeholder{color:#9fb1b6}
.ftx__sub button{border:0;border-radius:999px;background:linear-gradient(180deg,#1bb1c7,#0e7c86);color:#fff;font:600 .85rem var(--f-text);letter-spacing:.04em;padding:0 1.2rem;min-height:44px;cursor:pointer}
.ftx__sub button:hover,.ftx__sub button:focus-visible{background:#f1d38e;color:#05090b}
.ftx__note{color:#a9b8bc;font-size:.8rem;margin:.6rem 0 1rem}
.curtain-call.ftx .social--foot{display:flex;gap:.5rem;margin:0}
.curtain-call.ftx .social--foot a{width:2.4rem;height:2.4rem;border:1px solid rgba(201,209,214,.3);border-radius:50%;color:#c9d1d6;background:transparent;text-decoration:none}
.curtain-call.ftx .social--foot a:hover,.curtain-call.ftx .social--foot a:focus-visible{color:#05090b;background:#f1d38e;border-color:#f1d38e}
.ftx__base{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;margin-top:2.6rem;padding-top:1.1rem;border-top:1px solid rgba(233,238,240,.1);font-size:.8rem;color:#a3b2b6}
.curtain-call.ftx .ftx__staff{color:#8d9da2;font-size:.75rem;letter-spacing:.08em}
@media (max-width:39.99em){.ftx__base{flex-direction:column;align-items:flex-start}}
/* v9j: social icons in the mobile top bar, next to the phone number */
@media (max-width:47.99em){.topbar__links{gap:.9rem;align-items:center}.topbar__links .social--top{display:flex!important;gap:.15rem;margin:0}.topbar__links .social--top a{display:inline-flex!important;width:1.75rem;height:1.75rem}.topbar__links .social--top svg{width:14px;height:14px}}
/* v9k: News "playbill" cards grid (theatre style) */
.playbill-grid{display:grid;gap:1.6rem;grid-template-columns:1fr}
@media (min-width:40em){.playbill-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64em){.playbill-grid{grid-template-columns:repeat(3,1fr);gap:2rem}}
.playbill{padding:0!important;margin:0;position:relative;background:#0b1114;border-radius:14px;overflow:hidden;box-shadow:0 1px 0 rgba(212,175,95,.35) inset,0 18px 40px -22px rgba(0,0,0,.55);transition:transform .35s var(--ease,ease),box-shadow .35s}
.playbill::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,#d4af5f,transparent);z-index:2}
.playbill:hover,.playbill:focus-within{transform:translateY(-4px);box-shadow:0 1px 0 rgba(212,175,95,.5) inset,0 26px 50px -24px rgba(0,0,0,.7)}
.playbill__link{display:flex;flex-direction:column;height:100%;color:#f4efe6;text-decoration:none}
.playbill__link:focus-visible{outline:3px solid #d4af5f;outline-offset:-3px}
.playbill__media{position:relative;aspect-ratio:1/1;overflow:hidden;background:#141b1f}
.playbill__media img,.playbill__media picture{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease,ease)}
.playbill:hover .playbill__media img{transform:scale(1.04)}
.playbill__media::after{content:"";position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(transparent,rgba(11,17,20,.85));pointer-events:none}
.playbill__tag{position:absolute;top:.8rem;left:.8rem;z-index:1;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#0b1114;background:#f4efe6;padding:.3rem .65rem;border-radius:999px}
.playbill__body{display:flex;flex-direction:column;gap:.55rem;padding:1.2rem 1.3rem 1.4rem;flex:1}
.playbill__body time{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#e2c47e}
.playbill__body h2{font-size:1.3rem;line-height:1.2;margin:0;color:#fff}
.playbill__body p{margin:0;color:rgba(244,239,230,.82);font-size:.95rem;line-height:1.55}
.playbill__more{margin-top:auto;padding-top:.4rem;font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7fd3dc}
.playbill__more::after{content:" \2192"}
.newsboard__follow{margin-top:2.4rem;text-align:center}
.article__hero{width:100%;height:auto;border-radius:12px;margin-bottom:1.6rem}
/* v9n QA fixes */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.aside-card h2{font-size:1.25rem}
.btn--teal{background:#0f7584;--b:#0f7584}
.hero .btn--teal{background:var(--teal);color:#04181d;--b:var(--teal)}
.hero-rot__dots{display:flex;gap:.2rem;align-items:center}
.hero-rot__dot{appearance:none;border:0;background:none;padding:10px 3px;margin:0;cursor:pointer;line-height:0}
.hero-rot__dot::before{content:"";display:block;width:18px;height:3px;border-radius:2px;background:rgba(255,255,255,.35);transition:background .4s}
.hero-rot__dot[aria-current="true"]::before{background:#7fe3ec}
.hero-rot__dot:focus-visible{outline:2px solid #7fe3ec;outline-offset:2px;border-radius:3px}
.hero-rot__ctrl.is-paused .hero-rot__dot[aria-current="true"]::before{background:#f2c46d}
.store-badges img{height:48px;width:auto}

/* v9s: /programmes cards are light paper playbills; the v9k dark News card rules must not apply (QA N1 contrast) */
.playbill.playbill--sheet{background:#fbfcfc;color:var(--ink);padding:clamp(1.6rem,4vw,3rem)!important;border-radius:0;overflow:visible;border:1px solid var(--paper-2);box-shadow:0 30px 60px -30px rgba(7,20,26,.35),0 1px 0 rgba(0,0,0,.04)}
.playbill.playbill--sheet::before{inset:10px;height:auto;background:none;border:1px solid rgba(11,99,114,.35);outline:1px solid rgba(11,99,114,.2);outline-offset:-5px;z-index:0}
.playbill.playbill--sheet h2,.playbill.playbill--sheet h3{color:var(--ink)}
.playbill.playbill--sheet .playbill__eyebrow,.playbill.playbill--sheet .playbill__grades{color:var(--teal-ink)}
@media (min-width:60em){.playbill-grid:has(.playbill--sheet){grid-template-columns:repeat(3,1fr)}}
/* v9u hero pause/play: theatre pill, gold when paused, 44px touch target */
.hero-rot__pause{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;min-width:44px;padding:.35rem 1rem;background:rgba(10,8,20,.35);border:1px solid rgba(242,196,109,.55);color:#fff;border-radius:99px;font:inherit;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .3s,background .3s,box-shadow .3s}
.hero-rot__pause:hover{border-color:#f2c46d;box-shadow:0 0 14px rgba(242,196,109,.35)}
.hero-rot__pause:focus-visible{outline:2px solid #7fe3ec;outline-offset:3px}
.hero-rot__ico{display:inline-block;width:10px;height:12px;border-left:3px solid currentColor;border-right:3px solid currentColor;box-sizing:border-box}
.hero-rot__pause[aria-pressed="true"]{border-color:#f2c46d;color:#f2c46d}
.hero-rot__pause[aria-pressed="true"] .hero-rot__ico{width:0;height:0;border-style:solid;border-width:6px 0 6px 10px;border-color:transparent transparent transparent currentColor}
@media (max-width:600px){.hero-rot__ctrl{flex-wrap:wrap;gap:.5rem}.hero-rot__pause{padding:.35rem .85rem}}
@media (forced-colors:active){.hero-rot__pause{border-color:ButtonText}}

/* SEO FAQ (2026-11-04) */
.faq__list{display:grid;gap:.75rem;margin-top:1.5rem}
.faq__item{border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:1rem 1.25rem;background:#fff}
.faq__item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--teal,#17A2B8)}
.faq__item[open] summary::after{content:"\2212"}
.faq__q{font-size:1.05rem;margin:0;font-family:inherit;font-weight:600}
.faq__item p{margin:.75rem 0 0}
