/* Elizabeth Andrade — Effects & Animation Tokens */

:root {
  /* ── Transitions ── */
  --ease-out:     cubic-bezier(0.16, 1, 0.3, 1); /* @kind other */
  --ease-in-out:  cubic-bezier(0.4, 0, 0.2, 1); /* @kind other */
  --ease-spring:  cubic-bezier(0.34, 1.56, 0.64, 1); /* @kind other */

  --duration-fast:   150ms; /* @kind other */
  --duration-base:   250ms; /* @kind other */
  --duration-slow:   400ms; /* @kind other */
  --duration-slower: 600ms; /* @kind other */

  --transition-base: var(--duration-base) var(--ease-out); /* @kind other */
  --transition-fast: var(--duration-fast) var(--ease-out); /* @kind other */
  --transition-slow: var(--duration-slow) var(--ease-out); /* @kind other */

  /* ── Hover & Focus ── */
  --hover-opacity:    0.85; /* @kind other */
  --focus-ring:       0 0 0 3px rgba(255,207,123,0.5); /* @kind shadow */
  --focus-ring-dark:  0 0 0 3px rgba(58,5,15,0.35); /* @kind shadow */
}

/* ── Base Reset ── */
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: var(--text-base);
  color: var(--text-primary);
  background-color: var(--surface-base);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-wrap: pretty;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display, 'Playfair Display', serif);
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  color: var(--text-heading);
  text-wrap: balance;
}

a {
  color: var(--text-link);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--text-link-hover);
}
