/* Premium Page Initial Loader — public pages only */
.ar-page-loader {
  --ar-pl-speed: 1;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  z-index: 999999;
  display: grid;
  place-items: center;
  overflow: hidden;
  pointer-events: auto;
  opacity: 1;
  transform: scale(1);
  transition: opacity .42s ease, transform .42s ease;
  font-family: "Segoe UI", system-ui, sans-serif;
  color: #e2e8f0;
}
html.ar-page-loader-active,
html.ar-page-loader-active body {
  overflow: hidden !important;
}
.ar-page-loader.is-contained {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  border-radius: 14px;
}
.ar-page-loader.is-exiting {
  opacity: 0;
  transform: scale(1.05);
  pointer-events: none;
}
.ar-page-loader--speed-slow { --ar-pl-speed: 1.45; }
.ar-page-loader--speed-normal { --ar-pl-speed: 1; }
.ar-page-loader--speed-fast { --ar-pl-speed: .62; }

.ar-pl-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(56, 189, 248, .12), transparent 55%),
    radial-gradient(ellipse at 70% 70%, rgba(139, 92, 246, .1), transparent 50%),
    linear-gradient(160deg, #020617 0%, #030712 40%, #070b1a 100%);
}
.ar-page-loader--bg-light .ar-pl-bg {
  background:
    radial-gradient(ellipse at 50% 40%, rgba(14, 165, 233, .14), transparent 55%),
    linear-gradient(160deg, #f8fafc 0%, #e2e8f0 100%);
}
.ar-page-loader--bg-light { color: #0f172a; }
.ar-page-loader--bg-transparent .ar-pl-bg {
  background: rgba(2, 6, 23, .55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.ar-pl-stage {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.1rem;
  padding: 1.25rem;
  text-align: center;
  max-width: min(92vw, 420px);
}
.ar-pl-anim {
  position: relative;
  width: 168px;
  height: 168px;
  display: grid;
  place-items: center;
}
.ar-pl-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  opacity: .88;
}
.ar-pl-logo {
  max-height: 36px;
  max-width: 160px;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(56, 189, 248, .25));
}
.ar-pl-title {
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .04em;
}
.ar-pl-tagline {
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .55;
}
.ar-pl-status {
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .5;
  animation: ar-pl-status-pulse calc(1.8s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes ar-pl-status-pulse {
  0%, 100% { opacity: .35; }
  50% { opacity: .7; }
}

/* —— Shared helpers —— */
.ar-pl-core {
  position: absolute;
  border-radius: 50%;
  inset: 50%;
  transform: translate(-50%, -50%);
}
@keyframes ar-pl-spin {
  to { transform: rotate(360deg); }
}
@keyframes ar-pl-spin-rev {
  to { transform: rotate(-360deg); }
}
@keyframes ar-pl-pulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: .9; }
  50% { transform: translate(-50%, -50%) scale(1.12); opacity: 1; }
}
@keyframes ar-pl-float {
  0%, 100% { transform: translateY(0); opacity: .35; }
  50% { transform: translateY(-8px); opacity: .8; }
}

/* —— 01 Cosmic Orbit —— */
.ar-page-loader--cosmic-orbit .ar-pl-anim {
  width: min(72vw, 280px);
  height: min(58vw, 230px);
}
@media (max-width: 768px) {
  .ar-page-loader--cosmic-orbit .ar-pl-anim {
    width: min(70vw, 220px);
    height: min(56vw, 180px);
  }
}
@media (max-width: 480px) {
  .ar-page-loader--cosmic-orbit .ar-pl-anim {
    width: min(78vw, 180px);
    height: min(62vw, 150px);
  }
}

.ar-pl-cosmic {
  --co-blue: #168bff;
  --co-cyan: #00d9ff;
  --co-violet: #7c3cff;
  --co-magenta: #d946ef;
  --co-orange: #fb923c;
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  animation: co-enter .7s ease both;
}
@keyframes co-enter {
  from { opacity: 0; transform: scale(.92); }
  to { opacity: 1; transform: scale(1); }
}

.ar-pl-cosmic .co-ambient {
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37, 99, 235, .16) 0%, rgba(124, 60, 255, .08) 42%, transparent 70%);
  pointer-events: none;
  animation: co-ambient-pulse calc(2.6s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes co-ambient-pulse {
  0%, 100% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.06); }
}

.ar-pl-cosmic .co-stars,
.ar-pl-cosmic .co-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.ar-pl-cosmic .co-star {
  position: absolute;
  width: var(--sz, 2px);
  height: var(--sz, 2px);
  border-radius: 50%;
  background: var(--c, #c4b5fd);
  opacity: .35;
  animation: co-twinkle calc(var(--dur, 3s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes co-twinkle {
  0%, 100% { opacity: .15; transform: scale(.8); }
  50% { opacity: .75; transform: scale(1.15); }
}
.ar-pl-cosmic .co-particle {
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: #67e8f9;
  box-shadow: 0 0 6px rgba(0, 217, 255, .55);
  opacity: 0;
  animation: co-particle-drift calc(var(--dur, 4s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes co-particle-drift {
  0% { opacity: 0; transform: translate(0, 0) scale(.5); }
  30% { opacity: .7; }
  70% { opacity: .45; }
  100% { opacity: 0; transform: translate(var(--dx, 12px), var(--dy, -18px)) scale(1); }
}

.ar-pl-cosmic .co-system {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

/* Orbital rings (SVG) */
.ar-pl-cosmic .co-rings {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.ar-pl-cosmic .co-ring {
  fill: none;
  stroke-linecap: round;
  stroke-width: 1.1;
  opacity: .72;
  filter: drop-shadow(0 0 3px currentColor);
  animation: co-ring-glow calc(3.2s * var(--ar-pl-speed)) ease-in-out infinite;
}
.ar-pl-cosmic .co-ring-1 { stroke: url(#coRingGrad1); animation-delay: 0s; }
.ar-pl-cosmic .co-ring-2 { stroke: url(#coRingGrad2); animation-delay: -.6s; opacity: .8; }
.ar-pl-cosmic .co-ring-3 { stroke: url(#coRingGrad3); animation-delay: -1.2s; opacity: .75; }
.ar-pl-cosmic .co-ring-4 { stroke: url(#coRingGrad4); animation-delay: -1.8s; opacity: .65; }
@keyframes co-ring-glow {
  0%, 100% { opacity: .45; }
  50% { opacity: .85; }
}

/* Orbit carriers — elliptical + tilted */
.ar-pl-cosmic .co-orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--ow);
  height: var(--oh);
  margin-left: calc(var(--ow) / -2);
  margin-top: calc(var(--oh) / -2);
  transform: rotate(var(--tilt, 0deg));
  transform-style: preserve-3d;
  pointer-events: none;
}
.ar-pl-cosmic .co-orbit-spin {
  position: absolute;
  inset: 0;
  animation: co-orbit-spin calc(var(--odur, 8s) * var(--ar-pl-speed)) linear infinite;
  animation-direction: var(--odir, normal);
}
@keyframes co-orbit-spin {
  to { transform: rotate(360deg); }
}

.ar-pl-cosmic .co-planet {
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--ps, 12px);
  height: var(--ps, 12px);
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 28%, #ffffff 0%, var(--p, #00d9ff) 40%, #0b1228 100%);
  box-shadow:
    0 0 8px var(--p, #00d9ff),
    0 0 18px var(--p, #00d9ff),
    0 0 28px rgba(22, 139, 255, .25);
  animation: co-planet-depth calc(var(--odur, 8s) * var(--ar-pl-speed)) linear infinite;
  animation-direction: var(--odir, normal);
  will-change: transform, opacity, filter;
}
.ar-pl-cosmic .co-planet::after {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--p, #00d9ff) 0%, transparent 70%);
  opacity: .35;
  z-index: -1;
}
@keyframes co-planet-depth {
  0%   { transform: translate(-50%, -50%) scale(.72); opacity: .5; filter: brightness(.7); }
  25%  { transform: translate(-50%, -50%) scale(.95); opacity: .85; filter: brightness(1); }
  50%  { transform: translate(-50%, -50%) scale(1.18); opacity: 1; filter: brightness(1.3); }
  75%  { transform: translate(-50%, -50%) scale(.95); opacity: .85; filter: brightness(1); }
  100% { transform: translate(-50%, -50%) scale(.72); opacity: .5; filter: brightness(.7); }
}

/* Central spiral galaxy */
.ar-pl-cosmic .co-galaxy {
  position: absolute;
  left: 50%;
  top: 50%;
  width: clamp(48px, 28%, 64px);
  height: clamp(48px, 28%, 64px);
  transform: translate(-50%, -50%);
  z-index: 5;
  pointer-events: none;
}
.ar-pl-cosmic .co-galaxy-bloom {
  position: absolute;
  inset: -45%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 217, 255, .35) 0%, rgba(22, 139, 255, .18) 35%, rgba(124, 60, 255, .08) 55%, transparent 70%);
  animation: co-galaxy-pulse calc(2.4s * var(--ar-pl-speed)) ease-in-out infinite;
}
.ar-pl-cosmic .co-galaxy-svg {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: visible;
  animation: co-galaxy-spin calc(5.2s * var(--ar-pl-speed)) linear infinite;
  filter: drop-shadow(0 0 10px rgba(22, 139, 255, .55));
}
@keyframes co-galaxy-spin {
  to { transform: rotate(360deg); }
}
@keyframes co-galaxy-pulse {
  0%, 100% { opacity: .75; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
}
.ar-pl-cosmic .co-arm {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ar-pl-cosmic .co-core-dot {
  filter: drop-shadow(0 0 6px #e0f2fe);
}

/* Exit flourish */
.ar-page-loader.is-exiting.ar-page-loader--cosmic-orbit .ar-pl-cosmic .co-galaxy {
  animation: co-exit-flare .45s ease forwards;
}
.ar-page-loader.is-exiting.ar-page-loader--cosmic-orbit .ar-pl-cosmic .co-orbit-spin {
  animation-duration: calc(var(--odur, 8s) * var(--ar-pl-speed) * 1.6) !important;
}
@keyframes co-exit-flare {
  0% { filter: brightness(1); transform: translate(-50%, -50%) scale(1); }
  40% { filter: brightness(1.6); transform: translate(-50%, -50%) scale(1.18); }
  100% { filter: brightness(1.2); transform: translate(-50%, -50%) scale(1.05); opacity: .3; }
}

/* Mobile: fewer stars/particles handled in JS; soften glow */
@media (max-width: 640px) {
  .ar-pl-cosmic .co-planet::after { inset: -2px; }
  .ar-pl-cosmic .co-galaxy-bloom { opacity: .85; }
  .ar-pl-cosmic .co-ring { stroke-width: 1; filter: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ar-pl-cosmic,
  .ar-pl-cosmic .co-ambient,
  .ar-pl-cosmic .co-star,
  .ar-pl-cosmic .co-particle,
  .ar-pl-cosmic .co-ring,
  .ar-pl-cosmic .co-orbit-spin,
  .ar-pl-cosmic .co-planet,
  .ar-pl-cosmic .co-galaxy-svg,
  .ar-pl-cosmic .co-galaxy-bloom {
    animation: none !important;
  }
  .ar-pl-cosmic .co-planet {
    opacity: .9;
    filter: none;
    transform: translate(-50%, -50%) scale(1);
  }
}

/* —— 02 Neural Pulse —— */
.ar-pl-neural { width: 100%; height: 100%; position: relative; }
.ar-pl-neural svg { width: 100%; height: 100%; overflow: visible; }
.ar-pl-neural .n-line {
  fill: none;
  stroke: rgba(56, 189, 248, .35);
  stroke-width: 1.2;
}
.ar-pl-neural .n-pulse {
  fill: none;
  stroke: #67e8f9;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: 8 120;
  animation: ar-pl-dash calc(2.4s * var(--ar-pl-speed)) linear infinite;
}
@keyframes ar-pl-dash {
  to { stroke-dashoffset: -128; }
}
.ar-pl-neural .n-node {
  fill: #38bdf8;
  filter: drop-shadow(0 0 4px #22d3ee);
}
.ar-pl-neural .n-center {
  fill: #c084fc;
  filter: drop-shadow(0 0 10px #a855f7);
  animation: ar-pl-n-center calc(1.8s * var(--ar-pl-speed)) ease-in-out infinite;
  transform-origin: center;
}
@keyframes ar-pl-n-center {
  0%, 100% { r: 7; opacity: .95; }
  50% { r: 9; opacity: 1; }
}

/* —— 03 Infinity Flow —— */
.ar-page-loader--infinity-flow .ar-pl-anim {
  width: min(78vw, 300px);
  height: min(42vw, 170px);
}
@media (max-width: 768px) {
  .ar-page-loader--infinity-flow .ar-pl-anim {
    width: min(72vw, 250px);
    height: min(40vw, 145px);
  }
}
@media (max-width: 480px) {
  .ar-page-loader--infinity-flow .ar-pl-anim {
    width: min(82vw, 200px);
    height: min(48vw, 120px);
  }
}

.ar-pl-infinity {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  animation: inf-enter .65s ease both;
}
@keyframes inf-enter {
  from { opacity: 0; transform: scale(.9); filter: brightness(.6); }
  to { opacity: 1; transform: scale(1); filter: brightness(1); }
}

.ar-pl-infinity .inf-ambient {
  position: absolute;
  inset: 12% 8%;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(59, 130, 246, .12) 0%, rgba(168, 85, 247, .06) 45%, transparent 70%);
  pointer-events: none;
  animation: inf-ambient-pulse calc(2.8s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes inf-ambient-pulse {
  0%, 100% { opacity: .65; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

.ar-pl-infinity .inf-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.ar-pl-infinity .inf-particle {
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: var(--c, #67e8f9);
  opacity: 0;
  box-shadow: 0 0 5px var(--c, #67e8f9);
  animation: inf-particle-float calc(var(--dur, 4s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes inf-particle-float {
  0% { opacity: 0; transform: translate(0, 0) scale(.6); }
  25% { opacity: .65; }
  70% { opacity: .35; }
  100% { opacity: 0; transform: translate(var(--dx, 10px), var(--dy, -14px)) scale(1); }
}

.ar-pl-infinity .inf-svg {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 0 12px rgba(99, 102, 241, .28));
}

.ar-pl-infinity .inf-soft {
  fill: none;
  stroke-width: 18;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .28;
  filter: blur(5px);
}

.ar-pl-infinity .inf-mid {
  fill: none;
  stroke-width: 11;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .38;
  filter: blur(2px);
}

.ar-pl-infinity .inf-ribbon {
  fill: none;
  stroke-width: 9;
  stroke-linecap: round;
  stroke-linejoin: round;
  animation: inf-ribbon-pulse calc(2.4s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes inf-ribbon-pulse {
  0%, 100% { opacity: .92; }
  50% { opacity: 1; }
}

.ar-pl-infinity .inf-highlight {
  fill: none;
  stroke-width: 5.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 36 290;
  stroke-dashoffset: 0;
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, .75)) drop-shadow(0 0 12px rgba(0, 229, 255, .55));
  animation: inf-energy-travel calc(3.6s * var(--ar-pl-speed)) linear infinite;
}
.ar-pl-infinity .inf-highlight-2 {
  fill: none;
  stroke: rgba(255, 255, 255, .55);
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 14 312;
  stroke-dashoffset: -80;
  animation: inf-energy-travel calc(3.6s * var(--ar-pl-speed)) linear infinite;
  filter: drop-shadow(0 0 4px #fff);
}
@keyframes inf-energy-travel {
  to { stroke-dashoffset: -326; }
}

.ar-pl-infinity .inf-cross {
  fill: #e0f2fe;
  opacity: .55;
  filter: drop-shadow(0 0 6px rgba(0, 229, 255, .8));
  animation: inf-cross-pulse calc(2s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes inf-cross-pulse {
  0%, 100% { opacity: .35; r: 2.2; }
  50% { opacity: .85; r: 3.2; }
}

.ar-pl-infinity .inf-path-dot {
  fill: #a5f3fc;
  filter: drop-shadow(0 0 4px #00e5ff);
  opacity: .85;
}

.ar-page-loader.is-exiting.ar-page-loader--infinity-flow .ar-pl-infinity {
  animation: inf-exit .48s ease forwards;
}
@keyframes inf-exit {
  0% { opacity: 1; transform: scale(1); filter: brightness(1); }
  35% { opacity: 1; transform: scale(.96); filter: brightness(1.35); }
  100% { opacity: 0; transform: scale(.88); filter: brightness(1.1); }
}

@media (max-width: 640px) {
  .ar-pl-infinity .inf-soft { stroke-width: 14; filter: blur(3px); opacity: .22; }
  .ar-pl-infinity .inf-mid { stroke-width: 8; filter: none; opacity: .3; }
  .ar-pl-infinity .inf-ribbon { stroke-width: 6.5; }
  .ar-pl-infinity .inf-highlight { stroke-width: 4; filter: drop-shadow(0 0 4px rgba(0, 229, 255, .5)); }
  .ar-pl-infinity .inf-particles { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ar-pl-infinity,
  .ar-pl-infinity .inf-ambient,
  .ar-pl-infinity .inf-particle,
  .ar-pl-infinity .inf-ribbon,
  .ar-pl-infinity .inf-highlight,
  .ar-pl-infinity .inf-highlight-2,
  .ar-pl-infinity .inf-cross {
    animation: none !important;
  }
  .ar-pl-infinity .inf-highlight,
  .ar-pl-infinity .inf-highlight-2 {
    stroke-dasharray: none;
    opacity: .35;
  }
}

/* —— 04 Quantum Sphere —— */
.ar-page-loader--quantum-sphere .ar-pl-anim {
  width: min(72vw, 280px);
  height: min(72vw, 260px);
}
@media (max-width: 768px) {
  .ar-page-loader--quantum-sphere .ar-pl-anim {
    width: min(68vw, 230px);
    height: min(68vw, 220px);
  }
}
@media (max-width: 480px) {
  .ar-page-loader--quantum-sphere .ar-pl-anim {
    width: min(78vw, 190px);
    height: min(78vw, 190px);
  }
}

.ar-pl-quantum {
  --qs-cyan: #00e5ff;
  --qs-teal: #14f1c9;
  --qs-green: #00ff9c;
  --qs-lime: #84cc16;
  --qs-yellow: #fde047;
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  animation: qs-enter .7s ease both;
}
@keyframes qs-enter {
  from { opacity: 0; transform: scale(.9); filter: brightness(.7); }
  to { opacity: 1; transform: scale(1); filter: brightness(1); }
}

.ar-pl-quantum .qs-ambient {
  position: absolute;
  inset: 6%;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(16, 255, 160, .12) 0%, rgba(0, 229, 255, .05) 42%, transparent 68%);
  pointer-events: none;
  animation: qs-ambient-pulse calc(2.6s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes qs-ambient-pulse {
  0%, 100% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

.ar-pl-quantum .qs-stars {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.ar-pl-quantum .qs-star {
  position: absolute;
  width: var(--sz, 2px);
  height: var(--sz, 2px);
  border-radius: 50%;
  background: var(--c, #7cffb2);
  opacity: .3;
  animation: qs-twinkle calc(var(--dur, 3s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes qs-twinkle {
  0%, 100% { opacity: .12; transform: scale(.75); }
  50% { opacity: .7; transform: scale(1.2); }
}

.ar-pl-quantum .qs-system {
  position: relative;
  width: 100%;
  height: 100%;
}

/* SVG orbital rings */
.ar-pl-quantum .qs-rings {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.ar-pl-quantum .qs-ring {
  fill: none;
  stroke-width: 1.05;
  stroke-linecap: round;
  opacity: .7;
  filter: drop-shadow(0 0 2px currentColor);
  animation: qs-ring-glow calc(3s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes qs-ring-glow {
  0%, 100% { opacity: .4; }
  50% { opacity: .85; }
}

/* Elliptical orbit carriers */
.ar-pl-quantum .qs-orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--ow);
  height: var(--oh);
  margin-left: calc(var(--ow) / -2);
  margin-top: calc(var(--oh) / -2);
  transform: rotate(var(--tilt, 0deg));
  pointer-events: none;
}
.ar-pl-quantum .qs-orbit-spin {
  position: absolute;
  inset: 0;
  animation: qs-orbit-spin calc(var(--odur, 6s) * var(--ar-pl-speed)) linear infinite;
  animation-direction: var(--odir, normal);
}
@keyframes qs-orbit-spin {
  to { transform: rotate(360deg); }
}

.ar-pl-quantum .qs-particle {
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--ps, 5px);
  height: var(--ps, 5px);
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, #fff 0%, var(--p, #00e5ff) 45%, transparent 78%);
  box-shadow:
    0 0 6px var(--p, #00e5ff),
    0 0 14px var(--p, #00e5ff);
  animation: qs-particle-depth calc(var(--odur, 6s) * var(--ar-pl-speed)) linear infinite;
  animation-direction: var(--odir, normal);
  will-change: transform, opacity, filter;
}
.ar-pl-quantum .qs-particle::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--p, #00e5ff) 0%, transparent 70%);
  opacity: .4;
  z-index: -1;
}
@keyframes qs-particle-depth {
  0%   { transform: translate(-50%, -50%) scale(.65); opacity: .4; filter: brightness(.65); }
  25%  { transform: translate(-50%, -50%) scale(.9); opacity: .8; filter: brightness(1); }
  50%  { transform: translate(-50%, -50%) scale(1.2); opacity: 1; filter: brightness(1.35); }
  75%  { transform: translate(-50%, -50%) scale(.9); opacity: .8; filter: brightness(1); }
  100% { transform: translate(-50%, -50%) scale(.65); opacity: .4; filter: brightness(.65); }
}

/* Quantum core */
.ar-pl-quantum .qs-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: clamp(52px, 30%, 68px);
  height: clamp(52px, 30%, 68px);
  transform: translate(-50%, -50%);
  z-index: 6;
  pointer-events: none;
}
.ar-pl-quantum .qs-core-aura {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 210%;
  height: 210%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 255, 156, .35) 0%, rgba(0, 229, 255, .14) 40%, transparent 68%);
  animation: qs-aura-pulse calc(2.4s * var(--ar-pl-speed)) ease-in-out infinite;
}
.ar-pl-quantum .qs-core-shell {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 38% 32%, #e8fff4 0%, #7cffb2 18%, #00ff9c 38%, #00e5a0 58%, rgba(20, 241, 201, .55) 78%, rgba(0, 229, 255, .2) 100%);
  box-shadow:
    inset 0 0 12px rgba(232, 255, 244, .55),
    0 0 18px rgba(0, 255, 156, .55),
    0 0 36px rgba(0, 229, 255, .3);
  animation: qs-shell-pulse calc(2.4s * var(--ar-pl-speed)) ease-in-out infinite;
}
.ar-pl-quantum .qs-core-rim {
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 1.5px solid rgba(20, 241, 201, .55);
  box-shadow: 0 0 10px rgba(0, 229, 255, .4);
  animation: qs-rim-spin calc(6s * var(--ar-pl-speed)) linear infinite;
}
.ar-pl-quantum .qs-core-nucleus {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 28%;
  height: 28%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0%, #fde047 40%, #00ff9c 100%);
  box-shadow: 0 0 10px #fff, 0 0 18px #00ff9c;
}
.ar-pl-quantum .qs-inner-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  border: 1px solid rgba(124, 255, 178, .45);
  border-radius: 50%;
  transform: translate(-50%, -50%) rotateX(62deg);
  animation: qs-inner-spin calc(var(--rdur, 3s) * var(--ar-pl-speed)) linear infinite;
  animation-direction: var(--rdir, normal);
  pointer-events: none;
}
.ar-pl-quantum .qs-inner-ring--a { width: 78%; height: 78%; --rdur: 2.5s; }
.ar-pl-quantum .qs-inner-ring--b { width: 96%; height: 96%; --rdur: 4s; --rdir: reverse; border-color: rgba(0, 229, 255, .4); }
.ar-pl-quantum .qs-inner-ring--c { width: 118%; height: 118%; --rdur: 6s; border-color: rgba(57, 255, 136, .3); }
@keyframes qs-aura-pulse {
  0%, 100% { opacity: .75; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.06); }
}
@keyframes qs-shell-pulse {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.05); filter: brightness(1.15); }
}
@keyframes qs-rim-spin {
  to { transform: rotate(360deg); }
}
@keyframes qs-inner-spin {
  to { transform: translate(-50%, -50%) rotateX(62deg) rotate(360deg); }
}

/* Energy arcs */
.ar-pl-quantum .qs-arcs {
  position: absolute;
  inset: -18%;
  width: 136%;
  height: 136%;
  left: -18%;
  top: -18%;
  overflow: visible;
  pointer-events: none;
}
.ar-pl-quantum .qs-arc {
  fill: none;
  stroke-linecap: round;
  stroke-width: 1.4;
  opacity: 0;
  animation: qs-arc-flicker calc(var(--adur, 2.8s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--adelay, 0s);
  filter: drop-shadow(0 0 3px #00ff9c);
}
@keyframes qs-arc-flicker {
  0%, 40%, 100% { opacity: 0; }
  48%, 58% { opacity: .75; }
  65% { opacity: .15; }
}

/* Exit pulse */
.ar-pl-quantum .qs-exit-pulse {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 40px;
  height: 40px;
  margin: -20px 0 0 -20px;
  border-radius: 50%;
  border: 2px solid rgba(0, 255, 156, .7);
  box-shadow: 0 0 16px rgba(0, 229, 255, .45);
  opacity: 0;
  pointer-events: none;
  z-index: 8;
}
.ar-page-loader.is-exiting.ar-page-loader--quantum-sphere .qs-exit-pulse {
  animation: qs-exit-ring .5s ease-out forwards;
}
.ar-page-loader.is-exiting.ar-page-loader--quantum-sphere .ar-pl-quantum {
  animation: qs-exit .5s ease forwards;
}
.ar-page-loader.is-exiting.ar-page-loader--quantum-sphere .qs-core-shell {
  animation: qs-exit-core .45s ease forwards;
}
@keyframes qs-exit-ring {
  0% { opacity: .9; transform: scale(1); }
  100% { opacity: 0; transform: scale(4.2); }
}
@keyframes qs-exit-core {
  0% { transform: scale(1); filter: brightness(1); }
  40% { transform: scale(1.2); filter: brightness(1.5); }
  100% { transform: scale(1.05); filter: brightness(1.2); opacity: .4; }
}
@keyframes qs-exit {
  to { opacity: 0; transform: scale(1.04); }
}

@media (max-width: 640px) {
  .ar-pl-quantum .qs-arc { display: none; }
  .ar-pl-quantum .qs-ring { filter: none; stroke-width: .9; }
  .ar-pl-quantum .qs-particle::after { inset: -2px; }
  .ar-pl-quantum .qs-inner-ring--c { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ar-pl-quantum,
  .ar-pl-quantum .qs-ambient,
  .ar-pl-quantum .qs-star,
  .ar-pl-quantum .qs-ring,
  .ar-pl-quantum .qs-orbit-spin,
  .ar-pl-quantum .qs-particle,
  .ar-pl-quantum .qs-core-aura,
  .ar-pl-quantum .qs-core-shell,
  .ar-pl-quantum .qs-core-rim,
  .ar-pl-quantum .qs-inner-ring,
  .ar-pl-quantum .qs-arc {
    animation: none !important;
  }
  .ar-pl-quantum .qs-particle {
    opacity: .9;
    filter: none;
    transform: translate(-50%, -50%) scale(1);
  }
  .ar-pl-quantum .qs-core-shell {
    transform: none;
  }
}

/* —— 05 Solar Flare —— */
.ar-page-loader--solar-flare .ar-pl-anim {
  width: min(72vw, 280px);
  height: min(72vw, 280px);
}
@media (max-width: 768px) {
  .ar-page-loader--solar-flare .ar-pl-anim {
    width: min(68vw, 230px);
    height: min(68vw, 230px);
  }
}
@media (max-width: 480px) {
  .ar-page-loader--solar-flare .ar-pl-anim {
    width: min(76vw, 180px);
    height: min(76vw, 180px);
  }
}

.ar-pl-solar {
  --sf-white: #fff7a0;
  --sf-yellow: #ffe066;
  --sf-gold: #ffc107;
  --sf-orange: #ff9800;
  --sf-hot: #ff6d00;
  --sf-ember: #ff3d00;
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  animation: sf-ignite .75s ease both;
}
@keyframes sf-ignite {
  0% { opacity: 0; transform: scale(.35); filter: brightness(2.2); }
  35% { opacity: 1; transform: scale(1.08); filter: brightness(1.6); }
  70% { transform: scale(.98); filter: brightness(1.1); }
  100% { opacity: 1; transform: scale(1); filter: brightness(1); }
}

.ar-pl-solar .sf-ambient {
  position: absolute;
  inset: 4%;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255, 100, 0, .14) 0%, rgba(255, 60, 0, .05) 42%, transparent 68%);
  pointer-events: none;
  animation: sf-ambient-pulse calc(3.2s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes sf-ambient-pulse {
  0%, 100% { opacity: .65; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.06); }
}

.ar-pl-solar .sf-dust {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.ar-pl-solar .sf-dust-bit {
  position: absolute;
  width: var(--sz, 2px);
  height: var(--sz, 2px);
  border-radius: 50%;
  background: var(--c, #ffb000);
  opacity: 0;
  box-shadow: 0 0 4px var(--c, #ffb000);
  animation: sf-dust-drift calc(var(--dur, 4s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes sf-dust-drift {
  0% { opacity: 0; transform: translate(0, 0) scale(.5); }
  25% { opacity: .55; }
  70% { opacity: .25; }
  100% { opacity: 0; transform: translate(var(--dx, 12px), var(--dy, -16px)) scale(1); }
}

.ar-pl-solar .sf-system {
  position: relative;
  width: 72%;
  height: 72%;
  max-width: 200px;
  max-height: 200px;
}

/* Soft glow layers behind plasma */
.ar-pl-solar .sf-glow {
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.ar-pl-solar .sf-glow--outer {
  width: 150%;
  height: 150%;
  background: radial-gradient(circle, rgba(255, 61, 0, .22) 0%, transparent 65%);
  filter: blur(8px);
  animation: sf-glow-pulse calc(3s * var(--ar-pl-speed)) ease-in-out infinite;
}
.ar-pl-solar .sf-glow--mid {
  width: 110%;
  height: 110%;
  background: radial-gradient(circle, rgba(255, 152, 0, .35) 0%, transparent 60%);
  filter: blur(4px);
  animation: sf-glow-pulse calc(2.6s * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: -.4s;
}
@keyframes sf-glow-pulse {
  0%, 100% { opacity: .7; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
}

/* Plasma corona — rotating tongue system */
.ar-pl-solar .sf-corona {
  position: absolute;
  inset: 0;
  animation: sf-corona-spin calc(7s * var(--ar-pl-speed)) linear infinite;
  pointer-events: none;
}
@keyframes sf-corona-spin {
  to { transform: rotate(360deg); }
}

.ar-pl-solar .sf-tongue {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--w, 10px);
  height: var(--len, 42px);
  transform: translate(-50%, 0) rotate(var(--a, 0deg));
  transform-origin: 50% calc(100% + var(--gap, 30px));
  margin-top: calc(var(--len, 42px) * -1 - var(--gap, 30px));
  border-radius: 48% 48% 35% 35%;
  background:
    linear-gradient(to top,
      #ffffff 0%,
      #fff7a0 12%,
      #ffe066 28%,
      #ff9800 55%,
      #ff3d00 82%,
      transparent 100%);
  box-shadow: 0 0 8px rgba(255, 152, 0, .55);
  opacity: .85;
  animation: sf-tongue-flicker calc(var(--dur, 1.8s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
  will-change: transform, opacity, filter;
}
@keyframes sf-tongue-flicker {
  0%, 100% {
    transform: translate(-50%, 0) rotate(var(--a, 0deg)) scaleY(0.82) scaleX(0.9);
    opacity: .55;
    filter: brightness(.85);
  }
  35% {
    transform: translate(-50%, 0) rotate(calc(var(--a, 0deg) + var(--wiggle, 2deg))) scaleY(1.15) scaleX(1.05);
    opacity: 1;
    filter: brightness(1.25);
  }
  60% {
    transform: translate(-50%, 0) rotate(calc(var(--a, 0deg) - var(--wiggle, 2deg))) scaleY(0.95) scaleX(1);
    opacity: .8;
    filter: brightness(1.05);
  }
}

.ar-pl-solar .sf-tongue--long {
  filter: blur(.3px);
}

/* SVG arcs & irregular ring */
.ar-pl-solar .sf-svg {
  position: absolute;
  inset: -8%;
  width: 116%;
  height: 116%;
  left: -8%;
  top: -8%;
  overflow: visible;
  pointer-events: none;
}
.ar-pl-solar .sf-arc {
  fill: none;
  stroke-linecap: round;
  stroke-width: 1.6;
  opacity: 0;
  filter: drop-shadow(0 0 3px #ff9800);
  animation: sf-arc-flicker calc(var(--adur, 2.4s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--adelay, 0s);
}
@keyframes sf-arc-flicker {
  0%, 42%, 100% { opacity: 0; }
  50%, 62% { opacity: .85; }
  70% { opacity: .2; }
}

/* Plasma core — matches bright conic rim palette */
.ar-pl-solar .sf-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 42%;
  height: 42%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: conic-gradient(from 0deg, #fff7a0, #ff9800, #ff3d00, #ffe066, #ff6d00, #fff7a0);
  box-shadow:
    inset 0 0 14px rgba(255, 247, 160, .45),
    0 0 0 1.5px rgba(255, 224, 102, .55),
    0 0 18px rgba(255, 109, 0, .55);
  z-index: 4;
  animation:
    sf-core-pulse calc(3.2s * var(--ar-pl-speed)) ease-in-out infinite,
    sf-rim-spin calc(5.5s * var(--ar-pl-speed)) linear infinite;
}
.ar-pl-solar .sf-core-rim {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 46%;
  height: 46%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: conic-gradient(from 0deg, #fff7a0, #ff9800, #ff3d00, #ffe066, #ff6d00, #fff7a0);
  padding: 3px;
  z-index: 3;
  animation: sf-rim-spin calc(5.5s * var(--ar-pl-speed)) linear infinite;
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3.5px), #000 calc(100% - 3px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 3.5px), #000 calc(100% - 3px));
  box-shadow: 0 0 14px rgba(255, 152, 0, .55);
}
@keyframes sf-rim-spin {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes sf-core-pulse {
  0%, 100% {
    box-shadow:
      inset 0 0 14px rgba(255, 247, 160, .35),
      0 0 0 1.5px rgba(255, 224, 102, .45),
      0 0 16px rgba(255, 109, 0, .5);
    filter: brightness(1);
  }
  50% {
    box-shadow:
      inset 0 0 20px rgba(255, 247, 160, .6),
      0 0 0 2px rgba(255, 247, 160, .7),
      0 0 28px rgba(255, 109, 0, .75);
    filter: brightness(1.15);
  }
}

/* Sparks */
.ar-pl-solar .sf-spark {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--ss, 3px);
  height: var(--ss, 3px);
  margin: -1.5px 0 0 -1.5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, var(--sc, #ffd700) 50%, transparent 75%);
  box-shadow: 0 0 6px var(--sc, #ffd700);
  animation: sf-spark-out calc(var(--sdur, 2.2s) * var(--ar-pl-speed)) ease-out infinite;
  animation-delay: var(--sdelay, 0s);
  z-index: 5;
}
@keyframes sf-spark-out {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  100% { transform: translate(var(--sx, 40px), var(--sy, -40px)) scale(0); opacity: 0; }
}

/* Exit burst */
.ar-pl-solar .sf-exit-burst {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 40%;
  height: 40%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 2px solid rgba(255, 224, 102, .8);
  box-shadow: 0 0 20px rgba(255, 109, 0, .6);
  opacity: 0;
  z-index: 8;
  pointer-events: none;
}
.ar-page-loader.is-exiting.ar-page-loader--solar-flare .sf-exit-burst {
  animation: sf-burst .55s ease-out forwards;
}
.ar-page-loader.is-exiting.ar-page-loader--solar-flare .ar-pl-solar {
  animation: sf-exit .55s ease forwards;
}
.ar-page-loader.is-exiting.ar-page-loader--solar-flare .sf-core {
  animation: sf-exit-core .45s ease forwards;
}
@keyframes sf-burst {
  0% { opacity: .95; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(3.8); }
}
@keyframes sf-exit-core {
  0% { filter: brightness(1); }
  40% { filter: brightness(2); transform: translate(-50%, -50%) scale(1.08); }
  100% { filter: brightness(1.3); opacity: .35; }
}
@keyframes sf-exit {
  to { opacity: 0; transform: scale(1.06); filter: brightness(1.4); }
}

@media (max-width: 640px) {
  .ar-pl-solar .sf-arc { display: none; }
  .ar-pl-solar .sf-tongue--long { display: none; }
  .ar-pl-solar .sf-glow--outer { filter: blur(5px); }
  .ar-pl-solar .sf-dust { opacity: .65; }
}

@media (prefers-reduced-motion: reduce) {
  .ar-pl-solar,
  .ar-pl-solar .sf-ambient,
  .ar-pl-solar .sf-dust-bit,
  .ar-pl-solar .sf-glow,
  .ar-pl-solar .sf-corona,
  .ar-pl-solar .sf-tongue,
  .ar-pl-solar .sf-arc,
  .ar-pl-solar .sf-core,
  .ar-pl-solar .sf-core-rim,
  .ar-pl-solar .sf-spark {
    animation: none !important;
  }
  .ar-pl-solar .sf-tongue {
    opacity: .8;
    transform: translate(-50%, 0) rotate(var(--a, 0deg));
  }
}

/* —— 06 Digital Wave —— */
.ar-page-loader--digital-wave .ar-pl-anim {
  width: min(88vw, 360px);
  height: min(48vw, 200px);
}
@media (max-width: 768px) {
  .ar-page-loader--digital-wave .ar-pl-anim {
    width: min(84vw, 300px);
    height: min(46vw, 170px);
  }
}
@media (max-width: 480px) {
  .ar-page-loader--digital-wave .ar-pl-anim {
    width: min(90vw, 220px);
    height: min(52vw, 130px);
  }
}

.ar-pl-wave {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  animation: dw-enter .7s ease both;
}
@keyframes dw-enter {
  from { opacity: 0; transform: scaleX(.85) scaleY(.9); filter: brightness(.6); }
  to { opacity: 1; transform: scaleX(1) scaleY(1); filter: brightness(1); }
}

.ar-pl-wave .dw-ambient {
  position: absolute;
  inset: 8% 0;
  border-radius: 40%;
  background:
    radial-gradient(ellipse at 18% 50%, rgba(124, 58, 237, .14) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 50%, rgba(99, 102, 241, .08) 0%, transparent 50%),
    radial-gradient(ellipse at 82% 50%, rgba(6, 182, 212, .14) 0%, transparent 55%);
  pointer-events: none;
  animation: dw-ambient-pulse calc(3s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes dw-ambient-pulse {
  0%, 100% { opacity: .7; }
  50% { opacity: 1; }
}

.ar-pl-wave .dw-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.ar-pl-wave .dw-particle {
  position: absolute;
  width: var(--sz, 2px);
  height: var(--sz, 2px);
  border-radius: 50%;
  background: var(--c, #a855f7);
  box-shadow: 0 0 5px var(--c, #a855f7);
  opacity: 0;
  animation: dw-particle-flow calc(var(--dur, 4s) * var(--ar-pl-speed)) linear infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes dw-particle-flow {
  0% { opacity: 0; transform: translate(0, 0) scale(.5); }
  12% { opacity: .75; }
  70% { opacity: .45; }
  100% { opacity: 0; transform: translate(var(--dx, 40px), var(--dy, 0px)) scale(1); }
}

.ar-pl-wave .dw-svg {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 0 10px rgba(139, 92, 246, .28));
}

.ar-pl-wave .dw-soft {
  fill: none;
  stroke-width: 14;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .22;
  filter: blur(5px);
}
.ar-pl-wave .dw-mid {
  fill: none;
  stroke-width: 7;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .4;
  filter: blur(1.5px);
}
.ar-pl-wave .dw-main {
  fill: none;
  stroke-width: 5.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  animation: dw-wave-morph calc(3.6s * var(--ar-pl-speed)) ease-in-out infinite;
}
.ar-pl-wave .dw-thin {
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .45;
  animation: dw-wave-morph calc(4.4s * var(--ar-pl-speed)) ease-in-out infinite reverse;
}
.ar-pl-wave .dw-thin-2 {
  fill: none;
  stroke-width: 1.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .28;
  animation: dw-wave-morph calc(5s * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: -.8s;
}
.ar-pl-wave .dw-thin-3 {
  fill: none;
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .18;
  animation: dw-wave-morph calc(5.6s * var(--ar-pl-speed)) ease-in-out infinite reverse;
  animation-delay: -1.4s;
}
@keyframes dw-wave-morph {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.06); }
}

.ar-pl-wave .dw-flow-hi {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 32 280;
  animation: dw-energy-travel calc(3.8s * var(--ar-pl-speed)) linear infinite;
  filter: drop-shadow(0 0 5px #fff) drop-shadow(0 0 10px #00e5ff);
}
@keyframes dw-energy-travel {
  to { stroke-dashoffset: -312; }
}

.ar-pl-wave .dw-node {
  filter: drop-shadow(0 0 4px currentColor);
  animation: dw-node-pulse calc(2s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes dw-node-pulse {
  0%, 100% { opacity: .55; r: 2.2; }
  50% { opacity: 1; r: 3.2; }
}

.ar-pl-wave .dw-path-dot {
  filter: drop-shadow(0 0 3px currentColor);
  opacity: .85;
}

.ar-page-loader.is-exiting.ar-page-loader--digital-wave .ar-pl-wave {
  animation: dw-exit .5s ease forwards;
}
@keyframes dw-exit {
  0% { opacity: 1; transform: scaleX(1); filter: brightness(1); }
  35% { opacity: 1; transform: scaleX(.92); filter: brightness(1.35); }
  100% { opacity: 0; transform: scaleX(.7) scaleY(.85); filter: brightness(1.1); }
}

@media (max-width: 640px) {
  .ar-pl-wave .dw-soft { stroke-width: 10; filter: blur(3px); }
  .ar-pl-wave .dw-mid { stroke-width: 5; filter: none; opacity: .35; }
  .ar-pl-wave .dw-main { stroke-width: 4; }
  .ar-pl-wave .dw-thin-3 { display: none; }
  .ar-pl-wave .dw-particles { opacity: .75; }
}

@media (prefers-reduced-motion: reduce) {
  .ar-pl-wave,
  .ar-pl-wave .dw-ambient,
  .ar-pl-wave .dw-particle,
  .ar-pl-wave .dw-main,
  .ar-pl-wave .dw-thin,
  .ar-pl-wave .dw-thin-2,
  .ar-pl-wave .dw-thin-3,
  .ar-pl-wave .dw-flow-hi,
  .ar-pl-wave .dw-node {
    animation: none !important;
  }
  .ar-pl-wave .dw-flow-hi {
    stroke-dasharray: none;
    opacity: .35;
  }
}

/* —— 07 Rotating Hexa —— */
.ar-pl-hexa { width: 100%; height: 100%; position: relative; display: grid; place-items: center; }
.ar-pl-hexa .hx {
  position: absolute;
  width: var(--s);
  height: calc(var(--s) * .866);
  clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
  background: transparent;
  box-shadow: inset 0 0 0 1.5px var(--c, #38bdf8);
  filter: drop-shadow(0 0 6px var(--c, #38bdf8));
  animation: ar-pl-spin calc(var(--d, 6s) * var(--ar-pl-speed)) linear infinite;
}
.ar-pl-hexa .hx:nth-child(1) { --s: 140px; --c: #38bdf8; --d: 9s; }
.ar-pl-hexa .hx:nth-child(2) { --s: 108px; --c: #a78bfa; --d: 7s; animation-name: ar-pl-spin-rev; }
.ar-pl-hexa .hx:nth-child(3) { --s: 76px; --c: #f97316; --d: 5s; }
.ar-pl-hexa .hx:nth-child(4) { --s: 46px; --c: #22d3ee; --d: 3.5s; animation-name: ar-pl-spin-rev; }
.ar-pl-hexa .hx-dot {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #67e8f9;
  box-shadow: 0 0 8px #22d3ee;
}

/* —— 08 Morphing Dots —— */
.ar-pl-dots { width: 100%; height: 100%; position: relative; }
.ar-pl-dots .dot-ring {
  position: absolute;
  inset: 18px;
  animation: ar-pl-spin calc(8s * var(--ar-pl-speed)) linear infinite;
}
.ar-pl-dots .dot {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  border-radius: 50%;
  background: var(--c);
  box-shadow: 0 0 10px var(--c);
  transform: rotate(var(--a)) translateY(-58px) scale(var(--sc, 1));
  animation: ar-pl-dot-morph calc(2.4s * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes ar-pl-dot-morph {
  0%, 100% { opacity: .55; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.35); }
}

/* —— 09 Glassmorphism Ring —— */
.ar-pl-glass { width: 100%; height: 100%; position: relative; perspective: 420px; }
.ar-pl-glass .glass-ring {
  position: absolute;
  inset: 18px;
  border-radius: 50%;
  border: 14px solid transparent;
  background:
    linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.02)) padding-box,
    linear-gradient(135deg, #38bdf8, #a855f7, #6366f1) border-box;
  box-shadow:
    inset 0 0 24px rgba(56, 189, 248, .25),
    0 0 32px rgba(99, 102, 241, .25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transform-style: preserve-3d;
  animation: ar-pl-glass-tilt calc(4.5s * var(--ar-pl-speed)) ease-in-out infinite;
}
.ar-pl-glass .glass-hi {
  position: absolute;
  inset: 18px;
  border-radius: 50%;
  border: 14px solid transparent;
  border-top-color: rgba(255, 255, 255, .75);
  mix-blend-mode: screen;
  animation: ar-pl-spin calc(2.8s * var(--ar-pl-speed)) linear infinite;
}
.ar-pl-glass .glass-core {
  width: 22px;
  height: 22px;
  background: radial-gradient(circle, #fff, #67e8f9 60%, transparent 70%);
  box-shadow: 0 0 20px rgba(103, 232, 249, .6);
  animation: ar-pl-pulse calc(2s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes ar-pl-glass-tilt {
  0%, 100% { transform: rotateX(18deg) rotateY(-18deg); }
  50% { transform: rotateX(-12deg) rotateY(22deg); }
}

/* —— 10 Aurora Spiral —— */
.ar-page-loader--aurora-spiral .ar-pl-anim {
  width: min(72vw, 280px);
  height: min(72vw, 280px);
}
@media (max-width: 768px) {
  .ar-page-loader--aurora-spiral .ar-pl-anim {
    width: min(68vw, 240px);
    height: min(68vw, 240px);
  }
}
@media (max-width: 480px) {
  .ar-page-loader--aurora-spiral .ar-pl-anim {
    width: min(78vw, 190px);
    height: min(78vw, 190px);
  }
}

.ar-pl-aurora {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  animation: au-enter .8s ease both;
}
@keyframes au-enter {
  0% { opacity: 0; transform: scale(.55); filter: brightness(1.8); }
  45% { opacity: 1; transform: scale(1.05); filter: brightness(1.25); }
  100% { opacity: 1; transform: scale(1); filter: brightness(1); }
}

.ar-pl-aurora .au-ambient {
  position: absolute;
  inset: 4%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(0, 229, 255, .1) 0%, transparent 55%),
    radial-gradient(circle at 28% 35%, rgba(34, 197, 94, .08) 0%, transparent 45%),
    radial-gradient(circle at 72% 62%, rgba(168, 85, 247, .1) 0%, transparent 48%);
  pointer-events: none;
  animation: au-ambient-pulse calc(3s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes au-ambient-pulse {
  0%, 100% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.04); }
}

.ar-pl-aurora .au-dust,
.ar-pl-aurora .au-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.ar-pl-aurora .au-dust-bit {
  position: absolute;
  width: var(--sz, 1.5px);
  height: var(--sz, 1.5px);
  border-radius: 50%;
  background: var(--c, #a5f3fc);
  opacity: .15;
  animation: au-dust-drift calc(var(--dur, 5s) * var(--ar-pl-speed)) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes au-dust-drift {
  0%, 100% { opacity: .08; transform: translate(0, 0); }
  50% { opacity: .28; transform: translate(var(--dx, 6px), var(--dy, -6px)); }
}
.ar-pl-aurora .au-particle {
  position: absolute;
  width: var(--sz, 2px);
  height: var(--sz, 2px);
  border-radius: 50%;
  background: var(--c, #00e5ff);
  box-shadow: 0 0 5px var(--c, #00e5ff);
  opacity: 0;
  animation: au-particle-orbit calc(var(--dur, 6s) * var(--ar-pl-speed)) linear infinite;
  animation-delay: var(--delay, 0s);
}
@keyframes au-particle-orbit {
  0% { opacity: 0; transform: rotate(0deg) translateX(var(--orbit, 70px)) scale(.6); }
  15% { opacity: .8; }
  70% { opacity: .45; }
  100% { opacity: 0; transform: rotate(360deg) translateX(calc(var(--orbit, 70px) * 1.08)) scale(1); }
}

.ar-pl-aurora .au-system {
  position: relative;
  width: 88%;
  height: 88%;
  animation: au-system-spin calc(11s * var(--ar-pl-speed)) linear infinite;
}
@keyframes au-system-spin {
  to { transform: rotate(360deg); }
}

.ar-pl-aurora .au-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 0 10px rgba(0, 229, 255, .25));
}

.ar-pl-aurora .au-soft {
  fill: none;
  stroke-width: 14;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .28;
  filter: blur(5px);
}
.ar-pl-aurora .au-mid {
  fill: none;
  stroke-width: 8;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .42;
  filter: blur(1.5px);
}
.ar-pl-aurora .au-main {
  fill: none;
  stroke-width: 7;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 6px rgba(0, 229, 255, .45));
}
.ar-pl-aurora .au-trail {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .4;
}
.ar-pl-aurora .au-trail-2 {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .22;
}
.ar-pl-aurora .au-trail-3 {
  fill: none;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .12;
}
.ar-pl-aurora .au-flow-hi {
  fill: none;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 28 320;
  animation: au-energy-travel calc(4.2s * var(--ar-pl-speed)) linear infinite;
  filter: drop-shadow(0 0 5px #fff) drop-shadow(0 0 10px #00e5ff);
}
@keyframes au-energy-travel {
  to { stroke-dashoffset: -348; }
}

.ar-pl-aurora .au-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0%, #b8ffff 35%, #00e5ff 70%, transparent 100%);
  box-shadow:
    0 0 8px #00e5ff,
    0 0 18px rgba(34, 211, 238, .55),
    0 0 28px rgba(139, 92, 246, .25);
  z-index: 5;
  animation: au-core-pulse calc(2.4s * var(--ar-pl-speed)) ease-in-out infinite;
}
.ar-pl-aurora .au-core-aura {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 229, 255, .35) 0%, transparent 70%);
  z-index: 4;
  animation: au-core-pulse calc(2.4s * var(--ar-pl-speed)) ease-in-out infinite;
}
@keyframes au-core-pulse {
  0%, 100% { transform: scale(1); filter: brightness(1); opacity: .9; }
  50% { transform: scale(1.15); filter: brightness(1.35); opacity: 1; }
}

.ar-pl-aurora .au-path-dot {
  filter: drop-shadow(0 0 3px currentColor);
  opacity: .85;
}

.ar-pl-aurora .au-exit-burst {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border-radius: 50%;
  border: 2px solid rgba(0, 229, 255, .75);
  box-shadow: 0 0 16px rgba(168, 85, 247, .45);
  opacity: 0;
  z-index: 8;
  pointer-events: none;
}
.ar-page-loader.is-exiting.ar-page-loader--aurora-spiral .au-exit-burst {
  animation: au-burst .55s ease-out forwards;
}
.ar-page-loader.is-exiting.ar-page-loader--aurora-spiral .ar-pl-aurora {
  animation: au-exit .55s ease forwards;
}
.ar-page-loader.is-exiting.ar-page-loader--aurora-spiral .au-core {
  animation: au-exit-core .45s ease forwards;
}
@keyframes au-burst {
  0% { opacity: .95; transform: scale(1); }
  100% { opacity: 0; transform: scale(5); }
}
@keyframes au-exit-core {
  0% { transform: scale(1); filter: brightness(1); }
  40% { transform: scale(1.6); filter: brightness(2); }
  100% { transform: scale(1.1); filter: brightness(1.3); opacity: .3; }
}
@keyframes au-exit {
  0% { opacity: 1; transform: scale(1); }
  40% { opacity: 1; transform: scale(.92); filter: brightness(1.35); }
  100% { opacity: 0; transform: scale(.75); }
}

@media (max-width: 640px) {
  .ar-pl-aurora .au-soft { stroke-width: 10; filter: blur(3px); }
  .ar-pl-aurora .au-mid { stroke-width: 6; filter: none; opacity: .35; }
  .ar-pl-aurora .au-main { stroke-width: 5; }
  .ar-pl-aurora .au-trail-3,
  .ar-pl-aurora .au-dust { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ar-pl-aurora,
  .ar-pl-aurora .au-ambient,
  .ar-pl-aurora .au-dust-bit,
  .ar-pl-aurora .au-particle,
  .ar-pl-aurora .au-system,
  .ar-pl-aurora .au-flow-hi,
  .ar-pl-aurora .au-core,
  .ar-pl-aurora .au-core-aura {
    animation: none !important;
  }
  .ar-pl-aurora .au-flow-hi {
    stroke-dasharray: none;
    opacity: .35;
  }
  .ar-pl-aurora .au-core,
  .ar-pl-aurora .au-core-aura {
    transform: none;
    opacity: .95;
  }
}

/* —— Mobile —— */
@media (max-width: 640px) {
  .ar-pl-anim { width: 140px; height: 140px; }
  .ar-pl-cosmic .co-star:nth-child(n+8),
  .ar-pl-cosmic .co-particle:nth-child(n+8) { display: none; }
  .ar-page-loader {
    filter: saturate(.92);
  }
}

/* —— Reduced motion —— */
@media (prefers-reduced-motion: reduce) {
  .ar-page-loader *,
  .ar-page-loader *::before,
  .ar-page-loader *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .2s !important;
  }
  .ar-pl-status { animation: none; opacity: .55; }
}
