/* face&more — design tokens */
:root {
  --paper: #f8f4ec;
  --paper-bright: #fffdf8;
  --cream: #f1eadd;
  --sand: #e5d9c7;
  --forest: #23362c;
  --forest-deep: #17251e;
  --forest-soft: #344b3d;
  --sage: #9daa95;
  --sage-light: #dbe2d4;
  --sage-pale: #edf1e9;
  --blush: #d8b4a2;
  --terracotta: #b87861;
  --gold: #7f6238;
  --gold-light: #d3bc91;
  --ink: #202620;
  --muted: #64675e;
  --line: rgba(32, 38, 32, 0.14);
  --line-light: rgba(248, 244, 236, 0.2);
  --shadow-sm: 0 12px 30px rgba(35, 54, 44, 0.08);
  --shadow-lg: 0 30px 80px rgba(35, 54, 44, 0.16);
  --serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --container: min(1380px, calc(100vw - 96px));
  --container-narrow: min(920px, calc(100vw - 64px));
  --header-height: 86px;
  --radius-xs: 8px;
  --radius-sm: 14px;
  --radius-md: 24px;
  --radius-lg: 38px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-soft: cubic-bezier(0.33, 1, 0.68, 1);
  --duration: 700ms;
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 28px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}

body.menu-open,
body.dialog-open {
  overflow: hidden;
}

::selection {
  background: var(--forest);
  color: var(--paper-bright);
}

h1,
h2,
h3,
h4,
p,
figure,
blockquote {
  margin-top: 0;
}

h1,
h2,
h3,
h4 {
  color: inherit;
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 0.98;
}

h1 {
  font-size: clamp(4rem, 7.2vw, 7.4rem);
}

h2 {
  font-size: clamp(3.1rem, 5.4vw, 5.7rem);
}

h3 {
  font-size: clamp(2rem, 2.7vw, 2.9rem);
}

p {
  margin-bottom: 1.1rem;
}

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

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

img {
  height: auto;
}

button,
input,
textarea,
select {
  font: inherit;
}

button {
  color: inherit;
}

:focus-visible {
  outline: 2px solid var(--terracotta);
  outline-offset: 4px;
}

[id] {
  scroll-margin-top: calc(var(--header-height) + 26px);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
