/* ══ Écran de chargement : le monogramme JFB se remplit d'or ══ */
#jfb-loader{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;height:100dvh;min-height:-webkit-fill-available;margin:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(ellipse 70% 60% at 50% 45%,#7a1a20 0%,#56090f 55%,#3a0609 100%);
  transition:transform .85s cubic-bezier(.76,0,.24,1);--d:1;will-change:transform}
#jfb-loader.fini{transform:translateY(-100%)!important}
#jfb-loader.rapide{--d:.45}
.jl-logo{position:relative;filter:drop-shadow(0 6px 22px rgba(20,4,3,.55));width:clamp(120px,17vw,190px);aspect-ratio:1;
  animation:jlSouffle calc(2.4s*var(--d)) ease-in-out both}
.jl-logo span{position:absolute;inset:0;-webkit-mask:url(photos/logo-jfb-loader.png) center/contain no-repeat;mask:url(photos/logo-jfb-loader.png) center/contain no-repeat}
.jl-trace{background:rgba(201,162,75,.28)}
.jl-or{background:linear-gradient(180deg,#f3dc98 0%,#d9b45e 45%,#b08a38 100%);clip-path:inset(100% 0 0 0);
  animation:jlRemplit calc(1.15s*var(--d)) cubic-bezier(.65,0,.25,1) calc(.15s*var(--d)) forwards}
.jl-reflet{background:linear-gradient(105deg,transparent 38%,rgba(255,250,232,.95) 50%,transparent 62%);background-size:260% 100%;background-position:160% 0;
  animation:jlReflet calc(.85s*var(--d)) ease-in-out calc(1.2s*var(--d)) forwards}
.jl-ligne{width:0;height:1px;margin-top:1.1rem;background:linear-gradient(90deg,transparent,#c9a24b,transparent);
  animation:jlLigne calc(.9s*var(--d)) ease calc(.6s*var(--d)) forwards}
.jl-sous{margin-top:.8rem;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:clamp(.95rem,1.4vw,1.15rem);
  letter-spacing:.08em;color:#e6c574;text-shadow:0 2px 12px rgba(20,4,3,.7);opacity:0;transform:translateY(6px);animation:jlSous calc(.7s*var(--d)) ease calc(1s*var(--d)) forwards}
@keyframes jlRemplit{to{clip-path:inset(0 0 0 0)}}
@keyframes jlReflet{to{background-position:-60% 0}}
@keyframes jlLigne{to{width:140px}}
@keyframes jlSous{to{opacity:1;transform:none}}
@keyframes jlSouffle{0%{transform:scale(.94);opacity:0}18%{opacity:1}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .jl-logo,.jl-or,.jl-reflet,.jl-ligne,.jl-sous{animation:none!important;opacity:1;clip-path:none;transform:none}
  .jl-ligne{width:140px}
}

html.jl-actif,html.jl-actif body{overflow:hidden!important}
