/* Scoped opening layer. Existing header, hero and content styles are untouched. */
#dm-brand-intro {
  position: fixed; inset: 0; z-index: 2147483000;
  display: grid; place-items: center; isolation: isolate;
  width: 100%; height: 100%; height: 100dvh;
  background: #111d37; color: #fff; overflow: hidden;
  outline: none; opacity: 1; transition: opacity 720ms cubic-bezier(.2,.65,.25,1);
  font-family: inherit; overscroll-behavior: contain;
}
#dm-brand-intro *, #dm-brand-intro *::before, #dm-brand-intro *::after { box-sizing: border-box; }
#dm-brand-intro .dm-intro-poster,
#dm-brand-intro .dm-intro-video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  display: block; object-fit: contain; object-position: center;
  margin: 0; padding: 0; border: 0; max-width: none; max-height: none;
}
#dm-brand-intro .dm-intro-poster { z-index: 0; }
#dm-brand-intro .dm-intro-video { z-index: 1; opacity: 0; }
#dm-brand-intro[data-state="playing"] .dm-intro-video,
#dm-brand-intro[data-state="paused"] .dm-intro-video,
#dm-brand-intro[data-state="ending"] .dm-intro-video { opacity: 1; }
#dm-brand-intro .dm-intro-controls {
  position: absolute; z-index: 2;
  top: max(22px, env(safe-area-inset-top));
  right: max(24px, env(safe-area-inset-right));
  display: flex; align-items: center; gap: 10px;
  transition: opacity 180ms ease;
}
#dm-brand-intro button {
  appearance: none; display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; margin: 0; border: 1px solid rgba(255,255,255,.34);
  border-radius: 28px; padding: 0 17px;
  background: rgba(6,15,29,.58); color: #fff;
  font: 500 13px/1.2 system-ui, -apple-system, 'Segoe UI', sans-serif;
  letter-spacing: .01em; text-decoration: none; cursor: pointer;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: none; transition: background 150ms ease, border-color 150ms ease;
}
#dm-brand-intro button:hover { background: rgba(9,31,50,.92); border-color: rgba(255,255,255,.72); }
#dm-brand-intro button:focus-visible { outline: 3px solid #77dfff; outline-offset: 4px; }
#dm-brand-intro .dm-intro-toggle { width: 44px; min-width: 44px; padding: 0; }
#dm-brand-intro button svg { display: block; width: 16px; height: 16px; fill: currentColor; }
#dm-brand-intro .dm-intro-progress {
  position: absolute; z-index: 2; inset: auto 0 0; height: 2px;
  background: rgba(255,255,255,.08); pointer-events: none;
}
#dm-brand-intro .dm-intro-progress span {
  display: block; height: 100%; width: 100%; transform: scaleX(0); transform-origin: left;
  background: #6fcbea; transition: transform 160ms linear;
}
#dm-brand-intro[data-closing="true"] { opacity: 0; pointer-events: none; }
#dm-brand-intro[data-state="ending"] .dm-intro-controls { opacity: .4; }
@media (max-width: 640px) {
  #dm-brand-intro .dm-intro-controls {
    top: max(16px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); gap: 8px;
  }
  #dm-brand-intro button { font-size: 12px; padding-inline: 14px; }
  #dm-brand-intro .dm-intro-toggle { padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #dm-brand-intro, #dm-brand-intro * { transition: none !important; }
}

#dm-brand-intro[data-state="playing"] .dm-intro-poster,
#dm-brand-intro[data-state="paused"] .dm-intro-poster,
#dm-brand-intro[data-state="ending"] .dm-intro-poster { opacity: 0; }

/* v2: the skip button covers the mark INSIDE the contained video image,
   not the viewport corner. The positioning is calculated in brand-intro.js. */
#dm-brand-intro .dm-intro-skip {
  position: absolute; z-index: 3;
  top: 0; left: 0; right: auto; bottom: auto;
  visibility: hidden; opacity: 1;
  min-height: 0; padding: 0 14px;
  border-radius: 12px; border: 1px solid #49677d;
  background: #081a2c; color: #ffffff;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .22);
  white-space: nowrap; line-height: 1; font-weight: 600;
  touch-action: manipulation;
}
#dm-brand-intro .dm-intro-skip:hover,
#dm-brand-intro .dm-intro-skip:active {
  background: #12334b; border-color: #86bcd6;
}
#dm-brand-intro[data-state="ending"] .dm-intro-skip { opacity: 1; }
