.opening {
  width: 100%; max-width: none; height: 100vh; height: 100dvh; max-height: none;
  padding: 0; margin: 0; border: 0; position: fixed; inset: 0;
  background: #090b0e; color: #f4f5f6; overflow: hidden;
}
.opening[hidden] { display: none !important; }
.opening[open] { display: flex; align-items: center; isolation: isolate; }
.opening::backdrop { background: #090b0e; }
.opening .opening-base, .opening .opening-reveal, .opening .opening-shade {
  position: absolute; inset: 0; pointer-events: none;
}
.opening .opening-base, .opening .opening-reveal { background-size: cover; background-position: 62% center; }
.opening .opening-base { background-image: url('base.webp'); z-index: -3; }
.opening .opening-reveal {
  background-image: url('reveal.webp'); z-index: -2;
  visibility: hidden;
  -webkit-mask-image: radial-gradient(circle 0px at -999px -999px, #fff, transparent);
  mask-image: radial-gradient(circle 0px at -999px -999px, #fff, transparent);
}
.opening[data-mask-ready="true"] .opening-reveal { visibility: visible; }
.opening .opening-shade { z-index: -1; background: linear-gradient(90deg, #090b0eea, #090b0e90 32%, transparent 72%), linear-gradient(0deg, #090b0e, transparent 42%); }
.opening .opening-name { margin-inline: max(48px, calc((100vw - 1280px) / 2)); font-size: clamp(54px, 6vw, 94px); }
.opening .opening-name span { display: inline-block; }
.opening .opening-name small { display: block; font-size: .42em; color: #ff7a30; margin-top: 18px; letter-spacing: 0; }
.opening .opening-skip {
  position: absolute; top: max(24px, env(safe-area-inset-top)); right: max(28px, env(safe-area-inset-right));
  min-height: 48px; padding: 10px 20px; background: #090b0ee6; border: 1px solid #a8afb9;
  border-radius: 4px; color: #f4f5f6; font-size: 14px;
}
.opening .opening-skip:hover { border-color: #ff7a30; }
.opening-replay { background: transparent; color: var(--muted); border: 0; padding: 0; min-height: 44px; font-size: 13px; }
.opening-replay:hover { color: var(--accent); }
@media (max-width: 767px) {
  .opening[open] { align-items: flex-end; }
  .opening .opening-base, .opening .opening-reveal { background-position: 62% center; }
  .opening .opening-name { margin: 0 24px max(68px, env(safe-area-inset-bottom)); font-size: 62px; }
  .opening .opening-shade { background: linear-gradient(0deg, #090b0ef5, #090b0e55 40%, transparent 70%); }
}
