/* Identité commune des écrans de chargement. */
.pullup-loading,#loading.pullup-loading,.event-loading.pullup-loading{display:flex;align-items:center;justify-content:center;background:#000;color:#fff}
#loading.pullup-loading{z-index:100}
.event-loading.pullup-loading{position:fixed;z-index:100;inset:0;min-height:100dvh}
/* Le logo s'affiche dès la première image, immobile, à la même opacité que
   le point de départ de l'animation de pulsation ci-dessous — si le
   chargement est instantané, rien ne clignote ; s'il traîne, la pulsation
   prend le relais après .8s sans à-coup. Avant, le logo restait totalement
   invisible (visibility:hidden) ces .8s, laissant un écran noir vide. */
.pullup-loading-logo{display:block;width:120px;max-width:40vw;height:auto;object-fit:contain;opacity:.55;transform:scale(.96);animation:pullup-loading-pulse 1.4s ease-in-out .8s infinite}
.pullup-loading.pullup-loading-create{min-height:55dvh;border-radius:20px;background:transparent;animation:pullup-loading-background 1ms step-end .8s forwards}
@keyframes pullup-loading-background{to{background:#000}}
@keyframes pullup-loading-pulse{0%,100%{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.pullup-loading-logo{animation:none;opacity:1;transform:none}}
