/* Local review, September 21: shared rules for both themes. */
.stellar-portrait{border-radius:24px;clip-path:inset(0 round 24px)}
.show-strip.wrap{padding-inline:0;border-radius:20px;margin-block:20px;gap:0}
.recognition-videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0}
.recognition-video{position:relative;padding:0;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#090f1c;color:white;text-align:left;aspect-ratio:16/9;cursor:pointer}
.recognition-video img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.recognition-video:hover img{transform:scale(1.035)}
.recognition-video-caption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:24px;background:linear-gradient(transparent 30%,#030817e6)}
.recognition-video-caption strong{font-size:clamp(20px,2vw,28px)}
.recognition-video-caption>span{display:flex;align-items:center;gap:12px;font-size:13px}
.recognition-video-caption svg{width:24px;height:24px}
#zimmer .composer-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding-block:28px}
#zimmer .composer-facts>div{display:flex;flex-direction:column;gap:8px;min-width:0}
#zimmer .composer-facts b{font-size:clamp(30px,3.5vw,48px)}
#zimmer .composer-facts span{font-size:13px;color:var(--muted)}
.music-platforms .platform iframe{height:556px;width:100%;display:block}
#gallery .photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;grid-auto-flow:row;grid-auto-rows:auto;align-items:start;gap:24px}
#gallery .photo-grid>button{position:relative;grid-area:auto;grid-column:auto;grid-row:auto;width:100%;aspect-ratio:3/2;height:auto;min-height:0;margin:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#090f1c}
#gallery .photo-grid>button>img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:3/2}
#gallery .photo-grid>button>span{position:absolute;inset:auto 0 0;padding:30px 16px 14px;background:linear-gradient(transparent,#030817db);color:white;font-size:12px;text-align:left}
html[data-theme=light] .hero.cosmic-hero .planet-alpha{width:min(40vw,580px);right:4%;top:48%}
.space-to-top{position:fixed;z-index:40;right:24px;bottom:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:76px;min-height:90px;padding:5px;background:var(--navy);color:var(--white);border:1px solid var(--line);border-radius:24px;box-shadow:0 8px 32px #0003;text-decoration:none;font-size:12px}
.space-to-top[hidden]{display:none}
.space-to-top-ship{display:block;width:60px;height:60px;background:url('/assets/audio-symbols.webp?v=29b1eaad24fcb540') left center/300% 100% no-repeat;transition:transform .25s}
.space-to-top:hover .space-to-top-ship{transform:translateY(-5px)}
@media(max-width:1000px){#gallery .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){html[data-theme=light] .hero.cosmic-hero .planet-alpha{width:min(100%,430px);max-width:340px;right:auto;top:auto;height:315px}.space-to-top{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:58px;min-height:68px;border-radius:18px}.space-to-top-ship{width:42px;height:42px}.show-strip.wrap{gap:18px;padding-block:24px}.recognition-videos{gap:16px}.recognition-video-caption{padding:16px}}
@media(max-width:600px){
  .recognition-videos{grid-template-columns:1fr}
  #zimmer .composer-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .recognition-video{border-radius:20px}
  #gallery .photo-grid{display:block;position:relative;padding-bottom:0}
  #gallery .photo-grid>button{position:sticky;top:calc(88px + env(safe-area-inset-top));z-index:var(--deck-index,1);margin:0 0 62svh;transform:translate3d(var(--deck-x,0),var(--deck-y,0),0) rotate(var(--deck-rotate,0deg)) scale(var(--deck-scale,1));transform-origin:50% 12%;box-shadow:0 18px 44px #0008;will-change:transform}
  #gallery .photo-grid>button:last-child{margin-bottom:0}
}
@media(prefers-reduced-motion:reduce){.recognition-video img,.space-to-top-ship{transition:none}}
@media(max-width:600px) and (prefers-reduced-motion:reduce){#gallery .photo-grid{padding-bottom:0}#gallery .photo-grid>button{position:relative;top:auto;margin:0 0 18px;transform:none;will-change:auto}#gallery .photo-grid>button:last-child{margin-bottom:0}}
.show-film{background:#050812;aspect-ratio:2.1/1}
.show-film-player{display:block;width:100%;height:100%;border:0;background:#050812}
@media(max-width:700px){.show-film{aspect-ratio:16/9}}
#zimmer .composer-reading>.composer-facts{max-width:none;width:100%;margin:12px 0 20px;gap:32px;padding:32px 0;border-block:1px solid var(--line)}
#zimmer .composer-facts b{font-size:clamp(42px,5vw,72px);line-height:1.2}
#zimmer .composer-facts span{font-size:14px}
@media(min-width:1100px){#zimmer .composer-facts{grid-template-columns:repeat(6,minmax(0,1fr))}}
#gallery{padding-bottom:28px}
#gallery+section{padding-top:28px}
.reportage .story-image{aspect-ratio:16/9}
.reportage .story-image img{object-fit:contain}
#sectors .sector-photo{align-self:start}
@media(min-width:1001px){
 #sectors{padding-bottom:32px}
 #immersion{padding:20px 0 32px}
 #immersion .immersive-note{display:grid;grid-template-columns:1fr 1fr;gap:16px 48px;padding:28px 0;border-block:1px solid var(--line)}
 #immersion .immersive-note h3{grid-column:1/-1;margin:0;font-size:26px;line-height:1.3}
 #immersion .immersive-note p{margin:0;font-size:16px;line-height:1.65}
 #immersion+#orchestra{padding-top:40px}
}
#sectors .sector-photo img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:cover;background:transparent}

/* September 23 refinements: align hero detail, tighten the mobile photo deck. */
@media(min-width:1101px){
 .hero-bottom{left:max(80px,calc((100vw - var(--max))/2));right:max(56px,calc((100vw - var(--max))/2))}
}
@media(max-width:600px){
 #gallery .photo-grid>button{margin:0 0 8svh}
 #gallery .photo-grid>button:last-child{margin-bottom:0}
 #gallery{padding-bottom:12px}
 #gallery+section{padding-top:12px}
}
@media(min-width:601px){
 #gallery{padding-bottom:18px}
 #gallery+section{padding-top:18px}
}


.article-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0 28px}.article-photo{margin:0;min-width:0}.article-photo img{display:block;width:100%;aspect-ratio:1.45;max-height:280px;object-fit:cover;border-radius:16px}.article-photo figcaption{margin-top:9px;color:var(--muted);font-size:.8rem}.article-source{font-size:.82rem;color:var(--muted)!important;margin-top:26px}.press-story .story-image img{object-position:center 42%}
@media(max-width:700px){.article-body{padding:58px 22px 32px}.article-photo-grid{grid-template-columns:1fr;gap:12px}.article-photo img{max-height:230px}.article-body h2{font-size:1.65rem;line-height:1.2}.article-photo-grid{margin:20px 0 22px}}

.article-photo-grid.single-photo{grid-template-columns:1fr}.article-lead{font-size:1.2rem!important;color:var(--white)!important}.article-italic{font-style:italic;border-left:2px solid var(--gold);padding-left:16px}.article-closing{font-weight:600;color:var(--gold)!important}.article-video{margin:28px 0 0}.article-video video{display:block;width:100%;aspect-ratio:848/476;background:#000;border-radius:16px}.article-video figcaption{margin-top:9px;color:var(--muted);font-size:.85rem}.award-row .award-link{color:var(--gold);text-decoration:underline;text-underline-offset:3px}.award-row .award-link:hover{color:var(--white)}
@media(max-width:700px){.article-video{margin-top:22px}.article-lead{font-size:1.05rem!important}}
.article-video-frame{position:relative;overflow:hidden;border-radius:16px;background:#000}.article-video-frame video{border-radius:0}.article-video-play{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:82px;height:82px;border:1px solid #fff9;border-radius:50%;background:#101929bd;color:#fff;cursor:pointer;backdrop-filter:blur(8px);transition:transform .2s ease,background .2s ease}.article-video-play:hover{transform:translate(-50%,-50%) scale(1.08);background:#1e4079e8}.article-video-play svg{width:30px;height:30px;margin-left:4px}@media(max-width:700px){.article-video-play{width:64px;height:64px}.article-video-play svg{width:24px;height:24px}}

/* Mobile ticket CTA appears after the photo gallery and leaves the footer clear. */
.mobile-ticket-cta{display:none}
@media(max-width:700px){
 .mobile-ticket-cta{position:fixed;z-index:80;left:12px;right:82px;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;min-height:54px;padding:12px 16px;border:1px solid var(--accent,#dafa68);border-radius:10px;background:var(--accent,#dafa68);color:var(--ink,var(--night));font-weight:700;font-size:16px;letter-spacing:.01em;box-shadow:0 8px 28px #0004;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .22s ease,transform .22s ease,visibility .22s}
 .mobile-ticket-cta.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
}

@media(max-width:700px){.space-to-top{z-index:81;right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}.mobile-ticket-cta{right:82px}}

/* Programme posters: preserve their native 16:9 composition. The current
   supplied artwork is flattened, so the image itself stays still on hover. */
.film-card{flex:0 0 clamp(340px,34vw,440px);height:auto;aspect-ratio:16/9;padding:20px;border-radius:20px;transition:border-color .25s,box-shadow .25s}
.film-card>img{object-fit:cover;transition:none}
.film-card:after{background:linear-gradient(180deg,#03081712 0%,#03081700 38%,#030817f2 100%)}
.film-card:hover>img{transform:none}
.film-card:hover{transform:none;border-color:#a9d8ffb0;box-shadow:0 12px 34px #0005}
.film-card .play{display:grid;place-items:center}
.film-card .play svg{display:block;width:15px;height:15px}
@media(max-width:1100px){.film-card{flex-basis:40vw}}
@media(max-width:700px){.film-card{flex:0 0 84vw;max-width:none;height:auto;aspect-ratio:16/9;padding:16px;border-radius:18px}}

/* Programme posters: vertical desktop cards, landscape mobile cards. */
.film-card{flex:0 0 clamp(260px,23vw,315px);height:auto;aspect-ratio:3/4;padding:0;border-radius:20px;transition:transform .28s ease,border-color .25s,box-shadow .25s}
.film-card .poster-art{position:absolute;inset:0;display:block;overflow:hidden;z-index:0;background:#080d1a}
.film-card .poster-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:none}
.film-card .poster-character{position:absolute;z-index:2;inset:auto 0 0 auto;width:auto;height:91%;max-width:100%;object-fit:contain;object-position:right bottom;transition:transform .35s ease}
.film-card .poster-logo{position:absolute;z-index:3;left:6%;bottom:30%;width:78%;height:11%;object-fit:contain;object-position:left center}
.film-card:after{z-index:1;background:linear-gradient(180deg,#03081745 0%,#03081700 28%,#0308171a 54%,#030817e8 100%)}
.film-card .card-top,.film-card .card-bottom,.film-card>.play{z-index:4}
.film-card .card-top{top:18px;left:18px;right:18px;font-size:10px;letter-spacing:.12em;color:#f6f5f1b8}
.film-card .card-bottom{bottom:56px;left:20px;right:18px}
.film-card .card-bottom small{display:block;font-size:10px;letter-spacing:.02em;line-height:1.45;text-transform:none;color:#f6f5f1c9}
.film-card .card-bottom h3{margin:6px 0 0;font-size:clamp(18px,1.7vw,24px);line-height:1.15;color:#fff}
.film-card .card-bottom>span{display:none}
.film-card>.play{position:absolute;top:auto;left:auto;right:16px;bottom:14px;display:flex;align-items:center;justify-content:center;gap:7px;width:46px;height:46px;padding:0;border:1px solid #dafa68;border-radius:50%;background:#dafa68;color:#23301d;font-size:13px;font-weight:700;box-shadow:0 5px 18px #0004}
.film-card>.play svg{display:block;width:13px;height:13px}
.film-card>.play b{font-size:12px;font-weight:700}
.film-card:hover .poster-character{transform:translateY(-7px) scale(1.015)}
.film-card:hover .poster-bg,.film-card:hover .poster-logo{transform:none}
.film-card:hover{transform:translateY(-4px);border-color:#dafa68;box-shadow:0 12px 34px #0005}
@media(max-width:1100px){.film-card{flex-basis:29vw}}
@media(max-width:700px){
 .film-card{flex:0 0 84vw;max-width:360px;height:auto;aspect-ratio:16/9;padding:0;border-radius:18px}
 .film-card .poster-logo{display:none}
 .film-card .poster-character{display:block;height:96%;right:0;bottom:0}
 .film-card .poster-bg{object-fit:cover}
 .film-card .card-top{top:14px;left:15px;right:15px;font-size:9px}
 .film-card .card-bottom{left:16px;right:105px;bottom:16px}
 .film-card .card-bottom small{font-size:9px}
 .film-card .card-bottom h3{font-size:20px;margin-top:4px}
 .film-card>.play{right:13px;bottom:13px;width:46px;height:46px;min-width:0}
 .film-card:hover{transform:none}
}
@media(prefers-reduced-motion:reduce){.film-card,.film-card .poster-character{transition:none}}

/* Route artwork uses a separately composed 4:3 mobile crop. */
.route-feature>picture{display:block;min-width:0;width:100%;height:360px;overflow:hidden}
.route-feature>picture>img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:700px){.route-feature>picture{height:auto;aspect-ratio:4/3}.route-feature>picture>img{height:100%}}
.film-card .poster-picture{position:absolute;inset:0;display:block;z-index:0}
.film-card .poster-picture .poster-bg{display:block}
/* Keep the arena photograph clean; shade it beneath the separately animated figure. */
.film-card:after{display:none}
.film-card .poster-art:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#03081745 0%,#03081700 27%,#03081718 53%,#030817e8 100%)}
.film-card .poster-character{z-index:2}
.film-card .poster-logo{z-index:3}
.film-card .card-top{display:none}
.film-card .card-bottom{bottom:34px}
.film-card .card-bottom .chapter-index{display:block;margin-top:8px;font-size:10px;letter-spacing:.12em;line-height:1.2;text-transform:uppercase;color:#f6f5f18c}
.program-details #program-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.program-details #program-list section{min-width:0}
.program-details #program-list h4{margin:0 0 12px;font-size:15px}
.program-details #program-list ul{list-style:none;margin:0;padding:0}
.program-details #program-list li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);line-height:1.45}
.program-details #program-list .track-title{min-width:0}
.program-details #program-list .track-duration{flex:none;color:var(--muted);font-size:.82em;white-space:nowrap}
.program-details #program-list li:last-child{border-bottom:0}
.program-details .duration-note{grid-column:1/-1;margin:0;color:var(--muted);font-size:.78rem}
.film-card>.play{display:grid;place-items:center;gap:0;width:46px;height:46px;padding:0;border-radius:50%;background:#dafa68;color:#23301d;border:1px solid #dafa68}
.film-card>.play svg{width:15px;height:15px}
/* Adjust optical character scale for the two undersized transparent cutouts. */
.film-card[data-poster="man-of-steel"] .poster-character{height:104%;right:-1%;bottom:-1%}
.film-card[data-poster="gladiator"] .poster-character{height:98%;right:-1%;bottom:-1%}
.film-card[data-poster="top-gun"] .poster-logo{bottom:26%}
@media(max-width:700px){.film-card .card-bottom{right:72px}.film-card .poster-character{z-index:2}}
@media(max-width:540px){.program-details #program-list{grid-template-columns:1fr;gap:24px}.program-details #program-list h4{margin-bottom:8px}.program-details #program-list li{padding:11px 0}}
