/* Eidovelle design tokens.
 *
 * GENERATED FILE. Do not hand edit. Run python design/system/tokens/pin.py to rebuild both
 * committed readings, web/assets/tokens.css and content/studio/static/tokens.css.
 *
 * Every value below is read out of design/system/tokens/tokens.json, which is the only place
 * any of them is decided, and that file is itself checked against ios/Eidovelle/UI/Theme.swift
 * and edge/src/mail/layout.js by pin.py --check. check-site.py runs that check before any
 * deploy and the studio runs it at import, so a colour typed here by hand survives until the
 * next check and no further.
 *
 * Deliberately not in here: a timestamp or a version, so two renders of the same source are
 * byte-identical and the drift check stays quiet when nothing moved.
 */

:root {
  /* The three-colour system: the dark is the field, brass is the
     instrument, teal is what you sail toward. */
  --evl-void: #04050C;
  --evl-deep: #080A14;
  --evl-panel: #0D1120;
  --evl-panel-hi: #141A2C;
  --evl-brass: #C9A961;
  --evl-brass-hi: #E8CC7A;
  --evl-brass-dim: #8A7444;
  --evl-brass-deep: #5C4B2C;
  --evl-teal: #3FBFB0;
  --evl-teal-hi: #7FE0D4;
  --evl-teal-deep: #1B5E56;
  --evl-cream: #F2EAD8;
  --evl-cream-dim: #C4B99E;

  /* The app's own clock, from Theme.Motion via tokens.json. */
  --evl-motion-breathe: 6.5s;
  --evl-motion-drift: 7.0s;
  --evl-motion-settle: 0.45s;
  --evl-motion-touch: 0.22s;

  /* Arrival: elements rise a few pixels and ease into place, staggered,
     luminance only ever rising gently. Nothing oscillates, ever. */
  --evl-ease-settle: cubic-bezier(0, 0, 0.58, 1);
  --evl-enter-duration: 450ms;
  --evl-enter-rise: 10px;
  --evl-enter-stagger: 90ms;
  --evl-page-duration: 450ms;

  /* The recorded light-ground translation, shipped by the mail templates
     and available to any future light surface. Raw brass is rule-and-border
     only on light grounds, never text; light-brass-ink is the label colour
     that passes. */
  --evl-light-ground: #f4efe3;
  --evl-light-card: #fffdf8;
  --evl-light-ink: #241f14;
  --evl-light-ink-dim: #5a5340;
  --evl-light-brass: #c9a961;
  --evl-light-brass-ink: #6e5b33;
}

/* Under reduced motion every arrival keeps its fade and loses its travel:
   the rise distance goes to zero, so an entrance built from these tokens
   degrades to opacity-only without a second rule anywhere. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --evl-enter-rise: 0px;
  }
}
