.gc-loading-screen[hidden] { display: none; }
.gc-loading-screen {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  overflow: hidden;
  pointer-events: none;
  background: #f8f9fa;
  opacity: 1;
  animation: gc-loading-enter 180ms ease-out both;
  transition: opacity 240ms ease;
}
.gc-loading-screen::before {
  content: '';
  position: absolute;
  width: min(76vw, 420px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, #c8aa6e1c, #87a4bd0c 45%, transparent 70%);
}
.gc-loading-mark {
  display: block;
  width: clamp(88px, 16vw, 112px);
  height: auto;
  position: relative;
  animation: gc-loading-breathe 1800ms ease-in-out infinite;
}
.gc-loading-screen.is-leaving { animation: none; opacity: 0; }
@keyframes gc-loading-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes gc-loading-breathe {
  0%, 100% { opacity: .88; transform: scale(.98); }
  50% { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .gc-loading-screen, .gc-loading-mark { animation: none; transition: none; }
}
@media (forced-colors: active) {
  .gc-loading-screen { background: Canvas; }
  .gc-loading-screen::before { display: none; }
}
