/* ===== SPINNER FAMILY (12) ===== */
.lds-spinner-2{display:inline-block;position:relative;width:32px;height:32px}.lds-spinner-2:before,.lds-spinner-2:after{content:'';position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid transparent;border-top-color:var(--loader-color,#0d6efd);animation:spin2 1.5s linear infinite}.lds-spinner-2:after{border-top-color:transparent;border-right-color:var(--loader-color,#0d6efd);animation-delay:-.75s;opacity:.5}@keyframes spin2{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
.lds-spinner-3{display:inline-block;position:relative;width:40px;height:40px}.lds-spinner-3 div{position:absolute;width:100%;height:100%;border:3px solid transparent;border-top-color:var(--loader-color,#0d6efd);border-radius:50%;animation:spin3 1.8s cubic-bezier(.5,0,.5,1) infinite}.lds-spinner-3 div:nth-child(2){animation-delay:-.6s;border-top-color:transparent;border-right-color:var(--loader-color,#0d6efd)}.lds-spinner-3 div:nth-child(3){animation-delay:-1.2s;border-bottom-color:var(--loader-color,#0d6efd)}@keyframes spin3{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
.lds-spinner-4{display:inline-block;position:relative;width:40px;height:40px}.lds-spinner-4 div{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:spin4 1.2s ease-in-out infinite}.lds-spinner-4 div:nth-child(1){top:2px;left:16px;animation-delay:-.9s}.lds-spinner-4 div:nth-child(2){top:16px;right:2px;animation-delay:-.6s}.lds-spinner-4 div:nth-child(3){bottom:2px;left:16px;animation-delay:-.3s}.lds-spinner-4 div:nth-child(4){top:16px;left:2px;animation-delay:0s}@keyframes spin4{0%,100%{transform:scale(1)}50%{transform:scale(.3);opacity:.4}}
.lds-spinner-5{display:inline-block;position:relative;width:40px;height:40px}.lds-spinner-5 div{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:spin5 1.4s linear infinite}.lds-spinner-5 div:nth-child(1){top:2px;left:17px;animation-delay:-1.12s}.lds-spinner-5 div:nth-child(2){top:7px;right:5px;animation-delay:-.84s}.lds-spinner-5 div:nth-child(3){bottom:7px;right:5px;animation-delay:-.56s}.lds-spinner-5 div:nth-child(4){bottom:2px;left:17px;animation-delay:-.28s}.lds-spinner-5 div:nth-child(5){top:7px;left:5px;animation-delay:0s}@keyframes spin5{0%{transform:translateY(0)}25%{transform:translateY(-4px)}50%{transform:translateY(0)}75%{transform:translateY(4px)}100%{transform:translateY(0)}}
.lds-spinner-6{display:inline-block;position:relative;width:40px;height:40px}.lds-spinner-6 div{position:absolute;width:4px;height:12px;border-radius:2px;background:var(--loader-color,#0d6efd);top:14px;animation:spin6 1.2s ease-in-out infinite}.lds-spinner-6 div:nth-child(1){left:18px;animation-delay:-1.1s;transform:rotate(0deg) translateY(-12px)}.lds-spinner-6 div:nth-child(2){left:18px;animation-delay:-1s;transform:rotate(60deg) translateY(-12px)}.lds-spinner-6 div:nth-child(3){left:18px;animation-delay:-.9s;transform:rotate(120deg) translateY(-12px)}.lds-spinner-6 div:nth-child(4){left:18px;animation-delay:-.8s;transform:rotate(180deg) translateY(-12px)}.lds-spinner-6 div:nth-child(5){left:18px;animation-delay:-.7s;transform:rotate(240deg) translateY(-12px)}.lds-spinner-6 div:nth-child(6){left:18px;animation-delay:-.6s;transform:rotate(300deg) translateY(-12px)}@keyframes spin6{0%,100%{opacity:1}50%{opacity:.2}}
.lds-spinner-8{display:inline-block;position:relative;width:40px;height:40px}.lds-spinner-8 div{position:absolute;width:4px;height:10px;border-radius:2px;background:var(--loader-color,#0d6efd);top:15px;animation:spin6 1.2s ease-in-out infinite}.lds-spinner-8 div:nth-child(1){left:18px;animation-delay:-1.05s;transform:rotate(0deg) translateY(-12px)}.lds-spinner-8 div:nth-child(2){left:18px;animation-delay:-.9s;transform:rotate(45deg) translateY(-12px)}.lds-spinner-8 div:nth-child(3){left:18px;animation-delay:-.75s;transform:rotate(90deg) translateY(-12px)}.lds-spinner-8 div:nth-child(4){left:18px;animation-delay:-.6s;transform:rotate(135deg) translateY(-12px)}.lds-spinner-8 div:nth-child(5){left:18px;animation-delay:-.45s;transform:rotate(180deg) translateY(-12px)}.lds-spinner-8 div:nth-child(6){left:18px;animation-delay:-.3s;transform:rotate(225deg) translateY(-12px)}.lds-spinner-8 div:nth-child(7){left:18px;animation-delay:-.15s;transform:rotate(270deg) translateY(-12px)}.lds-spinner-8 div:nth-child(8){left:18px;animation-delay:0s;transform:rotate(315deg) translateY(-12px)}
.lds-spinner-dashed{display:inline-block;position:relative;width:32px;height:32px}.lds-spinner-dashed div{position:absolute;width:100%;height:100%;border-radius:50%;border:3px dashed var(--loader-color,#0d6efd);animation:spin2 2s linear infinite}
.lds-spinner-dotted{display:inline-block;position:relative;width:32px;height:32px}.lds-spinner-dotted div{position:absolute;width:100%;height:100%;border-radius:50%;border:3px dotted var(--loader-color,#0d6efd);animation:spin2 3s linear infinite}
.lds-spinner-double{display:inline-block;position:relative;width:40px;height:40px}.lds-spinner-double div{position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid transparent;border-top-color:var(--loader-color,#0d6efd);animation:spin2 1s linear infinite}.lds-spinner-double div:nth-child(2){width:70%;height:70%;top:15%;left:15%;border-bottom-color:var(--loader-color,#0d6efd);border-top-color:transparent;animation-duration:.6s;animation-direction:reverse}
.lds-spinner-segment{display:inline-block;position:relative;width:32px;height:32px}.lds-spinner-segment div{position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid var(--loader-color,#0d6efd);border-right-color:transparent;border-bottom-color:transparent;animation:spin2 1.2s ease-in-out infinite}.lds-spinner-segment div:nth-child(2){width:60%;height:60%;top:20%;left:20%;border-left-color:transparent;border-top-color:transparent;animation-direction:reverse;animation-duration:.8s}
.lds-spinner-gradient{display:inline-block;position:relative;width:36px;height:36px;border-radius:50%;background:conic-gradient(from 0deg,var(--loader-color,#0d6efd),transparent,var(--loader-color,#0d6efd));animation:spin2 1s linear infinite}.lds-spinner-gradient:after{content:'';position:absolute;top:4px;left:4px;right:4px;bottom:4px;border-radius:50%;background:var(--bs-body-bg,#fff)}

/* ===== DOTS FAMILY (16) ===== */
.lds-dots-2{display:inline-block;position:relative;width:40px;height:10px}.lds-dots-2 div{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dots2 1s ease-in-out infinite}.lds-dots-2 div:nth-child(1){left:0;animation-delay:-.5s}.lds-dots-2 div:nth-child(2){left:30px;animation-delay:0s}@keyframes dots2{0%,100%{transform:scale(.6)}50%{transform:scale(1)}}
.lds-dots-4{display:inline-block;position:relative;width:40px;height:10px}.lds-dots-4 div{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dots4 1.2s ease-in-out infinite}.lds-dots-4 div:nth-child(1){left:0;animation-delay:-.9s}.lds-dots-4 div:nth-child(2){left:12px;animation-delay:-.6s}.lds-dots-4 div:nth-child(3){left:24px;animation-delay:-.3s}.lds-dots-4 div:nth-child(4){left:36px;animation-delay:0s}@keyframes dots4{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.lds-dots-5{display:inline-block;position:relative;width:48px;height:10px}.lds-dots-5 div{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dots5 1.4s ease-in-out infinite}.lds-dots-5 div:nth-child(1){left:0;animation-delay:-1.12s}.lds-dots-5 div:nth-child(2){left:10px;animation-delay:-.84s}.lds-dots-5 div:nth-child(3){left:20px;animation-delay:-.56s}.lds-dots-5 div:nth-child(4){left:30px;animation-delay:-.28s}.lds-dots-5 div:nth-child(5){left:40px;animation-delay:0s}@keyframes dots5{0%,100%{transform:scale(.5);opacity:.3}25%{transform:scale(1);opacity:1}50%{transform:scale(.5);opacity:.3}}
.lds-dots-6{display:inline-block;position:relative;width:60px;height:10px}.lds-dots-6 div{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dots6 1s ease-in-out infinite}.lds-dots-6 div:nth-child(1){left:0;animation-delay:-.84s}.lds-dots-6 div:nth-child(2){left:10px;animation-delay:-.7s}.lds-dots-6 div:nth-child(3){left:20px;animation-delay:-.56s}.lds-dots-6 div:nth-child(4){left:30px;animation-delay:-.42s}.lds-dots-6 div:nth-child(5){left:40px;animation-delay:-.28s}.lds-dots-6 div:nth-child(6){left:50px;animation-delay:-.14s}@keyframes dots6{0%,100%{transform:translateY(0);opacity:.3}50%{transform:translateY(-8px);opacity:1}}
.lds-dots-8{display:inline-block;position:relative;width:80px;height:10px}.lds-dots-8 div{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dots6 .8s ease-in-out infinite}.lds-dots-8 div:nth-child(1){left:0;animation-delay:-.7s}.lds-dots-8 div:nth-child(2){left:10px;animation-delay:-.6s}.lds-dots-8 div:nth-child(3){left:20px;animation-delay:-.5s}.lds-dots-8 div:nth-child(4){left:30px;animation-delay:-.4s}.lds-dots-8 div:nth-child(5){left:40px;animation-delay:-.3s}.lds-dots-8 div:nth-child(6){left:50px;animation-delay:-.2s}.lds-dots-8 div:nth-child(7){left:60px;animation-delay:-.1s}.lds-dots-8 div:nth-child(8){left:70px;animation-delay:0s}
.lds-dots-scale{display:inline-block;position:relative;width:60px;height:14px}.lds-dots-scale div{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dotsScale 1.2s ease-in-out infinite}.lds-dots-scale div:nth-child(1){left:0;animation-delay:-.96s}.lds-dots-scale div:nth-child(2){left:16px;animation-delay:-.72s}.lds-dots-scale div:nth-child(3){left:32px;animation-delay:-.48s}.lds-dots-scale div:nth-child(4){left:48px;animation-delay:-.24s}@keyframes dotsScale{0%,100%{transform:scale(.6);opacity:.3}50%{transform:scale(1.2);opacity:1}}
.lds-dots-fade{display:inline-block;position:relative;width:60px;height:10px}.lds-dots-fade div{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dotsFade 1.6s ease-in-out infinite}.lds-dots-fade div:nth-child(1){left:0;animation-delay:-1.4s}.lds-dots-fade div:nth-child(2){left:13px;animation-delay:-1.2s}.lds-dots-fade div:nth-child(3){left:26px;animation-delay:-1s}.lds-dots-fade div:nth-child(4){left:39px;animation-delay:-.8s}.lds-dots-fade div:nth-child(5){left:52px;animation-delay:-.6s}@keyframes dotsFade{0%,100%{opacity:.2}50%{opacity:1}}
.lds-dots-spin{display:inline-block;position:relative;width:32px;height:32px}.lds-dots-spin div{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dotsSpin 1.4s ease-in-out infinite}.lds-dots-spin div:nth-child(1){top:2px;left:12px;animation-delay:-1.05s}.lds-dots-spin div:nth-child(2){top:12px;right:2px;animation-delay:-.7s}.lds-dots-spin div:nth-child(3){bottom:2px;left:12px;animation-delay:-.35s}.lds-dots-spin div:nth-child(4){top:12px;left:2px;animation-delay:0s}@keyframes dotsSpin{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.lds-dots-jump{display:inline-block;position:relative;width:60px;height:20px}.lds-dots-jump div{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dotsJump 1s ease-in-out infinite}.lds-dots-jump div:nth-child(1){left:0;animation-delay:-.8s}.lds-dots-jump div:nth-child(2){left:16px;animation-delay:-.6s}.lds-dots-jump div:nth-child(3){left:32px;animation-delay:-.4s}.lds-dots-jump div:nth-child(4){left:48px;animation-delay:-.2s}@keyframes dotsJump{0%,100%{transform:translateY(0) scaleY(1)}30%{transform:translateY(-10px) scaleY(.8)}60%{transform:translateY(0) scaleY(1)}}
.lds-dots-row{display:inline-block;position:relative;width:48px;height:8px}.lds-dots-row div{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);margin:0 2px;animation:dotsRow .6s ease-in-out infinite alternate}.lds-dots-row div:nth-child(2){animation-delay:-.2s}.lds-dots-row div:nth-child(3){animation-delay:-.4s}@keyframes dotsRow{0%{opacity:.2;transform:scale(.7)}100%{opacity:1;transform:scale(1)}}
.lds-dots-random{display:inline-block;position:relative;width:50px;height:40px}.lds-dots-random div{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:dotsRandom 1.5s ease-in-out infinite}.lds-dots-random div:nth-child(1){top:8px;left:4px;animation-delay:-1.2s}.lds-dots-random div:nth-child(2){top:20px;left:20px;animation-delay:-.8s}.lds-dots-random div:nth-child(3){top:4px;left:36px;animation-delay:-.4s}.lds-dots-random div:nth-child(4){top:28px;left:8px;animation-delay:-1s}.lds-dots-random div:nth-child(5){top:12px;left:28px;animation-delay:-.6s}.lds-dots-random div:nth-child(6){top:24px;left:40px;animation-delay:-.2s}@keyframes dotsRandom{0%,100%{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}

/* ===== RING FAMILY (10) ===== */
.lds-ring-2{display:inline-block;position:relative;width:40px;height:40px}.lds-ring-2 div{box-sizing:border-box;display:block;position:absolute;width:32px;height:32px;margin:4px;border:3px solid var(--loader-color,#0d6efd);border-radius:50%;animation:ring2 1.5s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--loader-color,#0d6efd) transparent transparent transparent}.lds-ring-2 div:nth-child(2){animation-delay:-.75s}@keyframes ring2{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
.lds-ring-4{display:inline-block;position:relative;width:40px;height:40px}.lds-ring-4 div{box-sizing:border-box;display:block;position:absolute;width:32px;height:32px;margin:4px;border:2px solid var(--loader-color,#0d6efd);border-radius:50%;animation:ring4 1.8s ease-in-out infinite;border-color:var(--loader-color,#0d6efd)}.lds-ring-4 div:nth-child(1){width:32px;height:32px;margin:4px;animation-delay:-1.35s;opacity:.2}.lds-ring-4 div:nth-child(2){width:24px;height:24px;margin:8px;animation-delay:-.9s;opacity:.4}.lds-ring-4 div:nth-child(3){width:16px;height:16px;margin:12px;animation-delay:-.45s;opacity:.6}.lds-ring-4 div:nth-child(4){width:8px;height:8px;margin:16px;opacity:.8}@keyframes ring4{0%,100%{transform:scale(1);opacity:var(--opacity,.2)}50%{transform:scale(1.5);opacity:1}}
.lds-ring-expand{display:inline-block;position:relative;width:48px;height:48px}.lds-ring-expand div{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid var(--loader-color,#0d6efd);animation:ringExpand 2s ease-out infinite}.lds-ring-expand div:nth-child(2){animation-delay:-1s}@keyframes ringExpand{0%{transform:scale(.3);opacity:0}50%{opacity:.6}100%{transform:scale(1.3);opacity:0}}
.lds-ring-contract{display:inline-block;position:relative;width:40px;height:40px}.lds-ring-contract div{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid var(--loader-color,#0d6efd);animation:ringContract 1.5s ease-in infinite}.lds-ring-contract div:nth-child(2){animation-delay:-.75s}@keyframes ringContract{0%{transform:scale(1);opacity:.8}100%{transform:scale(.2);opacity:0}}
.lds-ring-pulse{display:inline-block;position:relative;width:36px;height:36px}.lds-ring-pulse div{position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid var(--loader-color,#0d6efd);animation:ringPulse 1.8s ease-in-out infinite}.lds-ring-pulse div:nth-child(2){animation-delay:-.9s}@keyframes ringPulse{0%,100%{transform:scale(1);opacity:.4}50%{transform:scale(1.2);opacity:1}}
.lds-ring-color{display:inline-block;position:relative;width:32px;height:32px}.lds-ring-color div{position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid var(--loader-color,#0d6efd);border-top-color:transparent;animation:spin2 1s linear infinite}.lds-ring-color div:nth-child(2){width:70%;height:70%;top:15%;left:15%;border-color:transparent;border-bottom-color:var(--loader-color,#0d6efd);animation-duration:1.5s;opacity:.5}
.lds-ring-segment{display:inline-block;position:relative;width:36px;height:36px}.lds-ring-segment div{position:absolute;width:80%;height:80%;top:10%;left:10%;border-radius:50%;border:3px solid var(--loader-color,#0d6efd);clip-path:inset(0 50% 0 0);animation:ringSegment 1.5s linear infinite}.lds-ring-segment div:nth-child(2){clip-path:inset(0 0 0 50%);animation-delay:-.75s;opacity:.5}@keyframes ringSegment{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
.lds-ring-dashed{display:inline-block;position:relative;width:36px;height:36px}.lds-ring-dashed div{position:absolute;width:100%;height:100%;border-radius:50%;border:3px dashed var(--loader-color,#0d6efd);opacity:.4;animation:spin2 2s linear infinite}.lds-ring-dashed div:nth-child(2){width:70%;height:70%;top:15%;left:15%;border-style:dotted;opacity:.7;animation-direction:reverse;animation-duration:1s}
.lds-ring-dot{display:inline-block;position:relative;width:36px;height:36px}.lds-ring-dot div{position:absolute;width:100%;height:100%;border-radius:50%;border:2px dotted var(--loader-color,#0d6efd);animation:spin2 3s linear infinite}.lds-ring-dot div:after{content:'';position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--loader-color,#0d6efd)}

/* ===== BARS FAMILY (12) ===== */
.lds-bars-2{display:inline-block;position:relative;width:24px;height:24px}.lds-bars-2 div{display:inline-block;position:absolute;left:4px;width:4px;background:var(--loader-color,#0d6efd);animation:bars2 .8s ease-in-out infinite;border-radius:2px}.lds-bars-2 div:nth-child(1){left:4px;animation-delay:-.4s;height:16px;bottom:4px}.lds-bars-2 div:nth-child(2){left:12px;animation-delay:0s;height:20px;bottom:2px}@keyframes bars2{0%,100%{transform:scaleY(.6);opacity:.5}50%{transform:scaleY(1);opacity:1}}
.lds-bars-3{display:inline-block;position:relative;width:28px;height:24px}.lds-bars-3 div{display:inline-block;position:absolute;width:4px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:bars3 1s ease-in-out infinite}.lds-bars-3 div:nth-child(1){left:2px;height:12px;bottom:2px;animation-delay:-.8s}.lds-bars-3 div:nth-child(2){left:10px;height:20px;bottom:2px;animation-delay:-.4s}.lds-bars-3 div:nth-child(3){left:18px;height:8px;bottom:2px;animation-delay:0s}@keyframes bars3{0%,100%{opacity:.3}50%{opacity:1}}
.lds-bars-4{display:inline-block;position:relative;width:34px;height:24px}.lds-bars-4 div{display:inline-block;position:absolute;bottom:2px;width:4px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:bars4 1.2s ease-in-out infinite}.lds-bars-4 div:nth-child(1){left:2px;height:10px;animation-delay:-1s}.lds-bars-4 div:nth-child(2){left:10px;height:20px;animation-delay:-.7s}.lds-bars-4 div:nth-child(3){left:18px;height:14px;animation-delay:-.4s}.lds-bars-4 div:nth-child(4){left:26px;height:6px;animation-delay:-.1s}@keyframes bars4{0%,100%{transform:scaleY(.5);opacity:.4}50%{transform:scaleY(1);opacity:1}}
.lds-bars-6{display:inline-block;position:relative;width:44px;height:24px}.lds-bars-6 div{display:inline-block;position:absolute;left:2px;width:4px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:bars2 .8s ease-in-out infinite}.lds-bars-6 div:nth-child(1){left:2px;height:8px;bottom:8px;animation-delay:-.6s}.lds-bars-6 div:nth-child(2){left:9px;height:16px;bottom:4px;animation-delay:-.5s}.lds-bars-6 div:nth-child(3){left:16px;height:24px;bottom:0;animation-delay:-.4s}.lds-bars-6 div:nth-child(4){left:23px;height:20px;bottom:2px;animation-delay:-.3s}.lds-bars-6 div:nth-child(5){left:30px;height:12px;bottom:6px;animation-delay:-.2s}.lds-bars-6 div:nth-child(6){left:37px;height:6px;bottom:9px;animation-delay:-.1s}
.lds-bars-8{display:inline-block;position:relative;width:60px;height:24px}.lds-bars-8 div{display:inline-block;position:absolute;left:2px;bottom:0;width:4px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:bars2 .8s ease-in-out infinite}.lds-bars-8 div:nth-child(1){left:2px;height:6px;animation-delay:-.7s}.lds-bars-8 div:nth-child(2){left:9px;height:14px;animation-delay:-.6s}.lds-bars-8 div:nth-child(3){left:16px;height:22px;animation-delay:-.5s}.lds-bars-8 div:nth-child(4){left:23px;height:24px;animation-delay:-.4s}.lds-bars-8 div:nth-child(5){left:30px;height:20px;animation-delay:-.3s}.lds-bars-8 div:nth-child(6){left:37px;height:14px;animation-delay:-.2s}.lds-bars-8 div:nth-child(7){left:44px;height:8px;animation-delay:-.1s}.lds-bars-8 div:nth-child(8){left:51px;height:4px;animation-delay:0s}
.lds-bars-wave{display:inline-block;position:relative;width:44px;height:24px}.lds-bars-wave div{display:inline-block;position:absolute;left:2px;bottom:0;width:5px;border-radius:3px;background:var(--loader-color,#0d6efd);animation:barsWave 1.4s ease-in-out infinite}.lds-bars-wave div:nth-child(1){left:2px;height:24px;animation-delay:-1.2s}.lds-bars-wave div:nth-child(2){left:10px;height:16px;animation-delay:-.9s}.lds-bars-wave div:nth-child(3){left:18px;height:8px;animation-delay:-.6s}.lds-bars-wave div:nth-child(4){left:26px;height:16px;animation-delay:-.3s}.lds-bars-wave div:nth-child(5){left:34px;height:24px;animation-delay:0s}@keyframes barsWave{0%,100%{transform:scaleY(.5)}50%{transform:scaleY(1)}}
.lds-bars-stagger{display:inline-block;position:relative;width:36px;height:24px}.lds-bars-stagger div{display:inline-block;position:absolute;bottom:0;width:4px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:barsStagger 1.2s ease-in-out infinite}.lds-bars-stagger div:nth-child(1){left:2px;height:20px;animation-delay:-1s}.lds-bars-stagger div:nth-child(2){left:10px;height:24px;animation-delay:-.7s}.lds-bars-stagger div:nth-child(3){left:18px;height:14px;animation-delay:-.4s}.lds-bars-stagger div:nth-child(4){left:26px;height:8px;animation-delay:-.1s}@keyframes barsStagger{0%,100%{transform:scaleY(.4);opacity:.4}50%{transform:scaleY(1);opacity:1}}
.lds-bars-scale{display:inline-block;position:relative;width:32px;height:24px}.lds-bars-scale div{display:inline-block;position:absolute;bottom:2px;width:4px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:barsScale 1.6s ease-in-out infinite}.lds-bars-scale div:nth-child(1){left:2px;height:16px;animation-delay:-1.4s}.lds-bars-scale div:nth-child(2){left:10px;height:20px;animation-delay:-1s}.lds-bars-scale div:nth-child(3){left:18px;height:8px;animation-delay:-.6s}.lds-bars-scale div:nth-child(4){left:26px;height:12px;animation-delay:-.2s}@keyframes barsScale{0%,100%{opacity:.3}25%{opacity:1}50%{opacity:.3}}
.lds-bars-color{display:inline-block;position:relative;width:36px;height:24px}.lds-bars-color div{display:inline-block;position:absolute;left:2px;bottom:2px;width:5px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:barsColor 2s ease-in-out infinite}.lds-bars-color div:nth-child(1){left:2px;height:20px;animation-delay:-1.6s}.lds-bars-color div:nth-child(2){left:10px;height:12px;animation-delay:-1.2s}.lds-bars-color div:nth-child(3){left:18px;height:20px;animation-delay:-.8s}.lds-bars-color div:nth-child(4){left:26px;height:8px;animation-delay:-.4s}@keyframes barsColor{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}
.lds-bars-skew{display:inline-block;position:relative;width:36px;height:24px}.lds-bars-skew div{display:inline-block;position:absolute;bottom:2px;width:5px;background:var(--loader-color,#0d6efd);animation:barsSkew 1s ease-in-out infinite}.lds-bars-skew div:nth-child(1){left:2px;height:16px;animation-delay:-.8s;border-radius:0 4px 0 4px}.lds-bars-skew div:nth-child(2){left:10px;height:24px;animation-delay:-.5s;border-radius:4px 0 4px 0}.lds-bars-skew div:nth-child(3){left:18px;height:10px;animation-delay:-.2s;border-radius:0 4px 0 4px}@keyframes barsSkew{0%,100%{transform:skewX(0)}50%{transform:skewX(-10deg)}}

/* ===== PULSE FAMILY (8) ===== */
.lds-pulse-2{display:inline-block;position:relative;width:48px;height:48px}.lds-pulse-2 div{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid var(--loader-color,#0d6efd);animation:pulse2 2s ease-out infinite}.lds-pulse-2 div:nth-child(2){animation-delay:-1s}@keyframes pulse2{0%{transform:scale(.2);opacity:0}50%{opacity:.6}100%{transform:scale(1.1);opacity:0}}
.lds-pulse-3{display:inline-block;position:relative;width:48px;height:48px}.lds-pulse-3 div{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid var(--loader-color,#0d6efd);animation:pulse2 2s ease-out infinite}.lds-pulse-3 div:nth-child(2){animation-delay:-.66s}.lds-pulse-3 div:nth-child(3){animation-delay:-1.33s}
.lds-pulse-glow{display:inline-block;position:relative;width:20px;height:20px}.lds-pulse-glow div{width:100%;height:100%;border-radius:50%;background:var(--loader-color,#0d6efd);animation:pulseGlow 1.5s ease-in-out infinite;box-shadow:0 0 0 0 var(--loader-color,#0d6efd)}@keyframes pulseGlow{0%,100%{transform:scale(1);box-shadow:0 0 0 0 var(--loader-color,#0d6efd)}50%{transform:scale(1.1);box-shadow:0 0 20px 6px var(--loader-color,#0d6efd)}}
.lds-pulse-wave{display:inline-block;position:relative;width:40px;height:40px}.lds-pulse-wave div{position:absolute;width:100%;height:100%;border-radius:50%;background:var(--loader-color,#0d6efd);opacity:.6;animation:pulseWave 1.6s ease-out infinite}.lds-pulse-wave div:nth-child(2){animation-delay:-.8s}@keyframes pulseWave{0%{transform:scale(0);opacity:.8}100%{transform:scale(1);opacity:0}}
.lds-pulse-ring{display:inline-block;position:relative;width:36px;height:36px}.lds-pulse-ring div{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid var(--loader-color,#0d6efd);animation:pulseRing 2s ease-in-out infinite}.lds-pulse-ring div:nth-child(2){animation-delay:-1s;border-style:dashed}@keyframes pulseRing{0%,100%{transform:rotate(0) scale(1);opacity:.4}50%{transform:rotate(180deg) scale(1.1);opacity:1}}
.lds-pulse-expand{display:inline-block;position:relative;width:20px;height:20px}.lds-pulse-expand div{width:100%;height:100%;border-radius:50%;background:var(--loader-color,#0d6efd);animation:pulseExpand 1.2s ease-in-out infinite}@keyframes pulseExpand{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(2);opacity:.1}}
.lds-pulse-beat{display:inline-block;position:relative;width:20px;height:20px}.lds-pulse-beat div{width:100%;height:100%;border-radius:50%;background:var(--loader-color,#0d6efd);animation:pulseBeat 1s ease-in-out infinite}@keyframes pulseBeat{0%,100%{transform:scale(1)}15%{transform:scale(1.3)}30%{transform:scale(1)}45%{transform:scale(1.2)}60%{transform:scale(1)}}
.lds-pulse-burst{display:inline-block;position:relative;width:20px;height:20px}.lds-pulse-burst div{width:100%;height:100%;border-radius:50%;background:var(--loader-color,#0d6efd);animation:pulseBurst 1.8s ease-in-out infinite}.lds-pulse-burst div:after{content:'';position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border-radius:50%;border:2px solid var(--loader-color,#0d6efd);animation:pulseBurst 1.8s ease-in-out infinite}@keyframes pulseBurst{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}0%,100%{transform:scale(1)}}

/* ===== FLIP FAMILY (6) ===== */
.lds-flip-2{display:inline-block;position:relative;width:40px;height:16px}.lds-flip-2 div{display:inline-block;position:absolute;width:14px;height:14px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:flip2 1.4s ease-in-out infinite}.lds-flip-2 div:nth-child(1){left:2px;animation-delay:-.7s}.lds-flip-2 div:nth-child(2){left:22px;animation-delay:0s}@keyframes flip2{0%,100%{transform:perspective(30px) rotateY(0);opacity:1}50%{transform:perspective(30px) rotateY(180deg);opacity:.3}}
.lds-flip-3{display:inline-block;position:relative;width:50px;height:16px}.lds-flip-3 div{display:inline-block;position:absolute;width:12px;height:12px;border-radius:3px;background:var(--loader-color,#0d6efd);animation:flip3 1.2s ease-in-out infinite}.lds-flip-3 div:nth-child(1){left:2px;animation-delay:-.8s}.lds-flip-3 div:nth-child(2){left:18px;animation-delay:-.4s}.lds-flip-3 div:nth-child(3){left:34px;animation-delay:0s}@keyframes flip3{0%,100%{transform:perspective(20px) rotateX(0)}50%{transform:perspective(20px) rotateX(180deg)}}
.lds-flip-4{display:inline-block;position:relative;width:56px;height:16px}.lds-flip-4 div{display:inline-block;position:absolute;width:10px;height:10px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:flip2 1.6s ease-in-out infinite}.lds-flip-4 div:nth-child(1){left:2px;animation-delay:-1.2s}.lds-flip-4 div:nth-child(2){left:16px;animation-delay:-.8s}.lds-flip-4 div:nth-child(3){left:30px;animation-delay:-.4s}.lds-flip-4 div:nth-child(4){left:44px;animation-delay:0s}
.lds-flip-6{display:inline-block;position:relative;width:70px;height:16px}.lds-flip-6 div{display:inline-block;position:absolute;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:flip6 1.4s ease-in-out infinite}.lds-flip-6 div:nth-child(1){left:3px;animation-delay:-1.2s}.lds-flip-6 div:nth-child(2){left:14px;animation-delay:-.9s}.lds-flip-6 div:nth-child(3){left:25px;animation-delay:-.6s}.lds-flip-6 div:nth-child(4){left:36px;animation-delay:-.3s}.lds-flip-6 div:nth-child(5){left:47px;animation-delay:0s}@keyframes flip6{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.3);opacity:.3}}
.lds-flip-scale{display:inline-block;position:relative;width:40px;height:16px}.lds-flip-scale div{display:inline-block;position:absolute;width:12px;height:12px;border-radius:3px;background:var(--loader-color,#0d6efd);animation:flipScale 1.6s ease-in-out infinite}.lds-flip-scale div:nth-child(1){left:2px;animation-delay:-1.2s}.lds-flip-scale div:nth-child(2){left:14px;animation-delay:-.8s}.lds-flip-scale div:nth-child(3){left:26px;animation-delay:-.4s}@keyframes flipScale{0%,100%{transform:scale(1) rotateX(0)}50%{transform:scale(.7) rotateX(180deg)}}
.lds-flip-color{display:inline-block;position:relative;width:36px;height:16px}.lds-flip-color div{display:inline-block;position:absolute;width:14px;height:14px;border-radius:4px;background:var(--loader-color,#0d6efd);animation:flipColor 1.8s ease-in-out infinite}.lds-flip-color div:nth-child(1){left:1px;animation-delay:-1.2s;opacity:.3}.lds-flip-color div:nth-child(2){left:18px;animation-delay:0s;opacity:1}@keyframes flipColor{0%,100%{transform:perspective(20px) rotateY(0)}50%{transform:perspective(20px) rotateY(180deg)}}

/* ===== ORBIT FAMILY (6) ===== */
.lds-orbit-2{display:inline-block;position:relative;width:40px;height:40px}.lds-orbit-2 div{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--loader-color,#0d6efd);top:50%;left:50%;animation:orbit2 2s linear infinite}.lds-orbit-2 div:first-child{width:8px;height:8px;margin:-4px 0 0 -4px;animation:none;background:var(--loader-color,#0d6efd)}@keyframes orbit2{0%{transform:translate(-50%,-50%) rotate(0deg) translateX(16px) rotate(0deg)}100%{transform:translate(-50%,-50%) rotate(360deg) translateX(16px) rotate(-360deg)}}
.lds-orbit-4{display:inline-block;position:relative;width:40px;height:40px}.lds-orbit-4 div{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--loader-color,#0d6efd);top:50%;left:50%;animation:orbit2 2.5s linear infinite}.lds-orbit-4 div:nth-child(1){width:7px;height:7px;margin:-3.5px 0 0 -3.5px;animation:none}.lds-orbit-4 div:nth-child(2){animation-delay:-.6s;opacity:.8}.lds-orbit-4 div:nth-child(3){animation-delay:-1.2s;opacity:.5}.lds-orbit-4 div:nth-child(4){animation-delay:-1.8s;opacity:.3}
.lds-orbit-5{display:inline-block;position:relative;width:40px;height:40px}.lds-orbit-5 div{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--loader-color,#0d6efd);top:50%;left:50%;animation:orbit2 3s linear infinite}.lds-orbit-5 div:nth-child(1){width:8px;height:8px;margin:-4px 0 0 -4px;animation:none}.lds-orbit-5 div:nth-child(2){animation-delay:-.5s;opacity:1}.lds-orbit-5 div:nth-child(3){animation-delay:-1s;opacity:.7}.lds-orbit-5 div:nth-child(4){animation-delay:-1.5s;opacity:.4}.lds-orbit-5 div:nth-child(5){animation-delay:-2s;opacity:.2}
.lds-orbit-6{display:inline-block;position:relative;width:40px;height:40px}.lds-orbit-6 div{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--loader-color,#0d6efd);top:50%;left:50%;animation:orbit2 2s linear infinite}.lds-orbit-6 div:nth-child(1){width:8px;height:8px;margin:-4px 0 0 -4px;animation:none}.lds-orbit-6 div:nth-child(2){animation-delay:-.3s}.lds-orbit-6 div:nth-child(3){animation-delay:-.6s}.lds-orbit-6 div:nth-child(4){animation-delay:-.9s}.lds-orbit-6 div:nth-child(5){animation-delay:-1.2s}.lds-orbit-6 div:nth-child(6){animation-delay:-1.5s}
.lds-orbit-elliptic{display:inline-block;position:relative;width:40px;height:24px}.lds-orbit-elliptic div{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--loader-color,#0d6efd);top:50%;left:50%;animation:orbitElliptic 1.8s ease-in-out infinite}.lds-orbit-elliptic div:nth-child(1){animation-delay:-.9s;opacity:.5}@keyframes orbitElliptic{0%,100%{transform:translate(-50%,-50%) translateX(0)}25%{transform:translate(-50%,-50%) translateX(16px) translateY(-6px)}50%{transform:translate(-50%,-50%) translateX(0)}75%{transform:translate(-50%,-50%) translateX(-16px) translateY(6px)}}
.lds-orbit-spiral{display:inline-block;position:relative;width:32px;height:32px}.lds-orbit-spiral div{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--loader-color,#0d6efd);top:50%;left:50%;animation:orbitSpiral 2s linear infinite}.lds-orbit-spiral div:nth-child(2){width:3px;height:3px;animation-delay:-.5s;opacity:.5}.lds-orbit-spiral div:nth-child(3){width:2px;height:2px;animation-delay:-1s;opacity:.2}@keyframes orbitSpiral{0%{transform:translate(-50%,-50%) rotate(0deg) translateX(4px) rotate(0deg)}100%{transform:translate(-50%,-50%) rotate(360deg) translateX(16px) rotate(-360deg)}}

/* ===== SHAPES FAMILY (10) ===== */
.lds-shape-triangle{display:inline-block;position:relative;width:0;height:0;border-left:18px solid transparent;border-right:18px solid transparent;border-bottom:28px solid var(--loader-color,#0d6efd);animation:shapeTriangle 1.5s ease-in-out infinite;opacity:.6}@keyframes shapeTriangle{0%,100%{transform:scale(1)}50%{transform:scale(1.2);opacity:1}}
.lds-shape-hexagon{display:inline-block;position:relative;width:30px;height:26px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:var(--loader-color,#0d6efd);animation:shapeSpin 2s ease-in-out infinite;opacity:.7}@keyframes shapeSpin{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.1)}}
.lds-shape-pentagon{display:inline-block;position:relative;width:28px;height:26px;clip-path:polygon(50% 0%,100% 38%,82% 100%,18% 100%,0% 38%);background:var(--loader-color,#0d6efd);animation:shapeBounce 1.8s ease-in-out infinite}@keyframes shapeBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.lds-shape-star{display:inline-block;position:relative;width:28px;height:26px;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:var(--loader-color,#0d6efd);animation:shapePulse 1.4s ease-in-out infinite}@keyframes shapePulse{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.2);opacity:1}}
.lds-shape-diamond{display:inline-block;position:relative;width:26px;height:26px;transform:rotate(45deg);background:var(--loader-color,#0d6efd);animation:shapeDiamond 1.6s ease-in-out infinite}@keyframes shapeDiamond{0%,100%{transform:rotate(45deg) scale(1)}50%{transform:rotate(45deg) scale(1.2);opacity:.5}}
.lds-shape-cross{display:inline-block;position:relative;width:20px;height:20px}.lds-shape-cross div{position:absolute;background:var(--loader-color,#0d6efd);animation:shapeCross 1.2s ease-in-out infinite}.lds-shape-cross div:nth-child(1){width:100%;height:4px;top:8px;border-radius:2px}.lds-shape-cross div:nth-child(2){width:4px;height:100%;left:8px;border-radius:2px}@keyframes shapeCross{0%,100%{opacity:.3}50%{opacity:1}}
.lds-shape-plus{display:inline-block;position:relative;width:20px;height:20px}.lds-shape-plus div{position:absolute;background:var(--loader-color,#0d6efd);border-radius:2px;animation:shapePlus 1.8s ease-in-out infinite}.lds-shape-plus div:nth-child(1){width:100%;height:4px;top:8px}.lds-shape-plus div:nth-child(2){width:4px;height:100%;left:8px;animation-delay:-.9s}@keyframes shapePlus{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.5)}}
.lds-shape-moon{display:inline-block;position:relative;width:26px;height:26px;border-radius:50%;box-shadow:8px -3px 0 0 var(--loader-color,#0d6efd);animation:shapeMoon 2s ease-in-out infinite}@keyframes shapeMoon{0%,100%{transform:rotate(0)}50%{transform:rotate(90deg)}}
.lds-shape-heart{display:inline-block;position:relative;width:24px;height:22px}.lds-shape-heart div{position:absolute;width:100%;height:100%}.lds-shape-heart div:before,.lds-shape-heart div:after{content:'';position:absolute;left:12px;top:0;width:12px;height:18px;background:var(--loader-color,#0d6efd);border-radius:12px 12px 0 0;transform:rotate(-45deg);transform-origin:0 100%;animation:heartPulse 1s ease-in-out infinite}.lds-shape-heart div:after{left:0;transform:rotate(45deg);transform-origin:100% 100%}@keyframes heartPulse{0%,100%{transform:rotate(-45deg) scale(1)}15%{transform:rotate(-45deg) scale(1.1)}30%{transform:rotate(-45deg) scale(1)}45%{transform:rotate(-45deg) scale(1.15)}60%{transform:rotate(-45deg) scale(1)}}
.lds-shape-shield{display:inline-block;position:relative;width:24px;height:28px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:var(--loader-color,#0d6efd);animation:shapeShield 1.5s ease-in-out infinite}@keyframes shapeShield{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.15);opacity:.6}}

/* ===== LINE FAMILY (6) ===== */
.lds-line-h{display:inline-block;position:relative;width:80px;height:6px;border-radius:3px;overflow:hidden;background:rgba(0,0,0,.06)}.lds-line-h div{position:absolute;top:0;left:-40%;width:40%;height:100%;border-radius:3px;background:var(--loader-color,#0d6efd);animation:lineH 1.8s ease-in-out infinite}@keyframes lineH{0%{left:-40%}50%{left:30%;width:60%}100%{left:100%}}
.lds-line-v{display:inline-block;position:relative;width:6px;height:60px;border-radius:3px;overflow:hidden;background:rgba(0,0,0,.06)}.lds-line-v div{position:absolute;bottom:-40%;left:0;width:100%;height:40%;border-radius:3px;background:var(--loader-color,#0d6efd);animation:lineV 1.8s ease-in-out infinite}@keyframes lineV{0%{bottom:-40%}50%{bottom:20%;height:60%}100%{bottom:100%}}
.lds-line-x{display:inline-block;position:relative;width:20px;height:20px}.lds-line-x div{position:absolute;width:100%;height:2px;top:9px;background:var(--loader-color,#0d6efd);animation:lineX 1.2s ease-in-out infinite}.lds-line-x div:nth-child(2){transform:rotate(90deg);animation-delay:-.6s}@keyframes lineX{0%,100%{transform:rotate(0);opacity:.3}50%{transform:rotate(180deg);opacity:1}100%{transform:rotate(360deg);opacity:.3}}
.lds-line-cross{display:inline-block;position:relative;width:20px;height:20px}.lds-line-cross div{position:absolute;width:2px;height:60%;top:20%;left:50%;background:var(--loader-color,#0d6efd);animation:lineCross 1s ease-in-out infinite}.lds-line-cross div:nth-child(2){transform:rotate(90deg);animation-delay:-.5s}.lds-line-cross div:nth-child(3){transform:rotate(45deg);animation-delay:-.25s;width:1px}.lds-line-cross div:nth-child(4){transform:rotate(-45deg);animation-delay:-.75s;width:1px}@keyframes lineCross{0%,100%{opacity:.2}50%{opacity:1}}
.lds-line-wave{display:inline-block;position:relative;width:60px;height:20px}.lds-line-wave div{position:absolute;bottom:0;width:4px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:lineWave 1.4s ease-in-out infinite}.lds-line-wave div:nth-child(1){left:2px;height:6px;animation-delay:-1.2s}.lds-line-wave div:nth-child(2){left:10px;height:14px;animation-delay:-.9s}.lds-line-wave div:nth-child(3){left:18px;height:20px;animation-delay:-.6s}.lds-line-wave div:nth-child(4){left:26px;height:14px;animation-delay:-.3s}.lds-line-wave div:nth-child(5){left:34px;height:6px;animation-delay:0s}.lds-line-wave div:nth-child(6){left:42px;height:10px;animation-delay:.1s}.lds-line-wave div:nth-child(7){left:50px;height:4px;animation-delay:.2s}@keyframes lineWave{0%,100%{transform:scaleY(.5);opacity:.4}50%{transform:scaleY(1);opacity:1}}
.lds-line-bounce{display:inline-block;position:relative;width:60px;height:10px}.lds-line-bounce div{position:absolute;bottom:0;width:6px;height:10px;border-radius:3px;background:var(--loader-color,#0d6efd);animation:lineBounce 1s ease-in-out infinite}.lds-line-bounce div:nth-child(1){left:2px;animation-delay:-.8s}.lds-line-bounce div:nth-child(2){left:12px;animation-delay:-.6s}.lds-line-bounce div:nth-child(3){left:22px;animation-delay:-.4s}.lds-line-bounce div:nth-child(4){left:32px;animation-delay:-.2s}.lds-line-bounce div:nth-child(5){left:42px;animation-delay:0s}.lds-line-bounce div:nth-child(6){left:52px;animation-delay:.1s}@keyframes lineBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* ===== FAN FAMILY (4) ===== */
.lds-fan-3{display:inline-block;position:relative;width:36px;height:36px}.lds-fan-3 div{position:absolute;width:8px;height:20px;border-radius:4px;background:var(--loader-color,#0d6efd);top:8px;transform-origin:50% 100%;opacity:.7;animation:fanRotate 1.6s ease-in-out infinite}.lds-fan-3 div:nth-child(1){left:14px;transform:rotate(0deg)}.lds-fan-3 div:nth-child(2){left:14px;transform:rotate(120deg);animation-delay:-.53s}.lds-fan-3 div:nth-child(3){left:14px;transform:rotate(240deg);animation-delay:-1.06s}@keyframes fanRotate{0%,100%{transform:rotate(var(--rot,0)) scaleY(1)}50%{transform:rotate(var(--rot,0)) scaleY(.3);opacity:.3}}
.lds-fan-4{display:inline-block;position:relative;width:36px;height:36px}.lds-fan-4 div{position:absolute;width:6px;height:18px;border-radius:3px;background:var(--loader-color,#0d6efd);top:10px;transform-origin:50% 100%;animation:fanRotate 1.8s ease-in-out infinite}.lds-fan-4 div:nth-child(1){left:15px;transform:rotate(0deg)}.lds-fan-4 div:nth-child(2){left:15px;transform:rotate(90deg);animation-delay:-.45s}.lds-fan-4 div:nth-child(3){left:15px;transform:rotate(180deg);animation-delay:-.9s}.lds-fan-4 div:nth-child(4){left:15px;transform:rotate(270deg);animation-delay:-1.35s}
.lds-fan-5{display:inline-block;position:relative;width:36px;height:36px}.lds-fan-5 div{position:absolute;width:5px;height:16px;border-radius:2px;background:var(--loader-color,#0d6efd);top:11px;transform-origin:50% 100%;animation:fanRotate 2s ease-in-out infinite}.lds-fan-5 div:nth-child(1){left:15.5px;transform:rotate(0deg)}.lds-fan-5 div:nth-child(2){left:15.5px;transform:rotate(72deg);animation-delay:-.4s}.lds-fan-5 div:nth-child(3){left:15.5px;transform:rotate(144deg);animation-delay:-.8s}.lds-fan-5 div:nth-child(4){left:15.5px;transform:rotate(216deg);animation-delay:-1.2s}.lds-fan-5 div:nth-child(5){left:15.5px;transform:rotate(288deg);animation-delay:-1.6s}
.lds-fan-6{display:inline-block;position:relative;width:36px;height:36px}.lds-fan-6 div{position:absolute;width:4px;height:14px;border-radius:2px;background:var(--loader-color,#0d6efd);top:12px;transform-origin:50% 100%;animation:fanRotate 1.8s ease-in-out infinite}.lds-fan-6 div:nth-child(1){left:16px;transform:rotate(0deg)}.lds-fan-6 div:nth-child(2){left:16px;transform:rotate(60deg);animation-delay:-.3s}.lds-fan-6 div:nth-child(3){left:16px;transform:rotate(120deg);animation-delay:-.6s}.lds-fan-6 div:nth-child(4){left:16px;transform:rotate(180deg);animation-delay:-.9s}.lds-fan-6 div:nth-child(5){left:16px;transform:rotate(240deg);animation-delay:-1.2s}.lds-fan-6 div:nth-child(6){left:16px;transform:rotate(300deg);animation-delay:-1.5s}

/* ===== MISC FAMILY (6) ===== */
.lds-clock{display:inline-block;position:relative;width:32px;height:32px;border-radius:50%;border:3px solid var(--loader-color,#0d6efd)}.lds-clock:before{content:'';position:absolute;top:50%;left:50%;width:2px;height:10px;background:var(--loader-color,#0d6efd);transform-origin:50% 0%;transform:translate(-50%,-100%) rotate(0deg);animation:clockHand 2s linear infinite}.lds-clock:after{content:'';position:absolute;top:50%;left:50%;width:2px;height:7px;background:var(--loader-color,#0d6efd);transform-origin:50% 0%;transform:translate(-50%,-100%) rotate(90deg);animation:clockHand 12s linear infinite}@keyframes clockHand{0%{transform:translate(-50%,-100%) rotate(0deg)}100%{transform:translate(-50%,-100%) rotate(360deg)}}
.lds-compass{display:inline-block;position:relative;width:30px;height:30px;border-radius:50%;border:2px solid var(--loader-color,#0d6efd)}.lds-compass:before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:14px solid var(--loader-color,#0d6efd);transform:translate(-50%,-50%) rotate(0deg);transform-origin:50% 60%;animation:spin2 1.5s ease-in-out infinite}.lds-compass:after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:10px solid var(--loader-color,#0d6efd);transform:translate(-50%,-50%) rotate(180deg);transform-origin:50% 40%;animation:spin2 1.5s ease-in-out infinite;animation-direction:reverse;opacity:.5}
.lds-radar{display:inline-block;position:relative;width:32px;height:32px;border-radius:50%;border:2px solid var(--loader-color,#0d6efd)}.lds-radar:before{content:'';position:absolute;top:50%;left:50%;width:16px;height:16px;background:conic-gradient(var(--loader-color,#0d6efd) 0deg,transparent 90deg);border-radius:50%;transform:translate(-50%,-50%) rotate(0deg);transform-origin:50% 50%;animation:spin2 2s linear infinite;mask:radial-gradient(circle at 50% 50%,transparent 50%,#000 50%)}.lds-radar:after{content:'';position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;background:var(--loader-color,#0d6efd);transform:translate(-50%,-50%)}
.lds-blob{display:inline-block;position:relative;width:28px;height:28px;border-radius:42% 58% 70% 30% / 45% 45% 55% 55%;background:var(--loader-color,#0d6efd);animation:blobMorph 4s ease-in-out infinite}@keyframes blobMorph{0%,100%{border-radius:42% 58% 70% 30% / 45% 45% 55% 55%}25%{border-radius:58% 42% 50% 50% / 55% 65% 35% 45%}50%{border-radius:30% 70% 42% 58% / 65% 35% 65% 35%}75%{border-radius:70% 30% 58% 42% / 35% 55% 45% 65%}}
.lds-morph{display:inline-block;position:relative;width:28px;height:28px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:morphShape 3s ease-in-out infinite}@keyframes morphShape{0%,100%{border-radius:50%;transform:rotate(0)}33%{border-radius:4px;transform:rotate(45deg)}66%{border-radius:50% 0 50% 0;transform:rotate(90deg)}}
.lds-tunnel{display:inline-block;position:relative;width:40px;height:40px}.lds-tunnel div{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid var(--loader-color,#0d6efd);animation:tunnel 2s ease-in-out infinite}.lds-tunnel div:nth-child(1){animation-delay:-.4s;opacity:.2}.lds-tunnel div:nth-child(2){width:70%;height:70%;top:15%;left:15%;animation-delay:-.3s;opacity:.4}.lds-tunnel div:nth-child(3){width:40%;height:40%;top:30%;left:30%;animation-delay:-.2s;opacity:.6}.lds-tunnel div:nth-child(4){width:15%;height:15%;top:42.5%;left:42.5%;animation-delay:-.1s;opacity:.8}@keyframes tunnel{0%,100%{transform:scale(1);opacity:var(--opacity,.2)}50%{transform:scale(1.2);opacity:1}}

/* ===== SPRING FAMILY (2) ===== */
.lds-spring-h{display:inline-block;position:relative;width:50px;height:10px}.lds-spring-h div{position:absolute;width:100%;height:4px;top:3px;border-radius:2px;background:var(--loader-color,#0d6efd);animation:springH .6s ease-in-out infinite alternate}@keyframes springH{0%{transform:scaleX(.3);opacity:.3}100%{transform:scaleX(1);opacity:1}}
.lds-spring-v{display:inline-block;position:relative;width:10px;height:50px}.lds-spring-v div{position:absolute;width:4px;left:3px;height:100%;border-radius:2px;background:var(--loader-color,#0d6efd);animation:springV .6s ease-in-out infinite alternate}@keyframes springV{0%{transform:scaleY(.3);opacity:.3;top:35%}100%{transform:scaleY(1);opacity:1;top:0}}

/* ===== ELLIPSIS FAMILY (2) ===== */
.lds-ellipsis-h{display:inline-block;position:relative;width:50px;height:10px}.lds-ellipsis-h div{position:absolute;top:3px;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:ellipsisH 1.6s ease-in-out infinite}.lds-ellipsis-h div:nth-child(1){left:2px;animation-delay:-1.2s}.lds-ellipsis-h div:nth-child(2){left:12px;animation-delay:-.8s}.lds-ellipsis-h div:nth-child(3){left:22px;animation-delay:-.4s}.lds-ellipsis-h div:nth-child(4){left:32px;animation-delay:0s}@keyframes ellipsisH{0%,100%{transform:scale(.6);opacity:.3}50%{transform:scale(1.2);opacity:1}}
.lds-ellipsis-v{display:inline-block;position:relative;width:10px;height:50px}.lds-ellipsis-v div{position:absolute;left:1px;width:8px;height:8px;border-radius:50%;background:var(--loader-color,#0d6efd);animation:ellipsisV 1.6s ease-in-out infinite}.lds-ellipsis-v div:nth-child(1){top:2px;animation-delay:-1.2s}.lds-ellipsis-v div:nth-child(2){top:14px;animation-delay:-.8s}.lds-ellipsis-v div:nth-child(3){top:26px;animation-delay:-.4s}.lds-ellipsis-v div:nth-child(4){top:38px;animation-delay:0s}@keyframes ellipsisV{0%,100%{transform:scale(.6);opacity:.3}50%{transform:scale(1.2);opacity:1}}

/* ===== CROSSHAIR (1) ===== */
.lds-crosshair{display:inline-block;position:relative;width:30px;height:30px}.lds-crosshair div{position:absolute;width:2px;height:100%;left:14px;background:var(--loader-color,#0d6efd);animation:crosshair 1.5s ease-in-out infinite}.lds-crosshair div:nth-child(2){transform:rotate(90deg);animation-delay:-.75s}.lds-crosshair div:before,.lds-crosshair div:after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:var(--loader-color,#0d6efd);top:0;left:-2px;animation:crosshairDot 1.5s ease-in-out infinite}.lds-crosshair div:after{top:auto;bottom:0;animation-delay:-.75s}.lds-crosshair div:nth-child(2):before{animation-delay:-.75s}.lds-crosshair div:nth-child(2):after{animation-delay:0s}@keyframes crosshair{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
@keyframes crosshairDot{0%,100%{opacity:.3;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}

/* ===== SCALE HELPERS ===== */
.loader-sm .lds-grid,.loader-sm .lds-wave,.loader-sm .lds-fade,.loader-sm .lds-rotate,.loader-sm .lds-cube,.loader-sm .lds-heartbeat,.loader-sm .lds-infinity,.loader-sm .lds-bounce,.loader-sm .lds-shimmer,.loader-sm .lds-gear,
.loader-sm .lds-spinner-2,.loader-sm .lds-spinner-3,.loader-sm .lds-spinner-4,.loader-sm .lds-spinner-5,.loader-sm .lds-spinner-6,.loader-sm .lds-spinner-8,.loader-sm .lds-spinner-dashed,.loader-sm .lds-spinner-dotted,.loader-sm .lds-spinner-double,.loader-sm .lds-spinner-segment,.loader-sm .lds-spinner-gradient,
.loader-sm .lds-dots-2,.loader-sm .lds-dots-4,.loader-sm .lds-dots-5,.loader-sm .lds-dots-6,.loader-sm .lds-dots-8,.loader-sm .lds-dots-scale,.loader-sm .lds-dots-fade,.loader-sm .lds-dots-spin,.loader-sm .lds-dots-jump,.loader-sm .lds-dots-row,.loader-sm .lds-dots-random,
.loader-sm .lds-ring-2,.loader-sm .lds-ring-4,.loader-sm .lds-ring-expand,.loader-sm .lds-ring-contract,.loader-sm .lds-ring-pulse,.loader-sm .lds-ring-color,.loader-sm .lds-ring-segment,.loader-sm .lds-ring-dashed,.loader-sm .lds-ring-dot,
.loader-sm .lds-bars-2,.loader-sm .lds-bars-3,.loader-sm .lds-bars-4,.loader-sm .lds-bars-6,.loader-sm .lds-bars-8,.loader-sm .lds-bars-wave,.loader-sm .lds-bars-stagger,.loader-sm .lds-bars-scale,.loader-sm .lds-bars-color,.loader-sm .lds-bars-skew,
.loader-sm .lds-pulse-2,.loader-sm .lds-pulse-3,.loader-sm .lds-pulse-glow,.loader-sm .lds-pulse-wave,.loader-sm .lds-pulse-ring,.loader-sm .lds-pulse-expand,.loader-sm .lds-pulse-beat,.loader-sm .lds-pulse-burst,
.loader-sm .lds-flip-2,.loader-sm .lds-flip-3,.loader-sm .lds-flip-4,.loader-sm .lds-flip-6,.loader-sm .lds-flip-scale,.loader-sm .lds-flip-color,
.loader-sm .lds-orbit-2,.loader-sm .lds-orbit-4,.loader-sm .lds-orbit-5,.loader-sm .lds-orbit-6,.loader-sm .lds-orbit-elliptic,.loader-sm .lds-orbit-spiral,
.loader-sm .lds-shape-triangle,.loader-sm .lds-shape-hexagon,.loader-sm .lds-shape-pentagon,.loader-sm .lds-shape-star,.loader-sm .lds-shape-diamond,.loader-sm .lds-shape-cross,.loader-sm .lds-shape-plus,.loader-sm .lds-shape-moon,.loader-sm .lds-shape-heart,.loader-sm .lds-shape-shield,
.loader-sm .lds-line-h,.loader-sm .lds-line-v,.loader-sm .lds-line-x,.loader-sm .lds-line-cross,.loader-sm .lds-line-wave,.loader-sm .lds-line-bounce,
.loader-sm .lds-fan-3,.loader-sm .lds-fan-4,.loader-sm .lds-fan-5,.loader-sm .lds-fan-6,
.loader-sm .lds-clock,.loader-sm .lds-compass,.loader-sm .lds-radar,.loader-sm .lds-blob,.loader-sm .lds-morph,.loader-sm .lds-tunnel,
.loader-sm .lds-spring-h,.loader-sm .lds-spring-v,.loader-sm .lds-ellipsis-h,.loader-sm .lds-ellipsis-v,.loader-sm .lds-crosshair{transform:scale(.6)}
.loader-lg .lds-grid,.loader-lg .lds-wave,.loader-lg .lds-fade,.loader-lg .lds-rotate,.loader-lg .lds-cube,.loader-lg .lds-heartbeat,.loader-lg .lds-infinity,.loader-lg .lds-bounce,.loader-lg .lds-shimmer,.loader-lg .lds-gear,
.loader-lg .lds-spinner-2,.loader-lg .lds-spinner-3,.loader-lg .lds-spinner-4,.loader-lg .lds-spinner-5,.loader-lg .lds-spinner-6,.loader-lg .lds-spinner-8,.loader-lg .lds-spinner-dashed,.loader-lg .lds-spinner-dotted,.loader-lg .lds-spinner-double,.loader-lg .lds-spinner-segment,.loader-lg .lds-spinner-gradient,
.loader-lg .lds-dots-2,.loader-lg .lds-dots-4,.loader-lg .lds-dots-5,.loader-lg .lds-dots-6,.loader-lg .lds-dots-8,.loader-lg .lds-dots-scale,.loader-lg .lds-dots-fade,.loader-lg .lds-dots-spin,.loader-lg .lds-dots-jump,.loader-lg .lds-dots-row,.loader-lg .lds-dots-random,
.loader-lg .lds-ring-2,.loader-lg .lds-ring-4,.loader-lg .lds-ring-expand,.loader-lg .lds-ring-contract,.loader-lg .lds-ring-pulse,.loader-lg .lds-ring-color,.loader-lg .lds-ring-segment,.loader-lg .lds-ring-dashed,.loader-lg .lds-ring-dot,
.loader-lg .lds-bars-2,.loader-lg .lds-bars-3,.loader-lg .lds-bars-4,.loader-lg .lds-bars-6,.loader-lg .lds-bars-8,.loader-lg .lds-bars-wave,.loader-lg .lds-bars-stagger,.loader-lg .lds-bars-scale,.loader-lg .lds-bars-color,.loader-lg .lds-bars-skew,
.loader-lg .lds-pulse-2,.loader-lg .lds-pulse-3,.loader-lg .lds-pulse-glow,.loader-lg .lds-pulse-wave,.loader-lg .lds-pulse-ring,.loader-lg .lds-pulse-expand,.loader-lg .lds-pulse-beat,.loader-lg .lds-pulse-burst,
.loader-lg .lds-flip-2,.loader-lg .lds-flip-3,.loader-lg .lds-flip-4,.loader-lg .lds-flip-6,.loader-lg .lds-flip-scale,.loader-lg .lds-flip-color,
.loader-lg .lds-orbit-2,.loader-lg .lds-orbit-4,.loader-lg .lds-orbit-5,.loader-lg .lds-orbit-6,.loader-lg .lds-orbit-elliptic,.loader-lg .lds-orbit-spiral,
.loader-lg .lds-shape-triangle,.loader-lg .lds-shape-hexagon,.loader-lg .lds-shape-pentagon,.loader-lg .lds-shape-star,.loader-lg .lds-shape-diamond,.loader-lg .lds-shape-cross,.loader-lg .lds-shape-plus,.loader-lg .lds-shape-moon,.loader-lg .lds-shape-heart,.loader-lg .lds-shape-shield,
.loader-lg .lds-line-h,.loader-lg .lds-line-v,.loader-lg .lds-line-x,.loader-lg .lds-line-cross,.loader-lg .lds-line-wave,.loader-lg .lds-line-bounce,
.loader-lg .lds-fan-3,.loader-lg .lds-fan-4,.loader-lg .lds-fan-5,.loader-lg .lds-fan-6,
.loader-lg .lds-clock,.loader-lg .lds-compass,.loader-lg .lds-radar,.loader-lg .lds-blob,.loader-lg .lds-morph,.loader-lg .lds-tunnel,
.loader-lg .lds-spring-h,.loader-lg .lds-spring-v,.loader-lg .lds-ellipsis-h,.loader-lg .lds-ellipsis-v,.loader-lg .lds-crosshair{transform:scale(1.4)}