/* ============================================================
   TerraTrack — Design tokens « Nocturne Tropical »
   Valeurs verbatim de l'app (Theme.swift). Seule source de vérité.
   ============================================================ */
:root{
  /* ── Palette de marque ─────────────────────────────────── */
  --tt-ink:#060E0A;          /* base la plus profonde, cast vert   */
  --tt-forest-deep:#0A140F;  /* surfaces immersives, scrims        */
  --tt-emerald:#0E392B;      /* surfaces élevées + ACCENT sur clair*/
  --tt-moss:#5C946B;         /* glyphes discrets, traits           */
  --tt-leaf:#ADFF4D;         /* L'ACCENT — lime acide, sombre only */
  --tt-sand:#E8E0C7;         /* neutre chaud                       */
  --tt-bark:#B89E75;         /* glyphes de stats                   */
  --tt-linen:#EDEBDB;        /* neutre clair doux                  */
  --tt-background:#09110D;   /* fond de page (nuit)                */
  --tt-surface:#121D17;      /* surface carte dark glass           */
  --tt-canopy-light:#E6F5DE; /* fond clair haut (jour)             */
  --tt-canopy-mist:#B3D6AD;  /* fond clair bas (jour)              */
  --tt-danger:#DB3829;

  /* ── Dérivés alpha ─────────────────────────────────────── */
  --tt-leaf-glow:rgba(173,255,77,.35);
  --tt-leaf-soft:rgba(173,255,77,.18);
  --tt-leaf-faint:rgba(173,255,77,.10);
  --tt-hairline:rgba(173,255,77,.14);    /* filet lime des cartes  */
  --tt-surface-85:rgba(18,29,23,.85);    /* remplissage verre      */
  --tt-surface-70:rgba(18,29,23,.70);
  --tt-white-08:rgba(255,255,255,.08);
  --tt-white-10:rgba(255,255,255,.10);
  --tt-white-14:rgba(255,255,255,.14);

  /* ── Texte sur sombre (défaut) ─────────────────────────── */
  --text-primary:#FFFFFF;
  --text-secondary:rgba(255,255,255,.68);
  --text-tertiary:rgba(255,255,255,.60);   /* ~6.3:1 — était .45 = 4.25:1 (labels mono limites) */
  --hair-white:rgba(255,255,255,.16);       /* filets décoratifs uniquement (non-texte) */

  /* Texte sur clair (sections « jour ») — contrastes AA vérifiés sur la brume #B3D6AD (pire cas) */
  --ink-on-light:#060E0A;
  --ink-on-light-soft:rgba(10,20,15,.74);   /* ~5.9:1 */
  --ink-on-light-mute:#2C4A3C;              /* solide ~6:1 (évite la dérive sur dégradé) — était .52 = 3.3:1 */
  --accent-on-light:#0E392B;   /* l'accent devient émeraude sur clair (~8:1) */
  --leaf-on-light:#2E5016;     /* vert-feuille lisible AA même sur brume (~5.6:1) — était #3C6B1E = 3.97:1 */

  /* ── Typographie ───────────────────────────────────────── */
  --font-display:'Archivo','Archivo Narrow',system-ui,sans-serif;
  --font-body:-apple-system,BlinkMacSystemFont,system-ui,'Segoe UI',sans-serif;
  /* Plus de police "ronde" (Nunito) : on reste sur la face système (SF Pro),
     exactement comme l'app. Titres doux = system-ui en graisse forte. */
  --font-rounded:var(--font-body);
  --font-mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono',monospace;

  --display-stretch:80%;      /* Archivo condensé via axe wdth       */
  --display-tracking:-.015em;
  --display-leading:.9;

  /* ── Rayons (squircle esprit iOS) ──────────────────────── */
  --radius-tile:14px; --radius-card:22px; --radius-photo:30px;
  --radius-xl:38px; --radius-pill:999px;

  /* ── Ombres & lumière ──────────────────────────────────── */
  --shadow-card:0 8px 16px rgba(0,0,0,.35);
  --shadow-tile:0 4px 10px rgba(0,0,0,.28);
  --shadow-float:0 10px 30px rgba(0,0,0,.45);
  --shadow-mockup:0 40px 90px rgba(0,0,0,.55);
  --glow-leaf:0 2px 8px var(--tt-leaf-glow);
  --glow-leaf-lg:0 0 34px rgba(173,255,77,.28);

  /* ── Verre ─────────────────────────────────────────────── */
  --glass-blur:blur(18px) saturate(1.1);
  --glass-blur-sm:blur(10px) saturate(1.05);

  /* ── Motion (courbes de l'app) ─────────────────────────── */
  --ease-spring:cubic-bezier(.34,1.2,.64,1);
  --ease-snappy:cubic-bezier(.4,.9,.5,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-spring:.42s; --dur-snappy:.3s; --dur-ambient:4.5s;
  --press-scale:.97; --press-opacity:.92;

  /* ── Backdrop tropical signature ───────────────────────── */
  --bg-tropical:
    radial-gradient(520px 520px at 8% 88%, rgba(14,57,43,.55), transparent 70%),
    radial-gradient(460px 460px at 94% 6%,  rgba(173,255,77,.16), transparent 70%),
    linear-gradient(to bottom, var(--tt-forest-deep), var(--tt-ink));

  --bg-canopy:
    radial-gradient(600px 500px at 85% 10%, rgba(173,255,77,.10), transparent 68%),
    linear-gradient(to bottom, var(--tt-canopy-light), var(--tt-canopy-mist));

  /* ── Layout ────────────────────────────────────────────── */
  --container-page:1440px;
  --page-x:clamp(1.25rem,4vw,3.5rem);
  --section-y:clamp(5rem,10vw,9rem);
  --nav-h:68px;
  --measure:64ch;                          /* largeur de lecture max des paragraphes */
  --pull:calc(-1 * var(--page-x));          /* débordement fort, réservé aux décors */
  --safe-pull:clamp(-1.1rem,-1.8vw,0px);   /* débordement typographique sans couper les mots */
  --flow-edge:rgba(173,255,77,.12);
  --flow-panel:rgba(18,29,23,.66);
  --flow-panel-soft:rgba(255,255,255,.045);
}
