/* ITR - Load Animation : styles communs (site et aperçu de l'administration). Auteur : Intor */

:root,.itr-la-vars{
	--itr-la-c1:#3b82f6;
	--itr-la-c2:#8b5cf6;
	--itr-la-bg:#ffffff;
	--itr-la-size:80px;
	--itr-la-speed:1;
	--itr-la-fade:500ms;
	--itr-la-blur:0px;
	--itr-la-text:#ffffff;
}

/* ---------- Voile de chargement ---------- */
#itr-la{position:fixed;inset:0;z-index:2147483000;visibility:hidden;pointer-events:none;margin:0;padding:0}
html.itr-la-on #itr-la,html.itr-la-leaving #itr-la,html.itr-la-exit #itr-la{visibility:visible}
html.itr-la-on #itr-la,html.itr-la-exit #itr-la{pointer-events:all}
html.itr-la-on,html.itr-la-on body{overflow:hidden}
html.itr-la-on:not(.itr-la-dim){background:var(--itr-la-bg)}
html.itr-la-on:not(.itr-la-dim) body{visibility:hidden}

.itr-la-bg{position:absolute;inset:0;background:var(--itr-la-bg)}
.itr-la-bg-dim{-webkit-backdrop-filter:blur(var(--itr-la-blur));backdrop-filter:blur(var(--itr-la-blur))}
.itr-la-stage{position:absolute;inset:0;overflow:hidden}
.itr-la-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--itr-la-size)*.28);pointer-events:none}
.itr-la-text{font:600 1rem/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--itr-la-text);text-align:center;letter-spacing:.02em;max-width:80%}

html.itr-la-leaving .itr-la-bg,
html.itr-la-leaving .itr-la-stage{opacity:0;transition:opacity var(--itr-la-fade) ease}
#itr-la.itr-la-hold .itr-la-stage{opacity:1;transition:none}
#itr-la.itr-la-hold .itr-la-center{opacity:0;transition:opacity .25s ease}
html.itr-la-exit .itr-la-bg,
html.itr-la-exit .itr-la-stage{animation:itr-la-fadein .25s ease both}
@keyframes itr-la-fadein{from{opacity:0}to{opacity:1}}
@keyframes itr-la-rot{to{transform:rotate(360deg)}}

/* ---------- 1. Cercle qui tourne ---------- */
.itr-la-spinner{width:var(--itr-la-size);height:var(--itr-la-size);animation:itr-la-rot calc(1.4s/var(--itr-la-speed)) linear infinite}
.itr-la-spinner circle{fill:none;stroke-width:4;stroke-linecap:round}
.itr-la-spinner .itr-la-track{stroke:var(--itr-la-c2);opacity:.25}
.itr-la-spinner .itr-la-arc{stroke:var(--itr-la-c1);stroke-dasharray:1,150;stroke-dashoffset:0;animation:itr-la-dash calc(1.4s/var(--itr-la-speed)) ease-in-out infinite}
@keyframes itr-la-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}

/* ---------- 2. Points rebondissants ---------- */
.itr-la-dots{display:flex;align-items:flex-end;justify-content:center;gap:calc(var(--itr-la-size)*.14);height:calc(var(--itr-la-size)*.55)}
.itr-la-dots i{display:block;width:calc(var(--itr-la-size)*.2);height:calc(var(--itr-la-size)*.2);border-radius:50%;background:var(--itr-la-c1);animation:itr-la-bounce calc(.9s/var(--itr-la-speed)) ease-in-out infinite}
.itr-la-dots i:nth-child(2){background:var(--itr-la-c2);animation-delay:calc(.15s/var(--itr-la-speed))}
.itr-la-dots i:nth-child(3){animation-delay:calc(.3s/var(--itr-la-speed))}
@keyframes itr-la-bounce{0%,100%{transform:translateY(0) scale(1.1,.85)}50%{transform:translateY(calc(var(--itr-la-size)*-.32)) scale(1)}}

/* ---------- 3. Barre de progression ---------- */
.itr-la-bar{position:relative;overflow:hidden;width:calc(var(--itr-la-size)*2.6);height:max(6px,calc(var(--itr-la-size)*.09));border-radius:99px}
.itr-la-bar::before{content:"";position:absolute;inset:0;background:var(--itr-la-c1);opacity:.15}
.itr-la-bar i{position:absolute;top:0;bottom:0;left:0;width:40%;border-radius:inherit;background:linear-gradient(90deg,var(--itr-la-c1),var(--itr-la-c2));animation:itr-la-slide calc(1.3s/var(--itr-la-speed)) ease-in-out infinite}
@keyframes itr-la-slide{0%{left:-40%}100%{left:100%}}

/* ---------- 4. Pulsation ---------- */
.itr-la-pulse{position:relative;width:var(--itr-la-size);height:var(--itr-la-size)}
.itr-la-pulse i{position:absolute;inset:0;border-radius:50%;border:3px solid var(--itr-la-c1);opacity:0;animation:itr-la-ripple calc(1.8s/var(--itr-la-speed)) ease-out infinite}
.itr-la-pulse i:nth-child(2){border-color:var(--itr-la-c2);animation-delay:calc(.6s/var(--itr-la-speed))}
.itr-la-pulse i:nth-child(3){inset:30%;border:0;opacity:1;background:linear-gradient(135deg,var(--itr-la-c1),var(--itr-la-c2));animation:itr-la-beat calc(1.8s/var(--itr-la-speed)) ease-in-out infinite}
@keyframes itr-la-ripple{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.1);opacity:0}}
@keyframes itr-la-beat{0%,100%{transform:scale(.85)}50%{transform:scale(1.12)}}

/* ---------- 5. Bulle flottante ---------- */
.itr-la-float{position:relative;width:var(--itr-la-size);height:calc(var(--itr-la-size)*1.25)}
.itr-la-float .b{position:absolute;left:12%;right:12%;top:0;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.65),transparent 35%),linear-gradient(145deg,var(--itr-la-c1),var(--itr-la-c2));animation:itr-la-hover calc(2s/var(--itr-la-speed)) ease-in-out infinite}
.itr-la-float .s{position:absolute;left:25%;right:25%;bottom:0;height:calc(var(--itr-la-size)*.1);border-radius:50%;background:rgba(0,0,0,.2);filter:blur(3px);animation:itr-la-shadow calc(2s/var(--itr-la-speed)) ease-in-out infinite}
@keyframes itr-la-hover{0%,100%{transform:translateY(calc(var(--itr-la-size)*.28))}50%{transform:translateY(0)}}
@keyframes itr-la-shadow{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(.6);opacity:.45}}

/* ---------- 6. Anneaux orbitaux ---------- */
.itr-la-orbit{position:relative;width:var(--itr-la-size);height:var(--itr-la-size)}
.itr-la-orbit i{position:absolute;inset:0;border-radius:50%;border:calc(var(--itr-la-size)*.045) solid transparent}
.itr-la-orbit i:nth-child(1){border-top-color:var(--itr-la-c1);border-right-color:var(--itr-la-c1);animation:itr-la-rot calc(1.4s/var(--itr-la-speed)) linear infinite}
.itr-la-orbit i:nth-child(2){inset:14%;border-bottom-color:var(--itr-la-c2);border-left-color:var(--itr-la-c2);animation:itr-la-rot calc(1.1s/var(--itr-la-speed)) linear infinite reverse}
.itr-la-orbit i:nth-child(3){inset:28%;border-top-color:var(--itr-la-c1);animation:itr-la-rot calc(.8s/var(--itr-la-speed)) linear infinite}

/* ---------- 7. Carré pivotant ---------- */
.itr-la-square{width:var(--itr-la-size);height:var(--itr-la-size);display:flex;align-items:center;justify-content:center}
.itr-la-square i{display:block;width:70%;height:70%;background:linear-gradient(135deg,var(--itr-la-c1),var(--itr-la-c2));animation:itr-la-morph calc(2s/var(--itr-la-speed)) ease-in-out infinite}
@keyframes itr-la-morph{0%{transform:rotate(0) scale(1);border-radius:18%}40%{transform:rotate(90deg) scale(.7);border-radius:50%}70%{transform:rotate(180deg) scale(1);border-radius:30%}100%{transform:rotate(360deg) scale(1);border-radius:18%}}

/* ---------- 8. Blob dégradé ---------- */
.itr-la-blob{width:var(--itr-la-size);height:var(--itr-la-size)}
.itr-la-blob i{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--itr-la-c1),var(--itr-la-c2));animation:itr-la-blobmorph calc(3.2s/var(--itr-la-speed)) ease-in-out infinite,itr-la-rot calc(6s/var(--itr-la-speed)) linear infinite}
@keyframes itr-la-blobmorph{0%,100%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}50%{border-radius:30% 60% 70% 40%/50% 60% 30% 60%}}

/* ---------- 10. Image personnalisée ---------- */
.itr-la-img{display:block;width:var(--itr-la-size);height:auto;max-width:80%;max-height:60%;object-fit:contain}
.itr-la-noimg{display:block;width:var(--itr-la-size);aspect-ratio:1;border:2px dashed var(--itr-la-c1);border-radius:12px;opacity:.5}
.itr-la-fx-spin{animation:itr-la-rot calc(2s/var(--itr-la-speed)) linear infinite}
.itr-la-fx-float{animation:itr-la-imgfloat calc(2.2s/var(--itr-la-speed)) ease-in-out infinite}
.itr-la-fx-pulse{animation:itr-la-imgpulse calc(1.6s/var(--itr-la-speed)) ease-in-out infinite}
@keyframes itr-la-imgfloat{0%,100%{transform:translateY(8px)}50%{transform:translateY(-8px)}}
@keyframes itr-la-imgpulse{0%,100%{transform:scale(.9)}50%{transform:scale(1.1)}}

/* ---------- 9. Abeille ---------- */
.itr-la-bees{position:absolute;inset:0;pointer-events:none}
.itr-la-bee{position:absolute;left:0;top:0;width:calc(var(--itr-la-size)*1.15);transform:translate(-50%,-50%);will-change:left,top;animation-timing-function:ease-in-out;animation-iteration-count:infinite}
.itr-la-bee-1{animation-name:itr-la-wander1;animation-duration:calc(9s/var(--itr-la-speed))}
.itr-la-bee-2{animation-name:itr-la-wander2;animation-duration:calc(11s/var(--itr-la-speed));animation-delay:calc(-3s/var(--itr-la-speed))}
.itr-la-bee-3{animation-name:itr-la-wander3;animation-duration:calc(8s/var(--itr-la-speed));animation-delay:calc(-5s/var(--itr-la-speed))}
.itr-la-bee svg{display:block;width:100%;height:auto;overflow:visible}
.itr-la-bee-in{animation:itr-la-bob calc(.7s/var(--itr-la-speed)) ease-in-out infinite}
.itr-la-bee .w{transform-box:fill-box;transform-origin:50% 100%;animation:itr-la-flap calc(.16s/var(--itr-la-speed)) ease-in-out infinite alternate}
.itr-la-bee .w2{animation-delay:calc(.05s/var(--itr-la-speed))}
@keyframes itr-la-flap{from{transform:rotate(-22deg) scaleY(1)}to{transform:rotate(16deg) scaleY(.5)}}
@keyframes itr-la-bob{0%,100%{transform:translateY(-3px)}50%{transform:translateY(4px)}}

/* Fin de l'abeille : envol, disparition, écrasement */
.itr-la-bee .itr-la-splat{display:none}
.itr-la-bee.is-frozen{animation:none}
.itr-la-bee.is-gone{opacity:0;transition:opacity .3s ease}
.itr-la-bee.is-hit{animation:itr-la-hit .43s cubic-bezier(.5,0,1,.6) forwards}
.itr-la-bee.is-splat{animation:none;transform:translate(-50%,-50%) scale(3.4)}
.itr-la-bee.is-splat .itr-la-bee-in{display:none}
.itr-la-bee.is-splat .itr-la-splat{display:block;animation:itr-la-squash .38s cubic-bezier(.2,1.5,.4,1) both}
.itr-la-bee.is-splat-out{opacity:0;margin-top:30px;transition:opacity .7s ease,margin-top .7s ease}
.itr-la-splat .drip{transform-box:fill-box;transform-origin:50% 0;animation:itr-la-drip 1.2s ease-in .3s both}
@keyframes itr-la-hit{from{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(3.4)}}
@keyframes itr-la-squash{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.25,.8);opacity:1}100%{transform:scale(1)}}
@keyframes itr-la-drip{from{transform:scaleY(.1)}to{transform:scaleY(1)}}

@keyframes itr-la-wander1{0%{left:-12%;top:72%;transform:translate(-50%,-50%) scaleX(1) rotate(-8deg)}12.5%{left:16%;top:56%;transform:translate(-50%,-50%) scaleX(1) rotate(-16deg)}25%{left:30%;top:24%;transform:translate(-50%,-50%) scaleX(1) rotate(8deg)}37.5%{left:52%;top:40%;transform:translate(-50%,-50%) scaleX(1) rotate(-12deg)}49%{left:78%;top:16%;transform:translate(-50%,-50%) scaleX(1) rotate(-12deg)}51%{left:78%;top:16%;transform:translate(-50%,-50%) scaleX(-1) rotate(18deg)}62.5%{left:64%;top:58%;transform:translate(-50%,-50%) scaleX(-1) rotate(10deg)}75%{left:38%;top:78%;transform:translate(-50%,-50%) scaleX(-1) rotate(-17deg)}87.5%{left:12%;top:44%;transform:translate(-50%,-50%) scaleX(-1) rotate(14deg)}100%{left:-12%;top:72%;transform:translate(-50%,-50%) scaleX(-1) rotate(14deg)}}
@keyframes itr-la-wander2{0%{left:112%;top:30%;transform:translate(-50%,-50%) scaleX(-1) rotate(11deg)}12.5%{left:84%;top:52%;transform:translate(-50%,-50%) scaleX(-1) rotate(9deg)}25%{left:60%;top:70%;transform:translate(-50%,-50%) scaleX(-1) rotate(-10deg)}37.5%{left:40%;top:50%;transform:translate(-50%,-50%) scaleX(-1) rotate(-15deg)}49%{left:22%;top:20%;transform:translate(-50%,-50%) scaleX(-1) rotate(-15deg)}51%{left:22%;top:20%;transform:translate(-50%,-50%) scaleX(1) rotate(-4deg)}62.5%{left:46%;top:12%;transform:translate(-50%,-50%) scaleX(1) rotate(12deg)}75%{left:70%;top:36%;transform:translate(-50%,-50%) scaleX(1) rotate(15deg)}87.5%{left:94%;top:66%;transform:translate(-50%,-50%) scaleX(1) rotate(-18deg)}100%{left:112%;top:30%;transform:translate(-50%,-50%) scaleX(1) rotate(-18deg)}}
@keyframes itr-la-wander3{0%{left:40%;top:-12%;transform:translate(-50%,-50%) scaleX(-1) rotate(18deg)}11.5%{left:34%;top:30%;transform:translate(-50%,-50%) scaleX(-1) rotate(18deg)}13.5%{left:34%;top:30%;transform:translate(-50%,-50%) scaleX(1) rotate(11deg)}25%{left:58%;top:52%;transform:translate(-50%,-50%) scaleX(1) rotate(-6deg)}36.5%{left:86%;top:40%;transform:translate(-50%,-50%) scaleX(1) rotate(-6deg)}38.5%{left:86%;top:40%;transform:translate(-50%,-50%) scaleX(-1) rotate(18deg)}50%{left:72%;top:76%;transform:translate(-50%,-50%) scaleX(-1) rotate(-6deg)}62.5%{left:44%;top:64%;transform:translate(-50%,-50%) scaleX(-1) rotate(8deg)}75%{left:20%;top:80%;transform:translate(-50%,-50%) scaleX(-1) rotate(-15deg)}86.5%{left:10%;top:50%;transform:translate(-50%,-50%) scaleX(-1) rotate(-15deg)}88.5%{left:10%;top:50%;transform:translate(-50%,-50%) scaleX(1) rotate(-18deg)}100%{left:40%;top:-12%;transform:translate(-50%,-50%) scaleX(1) rotate(-18deg)}}

