:root {
  --background: 32 70% 97%;
  --foreground: 338 30% 14%;
  --primary: 345 50% 56%;
  --primary-foreground: 0 0% 100%;
  --secondary: 35 70% 76%;
  --secondary-foreground: 338 35% 16%;
  --muted: 340 35% 92%;
  --muted-foreground: 338 16% 42%;
  --destructive: 0 72% 52%;
  --destructive-foreground: 0 0% 100%;
  --border: 340 32% 86%;
  --card: 0 0% 100%;
  --accent: 30 72% 66%;
  --ring: 345 50% 56%;
  --shadow-sm: 0 8px 22px hsl(345 50% 36% / .08);
  --shadow-md: 0 18px 48px hsl(345 50% 32% / .13);
  --shadow-lg: 0 28px 90px hsl(345 50% 26% / .20);
  --transition-fast: 180ms ease;
  --transition-smooth: 420ms cubic-bezier(.2,.8,.2,1);
  --radius-sm: 14px;
  --radius-md: 24px;
  --radius-lg: 36px;
}
.dark {
  --background: 338 28% 8%;
  --foreground: 32 70% 96%;
  --primary: 345 56% 66%;
  --primary-foreground: 338 25% 8%;
  --secondary: 34 58% 58%;
  --secondary-foreground: 338 20% 8%;
  --muted: 338 22% 16%;
  --muted-foreground: 32 24% 78%;
  --destructive: 0 70% 58%;
  --destructive-foreground: 0 0% 100%;
  --border: 338 20% 24%;
  --card: 338 24% 12%;
  --accent: 30 66% 62%;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
::selection { background: hsl(var(--primary) / .24); }
.glass {
  background: linear-gradient(135deg, hsl(var(--card) / .78), hsl(var(--card) / .48));
  backdrop-filter: blur(20px);
  border: 1px solid hsl(var(--border) / .75);
  box-shadow: var(--shadow-md);
}
.luxe-gradient {
  background:
    radial-gradient(circle at 15% 10%, hsl(var(--secondary) / .55), transparent 28%),
    radial-gradient(circle at 82% 12%, hsl(var(--primary) / .30), transparent 32%),
    linear-gradient(135deg, hsl(var(--background)), hsl(345 70% 94%), hsl(35 76% 92%));
}
.rose-gold-text {
  background: linear-gradient(110deg, hsl(var(--primary)), hsl(var(--accent)), hsl(var(--primary)));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.gold-line { background: linear-gradient(90deg, transparent, hsl(var(--accent)), hsl(var(--primary)), transparent); }
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
button, a, input, textarea { transition: var(--transition-smooth); }
input:focus, textarea:focus { outline: 2px solid hsl(var(--ring) / .28); outline-offset: 2px; }
.premium-frame { position: relative; overflow: hidden; }
.premium-frame:before {
  content: "";
  position: absolute;
  inset: -2px;
  background: linear-gradient(120deg, hsl(var(--primary) / .4), hsl(var(--secondary) / .55), hsl(var(--primary) / .18));
  z-index: 0;
}
.premium-frame > * { position: relative; z-index: 1; }
.beauty-art {
  background:
    radial-gradient(circle at 50% 24%, hsl(345 72% 82% / .86) 0 12%, transparent 13%),
    radial-gradient(ellipse at 50% 48%, hsl(25 62% 72% / .75) 0 24%, transparent 25%),
    radial-gradient(circle at 36% 38%, hsl(338 30% 18% / .85) 0 2.6%, transparent 2.8%),
    radial-gradient(circle at 64% 38%, hsl(338 30% 18% / .85) 0 2.6%, transparent 2.8%),
    radial-gradient(ellipse at 50% 64%, hsl(345 56% 56% / .55) 0 7%, transparent 7.5%),
    linear-gradient(145deg, hsl(345 80% 96%), hsl(34 80% 88%));
}
.gallery-tile { background-size: 180% 180%; }
.map-embed { border: 0; width: 100%; min-height: 360px; filter: saturate(1.08) contrast(1.02); }
