:root{
/* FIXED-CANVAS SYSTEM — social posts, covers, slide grounds.
   Authored at 1080px wide and viewed at ~350–400px in a feed, so every size is
   roughly 3× its perceived size. Do not apply the web or print scale here. */

/* Type — 1080×1080 square and 1080×1350 portrait (portrait uses these directly) */
--social-display:800 88px/1.05 var(--font-display); /* @kind font */ /* 80–96px */
--social-headline-2:700 55px/1.14 var(--font-display); /* @kind font */ /* 52–58px */
--social-body:400 28px/1.45 var(--font-body); /* @kind font */ /* 26–30px, 26 is the hard floor */
--social-body-min:26px; /* @kind font */
--social-eyebrow:700 16px/1.2 var(--font-display); /* @kind font */ /* 15–17px */
--social-eyebrow-tracking:.16em; /* @kind other */
--social-stat:800 160px/.92 var(--font-display); /* @kind font */ /* 150–170px */
--social-button:700 24px/1 var(--font-body); /* @kind font */
--social-meta:600 24px/1.35 var(--font-body); /* @kind font */ /* 22–26px */

/* Spacing — group, don't distribute */
--social-canvas-pad:80px; /* 72–88px on a 1080px square */
--social-block-gap:24px; /* inside a dense block */
--social-group-gap:64px; /* the one generous gap between blocks */

/* Accent bar — weight scales with canvas width (~2.5–3%), not with the element */
--social-accent-bar:32px; /* 24–32px on a 1080px canvas */

/* Canvases */
--canvas-square:1080px;
--canvas-portrait-w:1080px;
--canvas-portrait-h:1350px;
--canvas-story-w:1080px;
--canvas-story-h:1920px;
/* Story safe area: keep all content inside this inset, top and bottom */
--canvas-story-safe-y:250px;

/* Photography crops — a placeholder must state and hold its own ratio */
--crop-team-portrait:1 / 1;   /* @kind other */ /* milestones, team cards, speaker credits */
--crop-article-header:16 / 9; /* @kind other */ /* blog headers, wide podcast art */
--crop-portrait-card:4 / 5;   /* @kind other */ /* program cards, vertical card slots */
--crop-story:9 / 16;          /* @kind other */
}
