/* Academiq v4 - "Turing's Work Desk" - design tokens (single source of truth) */
:root{
  color-scheme:dark;

  /* surface (dark instrument plate) */
  --s0:#121830;   /* page ground */
  --s1:#18203D;   /* alternating section ground */
  --s2:#212A4E;   /* inset wells, header */
  --rule:#2E3968;                       /* hairlines on surface */
  --rule-soft:rgba(150,165,230,.16);    /* dot / ruling grid */
  --ink:#EEF1FB;   /* 16.1:1 on s0 */
  --ink-2:#A9B2D6; /* 8.2:1  on s0 */
  --ink-3:#7F8AB8; /* 4.9:1  on s0: mono labels only */

  /* plates (light instruments) */
  --p0:#E9EDF8; --p1:#DDE3F3; --p-rule:#B9C2DE;
  --p-ink:#141A33;   /* 14.9:1 on p0 */
  --p-ink-2:#465074; /* 6.6:1 on p0 */

  /* brand (refined from logo.webp) */
  --violet:#A30CF5; --violet-hi:#B98AFF;
  --blue:#5E7CF0;   --blue-ink:#2E4BD1;
  --mint:#14E39A;   --mint-ink:#06764F;
  /* six discrete stops along the logo (course ids, data series) */
  --c1:#A30CF5; --c2:#8B3CF0; --c3:#6A6AE8; --c4:#4F8FD6; --c5:#22B9B5; --c6:#14E39A;
  --err:#FF5C8A;

  /* legacy aliases: i18n-data.js injects style="color:var(--green)" */
  --green:var(--mint-ink); --muted:var(--p-ink-2); --line:var(--p-rule); --bg-2:var(--s1);

  /* type */
  --f-display:"Geologica","Unbounded",system-ui,sans-serif;
  --f-body:"Onest","Segoe UI",system-ui,sans-serif;
  --f-data:"Martian Mono","JetBrains Mono",ui-monospace,monospace;

  /* spacing: 4px base */
  --sp1:4px; --sp2:8px; --sp3:12px; --sp4:16px; --sp5:24px; --sp6:32px;
  --sp7:48px; --sp8:64px; --sp9:96px; --sp10:128px;
  --section-y:clamp(64px,9vw,128px);

  /* grid */
  --maxw:1240px; --cols:12; --gutter:clamp(16px,2.2vw,24px); --pad-x:clamp(16px,4vw,40px);
  --header-h:64px;

  /* lines & radii: precise, not soft */
  --hair:1px; --line-2:2px; --line-3:3px;
  --r0:0; --r1:2px; --r2:4px; --r-round:999px;

  /* elevation: no drop shadows; plates seat with a 1px inner rule */
  --seat:inset 0 0 0 1px var(--p-rule);
  --lift:0 0 0 1px var(--blue);

  /* motion */
  --t1:120ms; --t2:240ms; --t3:480ms; --t4:900ms;
  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-mech:cubic-bezier(.7,0,.3,1);
  --tick:steps(1,end);

  /* registration marks (9px crosshair, SVG data-URIs; colour baked in) */
  --xh-plate:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M4.5 0v9M0 4.5h9' stroke='%23B9C2DE' stroke-width='1' fill='none'/%3E%3C/svg%3E");
  --xh-surface:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M4.5 0v9M0 4.5h9' stroke='%237F8AB8' stroke-width='1' fill='none'/%3E%3C/svg%3E");
  --xh-mint:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M4.5 0v9M0 4.5h9' stroke='%2314E39A' stroke-width='1' fill='none'/%3E%3C/svg%3E");
  /* chevron for selects (12px) */
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23141A33' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
}

@counter-style bin3{
  system:fixed;
  symbols:"001" "010" "011" "100" "101" "110";
  fallback:decimal;
}
