:root {
  --ivory: #F5F1EE;
  --cream: #EFE8E2;
  --charcoal: #4A4A4A;
  --rosegold: #D4A574;
  --pink-soft: #F0E6E1;
}

html { scroll-behavior: smooth; }

body {
  font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, 'Apple SD Gothic Neo', sans-serif;
  background-color: var(--ivory);
  color: var(--charcoal);
}

.serif-ko {
  font-family: 'Noto Serif KR', 'Pretendard Variable', serif;
  font-weight: 400;
  letter-spacing: 0.02em;
}

.serif-en {
  font-family: 'Cormorant Garamond', 'Noto Serif KR', serif;
  font-weight: 400;
}

/* Tailwind-extended color shortcuts */
.bg-ivory { background-color: var(--ivory); }
.bg-cream { background-color: var(--cream); }
.bg-charcoal { background-color: var(--charcoal); }
.bg-rosegold { background-color: var(--rosegold); }
.text-ivory { color: var(--ivory); }
.text-charcoal { color: var(--charcoal); }
.text-rosegold { color: var(--rosegold); }
.border-rosegold\/20 { border-color: rgba(212, 165, 116, 0.22); }
.border-rosegold\/30 { border-color: rgba(212, 165, 116, 0.35); }
.border-rosegold\/40 { border-color: rgba(212, 165, 116, 0.45); }
.hover\:bg-rosegold:hover { background-color: var(--rosegold); }
.focus\:border-rosegold:focus { border-color: var(--rosegold); }
.focus\:ring-rosegold\/40:focus { box-shadow: 0 0 0 1px rgba(212, 165, 116, 0.4); }
.bg-rosegold\/10 { background-color: rgba(212, 165, 116, 0.10); }
.from-ivory\/40 { --tw-gradient-from: rgba(245, 241, 238, 0.40); }
.via-ivory\/20 { --tw-gradient-stops: var(--tw-gradient-from), rgba(245, 241, 238, 0.20), var(--tw-gradient-to); }
.to-ivory { --tw-gradient-to: var(--ivory); }

/* HERO background - elegant gradient + soft floral pattern */
.hero-bg {
  background:
    radial-gradient(ellipse at top, rgba(240, 230, 225, 0.6) 0%, transparent 60%),
    radial-gradient(ellipse at bottom right, rgba(212, 165, 116, 0.15) 0%, transparent 50%),
    linear-gradient(180deg, #FAF6F3 0%, #F5F1EE 50%, #EFE8E2 100%);
}

.hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23D4A574' stroke-width='0.5' opacity='0.15'%3E%3Cpath d='M100 40 Q120 60 100 80 Q80 60 100 40 Z'/%3E%3Cpath d='M100 120 Q120 140 100 160 Q80 140 100 120 Z'/%3E%3Cpath d='M40 100 Q60 80 80 100 Q60 120 40 100 Z'/%3E%3Cpath d='M120 100 Q140 80 160 100 Q140 120 120 100 Z'/%3E%3Ccircle cx='100' cy='100' r='3'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 240px 240px;
  background-repeat: repeat;
  opacity: 0.6;
}

/* Reveal-on-scroll */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes bounce-slow {
  0%, 100% { transform: translate(-50%, 0); }
  50% { transform: translate(-50%, 8px); }
}
.animate-bounce-slow { animation: bounce-slow 2.6s ease-in-out infinite; }

/* Selection */
::selection { background-color: var(--rosegold); color: white; }

/* Buttons / inputs polish */
button, input, select, textarea { font-family: inherit; }

input:focus, select:focus, textarea:focus {
  box-shadow: 0 0 0 3px rgba(212, 165, 116, 0.15);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .animate-bounce-slow { animation: none; }
  html { scroll-behavior: auto; }
  * { transition: none !important; animation: none !important; }
}

/* Iframe map subtle filter */
iframe.grayscale {
  filter: grayscale(50%) contrast(0.95) sepia(0.08);
}
