/* Miku theme overrides — only loaded for miku sites */
:root {
  --bg0: #e6f7f4;
  --bg1: #f3fcfa;
  --ink: #163528;
  --muted: #5f7468;
  --accent: #1f8f86;
  --accent-soft: #d5f3ef;
  --accent-strong: #147a72;
  --theme: #39c5bb;
  --theme-deep: #1a9e96;
  --shadow: 0 8px 24px rgba(26, 158, 150, 0.06);
}

body {
  background:
    radial-gradient(900px 520px at 88% 8%, rgba(57,197,187,.12), transparent 55%),
    radial-gradient(700px 420px at 12% -5%, rgba(255,255,255,.75), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1) 48%, #fff);
}

.theme-stage {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(520px, 62vw);
  max-height: 92vh;
  pointer-events: none;
  z-index: 0;
  opacity: .88;
  animation: theme-float 5.5s ease-in-out infinite;
}
.theme-glow {
  position: absolute;
  inset: 8% 6% 4%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(57,197,187,.18), transparent 72%);
  filter: blur(18px);
  animation: theme-pulse 3.8s ease-in-out infinite;
}
.theme-figure {
  position: relative;
  width: 100%;
  height: auto;
  max-height: 92vh;
  display: block;
  object-fit: contain;
  transform: scaleX(-1);
  filter: drop-shadow(0 22px 36px rgba(26,158,150,.28));
}
@keyframes theme-float {
  0%, 100% { transform: translate(-50%, -50%); }
  50% { transform: translate(-50%, calc(-50% - 12px)); }
}
@keyframes theme-pulse {
  0%, 100% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.06); }
}

@media (max-width: 720px) {
  .theme-stage { width: min(420px, 78vw); opacity: .78; }
}
