/* Art direction: libri/editoria → caldo, letterario, raffinato
   Palette: rosa flamingo + avorio caldo, accento magenta/rosa scuro
   Typography: Cormorant Garamond (display) + Inter (body)
   Density: spacious, editoriale */

:root,
[data-theme="light"] {
  --color-bg: #fdf8f5;
  --color-surface: #f9f3ef;
  --color-surface-2: #f3ece7;
  --color-surface-offset: #ede5df;
  --color-divider: #ddd4cc;
  --color-border: #cfc4bb;
  --color-text: #1e1714;
  --color-text-muted: #6e5f58;
  --color-text-faint: #b0a099;
  --color-primary: #be185d;
  --color-primary-hover: #9d1454;
  --color-primary-active: #7c1044;
  --color-primary-highlight: #fce7f3;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Inter', 'Helvetica Neue', sans-serif;
  --maxw: 1120px;
}

[data-theme="dark"] {
  --color-bg: #140e0d;
  --color-surface: #1c1412;
  --color-surface-2: #221a18;
  --color-surface-offset: #261e1c;
  --color-divider: #312623;
  --color-border: #3e302c;
  --color-text: #ede5df;
  --color-text-muted: #9a877f;
  --color-text-faint: #5c4d47;
  --color-primary: #f472b6;
  --color-primary-hover: #ec4899;
  --color-primary-active: #db2777;
  --color-primary-highlight: #2d1a22;
}

* { box-sizing: border-box; }

html { color-scheme: light; }

body {
  margin: 0;
  color: var(--color-text);
  background:
    radial-gradient(circle at 12% -8%, color-mix(in oklab, var(--color-primary), white 88%) 0%, transparent 38%),
    radial-gradient(circle at 88% 0%, color-mix(in oklab, var(--color-surface-offset), white 40%) 0%, transparent 34%),
    var(--color-bg);
  font-family: var(--font-body);
  line-height: 1.6;
}

a {
  color: inherit;
  text-decoration-color: color-mix(in oklab, var(--color-primary), white 35%);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

a:hover { text-decoration-thickness: 2px; }

.wrap {
  width: min(100% - 2rem, var(--maxw));
  margin-inline: auto;
}

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus {
  left: 1rem; top: 1rem;
  background: var(--color-surface);
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--color-border);
}

.site-header {
  border-bottom: 1px solid var(--color-divider);
  background: color-mix(in oklab, var(--color-surface), white 28%);
  backdrop-filter: blur(4px);
  position: sticky;
  top: 0;
  z-index: 10;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 0;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  text-decoration: none;
}

.site-logo {
  height: 2.2rem;
  width: auto;
  flex-shrink: 0;
}

.brand strong {
  display: block;
  line-height: 1;
  color: var(--color-primary);
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  font-weight: 600;
}

.brand small {
  color: var(--color-text-muted);
  font-size: 0.78rem;
}

.nav-list {
  margin: 0; padding: 0;
  list-style: none;
  display: flex;
  gap: 0.9rem;
  flex-wrap: wrap;
}

.nav-list a {
  text-decoration: none;
  border-bottom: 1px solid transparent;
  color: var(--color-text-muted);
}

.nav-list a:hover,
.nav-list a:focus-visible {
  border-color: var(--color-primary);
  color: var(--color-text);
}

.site-main { padding: 2rem 0 3rem; }

h1, h2, h3 {
  font-family: var(--font-display);
  letter-spacing: -0.01em;
  margin: 0 0 0.6rem;
  line-height: 1.12;
}

h1 { font-size: clamp(2rem, 4vw, 3.3rem); }
h2 { font-size: clamp(1.35rem, 2.2vw, 2rem); }
h3 { font-size: clamp(1.05rem, 1.4vw, 1.3rem); }

.kicker, .eyebrow {
  display: inline-block;
  text-transform: uppercase;