/* ---------------------------------------------------------------------------
   Theater-style video player.

   The Framer component at framer.com/m/Theater-Video-Player is a React module
   (imports react, react/jsx-runtime and Framer's own `framer` runtime), so it
   cannot run on this site - there is no React, no bundler and no package.json.
   This is the same player rebuilt in plain CSS + vanilla JS, matching the
   controls the original exposes: glass control bar with blur, auto-hide,
   rounded buttons, seekable progress, mute and fullscreen.

   Scoped entirely under .bd-player, so it cannot affect anything else. Loaded
   only on the pages that use it.
   --------------------------------------------------------------------------- */

.bd-player {
    position: relative;
    width: 100%;
    background: #000;
    border-radius: 12px;
    overflow: hidden;
    line-height: 0;
}

.bd-player video {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
}

/* Big centre play button, shown until first play */
.bd-player__big {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 76px;
    height: 76px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35) inset;
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: transform .25s ease, background-color .25s ease, opacity .25s ease;
    z-index: 3;
}

.bd-player__big:hover { background: rgba(255, 255, 255, 0.28); transform: translate(-50%, -50%) scale(1.06); }
.bd-player__big svg { width: 26px; height: 26px; fill: #fff; margin-left: 3px; }
.bd-player.is-playing .bd-player__big { opacity: 0; pointer-events: none; }

/* Glass control bar */
.bd-player__bar {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 14px;
    background: rgba(18, 18, 18, 0.55);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.14) inset;
    opacity: 1;
    transform: translateY(0);
    transition: opacity .3s ease, transform .3s ease;
    z-index: 4;
    line-height: 1;
}

/* Auto-hide while playing and idle */
.bd-player.is-idle .bd-player__bar {
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
}

.bd-player__btn {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.12);
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: background-color .2s ease;
    padding: 0;
}

.bd-player__btn:hover { background: rgba(255, 255, 255, 0.24); }
.bd-player__btn svg { width: 15px; height: 15px; fill: #fff; }
.bd-player__btn .bd-ico-pause,
.bd-player.is-playing .bd-player__btn .bd-ico-play { display: none; }
.bd-player.is-playing .bd-player__btn .bd-ico-pause { display: block; }
.bd-player__btn .bd-ico-unmute { display: none; }
.bd-player.is-muted .bd-player__btn .bd-ico-unmute { display: block; }
.bd-player.is-muted .bd-player__btn .bd-ico-mute { display: none; }

/* Seek bar */
.bd-player__track {
    flex: 1 1 auto;
    height: 5px;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.22);
    position: relative;
    cursor: pointer;
}

.bd-player__fill {
    position: absolute;
    inset: 0 auto 0 0;
    width: 0;
    border-radius: 99px;
    background: #FF2B3C;   /* the site's accent, same as .sub-heading span */
}

.bd-player__fill::after {
    content: "";
    position: absolute;
    right: -6px;
    top: 50%;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    transform: translateY(-50%) scale(0);
    transition: transform .18s ease;
}

.bd-player__track:hover .bd-player__fill::after { transform: translateY(-50%) scale(1); }

.bd-player__time {
    flex: 0 0 auto;
    color: rgba(255, 255, 255, 0.92);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .02em;
    font-variant-numeric: tabular-nums;
    min-width: 84px;
    text-align: right;
    line-height: 1;
}

@media (max-width: 767px) {
    .bd-player__bar { left: 8px; right: 8px; bottom: 8px; gap: 8px; padding: 8px 10px; }
    .bd-player__btn { width: 30px; height: 30px; border-radius: 8px; }
    .bd-player__time { font-size: 11px; min-width: 72px; }
    .bd-player__big { width: 58px; height: 58px; }
}

@media (prefers-reduced-motion: reduce) {
    .bd-player__bar,
    .bd-player__big,
    .bd-player__fill::after { transition: none; }
}

/* Fallback: if the script failed or the file could not load, the browser's own
   controls are restored and the custom chrome is hidden, so the video is still
   usable rather than a dead black box. */
.bd-player--native .bd-player__bar,
.bd-player--native .bd-player__big { display: none; }
