:root {
  --background: 42 46% 97%;
  --foreground: 155 24% 14%;
  --primary: 151 48% 34%;
  --primary-foreground: 0 0% 100%;
  --secondary: 88 38% 48%;
  --secondary-foreground: 0 0% 100%;
  --muted: 78 28% 90%;
  --muted-foreground: 152 12% 38%;
  --destructive: 356 74% 55%;
  --destructive-foreground: 0 0% 100%;
  --border: 82 22% 82%;
  --card: 0 0% 100%;
  --accent: 39 82% 58%;
  --success: 151 72% 34%;
  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --shadow-sm: 0 8px 22px hsl(151 48% 34% / 0.08);
  --shadow-md: 0 18px 48px hsl(88 38% 48% / 0.14);
  --shadow-lg: 0 26px 80px hsl(155 24% 14% / 0.18);
  --transition-fast: 160ms ease;
  --transition-smooth: 320ms cubic-bezier(.2,.8,.2,1);
}
.dark {
  --background: 155 24% 8%;
  --foreground: 42 46% 97%;
  --primary: 151 52% 50%;
  --primary-foreground: 0 0% 100%;
  --secondary: 88 44% 58%;
  --secondary-foreground: 155 24% 8%;
  --muted: 154 18% 16%;
  --muted-foreground: 78 18% 76%;
  --destructive: 356 84% 62%;
  --destructive-foreground: 0 0% 100%;
  --border: 154 15% 22%;
  --card: 154 20% 12%;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 18% 0%, hsl(var(--primary) / .16), transparent 32rem),
    radial-gradient(circle at 90% 12%, hsl(var(--secondary) / .14), transparent 30rem),
    linear-gradient(180deg, hsl(42 46% 98%), hsl(var(--background)) 40%);
  color: hsl(var(--foreground));
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, a, input, select, textarea { touch-action: manipulation; }
input, select, textarea { font-size: max(16px, 1rem); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid hsl(var(--primary) / .35);
  outline-offset: 2px;
}
.glass {
  background: hsl(var(--card) / .82);
  backdrop-filter: blur(20px);
  border: 1px solid hsl(var(--border) / .72);
  box-shadow: var(--shadow-sm);
}
.premium-gradient {
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)) 60%, hsl(var(--accent)));
}
.product-shine {
  position: relative;
  overflow: hidden;
}
.product-shine::after {
  content: "";
  position: absolute;
  inset: -80% auto auto -60%;
  width: 55%;
  height: 240%;
  background: linear-gradient(90deg, transparent, hsl(0 0% 100% / .55), transparent);
  transform: rotate(22deg);
  animation: shine 5.5s infinite;
}
@keyframes shine {
  0%, 68% { left: -70%; }
  100% { left: 145%; }
}
@keyframes floaty {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
.floaty { animation: floaty 3s ease-in-out infinite; }
.safe-bottom { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
