:root {
  --bg: #fff8f7;
  --surface: rgba(255, 247, 246, 0.82);
  --surface-strong: #fff2ef;
  --text: #2d1520;
  --muted: #6f5260;
  --primary: #8f174a;
  --primary-soft: #c74372;
  --secondary: #f2b5b8;
  --accent: #ffd9a8;
  --line: rgba(143, 23, 74, 0.12);
  --shadow: 0 25px 80px rgba(117, 34, 64, 0.14);
  --radius: 32px;
  --radius-sm: 20px;
  --max: 1180px;
}

* {
  box-sizing: border-box;
  font-family: "VazirMatn", sans-serif !important;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: "VazirMatn", sans-serif;
  background:
    radial-gradient(circle at top right, rgba(255, 205, 214, 0.95), transparent 28%),
    radial-gradient(circle at bottom left, rgba(255, 220, 168, 0.7), transparent 24%),
    linear-gradient(180deg, #fff7f5 0%, #fffdfc 38%, #fff7f2 100%);
  color: var(--text);
  overflow-x: hidden;
  position: relative;
}

body::before,
body::after {
  content: "";
  position: fixed;
  inset: auto;
  pointer-events: none;
  z-index: -1;
  border-radius: 999px;
  filter: blur(24px);
  opacity: 0.6;
}

body::before {
  width: 28rem;
  height: 28rem;
  top: -8rem;
  left: -8rem;
  background: rgba(242, 181, 184, 0.65);
  animation: floatBlob 14s ease-in-out infinite;
}

body::after {
  width: 22rem;
  height: 22rem;
  right: -6rem;
  bottom: 5rem;
  background: rgba(255, 217, 168, 0.55);
  animation: floatBlob 12s ease-in-out infinite reverse;
}

a {
  color: inherit;
  text-decoration: none;
}

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

h1,
h2,
h3 {
  margin: 0;
  line-height: 1.25;
}

h1 {
  margin-top: 1.4rem;
  font-size: clamp(2.5rem, 4.3vw, 5rem);
  letter-spacing: -0.04em;
}

section {
  padding: 4.5rem 0;
}

.shell {
  width: min(var(--max), calc(100% - 2rem));
  margin: 0 auto;
}
