:root{
  --bm-loading-accent:var(--bm-accent,#2f7cff);
  --bm-loading-accent-rgb:47,124,255;
  --bm-loading-bg-rgb:5,7,13;
  --bm-loading-bg-opacity:.96;
  --bm-loading-blur:16px;
  --bm-loading-size:104px;
  --bm-loading-skeleton-speed:1250ms;
}
html.bm-loading-lock,html.bm-loading-lock body{overflow:hidden!important}
.loading-overlay.bm-loading-managed,
#loadingOverlay.bm-loading-managed{
  position:fixed!important;
  inset:0!important;
  z-index:19000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-direction:column!important;
  gap:17px!important;
  margin:0!important;
  padding:24px!important;
  background:
    radial-gradient(circle at 50% 42%,rgba(var(--bm-loading-accent-rgb),.16),transparent 31%),
    rgba(var(--bm-loading-bg-rgb),var(--bm-loading-bg-opacity))!important;
  -webkit-backdrop-filter:blur(var(--bm-loading-blur))!important;
  backdrop-filter:blur(var(--bm-loading-blur))!important;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity .38s ease,visibility .38s ease!important;
  isolation:isolate;
}
.loading-overlay.bm-loading-managed:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent 0 49.8%,rgba(255,255,255,.018) 50%,transparent 50.2%),
    linear-gradient(0deg,transparent 0 49.8%,rgba(255,255,255,.014) 50%,transparent 50.2%);
  background-size:72px 72px;
  mask-image:radial-gradient(circle at center,#000,transparent 75%);
}
.loading-overlay.bm-loading-managed.hide,
#loadingOverlay.bm-loading-managed.hide{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.loading-overlay.bm-loading-managed[data-bm-hold="1"],
#loadingOverlay.bm-loading-managed[data-bm-hold="1"]{
  display:flex!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.bm-loading-stage{
  position:relative;
  width:var(--bm-loading-size);
  height:var(--bm-loading-size);
  display:grid;
  place-items:center;
  filter:drop-shadow(0 18px 42px rgba(0,0,0,.42));
}
.bm-loading-stage:after{
  content:"";
  position:absolute;
  inset:8%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(var(--bm-loading-accent-rgb),.18),transparent 68%);
  filter:blur(13px);
  animation:bmLoadingAura 1.7s ease-in-out infinite;
}
.bm-loading-logo{
  position:relative;
  z-index:3;
  width:calc(var(--bm-loading-size) * 1.72);
  max-width:min(52vw,220px);
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 0 13px rgba(var(--bm-loading-accent-rgb),.55));
  animation:bmLoadingLogoFloat 1.85s ease-in-out infinite;
}
.bm-loading-orbit{
  position:absolute;
  inset:4%;
  z-index:2;
  border-radius:50%;
  border:2px solid transparent;
  border-top-color:var(--bm-loading-accent);
  border-right-color:rgba(255,255,255,.38);
  box-shadow:0 0 25px rgba(var(--bm-loading-accent-rgb),.38),inset 0 0 22px rgba(var(--bm-loading-accent-rgb),.13);
  animation:bmLoadingSpin 1.18s linear infinite;
}
.bm-loading-orbit:before,.bm-loading-orbit:after{
  content:"";
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(var(--bm-loading-accent-rgb),.48);
}
.bm-loading-orbit:before{inset:12%;animation:bmLoadingSpinReverse 1.65s linear infinite}
.bm-loading-orbit:after{inset:-10%;border-color:rgba(255,255,255,.08);border-left-color:rgba(var(--bm-loading-accent-rgb),.55);animation:bmLoadingSpin 2.2s linear infinite}
.bm-loading-text{
  position:relative;
  z-index:4;
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:850;
  line-height:1.8;
  letter-spacing:.01em;
  text-align:center;
  text-shadow:0 0 18px rgba(var(--bm-loading-accent-rgb),.34);
}
.bm-loading-progress{
  width:min(180px,46vw);
  height:3px;
  border-radius:99px;
  overflow:hidden;
  background:rgba(255,255,255,.07);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.bm-loading-progress span{
  display:block;
  width:42%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,transparent,var(--bm-loading-accent),#fff,var(--bm-loading-accent),transparent);
  box-shadow:0 0 18px rgba(var(--bm-loading-accent-rgb),.7);
  animation:bmLoadingProgress 1.35s ease-in-out infinite;
}
/* Rings */
.bm-loading-rings{position:relative;width:100%;height:100%}
.bm-loading-rings i{position:absolute;border-radius:50%;border:3px solid transparent;inset:4%;border-top-color:var(--bm-loading-accent);box-shadow:0 0 18px rgba(var(--bm-loading-accent-rgb),.24);animation:bmLoadingSpin 1.05s linear infinite}
.bm-loading-rings i:nth-child(2){inset:20%;border-top-color:#fff;border-right-color:rgba(var(--bm-loading-accent-rgb),.68);animation-duration:1.45s;animation-direction:reverse}
.bm-loading-rings i:nth-child(3){inset:36%;border-width:2px;border-top-color:var(--bm-loading-accent);animation-duration:.82s}
/* Pulse */
.bm-loading-pulse{position:relative;width:52%;height:52%;border-radius:50%;background:var(--bm-loading-accent);box-shadow:0 0 36px rgba(var(--bm-loading-accent-rgb),.58);animation:bmLoadingPulse 1.25s ease-in-out infinite}
.bm-loading-pulse:before,.bm-loading-pulse:after{content:"";position:absolute;inset:0;border:1px solid var(--bm-loading-accent);border-radius:50%;animation:bmLoadingPulseRing 1.55s ease-out infinite}
.bm-loading-pulse:after{animation-delay:.48s}
/* Dots */
.bm-loading-dots{display:flex;align-items:center;justify-content:center;gap:10px}
.bm-loading-dots i{width:14px;height:14px;border-radius:50%;background:var(--bm-loading-accent);box-shadow:0 0 16px rgba(var(--bm-loading-accent-rgb),.72);animation:bmLoadingDot 1s ease-in-out infinite}
.bm-loading-dots i:nth-child(2){animation-delay:.13s}.bm-loading-dots i:nth-child(3){animation-delay:.26s}.bm-loading-dots i:nth-child(4){animation-delay:.39s}
/* Cinema */
.bm-loading-cinema{position:relative;width:84%;height:58%;border:2px solid rgba(255,255,255,.16);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.035);box-shadow:0 0 30px rgba(var(--bm-loading-accent-rgb),.2)}
.bm-loading-cinema:before,.bm-loading-cinema:after{content:"";position:absolute;left:0;right:0;height:9px;background:repeating-linear-gradient(90deg,var(--bm-loading-accent) 0 12px,transparent 12px 22px);animation:bmLoadingFilm 1.15s linear infinite}
.bm-loading-cinema:before{top:0}.bm-loading-cinema:after{bottom:0;animation-direction:reverse}
.bm-loading-cinema i{position:absolute;inset:18px 12px;border-radius:10px;background:linear-gradient(105deg,transparent 20%,rgba(var(--bm-loading-accent-rgb),.18) 45%,rgba(255,255,255,.2) 50%,rgba(var(--bm-loading-accent-rgb),.18) 55%,transparent 80%);background-size:220% 100%;animation:bmLoadingShine 1.45s ease-in-out infinite}
/* Inline and skeleton loading follow the selected accent. */
.loading-spinner,.bm-video-spinner{border-color:rgba(255,255,255,.1)!important;border-top-color:var(--bm-loading-accent)!important;box-shadow:0 0 18px rgba(var(--bm-loading-accent-rgb),.16)}
.ext-skeleton-poster,.ext-skeleton-info span,.ext-skeleton-info small,.skeleton,.skeleton-card,[class*="skeleton-"]{
  animation-duration:var(--bm-loading-skeleton-speed)!important;
}
html.bm-skeleton-disabled .ext-loading-skeletons,
html.bm-skeleton-disabled .skeleton,
html.bm-skeleton-disabled .skeleton-card,
html.bm-skeleton-disabled [data-skeleton]{display:none!important}
@keyframes bmLoadingSpin{to{transform:rotate(360deg)}}
@keyframes bmLoadingSpinReverse{to{transform:rotate(-360deg)}}
@keyframes bmLoadingAura{0%,100%{opacity:.45;transform:scale(.88)}50%{opacity:1;transform:scale(1.15)}}
@keyframes bmLoadingLogoFloat{0%,100%{transform:translateY(0) scale(.98)}50%{transform:translateY(-5px) scale(1.02)}}
@keyframes bmLoadingProgress{0%{transform:translateX(-130%)}100%{transform:translateX(340%)}}
@keyframes bmLoadingPulse{0%,100%{transform:scale(.76);opacity:.65}50%{transform:scale(1);opacity:1}}
@keyframes bmLoadingPulseRing{0%{transform:scale(.8);opacity:.8}100%{transform:scale(2.2);opacity:0}}
@keyframes bmLoadingDot{0%,100%{transform:translateY(0) scale(.75);opacity:.45}50%{transform:translateY(-13px) scale(1);opacity:1}}
@keyframes bmLoadingFilm{to{background-position:22px 0}}
@keyframes bmLoadingShine{0%{background-position:180% 0}100%{background-position:-80% 0}}
@media(max-width:640px){
  .loading-overlay.bm-loading-managed{gap:14px!important;padding:18px!important}
  .bm-loading-text{font-size:11px}
  .bm-loading-progress{width:min(154px,52vw)}
}
@media(prefers-reduced-motion:reduce){
  .bm-loading-managed *{animation-duration:2.4s!important}
}
