/* Apuesta del Río — settings & base */
:root {
  --violet-900: #3b0764;
  --violet-700: #5b21b6;
  --violet-600: #7c3aed;
  --violet-100: #ede9fe;
  --lime-400: #a3e635;
  --lime-100: #ecfccb;
  --ink: #0f172a;
  --ink-soft: #334155;
  --muted: #64748b;
  --paper: #ffffff;
  --paper-alt: #f8fafc;
  --split-a: #faf5ff;
  --split-b: #ffffff;
  --rule: #e2e8f0;
  --radius: 12px;
  --radius-notch: 12px 12px 12px 0;
  --shadow: 0 8px 24px rgba(91, 33, 182, 0.08);
  --font: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --max: 72rem;
  --nav-h: 4.5rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
body {
  margin: 0;
  font-family: var(--font);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--split-b);
  background-image:
    radial-gradient(circle at 20% 0%, rgba(163, 230, 53, 0.06), transparent 40%),
    linear-gradient(180deg, var(--split-a) 0%, var(--split-b) 38%);
}
body::after {
  content: "";
  pointer-events: none;
  position: fixed;
  inset: 0;
  opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  z-index: 9999;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--violet-700); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: var(--violet-600); }
h1, h2, h3, h4 { line-height: 1.2; color: var(--ink); margin: 0; font-weight: 800; }
p { margin: 0 0 1rem; }
ul, ol { margin: 0 0 1rem; padding-left: 1.25rem; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 10000;
  background: var(--violet-700); color: #fff; padding: 0.75rem 1rem;
}
.skip-link:focus { left: 0; }
