/* Self-hosted variable fonts — no external CDN, no runtime third-party request. */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/inter-variable-latin.260c81a4759b.woff2") format('woff2')}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300 700;font-display:swap;src:url("../fonts/cormorant-garamond-latin.c47ff12887a3.woff2") format('woff2')}

:root{
  color-scheme:dark;
  --ink:#060820;--navy:#101629;--violet:#6626ef;--violet-2:#2c1f97;--lavender:#9169f2;--glass:#171442;
  --paper:#e3dff2;--silver:#b6b1cf;--cyan:#19d3e2;--line:rgba(227,223,242,.13);
  --line-strong:rgba(227,223,242,.24);--surface:rgba(23,20,66,.86);--surface-2:rgba(16,22,41,.76);
  --success:#19d3e2;--warning:#ffc978;--danger:#ff7d90;--max:1180px;--radius:22px;
  --shadow:0 24px 80px rgba(6,8,32,.42);--header:rgba(6,8,32,.82);
  --font-body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-display:"Cormorant Garamond","Iowan Old Style",Georgia,"Times New Roman",serif;

  /* t0 — one token per delivery primitive, ramped by depth of engagement: cyan
     is the entry any visitor can take alone, violet the reserved capacity that
     costs a standing commitment. The ramp is the message.

     The violet end is mixed toward --paper rather than used neat. --paper is the
     body-text colour in both themes, so the mix lands light on the dark theme
     and dark on the light one — which is what keeps #6626ef legible as a letter
     on a dark card, where neat violet sits at about 2.4:1.

     Declared here rather than on .composition-atlas because two sheets now read
     them: the atlas on the packs page and the configuration ladder on each
     landing page. The same brick must be the same colour in both, and a second
     copy of the ramp is a second thing to keep in step. Both mixes resolve
     against the theme's own --cyan / --violet, so the light theme needs no
     override. */
  --t0-framework:var(--cyan);
  --t0-office_hours:color-mix(in srgb,var(--cyan) 50%,var(--lavender));
  --t0-cohort:var(--lavender);
  --t0-programme:color-mix(in srgb,var(--violet) 62%,var(--paper));
  --t0-capacity:color-mix(in srgb,var(--violet-2) 55%,var(--paper));
}
html[data-theme="light"]{
  color-scheme:light;--ink:#f4f2fb;--navy:#e8e5f5;--glass:#fff;--paper:#12102e;--silver:#5b5878;--lavender:#6b4bc9;
  --line:rgba(18,16,46,.12);--line-strong:rgba(18,16,46,.22);--surface:rgba(255,255,255,.92);--surface-2:rgba(246,244,252,.96);
  --shadow:0 24px 70px rgba(44,31,151,.14);--header:rgba(250,249,255,.86);--cyan:#0a7280;--violet:#5a1fd6;--violet-2:#2c1f97;
}
