#loader{z-index:9999;background:radial-gradient(ellipse 70% 60% at 50% 50%, var(--bg1) 0%, var(--bg0) 100%);flex-direction:column;justify-content:center;align-items:center;gap:28px;transition:opacity .8s,visibility .8s;display:flex;position:fixed;inset:0}#loader.out{opacity:0;visibility:hidden;pointer-events:none}.l-eye-wrap{flex-direction:column;align-items:center;display:flex;position:relative}.l-eye-svg{width:clamp(130px,38vw,180px);height:auto;filter:drop-shadow(0 0 22px color-mix(in srgb, var(--crimson) 35%, transparent));overflow:visible}.l-lash{stroke:var(--crimson);stroke-linecap:round;stroke-width:1.5px;opacity:.7}.l-iris-ring{fill:none;stroke:#c8933a4d;stroke-width:1px}.l-pupil-glow{animation:1.6s ease-in-out infinite pupilGlow}@keyframes pupilGlow{0%,to{opacity:.5;r:10}50%{opacity:1;r:12}}.l-sparkle{color:var(--crimson-p);filter:drop-shadow(0 0 4px var(--crimson));pointer-events:none;font-size:clamp(10px,2.5vw,14px);animation:3s ease-in-out infinite sparkleSpin;position:absolute}.l-sparkle:first-child{animation-duration:2.8s;animation-delay:0s;top:-8px;left:14%}.l-sparkle:nth-child(2){animation-duration:3.2s;animation-delay:.4s;top:-4px;right:12%}.l-sparkle:nth-child(3){animation-duration:2.5s;animation-delay:.9s;bottom:8px;left:8%}.l-sparkle:nth-child(4){animation-duration:3.5s;animation-delay:1.3s;bottom:6px;right:6%}@keyframes sparkleSpin{0%,to{opacity:.2;transform:scale(.7)rotate(0)}50%{opacity:1;transform:scale(1.2)rotate(20deg)}}.l-blush{background:radial-gradient(#f58ca08c 0%,#0000 70%);border-radius:50%;width:clamp(28px,8vw,36px);height:clamp(10px,3vw,14px);animation:1.6s ease-in-out infinite blushPulse;position:absolute;bottom:-2px}.l-blush.left{left:4%}.l-blush.right{right:4%}@keyframes blushPulse{0%,to{opacity:.4}50%{opacity:.9}}.l-dots{align-items:center;gap:8px;display:flex}.l-dot{background:var(--crimson);width:5px;height:5px;box-shadow:0 0 6px var(--crimson);border-radius:50%;animation:1.2s ease-in-out infinite dotBounce}.l-dot:first-child{animation-delay:0s}.l-dot:nth-child(2){background:var(--gold);box-shadow:0 0 6px var(--gold);animation-delay:.18s}.l-dot:nth-child(3){animation-delay:.36s}@keyframes dotBounce{0%,to{opacity:.5;transform:translateY(0)scale(1)}50%{opacity:1;transform:translateY(-7px)scale(1.3)}}.l-text{letter-spacing:clamp(4px,2vw,8px);color:var(--crimson-p);text-transform:uppercase;opacity:.7;font-family:Cormorant Garamond,serif;font-size:clamp(11px,3vw,14px);font-style:italic;animation:1.6s ease-in-out infinite breathe}@keyframes avPop{0%{transform:scale(1)}30%{transform:scale(1.15)rotate(-3deg)}60%{transform:scale(1.08)rotate(2deg)}to{transform:scale(1)}}.avatar-img.av-pop{animation:.45s cubic-bezier(.4,0,.2,1) both avPop}@keyframes ringOut{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}.av-ring{border:2px solid var(--crimson-l);pointer-events:none;z-index:4;border-radius:50%;animation:.75s ease-out forwards ringOut;position:absolute;inset:-8px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes haloPulse{0%,to{box-shadow:inset 0 0 15px color-mix(in srgb, var(--bg0) 50%, transparent), 0 0 25px color-mix(in srgb, var(--crimson) 40%, transparent)}50%{box-shadow:inset 0 0 20px color-mix(in srgb, var(--bg0) 30%, transparent), 0 0 45px color-mix(in srgb, var(--crimson-l) 65%, transparent)}}@keyframes corePulse{0%,to{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}@keyframes breathe{0%,to{opacity:.3}50%{opacity:.85}}@keyframes riseIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{to{background-position:-300%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes cardIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes tapFlash{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}@keyframes badgePop{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes petalDrift{0%{opacity:.7;transform:translateY(0)rotate(0)translate(0)}to{opacity:0;transform:translateY(-100vh)rotate(360deg)translate(40px)}}@keyframes dropOpen{0%{opacity:0;transform:translateY(-8px)scaleY(.92)}to{opacity:1;transform:translateY(0)scaleY(1)}}@keyframes borderDance{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:100px 0,-100px 100%,0 -100px,100% 100px}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.2)}}
