html.dbnc-loader-pending, html.dbnc-loader-pending body { overflow: hidden; }
.dbnc-loader {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--dbnc-bg, #111);
  opacity: 1;
  visibility: visible;
  transform: translate3d(0,0,0);
  will-change: transform, opacity;
  pointer-events: all;
}
.dbnc-loader__logo {
  width: var(--dbnc-logo-w, 140px);
  aspect-ratio: 1 / 1;
  max-height: 35vh;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dbnc-logo-layer,
.dbnc-logo-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.dbnc-logo-layer {
  background: var(--dbnc-base, rgba(255,255,255,.2));
  -webkit-mask-image: var(--dbnc-logo);
  mask-image: var(--dbnc-logo);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.dbnc-logo-fill {
  background: var(--dbnc-fill, #fff);
}
.dbnc-logo-image { opacity: 0; pointer-events: none; }

/* v1.2 — conserve intégralement les couleurs du SVG/image. */
.dbnc-mode-original .dbnc-logo-base,
.dbnc-mode-original .dbnc-logo-fill { display:none; }
.dbnc-mode-original .dbnc-logo-original { opacity:1; }
.dbnc-loader__fallback { color:#fff; font:700 28px/1 sans-serif; letter-spacing:.12em; }

.dbnc-anim-fill-ltr .dbnc-logo-fill { clip-path: inset(0 100% 0 0); animation: dbncFillLTR var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-anim-fill-rtl .dbnc-logo-fill { clip-path: inset(0 0 0 100%); animation: dbncFillRTL var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-anim-fill-btt .dbnc-logo-fill { clip-path: inset(100% 0 0 0); animation: dbncFillBTT var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-anim-fill-ttb .dbnc-logo-fill { clip-path: inset(0 0 100% 0); animation: dbncFillTTB var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-anim-fade .dbnc-logo-base { display:none; }
.dbnc-anim-fade .dbnc-logo-fill { opacity:0; animation: dbncFade var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-anim-scale .dbnc-logo-base { display:none; }
.dbnc-anim-scale .dbnc-logo-fill { opacity:0; transform:scale(.8); animation: dbncScale var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-anim-pulse .dbnc-logo-base { display:none; }
.dbnc-anim-pulse .dbnc-logo-fill { animation: dbncPulse var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) infinite; }


/* Mode couleurs originales : mêmes animations, sans recoloration. */
.dbnc-mode-original.dbnc-anim-fill-ltr .dbnc-logo-original { clip-path: inset(0 100% 0 0); animation: dbncFillLTR var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-mode-original.dbnc-anim-fill-rtl .dbnc-logo-original { clip-path: inset(0 0 0 100%); animation: dbncFillRTL var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-mode-original.dbnc-anim-fill-btt .dbnc-logo-original { clip-path: inset(100% 0 0 0); animation: dbncFillBTT var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-mode-original.dbnc-anim-fill-ttb .dbnc-logo-original { clip-path: inset(0 0 100% 0); animation: dbncFillTTB var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-mode-original.dbnc-anim-fade .dbnc-logo-original { opacity:0; animation: dbncFade var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-mode-original.dbnc-anim-scale .dbnc-logo-original { opacity:0; transform:scale(.8); animation: dbncScale var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) forwards; }
.dbnc-mode-original.dbnc-anim-pulse .dbnc-logo-original { animation: dbncPulse var(--dbnc-logo-duration) var(--dbnc-easing) var(--dbnc-logo-delay) infinite; }

@keyframes dbncFillLTR { to { clip-path: inset(0 0 0 0); } }
@keyframes dbncFillRTL { to { clip-path: inset(0 0 0 0); } }
@keyframes dbncFillBTT { to { clip-path: inset(0 0 0 0); } }
@keyframes dbncFillTTB { to { clip-path: inset(0 0 0 0); } }
@keyframes dbncFade { to { opacity:1; } }
@keyframes dbncScale { to { opacity:1; transform:scale(1); } }
@keyframes dbncPulse { 0%,100% { transform:scale(1); opacity:.75 } 50% { transform:scale(1.08); opacity:1 } }

.dbnc-loader.is-leaving.dbnc-exit-fade { animation: dbncExitFade var(--dbnc-exit-duration) ease forwards; }
.dbnc-loader.is-leaving.dbnc-exit-slide-up { animation: dbncExitUp var(--dbnc-exit-duration) cubic-bezier(.65,0,.35,1) forwards; }
.dbnc-loader.is-leaving.dbnc-exit-slide-down { animation: dbncExitDown var(--dbnc-exit-duration) cubic-bezier(.65,0,.35,1) forwards; }
.dbnc-loader.is-leaving.dbnc-exit-scale { animation: dbncExitScale var(--dbnc-exit-duration) ease-in forwards; }
@keyframes dbncExitFade { to { opacity:0; visibility:hidden; } }
@keyframes dbncExitUp { to { transform:translate3d(0,-100%,0); } }
@keyframes dbncExitDown { to { transform:translate3d(0,100%,0); } }
@keyframes dbncExitScale { to { transform:scale(1.08); opacity:0; visibility:hidden; } }

@media (max-width:1024px){ .dbnc-loader__logo{width:var(--dbnc-logo-w-tablet,120px);} }
@media (max-width:767px){ .dbnc-loader__logo{width:var(--dbnc-logo-w-mobile,90px);} }
