/* ============================================================
   מפנה — tokens derived in docs/BRAND-DIRECTION.md (never by feel).
   Three layers: primitive -> semantic -> component.
   ONE hue. OKLCH, hue drifts 34deg->68deg along the measured curve of
   research/04-roof-shadow.png. The rainbow is a jewel (<2% of frame)
   and is BANNED from UI - enforced by the absence of a token.
   ============================================================ */
:root{
  /* --- layer 1 : primitive --- */
  --sun-1:#fdf1e6; --sun-2:#fae9dc; --sun-3:#f5decd; --sun-4:#efd3c0;
  --sun-5:#e7c6b2; --sun-6:#d9b5a1; --sun-7:#a9806d; --sun-8:#8d6c5e;
  --sun-9:#ad5a34; --sun-10:#984c2d; --sun-11:#755146; --sun-12:#2e221f;

  /* the film. warm-tinted near-black - the SYSTEM's dark, not the photograph's */
  --night-1:#0f0a08; --night-2:#1c1513; --night-3:#3c3330;

  /* sampled off research/03-silicon-macro.png. --bus is the busbar highlight */
  --bus:#f7f6f3;
  --glass-1:#f7f3ef; --glass-2:#d7d3d0; --glass-3:#a7a4a1; --glass-4:#837f7d;

  /* type */
  --face:"IBM Plex Sans Hebrew",system-ui,sans-serif;
  --t-1:14px;
  --t-2:clamp(18px,1.4vw,20px);
  --t-3:clamp(21px,1.7vw,25px);
  --t-4:clamp(29px,2.8vw,40px);
  --t-5:clamp(38px,4.2vw,60px);
  --t-6:clamp(64px,6.5vw,94px);
  --w-light:200; --w-book:400; --w-bold:700;
  /* NO opsz axis on IBM Plex Sans Hebrew (Adapter had one; licence declined
     2026-08-17). font-variation-settings:"opsz" would be a silent no-op, so
     it is removed rather than left looking wired. Optical compensation is
     done with tracking: display sizes tighten, small text opens. */
  --track-display:-.012em; --track-body:.004em;

  /* the four PVGIS angles - every rotation on this page is one of these */
  --a-optimal:29deg; --a-north:45deg; --a-shallow:10deg; --a-flat:0deg;

  --dur:240ms; --dur-tonal:600ms; --ease:cubic-bezier(.2,.6,.2,1);
  --radius:0; --hair:1px;

  /* --- layer 2 : semantic --- */
  --ground:var(--sun-1);        --ground-alt:var(--sun-2);
  --ink:var(--sun-12);          --ink-muted:var(--sun-11);
  --ink-on-accent:var(--bus);
  --accent:var(--sun-9);        --accent-hover:var(--sun-10);
  --rule-hair:var(--sun-6);     --rule-full:var(--sun-8);
  --border-field:var(--sun-7);  --focus:var(--sun-12);
  --surface:var(--sun-3); --surface-hover:var(--sun-4); --surface-active:var(--sun-5);

  /* aliases kept so template rules keep resolving */
  --paper:var(--ground); --paper-2:var(--ground-alt);
  --ink-soft:var(--ink-muted); --muted:var(--ink-muted);
  --accent-2:var(--sun-8); --line:var(--rule-hair);

  --pad:clamp(1.25rem,4.5vw,4rem);
  --maxw:1500px;
}

/* the film acts. --accent is withdrawn with `initial`, NOT a sentinel word:
   `--accent:REMOVED` is a valid token stream, so var(--accent, safe) still
   resolves to REMOVED and computes to BLACK, silently swallowing the fallback.
   Measured 2026-08-16. `initial` is the only form that truly un-sets it. */
[data-scene="film"]{
  --ground:var(--night-1);      --ground-alt:var(--night-2);
  --ink:var(--glass-2);         --ink-muted:var(--glass-3);
  --ink-quiet:var(--glass-4);   --numeral:var(--glass-1);
  --rule-hair:var(--night-3);   --focus:var(--bus);
  --w-light:300; --w-bold:600;                 /* -1 step on dark */
  --accent:initial; --accent-hover:initial;    /* no brand colour inside the film */
}
