/* dailymotiondl.com — Batik Canting
 *
 * Direction seed 01c7c2b6. The world is Javanese pesisir wax-resist cloth,
 * not the inland soga/cream range: north-coast batik is saturated, and the
 * cream reading would collide with getxhamster.com's warm print world.
 *
 * The governing rule, which every later edit must keep:
 *   WAX RESERVES. Dye floods the field; wax keeps it off the cloth where the
 *   work happens. So ornament and saturated colour live in the FIELD, and
 *   every control the visitor touches sits on RESERVED cloth. A pattern that
 *   crosses into a reserved panel has broken the world, not decorated it.
 *
 * Colour strategy: Committed. --dye-cerise carries the surface; it is a
 * field, not an accent.
 *
 * Light, not dark, and picked from the use scene rather than the category:
 * a mid-range Android in daylight, outdoors or in transit, finishing one
 * task in under a minute.
 */

:root {
  /* ---- dyes: the field ---- */
  --dye-cerise: #c4285f;
  --dye-cerise-deep: #99164a;
  --dye-cerise-wash: #e8a0b8;
  --dye-indigo: #1b3a6b;
  --dye-indigo-deep: #12294c;
  --dye-gold: #e8b23a;
  --dye-gold-deep: #b88421;

  /* ---- cloth: where the task lives ---- */
  --cloth-reserved: #f9f4e7;
  --cloth-raw: #efe4cd;
  --cloth-shadowed: #e2d4b8;

  /* ---- ink ---- */
  --ink: #23180f;
  --ink-soft: #5c4a38;
  --ink-faint: #8a7358;
  --ink-on-dye: #fdf6ec;
  --ink-on-dye-soft: #f2d7c6;

  /* ---- semantic surfaces ---- */
  --surface-field: var(--dye-cerise);
  --surface-panel: var(--cloth-reserved);
  --surface-panel-sunken: var(--cloth-raw);
  --surface-band: var(--dye-indigo);

  --border-wax: #d3c0a0;
  --border-wax-strong: #a88f6b;

  --text-primary: var(--ink);
  --text-secondary: var(--ink-soft);
  --text-tertiary: var(--ink-faint);

  /* Action lives on reserved cloth, so it takes indigo, not the field dye:
     cerise on cerise would vanish. */
  --action-primary: var(--dye-indigo);
  --action-primary-hover: #244a85;
  --action-primary-active: var(--dye-indigo-deep);
  --action-text: var(--ink-on-dye);

  --focus-ring: #7a3a12;
  --feedback-error: #8f2020;
  --feedback-error-cloth: #f6e2de;
  --feedback-note: var(--dye-indigo);

  /* ---- type ----
     Rubik carries Latin, Arabic and Cyrillic in one family, which the eight
     locales need; Arabic is a launch language and none of the sibling sites
     handle RTL. Self-hosted in public/fonts. */
  --font-ui: "Rubik", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-figure: "Rubik", ui-sans-serif, system-ui, sans-serif;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.75rem;
  --text-3xl: 2.25rem;
  --text-4xl: 3rem;

  --tracking-tight: -0.02em;
  --tracking-wide: 0.06em;

  /* ---- rhythm ---- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;

  /* Batik outlines are drawn by hand with a canting spout: a real line with
     weight, not a hairline. */
  --line: 2px;
  --line-heavy: 3px;
  --radius-panel: 4px;

  /* Wax sits on the cloth, so the panel casts a real offset shadow. */
  --lift-panel: 0 2px 0 var(--border-wax-strong), 0 6px 18px rgba(35, 24, 15, 0.18);
  --lift-raised: 0 3px 0 var(--border-wax-strong), 0 12px 28px rgba(35, 24, 15, 0.22);

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 140ms;
  --dur-base: 260ms;
  --dur-dye: 520ms;
}
