/* Zidos Trail v9 Tokens — pure semantic roles without AI slop */
@font-face {
  font-family: Onest;
  src: url("../../fonts/Onest-subset.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: Onest;
  src: url("../../fonts/Onest-cyrillic.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: Onest;
  src: url("../../fonts/Onest-cyrillic-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0460-052F;
}
/* Onest draws the U+202F thousands separator 0.11em wide, so «2 717,94» reads as «2717,94».
   Declared after the faces above so it wins for that one character on every route. */
@font-face {
  font-family: Onest;
  src: url("../../fonts/Onest-subset.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+202F;
  size-adjust: 220%;
  ascent-override: 40%;
  descent-override: 10%;
  line-gap-override: 0%;
}
@font-face {
  font-family: Doto;
  src: url("../../fonts/Doto-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0030-0039, U+002C-002F, U+0020, U+00A0, U+202F;
}

:root {
  --canvas: #eef0ec;
  --frame: #f7f7f5;
  --panel: #ffffff;
  --panel-2: #f2f3f5;
  --well: #eff0f5;
  --well-deep: #e5e8ef;
  --ink: #111111;
  --ink-2: #54585b;
  --ink-3: #606468;
  --muted: #54585b;

  --lime: #d2fb4a;
  --lime-ink: #193006;
  --on-lime: #193006;
  --positive: #20693f;
  --danger: #a32928;
  --focus: #111111;

  --brand: #111111;
  --category-1: #306749;
  --category-2: #805800;
  --category-3: #a4532d;
  --category-4: #75449c;
  --category-5: #006d70;
  --category-6: #9c3d68;
  /* Category identity is shared by every route and both themes. */
  --category-groceries: var(--category-1);
  --category-cafe: var(--category-2);
  --category-transport: var(--category-3);
  --category-shopping: var(--category-4);
  --category-travel: var(--category-5);
  --category-health: var(--category-6);
  --category-fallback: var(--ink-2);
  --ok: #20693f;
  --problem: #a32928;
  --data-2: #a4532d;

  --c1: #306749;
  --c2: #805800;
  --c3: #a4532d;
  --c4: #75449c;
  --c5: #006d70;
  --c6: #9c3d68;
  --tint: 14%;

  --veil: rgba(238, 240, 236, 0.62);
  --glass: rgba(247, 247, 245, 0.88);
  --scrim: rgba(17, 17, 17, 0.24);

  --crit: linear(0, .079, .237, .405, .553, .673, .766, .834, .884, .92, .945, .963, .975, .983, .989, .992, 1);
  --travel: linear(0, .07, .221, .393, .552, .687, .791, .869, .923, .959, .982, .995, 1.002, 1.005, 1.006, 1.006, 1);
  --morph: linear(0, .08, .249, .439, .611, .75, .853, .924, .969, .996, 1.009, 1.014, 1.015, 1.013, 1.01, 1.007, 1);
  --slow: linear(0, .048, .156, .287, .419, .541, .647, .734, .804, .859, .901, .932, .955, .971, .982, .99, 1);
  /* owner motion norm: one exhale curve for everything that is not a spring; roles below are the only durations CSS and JS use */
  --ease: cubic-bezier(.2, .8, .2, 1);
  --ease-out: var(--ease);

  --press: 236ms;
  --snap: 295ms;
  --sheet: 354ms;
  --flight: 409ms;
  --morph-d: 482ms;
  --fade: 120ms;
  --mid: 200ms;
  --move: 250ms;
  --tab: 320ms;
  --scrim-in: 120ms;
  --scrim-out: 180ms;
  --stagger: 35ms;

  --motion-duration-sheet: 354ms;
  --motion-sheet: 354ms;
  --motion-spring-sheet-duration: 354ms;
  --motion-spring-press-duration: 236ms;
  --motion-spring-snap-duration: 295ms;
  --motion-spring-travel-duration: 409ms;
  --motion-duration-fast: 120ms;
  --motion-fast: 120ms;
  --motion-duration-mid: var(--mid);
  --motion-mid: 240ms;
  --motion-duration-max: 600ms;
  --motion-max: 600ms;
  --motion-ease-out: var(--ease);
  --motion-ease-spring-crit: var(--crit);
  --motion-ease-spring-travel: var(--travel);
  --motion-ease-spring-morph: var(--morph);
  --motion-ease-spring-slow: var(--slow);
  --motion-type-char: 50ms;
  --motion-type-delete: 25ms;
  --motion-type-hold: 1200ms;
  --motion-type-between: 400ms;

  --sans: Onest, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-pixel: Doto, Onest, sans-serif;

  accent-color: var(--lime);
  color-scheme: light;
}

:root[data-theme="dark"], html.dark {
  --canvas: #101315;
  --frame: #16181b;
  --panel: #1e2125;
  --panel-2: #282d33;
  --well: #282d33;
  --well-deep: #333c49;
  --ink: #f4f5f7;
  --ink-2: #c0c5cc;
  --ink-3: #b5bdc7;
  --muted: #c0c5cc;

  --lime: #d2fb4a;
  --lime-ink: #113a02;
  --on-lime: #113a02;
  --positive: #7bdda0;
  --danger: #ff9c94;
  --focus: #f4f5f7;

  --brand: #f4f5f7;
  --category-1: #8adbab;
  --category-2: #e7c17b;
  --category-3: #f0a37a;
  --category-4: #d2aff4;
  --category-5: #7dd3d6;
  --category-6: #efa6c4;
  --category-fallback: var(--ink-2);
  --ok: #7bdda0;
  --problem: #ff9c94;
  --data-2: #f0a37a;

  --c1: #8adbab;
  --c2: #e7c17b;
  --c3: #f0a37a;
  --c4: #d2aff4;
  --c5: #7dd3d6;
  --c6: #efa6c4;
  --tint: 20%;

  --veil: rgba(16, 19, 21, 0.66);
  --glass: rgba(40, 45, 51, 0.9);
  --scrim: rgba(0, 0, 0, 0.48);

  accent-color: var(--lime);
  color-scheme: dark;
}
/* ?motion=curve (js/web-r7-ov-motion.js): variant «без пружин» for the A/B pick page */
html[data-motion=curve] { --crit: cubic-bezier(.32,.72,0,1); --travel: cubic-bezier(.32,.72,0,1); --morph: cubic-bezier(.32,.72,0,1); --slow: cubic-bezier(.32,.72,0,1); --ease: cubic-bezier(.32,.72,0,1); }
