/* Three optical scales: crisp edge reflection, rear diffusion, floor contact. */
body.theater { isolation:isolate; }
.home-backlight,.home-frame-light {
  position:fixed; z-index:-1; pointer-events:none; user-select:none;
  perspective:var(--ring-perspective); perspective-origin:50% 50%; overflow:visible;
  opacity:0; visibility:hidden; transition:opacity 240ms ease,visibility 0s 240ms;
}
.home-frame-light { position:absolute; inset:0; }
:is(.home-backlight,.home-frame-light).is-on { opacity:1; visibility:visible; transition:opacity 440ms cubic-bezier(.22,1,.36,1),visibility 0s; }
html.home-entering :is(.home-backlight,.home-frame-light).is-on { transition-duration:850ms,0s; }
:is(.home-backlight,.home-frame-light).is-playing { opacity:.38; }
.backlight-node { position:absolute; left:50%; top:50%; width:0; height:0; transform-style:preserve-3d; pointer-events:none; }
.backlight-wash,.backlight-rim-spill,.backlight-floor { position:absolute; pointer-events:none; backface-visibility:hidden; background-position:center; background-size:100% 100%; background-repeat:no-repeat; }
.backlight-wash {
  width:calc(var(--ring-hero-width) * 1.6); height:calc(var(--ring-hero-height) * 1.714285714);
  left:calc(var(--ring-hero-width) * -.8); top:calc(var(--ring-hero-height) * -.857142857);
  transform:scaleX(var(--backlight-face,1)); transform-origin:center;
  background-image:url('assets/theater/backlight/panel-spill.webp?v=20261109-refined-1');
  animation:backlight-diffusion-breathe 13s cubic-bezier(.45,0,.55,1) infinite;
}
.backlight-rim-spill {
  width:calc(var(--ring-hero-width) * 1.2); height:calc(var(--ring-hero-height) * 1.357142857);
  left:calc(var(--ring-hero-width) * -.6); top:calc(var(--ring-hero-height) * -.678571429);
  transform:scaleX(var(--backlight-face,1)); transform-origin:center;
  background-image:url('assets/theater/backlight/rim-spill.webp?v=20261109-refined-1'); opacity:.95;
}
.backlight-reflection { transition:transform 180ms cubic-bezier(.22,1,.36,1),opacity 180ms ease; }
.backlight-lower-rim .backlight-rim-spill { clip-path:inset(50% 0 0); }
.backlight-floor {
  width:var(--ring-hero-width); height:calc(var(--ring-hero-height) * .34);
  left:calc(var(--ring-hero-width) / -2); top:2px;
  background-image:url('assets/theater/backlight/floor-bounce.webp?v=20261109-refined-1'); opacity:1;
}
.backlight-edge {
  position:absolute; inset:0; z-index:9; display:block; pointer-events:none; border-radius:inherit;
  background:url('assets/theater/backlight/frame-highlight.svg?v=20261109-refined-1') center/100% 100% no-repeat;
  opacity:0; transition:opacity 440ms cubic-bezier(.22,1,.36,1);
}
.is-backlit .backlight-edge { opacity:.9; }
.is-backlit.is-backlight-playing .backlight-edge { opacity:.35; }
html.home-entering .backlight-edge { transition-duration:850ms; }
.backlight-node[data-light="youtube-main"] .backlight-wash { animation-delay:-4.3s; }
.backlight-node[data-light="soop"] .backlight-wash { animation-delay:-8.6s; }
:is(.home-backlight,.home-frame-light):not(.is-on) *, :is(.home-backlight,.home-frame-light).is-paused * { animation-play-state:paused; }
.home-frame-light.is-guiding .backlight-reflection, .home-frame-light.is-paused .backlight-reflection { transition:none; }
@keyframes backlight-diffusion-breathe { 0%,100% { opacity:.88; } 50% { opacity:1; } }
@media(max-width:600px) {
  :is(.home-backlight,.home-frame-light).is-on { opacity:.74; }
  :is(.home-backlight,.home-frame-light).is-on.is-playing { opacity:.28; }
  .backlight-floor { opacity:.55; }
  .is-backlit .backlight-edge { opacity:.75; }
}
@media(prefers-reduced-motion:reduce) {
  .home-backlight,.home-frame-light,.backlight-reflection,.backlight-edge { transition:none; }
  :is(.home-backlight,.home-frame-light) * { animation:none; }
}
