:root {
  --bg: #09090d;
  --pink: #ff8fb4;
  --pink-strong: #ff5f9e;
  --pink-deep: #e8457f;
  --violet: #b7a7ff;
  --glass: rgba(255,255,255,0.065);
  --glass-strong: rgba(255,255,255,0.11);
  --glass-border: rgba(255,255,255,0.16);
  --glass-border-soft: rgba(255,255,255,0.09);
  --text: #f6f3f6;
  --text-soft: rgba(246,243,246,0.6);
  --text-faint: rgba(246,243,246,0.38);
  --shadow: 0 1px 1px rgba(0,0,0,0.35), 0 24px 48px -24px rgba(0,0,0,0.7);
  --ease: cubic-bezier(.16,1,.3,1);
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { height: 100%; height: 100dvh; height: calc(var(--vh, 1vh) * 100); margin: 0; overflow: hidden; overscroll-behavior: none; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: ui-rounded, -apple-system, BlinkMacSystemFont, "SF Pro Rounded", "Segoe UI Rounded", system-ui, sans-serif;
}
#appRoot { height: 100%; height: 100dvh; height: calc(var(--vh, 1vh) * 100); }
[hidden] { display: none !important; }
img { max-width: 100%; }

.blob {
  position: fixed; width: 60vmax; height: 60vmax; border-radius: 50%;
  filter: blur(70px); opacity: 0.38; z-index: 0; pointer-events: none; will-change: transform;
}
.blob.b1 { background: radial-gradient(circle, var(--pink-deep), transparent 70%); top: -20vmax; left: -18vmax; animation: drift1 26s ease-in-out infinite; }
.blob.b2 { background: radial-gradient(circle, var(--violet), transparent 70%); bottom: -24vmax; right: -16vmax; animation: drift2 32s ease-in-out infinite; }
@keyframes drift1 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(6vmax, 4vmax) scale(1.08); } }
@keyframes drift2 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-5vmax, -6vmax) scale(1.1); } }
@media (prefers-reduced-motion: reduce) {
  .blob { animation: none !important; }
  * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-6px)} 75%{transform:translateX(6px)} }
