/* GoAppsFW login animation layer
   This file makes login_animation_type visibly different from the selected login theme.
   It is loaded after the selected login CSS theme. */

.go-login-page .go-login-brand-panel,
.go-login-page .go-login-form-panel,
.go-login-page .go-login-form-card {
  isolation: isolate;
}


/* Theme circle control:
   The large bottom-right circle from the base login themes is only useful
   when the selected login animation is Floating Shapes. Hide it for all
   other animation modes so it does not look stuck on static/gradient/glass themes. */
.go-login-page:not(.go-login-floating-shapes) .go-login-brand-panel::after {
  content: none !important;
  display: none !important;
}

/* Gradient: keep existing moving background, but add a subtle moving light sweep so it remains visible even with uploaded images. */
.go-login-gradient .go-login-brand-panel::before {
  content: "";
  position: absolute;
  inset: -35%;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(115deg, transparent 0%, rgba(255,255,255,.10) 38%, rgba(255,255,255,.22) 50%, rgba(255,255,255,.08) 62%, transparent 100%);
  transform: translateX(-35%) rotate(4deg);
  animation: goLoginLightSweep 12s ease-in-out infinite;
}

/* Floating shapes: actual moving shapes on both sides. */
.go-login-floating-shapes .go-login-brand-panel::before,
.go-login-floating-shapes .go-login-form-panel::before,
.go-login-floating-shapes .go-login-form-panel::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  border-radius: 999px;
  filter: blur(.2px);
}

.go-login-floating-shapes .go-login-brand-panel::before {
  width: clamp(160px, 18vw, 320px);
  height: clamp(160px, 18vw, 320px);
  left: 8%;
  top: 14%;
  background: radial-gradient(circle, rgba(255,255,255,.23), rgba(255,255,255,.05) 62%, transparent 70%);
  animation: goLoginFloatA 11s ease-in-out infinite;
}

.go-login-floating-shapes .go-login-brand-panel::after {
  animation: goLoginFloatB 14s ease-in-out infinite;
}

.go-login-floating-shapes .go-login-form-panel::before {
  width: 180px;
  height: 180px;
  right: 7%;
  top: 9%;
  background: radial-gradient(circle, rgba(13,110,253,.18), rgba(13,110,253,.05) 65%, transparent 72%);
  animation: goLoginFloatC 10s ease-in-out infinite;
}

.go-login-floating-shapes .go-login-form-panel::after {
  width: 130px;
  height: 130px;
  left: 9%;
  bottom: 10%;
  background: radial-gradient(circle, rgba(32,201,151,.18), rgba(32,201,151,.05) 64%, transparent 72%);
  animation: goLoginFloatD 13s ease-in-out infinite;
}

.go-login-floating-shapes .go-login-brand-inner,
.go-login-floating-shapes .go-login-brand-footer,
.go-login-floating-shapes .go-login-form-wrap {
  position: relative;
  z-index: 2;
}

/* Glass: make the effect visible with shimmer, border glow, and soft breathing card movement. */
.go-login-glass .go-login-form-card {
  position: relative;
  overflow: hidden;
  background: rgba(255,255,255,.74) !important;
  border: 1px solid rgba(255,255,255,.48);
  box-shadow: 0 30px 100px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.55);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  animation: goLoginGlassPulse 5.8s ease-in-out infinite;
}

.go-login-glass .go-login-form-card::before {
  content: "";
  position: absolute;
  inset: -45%;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,.05) 38%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.06) 62%, transparent 100%);
  transform: translateX(-55%) rotate(7deg);
  animation: goLoginGlassShine 7s ease-in-out infinite;
}

.go-login-glass .go-login-form-card > * {
  position: relative;
  z-index: 1;
}

.go-login-glass .go-login-brand-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(circle at 25% 20%, rgba(255,255,255,.20), transparent 28%), radial-gradient(circle at 82% 75%, rgba(255,255,255,.14), transparent 30%);
  animation: goLoginGlassBackdrop 9s ease-in-out infinite;
}

@keyframes goLoginLightSweep {
  0%, 100% { transform: translateX(-42%) rotate(4deg); opacity: .48; }
  50% { transform: translateX(22%) rotate(4deg); opacity: .88; }
}

@keyframes goLoginFloatA {
  0%, 100% { transform: translate3d(0,0,0) scale(1); opacity: .72; }
  50% { transform: translate3d(38px,26px,0) scale(1.08); opacity: .95; }
}

@keyframes goLoginFloatB {
  0%, 100% { transform: translate3d(0,0,0) scale(1); opacity: 1; }
  50% { transform: translate3d(-32px,-24px,0) scale(1.05); opacity: .82; }
}

@keyframes goLoginFloatC {
  0%, 100% { transform: translate3d(0,0,0) scale(1); opacity: .75; }
  50% { transform: translate3d(-28px,34px,0) scale(1.12); opacity: .98; }
}

@keyframes goLoginFloatD {
  0%, 100% { transform: translate3d(0,0,0) scale(1); opacity: .70; }
  50% { transform: translate3d(22px,-30px,0) scale(1.10); opacity: .95; }
}

@keyframes goLoginGlassPulse {
  0%, 100% { transform: translateY(0); box-shadow: 0 30px 100px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.55); }
  50% { transform: translateY(-4px); box-shadow: 0 36px 110px rgba(15,23,42,.24), inset 0 1px 0 rgba(255,255,255,.70); }
}

@keyframes goLoginGlassShine {
  0%, 100% { transform: translateX(-62%) rotate(7deg); opacity: .35; }
  50% { transform: translateX(38%) rotate(7deg); opacity: .85; }
}

@keyframes goLoginGlassBackdrop {
  0%, 100% { opacity: .55; transform: scale(1); }
  50% { opacity: .92; transform: scale(1.03); }
}

@media (prefers-reduced-motion: reduce) {
  .go-login-gradient .go-login-brand-panel::before,
  .go-login-floating-shapes .go-login-brand-panel::before,
  .go-login-floating-shapes .go-login-brand-panel::after,
  .go-login-floating-shapes .go-login-form-panel::before,
  .go-login-floating-shapes .go-login-form-panel::after,
  .go-login-glass .go-login-form-card,
  .go-login-glass .go-login-form-card::before,
  .go-login-glass .go-login-brand-panel::before {
    animation: none !important;
  }
}
.go-login-aurora .go-login-brand-panel::before,
.go-login-aurora .go-login-form-panel::before {
  content: "";
  position: absolute;
  inset: -35%;
  z-index: 0;
  pointer-events: none;
  background: conic-gradient(from 90deg, rgba(59,130,246,.26), rgba(16,185,129,.18), rgba(139,92,246,.22), rgba(59,130,246,.26));
  filter: blur(52px);
  opacity: .72;
  animation: goLoginAurora 18s linear infinite;
}
.go-login-aurora .go-login-brand-inner,
.go-login-aurora .go-login-brand-footer,
.go-login-aurora .go-login-form-wrap { position: relative; z-index: 2; }
.go-login-orbital .go-login-form-panel::before,
.go-login-orbital .go-login-form-panel::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.28);
  pointer-events: none;
}
.go-login-orbital .go-login-form-panel::before { right: 8%; top: 12%; animation: goLoginOrbitA 16s ease-in-out infinite; }
.go-login-orbital .go-login-form-panel::after { left: 6%; bottom: 10%; animation: goLoginOrbitB 19s ease-in-out infinite; }
.go-login-mesh .go-login-brand-panel,
.go-login-mesh .go-login-form-panel {
  background-image: radial-gradient(circle at 20% 25%, rgba(255,255,255,.22), transparent 22%), radial-gradient(circle at 75% 10%, rgba(255,255,255,.12), transparent 24%), radial-gradient(circle at 55% 85%, rgba(255,255,255,.10), transparent 28%), linear-gradient(135deg, var(--go-login-brand-start), var(--go-login-brand-end));
  animation: goLoginMesh 14s ease-in-out infinite;
}
@keyframes goLoginAurora { from { transform: rotate(0deg) scale(1); } to { transform: rotate(360deg) scale(1.02); } }
@keyframes goLoginOrbitA { 0%,100% { transform: translate3d(0,0,0) rotate(0deg); opacity: .40; } 50% { transform: translate3d(-34px,28px,0) rotate(45deg); opacity: .78; } }
@keyframes goLoginOrbitB { 0%,100% { transform: translate3d(0,0,0) rotate(0deg); opacity: .35; } 50% { transform: translate3d(28px,-32px,0) rotate(-35deg); opacity: .72; } }
@keyframes goLoginMesh { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@media (prefers-reduced-motion: reduce) {
  .go-login-aurora .go-login-brand-panel::before,
  .go-login-aurora .go-login-form-panel::before,
  .go-login-orbital .go-login-form-panel::before,
  .go-login-orbital .go-login-form-panel::after,
  .go-login-mesh .go-login-brand-panel,
  .go-login-mesh .go-login-form-panel { animation: none !important; }
}
