/* ============================================================ BASE — Minimal site-wide rules. Keep this extremely small (≤ 5 rules). Promote a pattern from a component to base only once it's clearly universal. ============================================================ */ /* Full-height flex layout: header → main → (optional footer) */ html, body { height: 100%; overflow: hidden; } /* ── Discreet scrollbars ─────────────────────────────────────────── */ /* WebKit browsers */ ::-webkit-scrollbar { width: 5px; height: 5px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--text-tertiary); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: var(--text-secondary); } /* Firefox */ * { scrollbar-width: thin; scrollbar-color: var(--text-tertiary) transparent; } body { font-family: var(--font-body); font-weight: 300; color: var(--text-primary); background: linear-gradient( 180deg, rgba(0, 0, 0, 0) 92%, rgba(149, 87, 181, 1) 100% ); display: flex; flex-direction: column; } main { flex: 1; min-height: 0; overflow-wrap: anywhere; } main * { overflow-wrap: anywhere; word-break: break-word; } /* Global heading scale — used by admin + public pages */ h1 { font-size: var(--step-4); } h2 { font-size: var(--step-3); } h3 { font-size: var(--step-2); } h4 { font-size: var(--step-1); } h5 { font-size: var(--step-0); } h6 { font-size: var(--step--1); } :where(h1, h2, h3, h4, h5, h6) { font-family: var(--font-display); font-weight: 400; margin: 0 0 var(--space-l) 0; line-height: 1.15; }