.theatre-view{background:#020304;color:#eef1f4}
.theatre-view .topbar,.theatre-view .mobile-menu{background:linear-gradient(130deg,#e9f2ff0a,#ffffff03);border:1px solid #ffffff15;color:#dce3ea;backdrop-filter:blur(15px)}
.theatre-view .glass{background:linear-gradient(135deg,#ffffff0d,#ffffff03);color:#d9e2eb;border-color:#ffffff25}
.theatre-view .footer{color:#6e7985}
.theatre-foyer{position:relative;margin:0;border:0;background:transparent;isolation:isolate;overflow:hidden}
.foyer-page-bar{position:absolute;inset:0 0 auto;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:20px 42px;gap:20px;border:0}
.foyer-page-tools{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:flex-end}
.foyer-music,.foyer-effects{font-size:10px;letter-spacing:.04em;color:#8c99a6;text-decoration:none;padding:10px 0}
.foyer-music:hover,.foyer-music:focus-visible,.foyer-effects:hover,.foyer-effects:focus-visible{color:#e8f2ff}
.foyer-page-bar .crumb{color:#7e8994;font-size:11px;letter-spacing:.09em}
.foyer-space{--foyer-edge:clamp(56px,5.3vw,88px);--door-width:clamp(135px,10vw,170px);--door-height:clamp(270px,23vw,340px);position:relative;isolation:isolate;height:clamp(800px,calc(100svh - 150px),1080px);overflow:hidden}
.foyer-sky{position:absolute;inset:0;z-index:-2;overflow:hidden;background:radial-gradient(ellipse at 25% 8%,#1a1f2670,transparent 52%),radial-gradient(ellipse at 90% 37%,#10151a66,transparent 40%),#020304}
.foyer-milky-way{position:absolute;width:145%;height:32%;top:6%;left:-23%;transform:rotate(-19deg);background:radial-gradient(ellipse at 55% 50%,#dae4ee0c,transparent 63%),radial-gradient(ellipse at 37% 51%,#c8d7e713,transparent 44%);filter:blur(20px);animation:foyer-nebula 32s ease-in-out infinite alternate;pointer-events:none}
.foyer-milky-way::before{content:'';position:absolute;inset:43% 10% 40%;background:linear-gradient(90deg,transparent,#dce7f614 45%,#f0f6ff08 65%,transparent);border-radius:50%;filter:blur(10px);transform:rotate(3deg)}
.foyer-milky-way::after{content:'';position:absolute;inset:48% 0 32%;background:radial-gradient(ellipse at 62% 10%,#020304ba,transparent 45%);filter:blur(6px)}
.foyer-spark{position:absolute;display:block;width:var(--spark-size);height:var(--spark-size);opacity:.3;transform:rotate(var(--spark-angle));animation:foyer-diamond var(--spark-period) ease-in-out infinite;animation-delay:var(--spark-delay);pointer-events:none}
.foyer-spark svg{display:block;width:100%;height:100%;overflow:visible}
.foyer-spark.is-brilliant{filter:drop-shadow(0 0 3px #dfedff8c)}
.foyer-spark:not(.is-brilliant){animation-name:foyer-dust-twinkle}
.foyer-stardust{position:absolute;inset:0;z-index:1;pointer-events:none}
.foyer-composition{position:absolute;inset:0;z-index:2}
.foyer-panel{position:absolute;top:40%;width:clamp(260px,19vw,280px);isolation:isolate;display:flex;flex-direction:column;justify-content:center;height:470px;min-width:0;border:6px solid #07090c;border-radius:18px;padding:20px 18px;overflow:hidden;background:linear-gradient(135deg,#dce8f60d,#ffffff03 48%,#9aaccd06);box-shadow:0 0 0 1px #e7f2ff20,inset 0 0 0 1px #eff6ff16,inset 0 1px 3px #ffffff0c,0 28px 50px #0008;backdrop-filter:blur(6px)}
.foyer-identity{left:var(--foyer-edge);transform:translateY(-50%)}
.foyer-bill{right:var(--foyer-edge);transform:translateY(-50%)}
.foyer-panel::before{content:'';position:absolute;inset:-80% -160%;z-index:1;background:linear-gradient(115deg,transparent 44%,#ebf4ff00 47%,#ebf4ff12 49%,#ebf4ff02 51%,transparent 54%);transform:translateX(-20%);animation:foyer-glass-shine 15s ease-in-out infinite;pointer-events:none}
.foyer-bill::before{animation-delay:-7s}
.foyer-panel-light{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 78% 38% at 50% 110%,#edf5ff8c 0%,#d9ebff29 44%,#d5e9ff06 72%,transparent)}
.foyer-panel-emitter{position:absolute;bottom:-2px;left:21%;right:21%;height:4px;border-radius:50%;background:#e8f2ff;box-shadow:0 -2px 12px #d9ebffad,0 -8px 24px #e3efff44;filter:blur(2px);pointer-events:none}
.foyer-identity-content{position:relative;z-index:2;text-align:center;margin-bottom:15px}
.foyer-identity h1{font-size:clamp(17px,1.4vw,21px);font-weight:400;line-height:1.5;letter-spacing:.025em;margin:0 0 24px;color:#dce5ee}
.foyer-logo{width:100%;max-width:250px;height:auto;margin:0 auto;filter:drop-shadow(0 2px 10px #e2eeff10)}
.foyer-bill{justify-content:flex-start}
.foyer-bill h2{position:relative;z-index:2;font-size:19px;font-weight:400;line-height:1.3;letter-spacing:.04em;margin:0 0 13px}
.foyer-play-list{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:10px;flex:1;min-height:0}
.foyer-play{position:relative;z-index:2;min-width:0;padding:0 0 5px 13px;border-bottom:1px solid #ffffff0c;transition:transform 1s ease}
.foyer-play:last-child{border-bottom:0}
.foyer-play h3{position:relative;z-index:2;font-size:13px;font-weight:400;line-height:1.4;letter-spacing:.012em;text-transform:uppercase;margin:0 0 4px;text-wrap:balance;color:#e4eaf0}
.foyer-play p{position:relative;z-index:2;font-size:10px;line-height:1.6;color:#a4aeb9;margin:0 0 6px;text-wrap:pretty}
.foyer-play-emitter{position:absolute;top:4px;left:-3px;width:2px;height:38px;background:#f1f7ff;border-radius:4px;box-shadow:0 0 6px #e7f3ffb3,0 0 16px #e4f0ff50;opacity:.85;transition:opacity 1s,box-shadow 1s;pointer-events:none}
.foyer-play-emitter::after{content:'';position:absolute;left:0;top:-24px;width:155px;height:86px;background:radial-gradient(ellipse at 0 50%,#e4efff20,transparent 70%);clip-path:polygon(0 40%,100% 0,100% 100%,0 60%);pointer-events:none}
.foyer-ticket{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px;min-width:95px;padding:6px 10px;border:1px solid #d8e7f033;border-radius:7px;background:linear-gradient(145deg,#f2f7ff0b,#ffffff02);color:#d8e2ec;font-size:9px;letter-spacing:.1em;text-transform:uppercase;transition:background .8s,border-color .8s,box-shadow .8s}
.foyer-ticket svg{width:18px;height:12px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-dasharray:none}
.foyer-ticket:hover,.foyer-ticket:focus-visible{border-color:#eaf4ff88;background:#e9f2ff12;box-shadow:0 0 18px #d9eaff0c}
.foyer-play.is-selected .foyer-ticket{background:linear-gradient(145deg,#b4212390,#a512135c);border-color:#d64a4b85;color:#fff;box-shadow:inset 0 1px #ffffff1a,0 0 20px #a5121318}
.foyer-play.is-selected .foyer-play-emitter{opacity:1;box-shadow:0 0 8px #fff,0 0 25px #e6f2ff90}
.foyer-bill-caption{position:relative;z-index:2;flex:none;margin:10px 0 0;font-size:9px;line-height:1.5;text-transform:uppercase;letter-spacing:.16em;text-align:center;color:#86929f}
.foyer-door-space{position:absolute;left:50%;bottom:25%;width:var(--door-width);height:var(--door-height);transform:translateX(-50%)}
.foyer-door{position:relative;width:100%;height:100%;isolation:isolate;filter:drop-shadow(0 0 16px #edf5ff0d)}
.foyer-door::before{content:'';position:absolute;inset:2px;z-index:-1;border-radius:1px;display:none}
.foyer-door-frame{position:absolute;inset:7px;border:7px solid #080a0c;display:flex;box-shadow:inset 0 1px 1px #ffffff50,inset 1px 0 #e5eeff38,inset -1px 0 #e5eeff29,0 0 0 1px #85909c33;background:#030405;perspective:700px;transform-style:preserve-3d}
.foyer-door-leaf{position:relative;z-index:1;width:50%;height:100%;background:linear-gradient(155deg,#59616c30,#11161b85 17%,#050709 57%,#101318 100%);box-shadow:inset 0 1px 15px #ffffff05;backface-visibility:visible}
.foyer-door-leaf.is-right{background:linear-gradient(205deg,#48515b2c,#0c11167d 19%,#050709 55%,#0d1015 100%);border-left:1px solid #e2eeff13}
.foyer-door-contour{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;pointer-events:none}
.foyer-door-light{stroke-linecap:round;stroke-linejoin:round;animation:foyer-door-shimmer 9s ease-in-out infinite}
.foyer-door-halo{stroke:#edf4ff;stroke-width:42;opacity:.18;filter:blur(16px)}
.foyer-door-bloom{stroke:#f3f7ff;stroke-width:14;opacity:.45;filter:blur(5px)}
.foyer-door-rim{stroke:#fff;stroke-width:6;opacity:.85;filter:blur(1px)}
.foyer-door-outline{stroke:#fff;stroke-width:2.8;opacity:1}
.foyer-selection{position:absolute;top:calc(100% + 23px);left:-30px;right:-30px;margin:0;text-align:center;color:#c5cfd9;font-size:11px;line-height:1.5;text-wrap:balance;letter-spacing:.02em;transition:opacity .8s}
.theatre-foyer.has-ticket .foyer-door::before{box-shadow:none}
.foyer-floor{position:absolute;left:0;right:0;top:75%;bottom:-40px;z-index:0;background:radial-gradient(ellipse 70% 80% at 50% 90%,#171c2550,transparent 90%);pointer-events:none}
.foyer-floor>svg{position:absolute;inset:0;width:100%;height:100%;opacity:.9;mask-image:linear-gradient(transparent,#0008 13%,#000 40%)}
.foyer-floor-glow{position:absolute;inset:-50px 12% -20%;background:radial-gradient(ellipse 23% 85% at 50% 15%,#d4e4f01a,transparent 90%);filter:blur(14px)}
.foyer-floor-ray{position:absolute;top:0;height:160px;width:12px;background:linear-gradient(#eef5ff80,#dde9fc26 17%,#d4e7fa0a 58%,transparent);filter:blur(6px);opacity:.5;transform-origin:50% 0}
.foyer-floor-ray.is-left{left:calc(50% - var(--door-width)/2);transform:skewX(-20deg)}
.foyer-floor-ray.is-right{right:calc(50% - var(--door-width)/2);transform:skewX(20deg)}
.foyer-paused .foyer-spark,.foyer-paused .foyer-milky-way,.foyer-paused .foyer-panel::before,.foyer-paused .foyer-door-light{animation-play-state:paused}
@keyframes foyer-door-shimmer{0%,100%{opacity:.86}35%{opacity:.96}60%{opacity:1}80%{opacity:.93}}
@keyframes foyer-diamond{0%,100%{opacity:.16;transform:rotate(var(--spark-angle)) scale(.75)}45%{opacity:.48}60%{opacity:.95;transform:rotate(calc(var(--spark-angle) + 12deg)) scale(1.15)}80%{opacity:.3}}
@keyframes foyer-dust-twinkle{0%,100%{opacity:.15}45%{opacity:.4}65%{opacity:.8}85%{opacity:.25}}
@keyframes foyer-nebula{from{opacity:.6;transform:rotate(-19deg) translateX(-2%)}to{opacity:1;transform:rotate(-19deg) translateX(2%)}}
@keyframes foyer-glass-shine{0%,35%{transform:translateX(-22%);opacity:0}45%{opacity:.5}65%{transform:translateX(22%);opacity:0}100%{transform:translateX(22%);opacity:0}}
@media(max-width:1100px){.foyer-space{--door-width:135px;--door-height:270px}.foyer-identity h1{font-size:17px}}
@media(max-width:900px){.foyer-space{height:1120px;--foyer-edge:48px;--door-width:145px;--door-height:300px}.foyer-door-space{top:640px;bottom:auto}.foyer-panel{top:140px;transform:none;width:calc((100% - 2*var(--foyer-edge) - 28px)/2)}.foyer-floor{top:940px;bottom:0}}
@media(max-width:760px){.foyer-page-bar{padding:17px 20px;align-items:flex-start}.foyer-page-bar .crumb{font-size:9px;letter-spacing:0}.foyer-page-tools{gap:2px;flex-direction:column;align-items:flex-end}.foyer-space{height:1490px;--door-width:130px;--door-height:280px}.foyer-door-space{top:990px}.foyer-panel{width:min(calc(100% - 48px),320px);height:430px;left:50%;right:auto;transform:translateX(-50%)}.foyer-identity{top:130px;height:260px}.foyer-bill{top:440px;height:470px}.foyer-identity-content{margin-bottom:0}.foyer-identity h1{font-size:19px}.foyer-logo{max-width:230px}.foyer-selection{top:calc(100% + 12px);font-size:9px}.foyer-floor{top:1270px;bottom:0}.foyer-milky-way{top:2%;height:25%;width:190%;left:-50%}}
@media(prefers-reduced-motion:reduce){.foyer-spark,.foyer-milky-way,.foyer-panel::before,.foyer-door-light{animation:none}.foyer-spark{opacity:.5}.foyer-panel::before{opacity:0}.foyer-play,.foyer-ticket,.foyer-play-emitter,.foyer-door::before,.foyer-selection{transition:none}}

.foyer-ticket::before{content:"";position:absolute;inset:-8px 0}
@media(max-width:360px){.foyer-play h3{font-size:13px}.foyer-play p{line-height:1.6}}

/* Production colour is shared with the ticket, portal, flash and future hall. */
.foyer-bill-program{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;transition:opacity .65s .35s ease,filter .65s .35s ease}
.foyer-electronic-ticket{position:absolute;inset:20px 18px;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;text-align:center;transition:opacity .35s ease,visibility 0s .35s}
.foyer-electronic-ticket h2{margin:0;width:100%;font-size:clamp(18px,1.9vw,25px);line-height:1.4;letter-spacing:-.015em;text-transform:uppercase;text-wrap:balance;color:#f3f7fc}
.foyer-ticket-label{position:absolute;top:6px;left:0;right:0;font-size:8px;letter-spacing:.17em;text-transform:uppercase;color:#c5cfdb}
.foyer-ticket-cancel{position:absolute;right:0;top:31px;width:36px;height:36px;border:1px solid #ffffff23;border-radius:10px;background:#ffffff05;display:grid;place-items:center;color:#dce6f2}
.foyer-ticket-cancel svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.foyer-ticket-cancel:hover{background:#ffffff16}
.foyer-ticket-code{position:absolute;bottom:40px;width:110px;height:24px;stroke:#eff6ff;stroke-width:1.5;opacity:.35}

.foyer-panel-tint{position:absolute;inset:0;z-index:-1;opacity:0;pointer-events:none;background:radial-gradient(ellipse 70% 40% at 20% 110%,rgba(var(--show-one-rgb),.75),transparent 78%),radial-gradient(ellipse 70% 40% at 80% 110%,rgba(var(--show-three-rgb),.7),transparent 78%),radial-gradient(ellipse 80% 35% at 50% 110%,rgba(var(--show-two-rgb),.65),transparent 80%);transition:opacity 3.6s ease}
.foyer-bill .foyer-panel-light{transition:opacity 3.6s ease}
.foyer-bill .foyer-panel-emitter{transition:background-color 3.6s ease,box-shadow 3.6s ease}
.has-ticket .foyer-bill-program{opacity:0;filter:blur(4px);pointer-events:none;transition-delay:0s}
.has-ticket .foyer-electronic-ticket{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 1.2s .6s ease,visibility 0s}
.has-ticket .foyer-bill .foyer-panel-light{opacity:0}
.has-ticket .foyer-panel-tint{opacity:1}
.has-ticket .foyer-bill .foyer-panel-emitter{background-color:var(--show-primary);box-shadow:0 -2px 12px rgba(var(--show-two-rgb),.8),-30px -8px 24px rgba(var(--show-one-rgb),.45),30px -8px 24px rgba(var(--show-three-rgb),.45)}
.theatre-status{position:absolute!important;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.foyer-door-white{opacity:1;transition:opacity .65s ease}
.has-ticket .foyer-door-white{opacity:0;transition-duration:3.6s}
.foyer-door-color-wipe{position:absolute;inset:-36px;opacity:0;transition:opacity .65s ease;pointer-events:none;mask-image:linear-gradient(45deg,#000 35%,transparent 65%);mask-size:300% 300%;mask-repeat:no-repeat;mask-position:0% 100%;-webkit-mask-image:linear-gradient(45deg,#000 35%,transparent 65%);-webkit-mask-size:300% 300%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:0% 100%}
.has-ticket .foyer-door-color-wipe{opacity:1;animation:foyer-color-reveal 3.6s ease-in-out forwards}
.foyer-door-spectrum{position:absolute;inset:36px;width:calc(100% - 72px);height:calc(100% - 72px);overflow:visible;fill:none}
.foyer-door-color-light{stroke-linecap:round;stroke-linejoin:round;animation:foyer-colour-light 3.8s ease-in-out infinite}
.foyer-door-color-light path{stroke:inherit}
.foyer-door-portal{position:absolute;inset:0;opacity:0;pointer-events:none;background:radial-gradient(ellipse at 15% 85%,var(--show-one),transparent 72%),radial-gradient(ellipse at 75% 15%,var(--show-three),transparent 72%),var(--show-two);transition:opacity .6s ease;box-shadow:0 0 35px rgba(var(--show-two-rgb),.6)}
.foyer-door-leaf.is-left{transform-origin:left center}
.foyer-door-leaf.is-right{transform-origin:right center}
.is-opening .foyer-door-portal{opacity:1}
.is-opening .foyer-door-leaf.is-left{animation:foyer-left-open 3.2s cubic-bezier(.35,0,.2,1) forwards}
.is-opening .foyer-door-leaf.is-right{animation:foyer-right-open 3.2s cubic-bezier(.35,0,.2,1) forwards}
.theatre-empty-hall{position:relative;min-height:100svh;background:radial-gradient(ellipse at 50% 95%,rgba(var(--show-two-rgb),.05),transparent 70%),#020304;color:#ecf2f8}
.theatre-empty-hall[hidden],.theatre-foyer[hidden]{display:none}
.theatre-return{position:absolute;left:42px;top:30px;font-size:12px;z-index:2}
.theatre-in-hall .topbar,.theatre-in-hall .mobile-menu,.theatre-in-hall .footer{display:none}
.theatre-flash{position:fixed;inset:0;z-index:2147482000;pointer-events:none;opacity:0;visibility:hidden;background:radial-gradient(ellipse at 15% 80%,var(--show-one),transparent 70%),radial-gradient(ellipse at 85% 20%,var(--show-three),transparent 70%),var(--show-two)}
.theatre-flash::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 60%,#fff9,transparent 75%)}
.theatre-flash.is-rising{visibility:visible;animation:theatre-flash-rise .24s ease-in forwards}
.theatre-flash.is-falling{visibility:visible;animation:theatre-flash-fall .9s ease-out forwards}
.foyer-paused .foyer-door-color-wipe,.foyer-paused .foyer-paused .foyer-door-color-light,.foyer-paused .foyer-door-leaf,.theatre-paused .theatre-flash{animation-play-state:paused}
@keyframes foyer-color-reveal{from{mask-position:100% 0%;-webkit-mask-position:100% 0%}to{mask-position:0% 100%;-webkit-mask-position:0% 100%}}
@keyframes foyer-colour-light{0%,100%{opacity:.8}50%{opacity:1}}
@keyframes foyer-left-open{from{transform:rotateY(0)}to{transform:rotateY(-108deg)}}
@keyframes foyer-right-open{from{transform:rotateY(0)}to{transform:rotateY(108deg)}}
@keyframes theatre-flash-rise{from{opacity:0}to{opacity:1}}
@keyframes theatre-flash-fall{from{opacity:1}to{opacity:0}}
@media(max-width:760px){.foyer-electronic-ticket h2{font-size:23px}.theatre-return{left:22px;top:24px}}
@media(prefers-reduced-motion:reduce){.has-ticket .foyer-door-color-wipe{animation-duration:.4s}.foyer-door-color-light{animation:none}.is-opening .foyer-door-leaf{animation-duration:.4s}.theatre-flash.is-rising{animation-duration:.4s}.foyer-bill-program,.foyer-electronic-ticket,.foyer-panel-tint,.foyer-bill .foyer-panel-light,.foyer-bill .foyer-panel-emitter,.foyer-door-white{transition-duration:.4s}.has-ticket .foyer-electronic-ticket{transition-delay:0s}}

.foyer-ticket-cancel::before{content:"";position:absolute;inset:-4px}

@media(prefers-reduced-motion:reduce){.has-ticket .foyer-door-white,.has-ticket .foyer-electronic-ticket{transition-duration:.4s;transition-delay:0s}}

.theatre-empty-hall:focus{outline:none}

/* The idle doorway has only its white P contour. Aurora starts on ticket selection. */
.foyer-aurora{position:absolute;left:-400%;top:-260%;width:900%;height:360%;overflow:visible;z-index:2;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .65s ease,visibility 0s .65s}
.has-ticket .foyer-aurora{opacity:1;visibility:visible;transition:opacity 3.6s ease-in-out,visibility 0s}
.aurora-current{opacity:.9;transform-origin:150px 560px}
.aurora-veils{filter:blur(8px)}
.aurora-threads{stroke-width:1.1;stroke-linecap:round}
.has-ticket .aurora-current{animation:foyer-aurora-breathe 6s ease-in-out infinite alternate;animation-delay:var(--aurora-phase)}
.aurora-mote{fill:var(--mote-colour);opacity:0;pointer-events:none}
.aurora-mote-halo{filter:blur(5px);opacity:.24}
.has-ticket .aurora-mote{animation:foyer-aurora-spark var(--mote-period) ease-in-out infinite;animation-delay:var(--mote-phase)}
/* Keep the reveal opacity on the outer layer and breathing on its child.
   Animating the same opacity used by the transition caused an immediate flash. */
.foyer-aurora-haze{position:absolute;left:-350%;right:-350%;top:-150%;bottom:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .65s ease}
.foyer-aurora-haze::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 34% 54% at 34% 76%,rgba(var(--show-one-rgb),.19),transparent 85%),radial-gradient(ellipse 28% 57% at 68% 65%,rgba(var(--show-three-rgb),.17),transparent 86%),radial-gradient(ellipse 29% 35% at 50% 91%,rgba(var(--show-two-rgb),.15),transparent 87%)}
.has-ticket .foyer-aurora-haze{opacity:1;transition:opacity 3.6s ease-in-out}
.has-ticket .foyer-aurora-haze::before{animation:foyer-aurora-breathe 7s ease-in-out infinite alternate}

.foyer-paused .aurora-current,.foyer-paused .aurora-mote,.foyer-paused .foyer-aurora-haze::before{animation-play-state:paused}
@keyframes foyer-aurora-breathe{from{opacity:.68}to{opacity:1}}
@keyframes foyer-aurora-spark{0%,100%{opacity:.08;transform:translate(0,0)}40%{opacity:.7}65%{opacity:1;transform:translate(4px,-7px)}85%{opacity:.22}}
@media(prefers-reduced-motion:reduce){.has-ticket .foyer-aurora,.has-ticket .foyer-aurora-haze{transition-duration:.4s}.has-ticket .aurora-current,.has-ticket .aurora-mote,.has-ticket .foyer-aurora-haze::before{animation:none}.aurora-emergence{mask:none}.has-ticket .aurora-mote{opacity:.45}}

.foyer-door-space{z-index:1}
.foyer-panel{z-index:2}

/* A single room-space camera retreats; the existing doors then close in place. */
.theatre-leaving{touch-action:none}
.theatre-leaving .theatre-frame{pointer-events:none}
.theatre-return-aperture{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.theatre-leaving .foyer-door-beam{opacity:var(--exit-beam-opacity,0)}
.theatre-leaving .foyer-door-leaf{animation:none!important;transition:none!important;backface-visibility:hidden}
.theatre-leaving .foyer-door-leaf.is-left{transform:rotateY(calc(var(--exit-leaf-angle,88deg)*-1))}
.theatre-leaving .foyer-door-leaf.is-right{transform:rotateY(var(--exit-leaf-angle,88deg))}
.theatre-leaving .theatre-hall{position:absolute;inset:0;z-index:0;pointer-events:none;transform-origin:0 0;will-change:transform}
.theatre-leaving .hall-return,.theatre-leaving .hall-performance-controls,.theatre-leaving .hall-performance-end{opacity:0}
.theatre-leaving .hall-animated,.theatre-leaving .hall-title img,.theatre-leaving .foyer-spark,.theatre-leaving .foyer-milky-way,.theatre-leaving .foyer-panel::before{animation-play-state:paused!important}
.theatre-exit-door{position:fixed;z-index:22;pointer-events:none;will-change:transform;transform-origin:50% 50%;isolation:isolate}
.theatre-exit-door svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke:#edf5ff;stroke-linecap:round}
.exit-door-glow{stroke-width:11;opacity:.22}
.exit-door-rim{stroke-width:2.8;opacity:.95}
.exit-door-leaves{position:absolute;inset:7px;border:7px solid #080a0c;display:flex;perspective:700px;transform-style:preserve-3d;background:transparent}
.exit-door-leaf{display:block;width:50%;height:100%;background:linear-gradient(155deg,#141a20,#030405 55%,#080b10);backface-visibility:hidden}
.exit-door-leaf.is-left{transform-origin:left center;transform:rotateY(calc(var(--exit-leaf-angle,88deg)*-1))}
.exit-door-leaf.is-right{transform-origin:right center;transform:rotateY(var(--exit-leaf-angle,88deg));border-left:1px solid #ffffff12}

/* Master and Margarita: accepted single-red central foyer beam. */
.theatre-foyer[data-production="master-and-margarita"] #door-beam-colour-air stop,
.theatre-foyer[data-production="master-and-margarita"] #door-beam-colour-core stop,
.theatre-foyer[data-production="master-and-margarita"] #door-beam-colour-floor stop{stop-color:#f52a34!important}
