:root {
  --color-cream: #fff9f4;
  --color-rose: #e8b4b8;
  --color-rose-soft: #f6dde0;
  --color-rose-deep: #a5566a;
  --color-rose-strong: #8e4a55;
  --color-sky: #dcebf5;
  --color-sky-deep: #7fa6c2;
  --color-sage: #a9bfa6;
  --color-sage-deep: #4f6b4c;
  --color-gold: #c9a35b;
  --color-gold-deep: #8a6a22;
  --color-ink: #4a3b3f;
  --color-ink-soft: #6b5a5f;

  --font-script: "Great Vibes", "Segoe Script", cursive;
  --font-body: "Cormorant Garamond", Georgia, "Times New Roman", serif;

  --radius-organic: 42% 58% 46% 54% / 52% 44% 56% 48%;
  --radius-card: 28px;
  --shadow-soft: 0 10px 28px rgba(165, 86, 106, 0.14);

  --page-width: 520px;
  --gutter: 20px;
  --space-section: 64px;
  --tap-size: 48px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-body);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-ink);
  background: #eef4f9;
  -webkit-font-smoothing: antialiased;
}

body.is-locked {
  overflow: hidden;
}

h1,
h2,
h3,
p,
blockquote,
figure,
ul,
address {
  margin: 0;
}

ul {
  padding: 0;
  list-style: none;
}

address {
  font-style: normal;
}

img,
svg,
iframe {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
}

button {
  font: inherit;
  color: inherit;
}

[hidden] {
  display: none !important;
}

.script {
  font-family: var(--font-script);
  font-weight: 400;
  line-height: 1.15;
}

.svg-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

:focus-visible {
  outline: 3px solid var(--color-rose-deep);
  outline-offset: 3px;
}
