:root {
  /* Colors */
  --background: #fdf9f2;
  --error: #ba1a1a;
  --error-container: #ffdad6;
  --inverse-on-surface: #f4f0e9;
  --inverse-primary: #bdcbb7;
  --inverse-surface: #31302c;
  --on-background: #1c1c18;
  --on-error: #ffffff;
  --on-error-container: #93000a;
  --on-primary: #ffffff;
  --on-primary-container: #95a390;
  --on-primary-fixed: #131e12;
  --on-primary-fixed-variant: #3e4a3b;
  --on-secondary: #ffffff;
  --on-secondary-container: #785c28;
  --on-secondary-fixed: #271900;
  --on-secondary-fixed-variant: #5b430f;
  --on-surface: #1c1c18;
  --on-surface-variant: #444842;
  --on-tertiary: #ffffff;
  --on-tertiary-container: #bb987f;
  --on-tertiary-fixed: #2b1706;
  --on-tertiary-fixed-variant: #5c412d;
  --outline: #747871;
  --outline-variant: #c4c8bf;
  --primary: #182317;
  --primary-container: #2d392b;
  --primary-fixed: #d9e7d2;
  --primary-fixed-dim: #bdcbb7;
  --secondary: #755a25;
  --secondary-container: #fdd897;
  --secondary-fixed: #ffdea7;
  --secondary-fixed-dim: #e6c182;
  --surface: #fdf9f2;
  --surface-bright: #fdf9f2;
  --surface-container: #f1ede6;
  --surface-container-high: #ece8e1;
  --surface-container-highest: #e6e2db;
  --surface-container-low: #f7f3ec;
  --surface-container-lowest: #ffffff;
  --surface-dim: #dddad3;
  --surface-tint: #556252;
  --surface-variant: #e6e2db;
  --tertiary: #311c0b;
  --tertiary-container: #49311e;
  --tertiary-fixed: #ffdcc4;
  --tertiary-fixed-dim: #e5bfa5;

  /* Typography */
  --font-display-lg: "Noto Serif", serif;
  --font-headline-xl: "Noto Serif", serif;
  --font-headline-md: "Noto Serif", serif;
  --font-body-lg: "Inter", sans-serif;
  --font-body-md: "Inter", sans-serif;
  --font-label-sm: "Inter", sans-serif;

  /* Shapes */
  --rounded-sm: 0.25rem;
  --rounded-default: 0.5rem;
  --rounded-md: 0.75rem;
  --rounded-lg: 1rem;
  --rounded-xl: 1.5rem;
  --rounded-full: 9999px;

  /* Spacing */
  --spacing-unit: 8px;
  --container-max: 1280px;
  --gutter: 24px;
  --margin-mobile: 16px;
  --margin-desktop: 64px;
  --section-gap: 120px;
}

body {
  font-family: var(--font-body-md);
  background-color: var(--background);
  color: var(--on-background);
  margin: 0;
  padding: 0;
}

/* --- Premium Global UI Tokens --- */

/* Atmospheric Grain Overlay */
.grain-overlay {
  position: absolute;
  inset: 0;
  z-index: 5;
  opacity: 0.06;
  pointer-events: none;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* Section Blending Shaders */
.section-blend-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 15vh;
  background: linear-gradient(to bottom, #F5F1EA, transparent);
  pointer-events: none;
  z-index: 10;
}

.section-blend-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 15vh;
  background: linear-gradient(to top, #F5F1EA, transparent);
  pointer-events: none;
  z-index: 10;
}

/* Micro-Interactions */
.premium-hover-lift {
  transition: transform 0.8s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.8s cubic-bezier(0.23, 1, 0.32, 1);
}
.premium-hover-lift:hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 60px -12px rgba(30, 39, 29, 0.15);
}

.premium-btn-interaction {
  transition: transform 0.5s cubic-bezier(0.19, 1, 0.22, 1), background-color 0.5s ease, box-shadow 0.5s ease;
}
.premium-btn-interaction:hover {
  transform: scale(1.025);
  box-shadow: 0 10px 30px -5px rgba(30, 39, 29, 0.3);
}

/* Floating Animation */
@keyframes softFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
}

.animate-soft-float {
  animation: softFloat 6s ease-in-out infinite;
}

