:root {
  color-scheme: light;
  --wine: #7B3F5C;
  --wine-strong: #633047;
  --rose: #D88FA3;
  --rose-soft: #F1CBD5;
  --ivory: #F7F2ED;
  --sand: #E6D8CC;
  --sand-soft: #F0E7DF;
  --charcoal: #2C2C2C;
  --ink-soft: #67605D;
  --white: #FFFCF9;
  --success: #52715D;
  --warning: #9B6B36;
  --danger: #9B3E50;
  --focus: #1B6E8C;
  --shadow-soft: 0 12px 32px rgb(81 48 57 / 0.10);
  --shadow-raised: 0 18px 48px rgb(81 48 57 / 0.16);
  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 26px;
  --radius-xl: 34px;
  --radius-pill: 999px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --touch: 46px;
  --content-max: 1120px;
  --nav-height: 72px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { min-width: 320px; min-height: 100%; background: var(--ivory); color: var(--charcoal); -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  min-height: 100dvh;
  background: radial-gradient(circle at 94% 5%, rgb(216 143 163 / 0.17), transparent 28rem), var(--ivory);
}
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
::selection { background: var(--rose-soft); color: var(--charcoal); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
