/* AlloPro — animation d'ouverture (indépendante de l'application : si elle échoue, elle disparaît d'elle-même) */
#splash{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;flex-direction:column;
  padding:env(safe-area-inset-top,0px) 24px env(safe-area-inset-bottom,0px);overflow:hidden;color:#fff;text-align:center;
  background:radial-gradient(120% 90% at 50% 18%,#17908B 0%,#0E6E6B 42%,#08403F 100%);
  font-family:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  animation:spOut .5s ease-in 4.1s both}
html.no-splash #splash{display:none}
@keyframes spOut{to{opacity:0;visibility:hidden;pointer-events:none}}

/* Fond : halos qui dérivent doucement */
#splash .sp-halo{position:absolute;border-radius:50%;filter:blur(2px);opacity:.0;animation:spHalo 4s ease-in-out both}
#splash .sp-h1{width:340px;height:340px;left:-120px;top:-90px;background:radial-gradient(circle,rgba(242,183,5,.28),transparent 68%)}
#splash .sp-h2{width:420px;height:420px;right:-160px;bottom:-140px;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%);animation-delay:.2s}
@keyframes spHalo{0%{opacity:0;transform:scale(.8)}35%{opacity:1}100%{opacity:.9;transform:scale(1.12) translate(10px,-8px)}}

/* Logo : chute du repère + ondes */
#splash .sp-logo{position:relative;width:132px;height:132px;display:flex;align-items:center;justify-content:center;margin-bottom:22px}
#splash .sp-logo img{position:relative;width:132px;height:132px;border-radius:30px;display:block;
  box-shadow:0 18px 40px rgba(0,0,0,.35),0 0 0 6px rgba(255,255,255,.10);
  animation:spDrop .9s cubic-bezier(.2,.9,.25,1.25) .15s both}
@keyframes spDrop{0%{opacity:0;transform:translateY(-70px) scale(.55) rotate(-8deg)}60%{opacity:1}100%{opacity:1;transform:none}}
#splash .sp-ring{position:absolute;inset:0;border-radius:34px;border:2px solid rgba(242,183,5,.75);opacity:0;animation:spRing 1.7s ease-out 1s both}
#splash .sp-ring.r2{animation-delay:1.35s;border-color:rgba(255,255,255,.55)}
@keyframes spRing{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(2.1)}}

/* Nom + signature */
#splash .sp-name{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;font-size:44px;letter-spacing:-.02em;line-height:1;margin:0;
  animation:spUp .7s ease-out 1s both}
#splash .sp-name span{color:#F2B705}
#splash .sp-tag{margin:10px 0 0;font-size:15.5px;font-weight:700;color:rgba(255,255,255,.82);letter-spacing:.01em;animation:spUp .7s ease-out 1.25s both}
#splash .sp-role{margin:12px 0 0;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.14);font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;animation:spUp .7s ease-out 1.4s both}
@keyframes spUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Chargement puis bienvenue (même emplacement) */
#splash .sp-zone{position:relative;width:min(280px,76vw);height:74px;margin-top:34px}
#splash .sp-load,#splash .sp-welcome{position:absolute;left:0;right:0;top:0}
#splash .sp-load{animation:spIn .4s ease-out 1.7s both,spGone .35s ease-in 3.05s both}
#splash .sp-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.2);overflow:hidden}
#splash .sp-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#F2B705,#FFE08A);animation:spFill 1.3s cubic-bezier(.45,.05,.3,1) 1.75s both}
@keyframes spFill{0%{width:0}55%{width:62%}100%{width:100%}}
#splash .sp-load p{margin:12px 0 0;font-size:13.5px;font-weight:700;color:rgba(255,255,255,.75)}
#splash .sp-welcome{animation:spWel .6s cubic-bezier(.2,.9,.3,1.2) 3.15s both}
#splash .sp-welcome b{display:block;font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;font-size:34px;letter-spacing:-.01em;line-height:1.1}
#splash .sp-welcome i{display:block;width:56px;height:4px;border-radius:9px;background:#F2B705;margin:10px auto 0;transform-origin:center;animation:spLine .5s ease-out 3.4s both}
@keyframes spIn{from{opacity:0}to{opacity:1}}
@keyframes spGone{to{opacity:0;transform:translateY(-8px)}}
@keyframes spWel{from{opacity:0;transform:translateY(12px) scale(.9)}to{opacity:1;transform:none}}
@keyframes spLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* Mouvement réduit : version sobre et courte */
@media (prefers-reduced-motion: reduce){
  #splash{animation:spOut .3s ease-in 1.8s both}
  #splash *{animation:none!important}
  #splash .sp-load{display:none}
  #splash .sp-welcome{opacity:1}
  #splash .sp-halo{opacity:.6}
}
