/* ==========================================================================
   Voz a Letra · tokens.css
   Todas las variables del sistema de diseño. Ningún otro archivo inventa colores,
   tamaños ni tiempos: siempre var(--token). Guía completa: docs/DISENO.md

   FUENTES — viven en /assets/fonts/ (sin Google Fonts: más rápido y no se manda la IP a Google).
   En el <head> de cada página, ANTES de tokens.css:
     <link rel="preload" href="/assets/fonts/atkinson-hyperlegible-next-latin.woff2" as="font" type="font/woff2" crossorigin>
     <link rel="preload" href="/assets/fonts/bodoni-moda-latin.woff2" as="font" type="font/woff2" crossorigin>
     <link rel="preload" href="/assets/fonts/cetus-cifras.woff2" as="font" type="font/woff2" crossorigin>
   "Cetus Cifras" = solo los números 0–9 (de Figtree). Atkinson dibuja el cero con barra ("S/ 9.9Ø");
   con esta cara los precios y minutos se leen limpios. En códigos para copiar (recuperación, USDT)
   se usa --font-text-code, que deja el cero con barra para no confundirlo con la O.
   ========================================================================== */
@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url("/assets/fonts/atkinson-hyperlegible-next-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Bodoni Moda";
  src: url("/assets/fonts/bodoni-moda-latin.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Cetus Cifras";
  src: url("/assets/fonts/cetus-cifras.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0030-0039;
}

:root {
  color-scheme: dark;

  /* ---------- Océano (fondos) — del más profundo al más claro ---------- */
  --ocean-950: #03060c;   /* abismo: héroe, videos, bordes de las fotos */
  --ocean-900: #060a14;   /* fondo de página (el "cuarto oscuro") */
  --ocean-850: #0b1222;   /* superficie 1: tarjetas, paneles */
  --ocean-800: #111a2e;   /* superficie 2: campos, tarjeta elevada, tabla cabecera */
  --ocean-700: #19253d;   /* superficie 3: hover, control activo */
  --ocean-600: #24324f;   /* superficie 4: segmento elegido, kbd */
  --ocean-500: #34466b;   /* deshabilitado, barras de scroll */

  /* ---------- Tinta (texto) ---------- */
  --ink: #edf3fb;         /* texto principal — 17.7:1 sobre --ocean-900 */
  --ink-soft: #c2cee0;    /* texto secundario — 12.4:1 */
  --muted: #8f9db4;       /* notas, metadatos — 7.2:1 (5.6:1 sobre --ocean-700) */
  --placeholder: #7f8ca3; /* placeholder — 5.5:1 sobre --ocean-850 */

  /* ---------- Luz de la ballena (cian → azul → índigo → turquesa) ----------
     Son LUCES, no pintura: van en imágenes, logo, enlaces, foco y estados.
     Nunca como fondo grande de un bloque ni como color de botón principal. */
  --light-cyan: #62e3ff;       /* enlaces, foco, info — 13.2:1 */
  --light-blue: #4a90ff;       /* barras de progreso, gráficos — 6.3:1 (no para texto chico) */
  --light-indigo: #6268ff;     /* solo imágenes/logo (no texto: 4.7:1) */
  --light-turquoise: #43e3c6;  /* detalles, estado "listo" alterno — 12.3:1 */
  --light-ice: #f2fcff;        /* núcleo de una estrella */

  /* ---------- Acento: "ámbar faro" — SOLO para el botón principal ----------
     Pagar / Probar gratis / Comprar. Una vez por pantalla. Contrasta con todo el azul. */
  --accent: #ffae5e;
  --accent-hover: #ffc07f;
  --accent-press: #f39a47;
  --accent-ink: #160c02;       /* texto sobre ámbar — 10.5:1 */

  /* ---------- Estados ---------- */
  --ok: #4fdc9f;      --ok-bg: #0c2a20;      /* 8.8:1 sobre su fondo */
  --warn: #ffcc66;    --warn-bg: #2a2310;    /* 10.5:1 */
  --error: #ff8179;   --error-bg: #2f1418;   /* 7.0:1 */
  --error-bg-strong: #45191f;                /* hover del botón de peligro — 6.1:1 */
  --info: #62e3ff;    --info-bg: #0b2332;    /* 10.7:1 */

  /* ---------- Roles (úsalos en vez de los valores de arriba) ---------- */
  --bg: var(--ocean-900);
  --bg-deep: var(--ocean-950);
  --surface-1: var(--ocean-850);
  --surface-2: var(--ocean-800);
  --surface-3: var(--ocean-700);
  --surface-4: var(--ocean-600);
  --text: var(--ink);
  --text-soft: var(--ink-soft);
  --text-muted: var(--muted);
  --link: var(--light-cyan);
  --focus: var(--light-cyan);
  --line-field: #5b6e96;        /* borde de campos — 3.4:1 (WCAG 1.4.11) */
  --line-field-hover: #7488b2;
  --line-table: #1d2a44;        /* separación de filas en tablas (solo tablas) */
  --selection-bg: var(--light-cyan);
  --selection-ink: var(--ocean-950);
  --scrim-rgb: 3 6 12;          /* color del velo sobre fotos: rgb(var(--scrim-rgb) / .6) */

  /* ---------- Tipografía ---------- */
  --font-display: "Bodoni Moda", "Bodoni 72", Didot, "Times New Roman", Georgia, serif;
  --font-text: "Cetus Cifras", "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-text-code: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; /* cero con barra: códigos y direcciones para copiar */
  --font-code: ui-monospace, "Cascadia Mono", Consolas, "Liberation Mono", monospace; /* solo <code>/<pre> reales */

  /* Escala fluida (360px → 1440px). Una página usa como máximo 5 tamaños. */
  --fs-small:   clamp(0.9375rem, 0.91rem + 0.12vw, 1rem);       /* 15 → 16px  notas, metadatos, badges */
  --fs-body:    clamp(1.0625rem, 1.02rem + 0.2vw, 1.1875rem);   /* 17 → 19px  texto corrido (mínimo 17) */
  --fs-lead:    clamp(1.25rem, 1.12rem + 0.6vw, 1.625rem);      /* 20 → 26px  frase de apoyo, precios en lista */
  --fs-h3:      clamp(1.3125rem, 1.2rem + 0.5vw, 1.625rem);     /* 21 → 26px  títulos de tarjeta (fuente de texto) */
  --fs-h2:      clamp(2rem, 1.35rem + 2.9vw, 4rem);             /* 32 → 64px  títulos de sección (Bodoni) */
  --fs-h1:      clamp(2.25rem, 1.2rem + 4.9vw, 5.75rem);        /* 36 → 90px  título de página (Bodoni) */
  --fs-display: clamp(3rem, 0.9rem + 9.4vw, 10rem);             /* 48 → 160px héroe / cifra gigante (Bodoni) */

  --lh-display: 0.95;
  --lh-heading: 1.05;
  --lh-snug: 1.25;
  --lh-text: 1.6;

  --track-display: -0.02em;
  --track-heading: -0.012em;
  --track-text: 0.005em;
  --track-wide: 0.06em;          /* códigos de recuperación, montos USDT */

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-display: 500;         /* Bodoni Moda: 500. Nunca negrita. */

  --measure: 64ch;               /* ancho máximo de un párrafo */
  --measure-narrow: 44ch;

  /* ---------- Espacio (base 4px) ---------- */
  --space-1: 0.25rem;   /*   4 */
  --space-2: 0.5rem;    /*   8 */
  --space-3: 0.75rem;   /*  12 */
  --space-4: 1rem;      /*  16 */
  --space-5: 1.5rem;    /*  24 */
  --space-6: 2rem;      /*  32 */
  --space-7: 3rem;      /*  48 */
  --space-8: 4rem;      /*  64 */
  --space-9: 6rem;      /*  96 */
  --space-10: 8rem;     /* 128 */
  --space-11: 12rem;    /* 192 */

  --margin: clamp(1rem, 0.6rem + 2vw, 2.5rem);   /* margen lateral: 16px en 360, 40px en desktop */
  --gutter: clamp(1rem, 0.7rem + 1.5vw, 2rem);   /* espacio entre columnas */
  --section: clamp(5.5rem, 3rem + 10vw, 13rem);  /* espacio entre secciones: 88 → 208px */
  --container: 77.5rem;         /* 1240px — contenido normal */
  --container-wide: 100rem;     /* 1600px — imágenes de cine */
  --container-narrow: 42.5rem;  /* 680px — formularios, lectura */
  --header-h: 4rem;             /* 64px — alto de la barra superior */
  --tap: 2.75rem;               /* 44px — objetivo táctil mínimo */
  --control-h: 3rem;            /* 48px — botón y campo normales */
  --control-h-lg: 3.5rem;       /* 56px — botón grande */

  /* ---------- Formas ---------- */
  --radius: 4px;                /* EL radio de la marca: tarjetas, campos, imágenes, modales */
  --radius-pill: 999px;         /* botones, badges, switch, segmentado, progreso */
  --border-w: 1px;              /* solo campos y tablas */

  /* ---------- Profundidad ----------
     Sin sombras en reposo. Las superficies se separan por un paso de tono.
     Sombra SOLO en lo que flota: modal, toast, menú desplegable. */
  --shadow-float: 0 24px 64px -12px rgb(0 0 0 / 0.72), 0 2px 8px rgb(0 0 0 / 0.45);
  --ring-selected: inset 0 0 0 2px var(--light-cyan);   /* tarjeta/opción elegida (anillo interior) */
  --ring-ghost: inset 0 0 0 1.5px rgb(237 243 251 / 0.32);
  /* Halo de estrella: SOLO para puntos de luz del motivo (logo, constelaciones en SVG). Nunca en UI. */
  --halo-star: drop-shadow(0 0 6px rgb(98 227 255 / 0.65)); /* taste-skill-ignore: solo puntos de luz del motivo */

  /* ---------- Movimiento (cine) ---------- */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);       /* entradas, salidas, revelados */
  --ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);    /* cosas que viajan a la vista */
  --ease-soft: cubic-bezier(0.33, 1, 0.68, 1);      /* revelados largos, escala de imagen */
  --ease-film: cubic-bezier(0.16, 1, 0.3, 1);       /* fundido desde negro, "acercamiento" */

  --t-press: 140ms;     /* clic / toque */
  --t-hover: 180ms;     /* hover de botones y enlaces */
  --t-ui: 240ms;        /* menús, tabs, switch */
  --t-dialog: 360ms;    /* modal, hoja, toast */
  --t-reveal: 900ms;    /* aparición de bloques al hacer scroll */
  --t-scene: 1400ms;    /* fundido desde negro del héroe, enfoque de imagen */
  --t-drift: 24s;       /* deriva lenta de una foto (Ken Burns) */
  --stagger: 80ms;      /* retraso entre hermanos: calc(var(--i) * var(--stagger)) */

  --reveal-distance: 28px;
  --reveal-blur: 14px;
  --reveal-scale: 1.06;

  /* ---------- Capas ---------- */
  --z-below: -1;
  --z-base: 0;
  --z-raised: 1;
  --z-sticky: 20;
  --z-header: 50;
  --z-dropdown: 60;
  --z-overlay: 80;
  --z-modal: 90;
  --z-toast: 100;
  --z-grain: 110;       /* el grano va encima de todo, sin capturar clics */
  --z-skip: 120;

  /* ---------- Grano de película ---------- */
  --grain-opacity: 0.07;
  --grain-size: 220px;
  --grain-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.1 -.35'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

@media (min-width: 48em) {
  :root { --header-h: 4.5rem; }  /* 72px */
}
