:root {
  /* Official Fulvia Neri brand primary — RGB 44 / 123 / 128 */
  --fn-teal: #2C7B80;
  --fn-white: #FFFFFF;
  --fn-off-white: #F6F4EF;
  --fn-charcoal: #202223;
  --fn-warm-grey: #B8B0A6;
  --fn-warm-grey-light: #DED9D2;

  --fn-font-editorial: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --fn-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  --fn-space-2xs: 0.5rem;
  --fn-space-xs: 0.75rem;
  --fn-space-sm: 1rem;
  --fn-space-md: 1.5rem;
  --fn-space-lg: 2.5rem;
  --fn-space-xl: clamp(3.5rem, 6vw, 6rem);
  --fn-space-2xl: clamp(5rem, 9vw, 10rem);

  --fn-container: min(1440px, calc(100vw - clamp(1.25rem, 4vw, 5rem)));
  --fn-reading: 760px;
  --fn-grid-gap: clamp(1rem, 2.5vw, 2.5rem);

  --fn-border: 1px solid color-mix(in srgb, var(--fn-charcoal) 18%, transparent);
  --fn-radius-xs: 0.2rem;
  --fn-radius-sm: 0.4rem;
  --fn-radius-md: 0.8rem;
  --fn-radius-pill: 999px;

  --fn-ease-standard: cubic-bezier(.2,.65,.3,1);
  --fn-ease-out: cubic-bezier(.22,1,.36,1);
  --fn-duration-fast: 180ms;
  --fn-duration-base: 420ms;
  --fn-duration-slow: 900ms;

  --fn-header-height: 5.25rem;
  --fn-focus-ring: 0 0 0 3px color-mix(in srgb, var(--fn-teal) 35%, transparent);
}

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

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

body {
  margin: 0;
  overflow-x: clip;
  background: var(--fn-off-white);
  color: var(--fn-charcoal);
  font-family: var(--fn-font-sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

main { display: block; }
img, picture, video, svg { display: block; max-width: 100%; }
img, video { height: auto; }

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

a { text-underline-offset: .18em; }

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 2px solid var(--fn-teal);
  outline-offset: 3px;
  box-shadow: var(--fn-focus-ring);
}

::selection {
  background: var(--fn-teal);
  color: var(--fn-white);
}

.fn-container {
  width: var(--fn-container);
  margin-inline: auto;
}

.fn-reading {
  width: min(var(--fn-reading), var(--fn-container));
  margin-inline: auto;
}

.fn-fullbleed { width: 100%; }

.fn-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--fn-grid-gap);
}

.fn-site-main:not(.fn-site-main--cinematic) {
  min-height: 60vh;
  padding-top: var(--fn-header-height);
}

@media (max-width: 782px) {
  :root { --fn-header-height: 4.5rem; }
  .fn-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

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