/* Reference timing: 350 ms warmth / 600 ms light sweep. */
:root { --motion-ease: cubic-bezier(.22, 1, .36, 1); }
.outline, .download-top {
  position: relative; isolation: isolate; overflow: hidden;
  transition: border-color 350ms ease-in-out, box-shadow 350ms ease-in-out;
}
.button-label {
  position: relative; z-index: 2; display: inline-flex;
  align-items: center; justify-content: center; gap: inherit; pointer-events: none;
}
.outline::before, .download-top::before, .play::before {
  content: ''; position: absolute; z-index: 1; top: -55%; left: -110px;
  width: 101px; height: 210%; pointer-events: none;
  background: linear-gradient(90deg, transparent, #ffffff66, transparent);
  transform: skewX(-15deg);
}
.outline::after, .download-top::after, .play::after {
  content: ''; position: absolute; inset: 1px; z-index: 0; pointer-events: none;
  background: #c59768; opacity: 0; transition: opacity 350ms ease-in-out;
}
.outline:hover, .outline:focus-visible {
  color: var(--white); background: #221c2bba; border-color: #d1ac7a;
  box-shadow: inset 0 0 0 3px #1d1924, inset 0 0 0 4px #967649,
    0 0 12px #ff7a002b, inset 0 0 8px #ff7a0021;
}
.outline:is(:hover, :focus-visible)::after { opacity: .2; }
.outline:is(:hover, :focus-visible)::before,
.download-top:is(:hover, :focus-visible)::before,
.trailer:is(:hover, :focus-visible) .play::before {
  animation: light-sweep 600ms ease-in both;
}
.download-top:hover { filter: none; }
.download-top::after { background: linear-gradient(100deg, #962c0055, #ba73392b 55%, #ffe8c22b); }
.download-top:is(:hover, :focus-visible)::after { opacity: 1; }
@keyframes light-sweep { from { left: -110px; } to { left: calc(100% + 20px); } }
.trailer { transition: text-shadow 350ms ease-in-out; }
.trailer:is(:hover, :focus-visible) {
  text-shadow: 0 0 25px #bc6e36, 2px 2px 15px #bc6e36, -2px -2px 15px #bc6e36,
    2px -2px 15px #bc6e36, -2px 2px 15px #bc6e36;
}
.play {
  position: relative; isolation: isolate; overflow: hidden;
  transition: border-color 350ms ease-in-out, box-shadow 350ms ease-in-out;
}
.play::after { border-radius: 50%; }
.trailer:is(:hover, :focus-visible) .play {
  background: #151119bb; color: #fff; border-color: #e3c194; box-shadow: 0 0 15px #bc6e3638;
}
.trailer:is(:hover, :focus-visible) .play::after { opacity: .2; }
/* A stationary viewport clips the moving panel exactly at the header edge. */
.nav-viewport { display: contents; }
.dropdown-panel {
  display: block; top: calc(100% + 1px); left: -12px; width: 172px;
  padding: 0; border: 0; background: none; box-shadow: none;
  overflow: hidden; opacity: 1; visibility: hidden; pointer-events: none;
  transform: none; clip-path: none;
  transition: visibility 0s 350ms;
}
.dropdown-content {
  padding: 0; border: 1px solid var(--frame); border-top: 0;
  background: #251f2dfc;
  transform: translateY(-100%);
  transition: transform 350ms cubic-bezier(.4, 0, .2, 1);
}
.dropdown.open .dropdown-panel {
  visibility: visible; pointer-events: auto;
  transform: none; clip-path: none; transition-delay: 0s;
}
.dropdown.open .dropdown-content { transform: translateY(0); }
.dropdown-panel a, .dropdown-panel button { padding: 12px; }
.chevron { transition: transform 350ms var(--motion-ease), color 350ms ease; }
.dropdown.open .chevron { transform: translateY(3px) rotate(225deg); }
.dropdown-panel a, .dropdown-panel button {
  position: relative; isolation: isolate; transition: color 350ms ease;
}
.dropdown-panel a::before, .dropdown-panel button::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(0deg, #bc6e3659, #bc6e361a 60%, transparent);
  opacity: 0; transition: opacity 350ms ease-in-out;
}
.dropdown-panel :is(a, button):is(:hover, :focus-visible) { background: none; }
.dropdown-panel :is(a, button):is(:hover, :focus-visible)::before { opacity: 1; }
/* Stay in the top layer until the dialog's closing transition finishes. */
dialog {
  opacity: 0; transform: translateY(18px) scale(.98);
  transition: opacity 250ms ease, transform 350ms var(--motion-ease);
}
dialog.is-visible { opacity: 1; transform: translateY(0) scale(1); }
dialog::backdrop { opacity: 0; transition: opacity 350ms ease; }
dialog.is-visible::backdrop { opacity: 1; }
.dialog-close { transition: color 350ms ease, transform 350ms var(--motion-ease); }
.dialog-close:is(:hover, :focus-visible) { color: #fff0d4; transform: rotate(90deg); }
@media (max-width: 1100px) {
  .nav-viewport {
    display: block; position: absolute; top: calc(100% + 1px); left: 0; right: 0;
    overflow: hidden; pointer-events: none;
  }
  .header nav {
    position: relative; top: auto; left: auto; right: auto;
    display: flex; opacity: 1; visibility: hidden; pointer-events: none;
    transform: translateY(-100%); clip-path: none;
    transition: transform 350ms cubic-bezier(.4, 0, .2, 1), visibility 0s 350ms;
  }
  .header nav.open {
    visibility: visible; pointer-events: auto; transform: translateY(0);
    clip-path: none; transition-delay: 0s;
  }
  .dropdown-panel, .dropdown.open .dropdown-panel {
    display: grid; width: 100%; grid-template-rows: 0fr; margin-bottom: 0;
    transform: none; clip-path: none;
    transition: grid-template-rows 350ms cubic-bezier(.4, 0, .2, 1), visibility 0s 350ms;
  }
  .dropdown-content, .dropdown.open .dropdown-content {
    min-height: 0; overflow: hidden; padding: 0; border: 0;
    box-shadow: inset 1px 0 var(--frame); transform: none; transition: none;
  }
  .dropdown.open .dropdown-panel { grid-template-rows: 1fr; transition-delay: 0s; }
  .menu-toggle span { transition: transform 350ms var(--motion-ease), opacity 250ms ease; }
  .menu-toggle[aria-expanded=true] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:nth-child(2) { opacity: 0; transform: scaleX(.2); }
  .menu-toggle[aria-expanded=true] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
