.rx-main-wrap { position: relative; z-index: 1; }
.rx-splash { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; background: var(--rx-bg,#fff); transition: opacity .35s; }
.rx-splash-hide { opacity: 0; pointer-events: none; }
.shop-intro { --rx-primary: #dc2626; --rx-primary-soft: #fee2e2; }
.intro-content { position: relative; z-index: 1; }
.rx-loader-spin { width: 52px; height: 52px; border-radius: 50%; border: 5px solid var(--rx-primary-soft); border-top-color: var(--rx-primary); animation: rxLoaderSpin .85s linear infinite; }
.rx-loader-pulse { display: flex; gap: 9px; }
.rx-loader-pulse span { width: 14px; height: 14px; border-radius: 50%; background: var(--rx-primary); animation: rxLoaderPulse .7s ease-in-out infinite alternate; }
.rx-loader-pulse span:nth-child(2) { animation-delay: .2s; }
.rx-loader-pulse span:nth-child(3) { animation-delay: .4s; }
@keyframes rxLoaderSpin { to { transform: rotate(360deg); } }
@keyframes rxLoaderPulse { to { opacity: .3; transform: scale(.6); } }
.rx-particles { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.rx-particles span { position: absolute; top: -24px; width: var(--size); height: var(--size); background: var(--particle-color); opacity: .65; border-radius: 50%; animation: rxParticleFall var(--duration) linear infinite; animation-delay: var(--delay); left: var(--left); }
.rx-particles.is-stars span { clip-path: polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); border-radius: 0; }
.rx-particles.is-bubbles span { top: auto; bottom: -24px; background: transparent; border: 1px solid var(--particle-color); animation-name: rxParticleRise; }
@keyframes rxParticleFall { to { transform: translate(35px, calc(100vh + 48px)) rotate(180deg); } }
@keyframes rxParticleRise { to { transform: translate(-30px, calc(-100vh - 48px)); } }
@media (prefers-reduced-motion: reduce) { .rx-particles { display: none; } }
