/* ══ FEWD:FONTS:START ══ */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/Inter.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/Montserrat.woff2') format('woff2');
}
/* ══ FEWD:FONTS:END ══ */
/* ══ USER:FONTS:START ══ */
/* ══ USER:FONTS:END ══ */

/* ════ LAYER 1 — DESIGN PRIMITIVES ════ */

/* ══ FEWD:LAYOUT:START ══ */
:root {
  --container-width:    1200px;
  --container-padding:  0;
  --section-inline:     var(--space-m);
  --section-block:      var(--space-xl);
}

section {
  padding-block:  var(--section-block);
  padding-inline: var(--section-inline);
  position: relative;
  width: 100%;
}

.container {
  width: 100%;
  max-width: var(--container-width);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

[content-container] {
  width: 100%;
  max-width: var(--container-width);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

/* ── Container query context helpers ── */
.cq        { container-type: inline-size; }
.cq-size   { container-type: size; }
.cq-normal { container-type: normal; }
/* ══ FEWD:LAYOUT:END ══ */
/* ══ USER:LAYOUT:START ══ */
/* ══ USER:LAYOUT:END ══ */

/* ══ FEWD:COLOR-PRIMITIVES:START ══ */
/* fewd-config: enabled=primary,secondary,tertiary,accent,base,neutral primary=#372E69 secondary=#888888 tertiary=#888888 accent=#749B76 base=#181b1c neutral=#bbbbbb */
/* fewd-config-status: error=#dc2626 warning=#d97706 success=#16a34a info=#94a3b8 */
:root {
  /* ── Base ── */
  --white: #ffffff;
  --black: #000000;
  /* White transparencies */
  --white-10: oklch(100% 0 0 / 0.10);
  --white-20: oklch(100% 0 0 / 0.20);
  --white-30: oklch(100% 0 0 / 0.30);
  --white-40: oklch(100% 0 0 / 0.40);
  --white-50: oklch(100% 0 0 / 0.50);
  --white-60: oklch(100% 0 0 / 0.60);
  --white-70: oklch(100% 0 0 / 0.70);
  --white-80: oklch(100% 0 0 / 0.80);
  --white-90: oklch(100% 0 0 / 0.90);
  /* Black transparencies */
  --black-10: oklch(0% 0 0 / 0.10);
  --black-20: oklch(0% 0 0 / 0.20);
  --black-30: oklch(0% 0 0 / 0.30);
  --black-40: oklch(0% 0 0 / 0.40);
  --black-50: oklch(0% 0 0 / 0.50);
  --black-60: oklch(0% 0 0 / 0.60);
  --black-70: oklch(0% 0 0 / 0.70);
  --black-80: oklch(0% 0 0 / 0.80);
  --black-90: oklch(0% 0 0 / 0.90);

  /* Primary */
  --primary-light-2: oklch(0.524 0.054 287.0);
  --primary-light-1: oklch(0.444 0.077 287.0);
  --primary: oklch(0.344 0.099 287.0);
  --primary-dark-1: oklch(0.274 0.089 287.0);
  --primary-dark-2: oklch(0.204 0.074 287.0);
  /* Primary transparencies */
  --primary-trans10: oklch(0.344 0.099 287.0 / 0.10);
  --primary-trans20: oklch(0.344 0.099 287.0 / 0.20);
  --primary-trans30: oklch(0.344 0.099 287.0 / 0.30);
  --primary-trans40: oklch(0.344 0.099 287.0 / 0.40);
  --primary-trans50: oklch(0.344 0.099 287.0 / 0.50);
  --primary-trans60: oklch(0.344 0.099 287.0 / 0.60);
  --primary-trans70: oklch(0.344 0.099 287.0 / 0.70);
  --primary-trans80: oklch(0.344 0.099 287.0 / 0.80);
  --primary-trans90: oklch(0.344 0.099 287.0 / 0.90);

  /* Secondary */
  --secondary-light-2: oklch(0.807 0.000 89.9);
  --secondary-light-1: oklch(0.727 0.000 89.9);
  --secondary: oklch(0.627 0.000 89.9);
  --secondary-dark-1: oklch(0.557 0.000 89.9);
  --secondary-dark-2: oklch(0.487 0.000 89.9);
  /* Secondary transparencies */
  --secondary-trans10: oklch(0.627 0.000 89.9 / 0.10);
  --secondary-trans20: oklch(0.627 0.000 89.9 / 0.20);
  --secondary-trans30: oklch(0.627 0.000 89.9 / 0.30);
  --secondary-trans40: oklch(0.627 0.000 89.9 / 0.40);
  --secondary-trans50: oklch(0.627 0.000 89.9 / 0.50);
  --secondary-trans60: oklch(0.627 0.000 89.9 / 0.60);
  --secondary-trans70: oklch(0.627 0.000 89.9 / 0.70);
  --secondary-trans80: oklch(0.627 0.000 89.9 / 0.80);
  --secondary-trans90: oklch(0.627 0.000 89.9 / 0.90);

  /* Tertiary */
  --tertiary-light-2: oklch(0.807 0.000 89.9);
  --tertiary-light-1: oklch(0.727 0.000 89.9);
  --tertiary: oklch(0.627 0.000 89.9);
  --tertiary-dark-1: oklch(0.557 0.000 89.9);
  --tertiary-dark-2: oklch(0.487 0.000 89.9);
  /* Tertiary transparencies */
  --tertiary-trans10: oklch(0.627 0.000 89.9 / 0.10);
  --tertiary-trans20: oklch(0.627 0.000 89.9 / 0.20);
  --tertiary-trans30: oklch(0.627 0.000 89.9 / 0.30);
  --tertiary-trans40: oklch(0.627 0.000 89.9 / 0.40);
  --tertiary-trans50: oklch(0.627 0.000 89.9 / 0.50);
  --tertiary-trans60: oklch(0.627 0.000 89.9 / 0.60);
  --tertiary-trans70: oklch(0.627 0.000 89.9 / 0.70);
  --tertiary-trans80: oklch(0.627 0.000 89.9 / 0.80);
  --tertiary-trans90: oklch(0.627 0.000 89.9 / 0.90);

  /* Accent */
  --accent-light-2: oklch(0.830 0.038 146.0);
  --accent-light-1: oklch(0.750 0.054 146.0);
  --accent: oklch(0.650 0.069 146.0);
  --accent-dark-1: oklch(0.580 0.062 146.0);
  --accent-dark-2: oklch(0.510 0.052 146.0);
  /* Accent transparencies */
  --accent-trans10: oklch(0.650 0.069 146.0 / 0.10);
  --accent-trans20: oklch(0.650 0.069 146.0 / 0.20);
  --accent-trans30: oklch(0.650 0.069 146.0 / 0.30);
  --accent-trans40: oklch(0.650 0.069 146.0 / 0.40);
  --accent-trans50: oklch(0.650 0.069 146.0 / 0.50);
  --accent-trans60: oklch(0.650 0.069 146.0 / 0.60);
  --accent-trans70: oklch(0.650 0.069 146.0 / 0.70);
  --accent-trans80: oklch(0.650 0.069 146.0 / 0.80);
  --accent-trans90: oklch(0.650 0.069 146.0 / 0.90);

  /* Base */
  --base-light-2: oklch(0.399 0.003 219.7);
  --base-light-1: oklch(0.319 0.004 219.7);
  --base: oklch(0.219 0.005 219.7);
  --base-dark-1: oklch(0.149 0.004 219.7);
  --base-dark-2: oklch(0.079 0.004 219.7);
  /* Base transparencies */
  --base-trans10: oklch(0.219 0.005 219.7 / 0.10);
  --base-trans20: oklch(0.219 0.005 219.7 / 0.20);
  --base-trans30: oklch(0.219 0.005 219.7 / 0.30);
  --base-trans40: oklch(0.219 0.005 219.7 / 0.40);
  --base-trans50: oklch(0.219 0.005 219.7 / 0.50);
  --base-trans60: oklch(0.219 0.005 219.7 / 0.60);
  --base-trans70: oklch(0.219 0.005 219.7 / 0.70);
  --base-trans80: oklch(0.219 0.005 219.7 / 0.80);
  --base-trans90: oklch(0.219 0.005 219.7 / 0.90);

  /* Neutral */
  --neutral-light-2: oklch(0.970 0.000 89.9);
  --neutral-light-1: oklch(0.892 0.000 89.9);
  --neutral: oklch(0.792 0.000 89.9);
  --neutral-dark-1: oklch(0.722 0.000 89.9);
  --neutral-dark-2: oklch(0.652 0.000 89.9);
  /* Neutral transparencies */
  --neutral-trans10: oklch(0.792 0.000 89.9 / 0.10);
  --neutral-trans20: oklch(0.792 0.000 89.9 / 0.20);
  --neutral-trans30: oklch(0.792 0.000 89.9 / 0.30);
  --neutral-trans40: oklch(0.792 0.000 89.9 / 0.40);
  --neutral-trans50: oklch(0.792 0.000 89.9 / 0.50);
  --neutral-trans60: oklch(0.792 0.000 89.9 / 0.60);
  --neutral-trans70: oklch(0.792 0.000 89.9 / 0.70);
  --neutral-trans80: oklch(0.792 0.000 89.9 / 0.80);
  --neutral-trans90: oklch(0.792 0.000 89.9 / 0.90);

  /* ── Status ── */

  /* Error */
  --error-light-2: oklch(0.757 0.118 27.3);
  --error-light-1: oklch(0.677 0.168 27.3);
  --error: oklch(0.577 0.215 27.3);
  --error-dark-1: oklch(0.507 0.194 27.3);
  --error-dark-2: oklch(0.437 0.161 27.3);
  /* Error transparencies */
  --error-trans10: oklch(0.577 0.215 27.3 / 0.10);
  --error-trans20: oklch(0.577 0.215 27.3 / 0.20);
  --error-trans30: oklch(0.577 0.215 27.3 / 0.30);
  --error-trans40: oklch(0.577 0.215 27.3 / 0.40);
  --error-trans50: oklch(0.577 0.215 27.3 / 0.50);
  --error-trans60: oklch(0.577 0.215 27.3 / 0.60);
  --error-trans70: oklch(0.577 0.215 27.3 / 0.70);
  --error-trans80: oklch(0.577 0.215 27.3 / 0.80);
  --error-trans90: oklch(0.577 0.215 27.3 / 0.90);

  /* Warning */
  --warning-light-2: oklch(0.846 0.086 58.3);
  --warning-light-1: oklch(0.766 0.122 58.3);
  --warning: oklch(0.666 0.157 58.3);
  --warning-dark-1: oklch(0.596 0.141 58.3);
  --warning-dark-2: oklch(0.526 0.118 58.3);
  /* Warning transparencies */
  --warning-trans10: oklch(0.666 0.157 58.3 / 0.10);
  --warning-trans20: oklch(0.666 0.157 58.3 / 0.20);
  --warning-trans30: oklch(0.666 0.157 58.3 / 0.30);
  --warning-trans40: oklch(0.666 0.157 58.3 / 0.40);
  --warning-trans50: oklch(0.666 0.157 58.3 / 0.50);
  --warning-trans60: oklch(0.666 0.157 58.3 / 0.60);
  --warning-trans70: oklch(0.666 0.157 58.3 / 0.70);
  --warning-trans80: oklch(0.666 0.157 58.3 / 0.80);
  --warning-trans90: oklch(0.666 0.157 58.3 / 0.90);

  /* Success */
  --success-light-2: oklch(0.807 0.093 149.2);
  --success-light-1: oklch(0.727 0.133 149.2);
  --success: oklch(0.627 0.170 149.2);
  --success-dark-1: oklch(0.557 0.153 149.2);
  --success-dark-2: oklch(0.487 0.128 149.2);
  /* Success transparencies */
  --success-trans10: oklch(0.627 0.170 149.2 / 0.10);
  --success-trans20: oklch(0.627 0.170 149.2 / 0.20);
  --success-trans30: oklch(0.627 0.170 149.2 / 0.30);
  --success-trans40: oklch(0.627 0.170 149.2 / 0.40);
  --success-trans50: oklch(0.627 0.170 149.2 / 0.50);
  --success-trans60: oklch(0.627 0.170 149.2 / 0.60);
  --success-trans70: oklch(0.627 0.170 149.2 / 0.70);
  --success-trans80: oklch(0.627 0.170 149.2 / 0.80);
  --success-trans90: oklch(0.627 0.170 149.2 / 0.90);

  /* Info */
  --info-light-2: oklch(0.891 0.019 256.8);
  --info-light-1: oklch(0.811 0.027 256.8);
  --info: oklch(0.711 0.035 256.8);
  --info-dark-1: oklch(0.641 0.032 256.8);
  --info-dark-2: oklch(0.571 0.026 256.8);
  /* Info transparencies */
  --info-trans10: oklch(0.711 0.035 256.8 / 0.10);
  --info-trans20: oklch(0.711 0.035 256.8 / 0.20);
  --info-trans30: oklch(0.711 0.035 256.8 / 0.30);
  --info-trans40: oklch(0.711 0.035 256.8 / 0.40);
  --info-trans50: oklch(0.711 0.035 256.8 / 0.50);
  --info-trans60: oklch(0.711 0.035 256.8 / 0.60);
  --info-trans70: oklch(0.711 0.035 256.8 / 0.70);
  --info-trans80: oklch(0.711 0.035 256.8 / 0.80);
  --info-trans90: oklch(0.711 0.035 256.8 / 0.90);
}
/* ══ FEWD:COLOR-PRIMITIVES:END ══ */
/* ══ USER:COLOR-PRIMITIVES:START ══ */
/* ══ USER:COLOR-PRIMITIVES:END ══ */

/* ══ FEWD:TYPOGRAPHY:START ══ */
/* fewd-config: desktopBase=1 mobileBase=0.9375 desktopRatio=1.25 mobileRatio=1.2 bpMin=375 bpMax=1280 cqMin=320 cqMax=1200 */
:root {
  /* ── Font Families ── */
  --font-body:     'Inter', system-ui, sans-serif;
  --font-display:  'Montserrat', system-ui, sans-serif;
  --font-mono:     ui-monospace, monospace;

  /* ── Type Size Scale ── */
  --text-xxs:    0.64rem;
  --text-xs:     0.8rem;
  --text-s:      clamp(0.9375rem, calc(0.9116rem + 0.1105vw), 1rem);
  --text-m:      clamp(1.125rem, calc(1.0732rem + 0.221vw), 1.25rem);
  --text-l:      clamp(1.35rem, calc(1.2619rem + 0.3757vw), 1.5625rem);
  --text-xl:     clamp(1.62rem, calc(1.482rem + 0.5889vw), 1.9531rem);
  --text-xxl:    clamp(1.944rem, calc(1.7379rem + 0.8794vw), 2.4414rem);
  --text-xxxl:   clamp(2.3328rem, calc(2.0349rem + 1.2712vw), 3.0518rem);

  /* ── Weight Scale (1 = 100 Thin … 9 = 900 Heavy) ── */
  --weight-1: 100;
  --weight-2: 200;
  --weight-3: 300;
  --weight-4: 400;
  --weight-5: 500;
  --weight-6: 600;
  --weight-7: 700;
  --weight-8: 800;
  --weight-9: 900;

  /* ── Leading Scale ── */
  --leading-xs:  1.0;
  --leading-s:   1.15;
  --leading-m:   1.35;
  --leading-l:   1.6;
  --leading-xl:  1.8;
  --leading-xxl: 2.0;

  /* ── Tracking Scale ── */
  --tracking-tight:   -0.02em;
  --tracking-normal:  0;
  --tracking-wide:    0.06em;
  --tracking-wider:   0.1em;
  --tracking-widest:  0.12em;
}

/* .cq-fluid — container-relative fluid typography.
   Overrides --text-* to scale by container width (cqi) instead of viewport (vw).
   Apply to any element to opt its subtree into container-relative type scaling. */
.cq-fluid {
  container-type: inline-size;
  --text-xxs:  0.651rem;
  --text-xs:   0.7813rem;
  --text-s:    clamp(0.9375rem, calc(0.9148rem + 0.1136cqi), 1rem);
  --text-m:    clamp(1.125rem, calc(1.0795rem + 0.2273cqi), 1.25rem);
  --text-l:    clamp(1.35rem, calc(1.2727rem + 0.3864cqi), 1.5625rem);
  --text-xl:   clamp(1.62rem, calc(1.4989rem + 0.6056cqi), 1.9531rem);
  --text-xxl:  clamp(1.944rem, calc(1.7631rem + 0.9044cqi), 2.4414rem);
  --text-xxxl: clamp(2.3328rem, calc(2.0713rem + 1.3073cqi), 3.0518rem);
}
/* ══ FEWD:TYPOGRAPHY:END ══ */
/* ══ USER:TYPOGRAPHY:START ══ */
/* ══ USER:TYPOGRAPHY:END ══ */

/* ══ FEWD:SPACING:START ══ */
/* fewd-config: desktopBase=1.875 mobileBase=1.5 desktopRatio=1.5 mobileRatio=1.333 sectionGap=0 containerGap=0 gridGap=0 */
:root {
  /* ── Fluid Spacing Scale ── */
  --space-xs: 0.8442rem;
  --space-s: clamp(1.1253rem, calc(1.0736rem + 0.2205vw), 1.25rem);
  --space-m: clamp(1.5rem, calc(1.3446rem + 0.663vw), 1.875rem);
  --space-l: clamp(1.9995rem, calc(1.6626rem + 1.4373vw), 2.8125rem);
  --space-xl: clamp(2.6653rem, calc(2.0216rem + 2.7465vw), 4.2188rem);
  --space-2xl: clamp(3.5529rem, calc(2.403rem + 4.9064vw), 6.3281rem);
  --space-3xl: clamp(4.736rem, calc(2.7652rem + 8.4088vw), 9.4922rem);

  /* ── Negative Space ── */
  --space-neg-xs: calc(var(--space-xs) * -1);
  --space-neg-s: calc(var(--space-s) * -1);
  --space-neg-m: calc(var(--space-m) * -1);
}

/* .cq-spacing — container-relative fluid spacing.
   Overrides --space-* to scale by container width (cqi) instead of viewport (vw).
   Apply alongside .cq-fluid for fully container-relative components. */
.cq-spacing {
  container-type: inline-size;
  --space-xs: 0.8442rem;
  --space-s: clamp(1.1253rem, calc(1.08rem + 0.2267cqi), 1.25rem);
  --space-m: clamp(1.5rem, calc(1.3636rem + 0.6818cqi), 1.875rem);
  --space-l: clamp(1.9995rem, calc(1.7039rem + 1.4782cqi), 2.8125rem);
  --space-xl: clamp(2.6653rem, calc(2.1004rem + 2.8245cqi), 4.2188rem);
  --space-2xl: clamp(3.5529rem, calc(2.5437rem + 5.0458cqi), 6.3281rem);
  --space-3xl: clamp(4.736rem, calc(3.0065rem + 8.6476cqi), 9.4922rem);
}
/* ══ FEWD:SPACING:END ══ */
/* ══ USER:SPACING:START ══ */
/* ══ USER:SPACING:END ══ */

/* ══ FEWD:STYLING:START ══ */
:root {
  /* ── Border Radius Scale ── */
  --radius-1:    2px;
  --radius-2:    4px;
  --radius-3:    6px;
  --radius-4:    10px;
  --radius-5:    16px;
  --radius-pill: 9999px;

  /* ── Shadow Scale ── */
  --shadow-1: 0 1px 2px 0 oklch(0 0 0 / 0.05);
  --shadow-2: 0 1px 3px 0 oklch(0 0 0 / 0.1), 0 1px 2px -1px oklch(0 0 0 / 0.1);
  --shadow-3: 0 4px 6px -1px oklch(0 0 0 / 0.1), 0 2px 4px -2px oklch(0 0 0 / 0.1);
  --shadow-4: 0 10px 15px -3px oklch(0 0 0 / 0.1), 0 4px 6px -4px oklch(0 0 0 / 0.1);

  /* ── Transition Durations ── */
  --duration-fast: 100ms;
  --duration-base: 200ms;
  --duration-slow: 400ms;

  /* ── Easing Curves ── */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.87, 0, 0.13, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ── Z-index Scale ── */
  --z-below:    -1;
  --z-base:     0;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-modal:    500;
  --z-toast:    700;
  --z-tooltip:  900;

  /* ── Opacity ── */
  --opacity-disabled: 0.45;
  --opacity-muted:    0.6;
  --opacity-overlay:  0.75;
}
/* ══ FEWD:STYLING:END ══ */
/* ══ USER:STYLING:START ══ */
/* ══ USER:STYLING:END ══ */

/* ════ LAYER 2 — DESIGN TOKENS ════ */

/* ══ FEWD:COLOUR-ASSIGNMENTS:START ══ */
:root {
  --bg-white: var(--white);
  --color-body-bg: var(--white);
  --bg-light: var(--neutral-light-2);
  --bg-darker: var(--base-light-1);
  --bg-dark: var(--base);
  --text: var(--base-dark-1);
  --text-muted: var(--neutral);
  --text-light: var(--neutral-light-1);
  --text-on-dark: var(--neutral-light-2);
  --color-cta: var(--primary);
  --border: var(--neutral-dark-1);
  --shadow-color: var(--neutral-dark-2);
  --color-error: var(--error);
  --color-warning: var(--warning);
  --color-success: var(--success);
  --color-info: var(--info);
}
/* ══ FEWD:COLOUR-ASSIGNMENTS:END ══ */
/* ══ USER:COLOUR-ASSIGNMENTS:START ══ */
/* ══ USER:COLOUR-ASSIGNMENTS:END ══ */

/* ══ FEWD:COLOUR-SCHEME:START ══ */
/* fewd-config-json: {"light":{"--background":"--bg-white","--surface":"--bg-light","--surface-raised":"--bg-light","--color":"--text","--color-muted":"--text-muted","--border-color":"--border","--shadow-col":"--shadow-color"},"dark":{"--background":"--bg-dark","--surface":"--bg-dark","--surface-raised":"--bg-darker","--color":"--text-on-dark","--color-muted":"--text-light","--border-color":"--border","--shadow-col":"--shadow-color"}} */
:root {
  color-scheme: light dark;
  --background: var(--bg-white);
  --surface: var(--bg-light);
  --surface-raised: var(--bg-light);
  --color: var(--text);
  --color-muted: var(--text-muted);
  --border-color: var(--border);
  --shadow-col: var(--shadow-color);
}

@media (prefers-color-scheme: dark) {
  :root {
    --background: var(--bg-dark);
    --surface: var(--bg-dark);
    --surface-raised: var(--bg-darker);
    --color: var(--text-on-dark);
    --color-muted: var(--text-light);
  }
}

[data-theme="light"] {
  color-scheme: light;
  --background: var(--bg-white);
  --surface: var(--bg-light);
  --surface-raised: var(--bg-light);
  --color: var(--text);
  --color-muted: var(--text-muted);
  --border-color: var(--border);
  --shadow-col: var(--shadow-color);
}

[data-theme="dark"] {
  color-scheme: dark;
  --background: var(--bg-dark);
  --surface: var(--bg-dark);
  --surface-raised: var(--bg-darker);
  --color: var(--text-on-dark);
  --color-muted: var(--text-light);
}
/* ══ FEWD:COLOUR-SCHEME:END ══ */
/* ══ USER:COLOUR-SCHEME-ROOT:START ══ */
/* ══ USER:COLOUR-SCHEME-ROOT:END ══ */
/* ══ USER:COLOUR-SCHEME-RULES:START ══ */
/* ══ USER:COLOUR-SCHEME-RULES:END ══ */

/* ══ FEWD:TYPOGRAPHY-TOKENS:START ══ */
:root {
  /* ── Display & feature ── */
  --text-display: var(--text-xxxl);
  --text-feature: var(--text-xxl);
  /* ── Heading sizes ── */
  --h1: var(--text-xl);
  --h2: var(--text-l);
  --h3: var(--text-m);
  --h4: var(--text-s);
  --h5: var(--text-s);
  --h6: var(--text-xs);
  /* ── Per-heading overrides ── */
  --h1-max-width: 100%;
  --h1-line-height: var(--leading-heading);
  --h1-weight: var(--weight-heading);
  --h1-tracking: var(--tracking-heading);
  --h1-style: var(--style-heading);
  --h2-max-width: 100%;
  --h2-line-height: var(--leading-heading);
  --h2-weight: var(--weight-heading);
  --h2-tracking: var(--tracking-heading);
  --h2-style: var(--style-heading);
  --h3-max-width: 100%;
  --h3-line-height: var(--leading-heading);
  --h3-weight: var(--weight-heading);
  --h3-tracking: var(--tracking-heading);
  --h3-style: var(--style-heading);
  --h4-max-width: 100%;
  --h4-line-height: var(--leading-heading);
  --h4-weight: var(--weight-heading);
  --h4-tracking: var(--tracking-heading);
  --h4-style: var(--style-heading);
  --h5-max-width: 100%;
  --h5-line-height: var(--leading-heading);
  --h5-weight: var(--weight-heading);
  --h5-tracking: var(--tracking-heading);
  --h5-style: var(--style-heading);
  --h6-max-width: 100%;
  --h6-line-height: var(--leading-heading);
  --h6-weight: var(--weight-heading);
  --h6-tracking: var(--tracking-heading);
  --h6-style: var(--style-heading);
  /* ── Text roles ── */
  --text-body: var(--text-s);
  --text-small: var(--text-xs);
  /* ── Font families ── */
  --font-heading: var(--font-display);
  --font-base: var(--font-body);
  --font-code: var(--font-mono);
  /* ── Heading defaults ── */
  --color-heading: var(--text);
  --weight-heading: var(--weight-7);
  --leading-heading: calc(4px + 2ex);
  --tracking-heading: var(--tracking-tight);
  --transform-heading: none;
  --style-heading: normal;
  --wrap-heading: balance;
  /* ── Body defaults ── */
  --weight-body: var(--weight-4);
  --leading-body: calc(6px + 2ex);
  --tracking-body: var(--tracking-normal);
  --transform-body: none;
  --style-body: normal;
  --wrap-body: pretty;
  /* ── Weights ── */
  --weight-bold: var(--weight-7);
}
/* ══ FEWD:TYPOGRAPHY-TOKENS:END ══ */
/* ══ USER:TYPOGRAPHY-TOKENS:START ══ */
/* ══ USER:TYPOGRAPHY-TOKENS:END ══ */

/* ══ FEWD:SPACING-TOKENS:START ══ */
:root {
  /* ── Padding ── */
  --padding-xs: var(--space-xs);
  --padding-s: var(--space-s);
  --padding-m: var(--space-m);
  --padding-l: var(--space-l);
  --padding-xl: var(--space-xl);
  --padding-2xl: var(--space-2xl);
  --padding: var(--padding-m);
  /* ── Margin ── */
  --margin-xs: var(--space-xs);
  --margin-s: var(--space-s);
  --margin-m: var(--space-m);
  --margin-l: var(--space-l);
  --margin-xl: var(--space-xl);
  --margin-2xl: var(--space-2xl);
  --margin: var(--margin-m);
  /* ── Gap ── */
  --gap-xs: var(--space-xs);
  --gap-s: var(--space-s);
  --gap-m: var(--space-m);
  --gap-l: var(--space-l);
  /* ── Context spacing ── */
  --gap-content: var(--space-l);
  --gap-grid: var(--space-xl);
  --gap-container: var(--space-2xl);
}
/* ══ FEWD:SPACING-TOKENS:END ══ */
/* ══ USER:SPACING-TOKENS:START ══ */
/* ══ USER:SPACING-TOKENS:END ══ */

/* ══ FEWD:STYLING-TOKENS:START ══ */
:root {
  /* ── Border radius ── */
  --radius-s: var(--radius-2);
  --radius-m: var(--radius-3);
  --radius-l: var(--radius-4);
  --radius-full: var(--radius-pill);
  --radius-card: var(--radius-3);
  --radius: var(--radius-m);
  /* ── Shadows ── */
  --shadow-s: var(--shadow-1);
  --shadow-m: var(--shadow-2);
  --shadow-l: var(--shadow-3);
  --shadow-card: var(--shadow-2);
  --shadow: var(--shadow-m);
  /* ── Transitions ── */
  --transition-fast: all var(--duration-fast) var(--ease-out);
  --transition-base: all var(--duration-base) var(--ease-out);
  --transition-slow: all var(--duration-slow) var(--ease-out);
  --transition-colors: color var(--duration-base) var(--ease-out), background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out);
  --transition-transform: transform var(--duration-base) var(--ease-out);
  --transition: var(--transition-base);
}
/* ══ FEWD:STYLING-TOKENS:END ══ */
/* ══ USER:STYLING-TOKENS:START ══ */
/* ══ USER:STYLING-TOKENS:END ══ */

/* ════ LAYER 2.5 — COMPONENTS ════ */

/* ══ FEWD:BUTTONS:START ══ */
/* fewd-config-json: {"global":{"paddingBlock":".5em","paddingInline":"1.25em","minWidth":"0","width":"auto","mobileFullWidth":false,"mobileBreakpoint":640,"textAlign":"center","borderWidth":"1px","borderStyle":"solid","borderRadius":"var(--radius-2)","transition":"","bg":"","color":"","border":"","fontFamily":"inherit","fontSize":"var(--font-base)","lineHeight":"1","letterSpacing":"0","fontWeight":"var(--weight-body)","fontStyle":"normal","textTransform":"none","textDecoration":"none","justifyContent":"center"},"variants":[{"id":"primary","label":"Primary","enabled":true,"filled":{"enabled":true,"bg":"--primary","text":"--primary-light-2","border":"--primary","hoverBg":"--primary-dark-1","hoverText":"","hoverBorder":"--primary-dark-1","overrides":{}},"outline":{"enabled":true,"bg":"transparent","text":"--primary","border":"--primary","hoverBg":"--primary","hoverText":"--primary-light-2","hoverBorder":"--primary","overrides":{}},"customCss":""}]} */

/* ── Button component-scoped custom properties ── */
@property --_btn-bg     { syntax: '<color>'; inherits: false; initial-value: transparent; }
@property --_btn-text   { syntax: '<color>'; inherits: false; initial-value: currentColor; }
@property --_btn-border { syntax: '<color>'; inherits: false; initial-value: transparent; }

:root {
  /* ── Button — design defaults ── */
  --btn-padding-block:   .5em;
  --btn-padding-inline:  1.25em;
  --btn-min-width:       0;
  --btn-width:           auto;
  --btn-border-width:    1px;
  --btn-border-style:    solid;
  --btn-radius:          var(--radius-2);
  --btn-text-align:      center;
  --btn-justify:         center;
  /* ── Button — typography defaults ── */
  --btn-font-family:     inherit;
  --btn-font-size:       var(--font-base);
  --btn-line-height:     1;
  --btn-letter-spacing:  0;
  --btn-font-weight:     var(--weight-body);
  --btn-font-style:      normal;
  --btn-text-transform:  none;
  --btn-text-decoration: none;
}

/* ── Base button — applies to all button-like elements and links ── */
.btn,
[class*="btn--"] {
  display:         inline-flex;
  align-items:     center;
  gap:             0.5em;
  justify-content: var(--btn-justify);
  padding-block:   var(--btn-padding-block);
  padding-inline:  var(--btn-padding-inline);
  min-width:       var(--btn-min-width);
  width:           var(--btn-width);
  border-width:    var(--btn-border-width);
  border-style:    var(--btn-border-style);
  border-radius:   var(--btn-radius);
  text-align:      var(--btn-text-align);
  font-family:     var(--btn-font-family);
  font-size:       var(--btn-font-size);
  line-height:     var(--btn-line-height);
  letter-spacing:  var(--btn-letter-spacing);
  font-weight:     var(--btn-font-weight);
  font-style:      var(--btn-font-style);
  text-transform:  var(--btn-text-transform);
  text-decoration: var(--btn-text-decoration);
  background:      var(--_btn-bg, transparent);
  color:           var(--_btn-text, currentColor);
  border-color:    var(--_btn-border, transparent);
  cursor:          pointer;
  box-sizing:      border-box;
}

/* ── Variant: Primary ── */
.btn--primary {
  --_btn-bg:     var(--primary);
  --_btn-text:   var(--primary-light-2);
  --_btn-border: var(--primary);
}
.btn--primary:hover,
.btn--primary:focus-visible {
  --_btn-bg:     var(--primary-dark-1);
  --_btn-border: var(--primary-dark-1);
}

.btn--primary-outline {
  --_btn-bg:     transparent;
  --_btn-text:   var(--primary);
  --_btn-border: var(--primary);
}
.btn--primary-outline:hover,
.btn--primary-outline:focus-visible {
  --_btn-bg:     var(--primary);
  --_btn-text:   var(--primary-light-2);
  --_btn-border: var(--primary);
}

/* ══ FEWD:BUTTONS:END ══ */
/* ══ USER:BUTTONS:START ══ */
/* ══ USER:BUTTONS:END ══ */

/* ══ FEWD:LINKS:START ══ */
/* fewd-config-json: {"global":{"color":"--color-cta","weight":"inherit","decoration":"underline","decorationColor":"currentColor","decorationThickness":"auto","underlineOffset":"0.2em","hoverColor":"--primary-dark-1","hoverDecoration":"underline","visitedColor":"--color-cta","transition":"","fontFamily":"","fontSize":"","lineHeight":"","letterSpacing":"","fontStyle":"","textTransform":"","fontWeight":""},"variants":[{"id":"primary","label":"primary","enabled":true,"filled":{"enabled":true,"text":"--white","bg":"var(--primary);","border":"transparent","decoration":"none","hoverDecoration":"none","hoverText":"--white","hoverBg":"var(--primary-dark-1);","hoverBorder":"","display":"","paddingBlock":".5em","paddingInline":"1.5em","minWidth":"","width":"","borderWidth":"","borderStyle":"","borderRadius":"","textAlign":"","justifyContent":"","fontFamily":"","fontSize":"","lineHeight":"","letterSpacing":"","fontWeight":"","fontStyle":"","textTransform":"uppercase","textDecoration":"","transition":"","overrides":{}},"outline":{"enabled":true,"text":"","bg":"transparent","border":"transparent","decoration":"","hoverDecoration":"","hoverText":"","hoverBg":"","hoverBorder":"","display":"","paddingBlock":"","paddingInline":"","minWidth":"","width":"","borderWidth":"","borderStyle":"","borderRadius":"","textAlign":"","justifyContent":"","fontFamily":"","fontSize":"","lineHeight":"","letterSpacing":"","fontWeight":"","fontStyle":"","textTransform":"","textDecoration":"","transition":"","overrides":{}},"customCss":".link--primary:visited {\n  color:white!important;\n}"}]} */

:root {
  /* ── Link defaults ── */
  --link-color:                var(--color-cta);
  --link-weight:               inherit;
  --link-decoration:           underline;
  --link-decoration-color:     currentColor;
  --link-decoration-thickness: auto;
  --link-underline-offset:     0.2em;
  --link-hover-color:          var(--primary-dark-1);
  --link-hover-decoration:     underline;
  --link-visited-color:        var(--color-cta);
}

/* ── Base link ── */
a {
  color:                     var(--_link-text, var(--link-color));
  font-weight:               var(--_link-weight, var(--link-weight));
  text-decoration:           var(--_link-decoration, var(--link-decoration));
  text-decoration-color:     var(--_link-dec-color, var(--link-decoration-color));
  text-decoration-thickness: var(--_link-dec-thickness, var(--link-decoration-thickness));
  text-underline-offset:     var(--link-underline-offset);
  background:                var(--_link-bg, transparent);
  border-color:              var(--_link-border, transparent);
}
a:hover, a:focus-visible {
  color:           var(--_link-hover-text, var(--link-hover-color));
  text-decoration: var(--_link-hover-decoration, var(--link-hover-decoration));
  background:      var(--_link-hover-bg, var(--_link-bg, transparent));
  border-color:    var(--_link-hover-border, var(--_link-border, transparent));
}
a:visited {
  color: var(--_link-visited, var(--link-visited-color));
}

/* ── Link variant: primary ── */
.link--primary {
  --_link-text:        var(--white);
  --_link-bg:          var(--primary);;
  --_link-decoration:  none;

  padding-block: .5em;
  padding-inline: 1.5em;
  text-transform: uppercase;
}
.link--primary:hover,
.link--primary:focus-visible {
  --_link-hover-text:       var(--white);
  --_link-hover-bg:         var(--primary-dark-1);;
  --_link-hover-decoration: none;
}

.link--primary:visited {
  color:white!important;
}

/* ══ FEWD:LINKS:END ══ */
/* ══ USER:LINKS:START ══ */
/* ══ USER:LINKS:END ══ */

/* ══ FEWD:FORMS:START ══ */
/* fewd-config-json: {"baseStyles":true,"paddingBlock":"--padding-s","paddingInline":"--padding-m","borderColor":"--border","borderWidth":"1px","borderRadius":"--radius-2","background":"--bg-white","textColor":"--text","placeholderColor":"--text-muted","labelDisplay":"visible","labelFontFamily":"","labelFontSize":"","labelFontWeight":"","labelColor":"","submitStyles":false,"submitVariant":"","submitWidth":"auto","submitMarginBlockStart":"","submitBg":"--color-cta","submitText":"--bg-white","submitBorderRadius":"","submitBorderWidth":"0","submitBorderColor":"transparent","submitPaddingBlock":"","submitPaddingInline":"","submitFontSize":"","submitFontWeight":"","customUser":""} */

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
select,
textarea {
  padding-block:    var(--padding-s);
  padding-inline:   var(--padding-m);
  border:           1px solid var(--border);
  border-radius:    var(--radius-2);
  background-color: var(--bg-white);
  color:            var(--text);
  width: 100%;
}
input:not([type="checkbox"]):not([type="radio"])::placeholder,
textarea::placeholder {
  color: var(--text-muted);
  opacity: 1;
}
input:not([type="checkbox"]):not([type="radio"]):focus-visible,
select:focus-visible,
textarea:focus-visible {
  border-color: var(--focus-color, var(--color-cta));
  outline: none;
}
input:disabled,
select:disabled,
textarea:disabled {
  opacity: var(--opacity-disabled, 0.45);
  cursor: not-allowed;
}
[type="checkbox"],
[type="radio"] { width: auto; }
input:invalid,
select:invalid,
textarea:invalid,
.has-error input,
.has-error select,
.has-error textarea {
  border-color: var(--color-error, #dc2626);
}
.has-error .field-message {
  color: var(--color-error, #dc2626);
  font-size: var(--text-xs);
  margin-top: 0.25rem;
}
/* ══ FEWD:FORMS:END ══ */
/* ══ USER:FORMS:START ══ */
/* ══ USER:FORMS:END ══ */

/* ══ FEWD:CARDS:START ══ */
/* fewd-config-json: {"autoApply":true,"excludeClasses":"card-header, card-body, card-footer, card-actions","containerQuery":true,"radius":"--radius-card","padding":"--space-m","bgLight":"--bg-white","colorLight":"--text","shadowLight":"--shadow-card","borderColorLight":"","borderWidth":"1px","darkVariant":true,"darkSelector":".card--dark","bgDark":"--bg-darker","colorDark":"--text","shadowDark":"--shadow-card","borderColorDark":"","imgStyles":true,"imgRadius":"","imgWidth":"100%","imgHeight":"","imgAspect":"","imgShadow":"","imgFilter":"","fontFamily":"","fontSize":"","lineHeight":"","fontWeight":"","letterSpacing":"","customUser":""} */

[class~="card"]:not(.card-header):not(.card-body):not(.card-footer):not(.card-actions) {
  border-radius: var(--radius-card);
  padding: var(--space-m);
  background: var(--bg-white);
  color: var(--text);
  box-shadow: var(--shadow-card);
  container-type: inline-size;
}

.card--dark {
  background: var(--bg-darker);
  color: var(--text);
  box-shadow: var(--shadow-card);
}

[class~="card"]:not(.card-header):not(.card-body):not(.card-footer):not(.card-actions) > img {
  width: 100%;
  display: block;
  object-fit: cover;
  border-radius: var(--radius-card) var(--radius-card) 0 0;
}
/* ══ FEWD:CARDS:END ══ */
/* ══ USER:CARDS:START ══ */
/* ══ USER:CARDS:END ══ */

/* ════ LAYER 3 — RESET & BASE ════ */

/* ══ FEWD:RESET:START ══ */
/* fewd-config: body=1 headings=1 media=1 links=1 lists=1 scrollbar=1 paragraph=1 */

html { box-sizing: border-box; font-size: 100%; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
*, *::before, *::after { box-sizing: inherit; margin: 0; padding: 0; }

body {
  font-family: var(--font-base, sans-serif);
  font-size: var(--text-body, 1rem);
  font-weight: var(--weight-body, 400);
  line-height: var(--leading-body, calc(6px + 2ex));
  letter-spacing: var(--tracking-body, 0);
  font-style: var(--style-body, normal);
  text-transform: var(--transform-body, none);
  text-wrap: var(--wrap-body, pretty);
  color: var(--text, inherit);
  background-color: var(--color-body-bg, #ffffff);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

header { padding-inline: var(--section-inline); }

img, video, svg { max-width: 100%; height: auto; display: block; }

a { text-decoration-skip-ink: auto; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; background: none; border: none; padding: 0; }

h1, h2, h3, h4, h5, h6 {
  font-family:    var(--font-heading, inherit);
  color:          var(--color-heading, inherit);
  font-weight:    var(--weight-heading, 700);
  line-height:    var(--leading-heading, calc(4px + 2ex));
  letter-spacing: var(--tracking-heading, -0.02em);
  text-transform: var(--transform-heading, none);
  font-style:     var(--style-heading, normal);
  text-wrap:      var(--wrap-heading, balance);
}

h1 { font-size: var(--h1, 1.953rem); max-width: var(--h1-max-width, 100%); line-height: var(--h1-line-height, var(--leading-heading)); letter-spacing: var(--h1-tracking, var(--tracking-heading)); font-weight: var(--h1-weight); text-transform: var(--h1-transform, var(--transform-heading, none)); font-style: var(--h1-style); }
h2 { font-size: var(--h2, 1.563rem); max-width: var(--h2-max-width, 100%); line-height: var(--h2-line-height, var(--leading-heading)); letter-spacing: var(--h2-tracking, var(--tracking-heading)); font-weight: var(--h2-weight); text-transform: var(--h2-transform, var(--transform-heading, none)); font-style: var(--h2-style); }
h3 { font-size: var(--h3, 1.25rem);  max-width: var(--h3-max-width, 100%); line-height: var(--h3-line-height, var(--leading-heading)); letter-spacing: var(--h3-tracking, var(--tracking-heading)); font-weight: var(--h3-weight); text-transform: var(--h3-transform, var(--transform-heading, none)); font-style: var(--h3-style); }
h4 { font-size: var(--h4, 1rem);     max-width: var(--h4-max-width, 100%); line-height: var(--h4-line-height, var(--leading-heading)); letter-spacing: var(--h4-tracking, var(--tracking-heading)); font-weight: var(--h4-weight); text-transform: var(--h4-transform, var(--transform-heading, none)); font-style: var(--h4-style); }
h5 { font-size: var(--h5, 1rem);     max-width: var(--h5-max-width, 100%); line-height: var(--h5-line-height, var(--leading-heading)); letter-spacing: var(--h5-tracking, var(--tracking-heading)); font-weight: var(--h5-weight); text-transform: var(--h5-transform, var(--transform-heading, none)); font-style: var(--h5-style); }
h6 { font-size: var(--h6, 0.875rem); max-width: var(--h6-max-width, 100%); line-height: var(--h6-line-height, var(--leading-heading)); letter-spacing: var(--h6-tracking, var(--tracking-heading)); font-weight: var(--h6-weight); text-transform: var(--h6-transform, var(--transform-heading, none)); font-style: var(--h6-style); }

ul, ol, li { margin: 0; padding: 0; }

* { scrollbar-width: thin; scrollbar-gutter: stable; }

p + p { margin-top: var(--space-m, 1rem); }
/* ══ FEWD:RESET:END ══ */
/* ══ USER:RESET:START ══ */
/* ══ USER:RESET:END ══ */

/* ══ FEWD:ACCESSIBILITY:START ══ */
/* fewd-config-json: {"focusColor":"--color-cta","focusWidth":"2px","focusOffset":"3px","focusVisible":true,"selection":true,"reducedMotion":true,"customUser":""} */

:root {
  --focus-color:  var(--color-cta);
  --focus-width:  2px;
  --focus-offset: 3px;
  --focus-ring:   var(--focus-width) solid var(--focus-color);
}

:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-1, 2px);
}

::selection {
  background-color: var(--primary-trans30, oklch(0.55 0.18 220 / 0.3));
  color: var(--text, inherit);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:        0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration:       0.01ms !important;
    scroll-behavior:           auto !important;
  }
}
/* ══ FEWD:ACCESSIBILITY:END ══ */
/* ══ USER:ACCESSIBILITY:START ══ */
/* ══ USER:ACCESSIBILITY:END ══ */

/* ════ LAYER 4 — UTILITIES ════ */

/* ══ FEWD:UTILITIES:START ══ */
/* gc-text-utils: {"xxs":{"lineHeight":"","fontWeight":"","letterSpacing":"","maxWidth":"","textTransform":"","fontStyle":""},"xs":{"lineHeight":"","fontWeight":"","letterSpacing":"","maxWidth":"","textTransform":"","fontStyle":""},"s":{"lineHeight":"","fontWeight":"","letterSpacing":"","maxWidth":"","textTransform":"","fontStyle":""},"m":{"lineHeight":"","fontWeight":"","letterSpacing":"","maxWidth":"","textTransform":"","fontStyle":""},"l":{"lineHeight":"","fontWeight":"","letterSpacing":"","maxWidth":"","textTransform":"","fontStyle":""},"xl":{"lineHeight":"","fontWeight":"","letterSpacing":"","maxWidth":"","textTransform":"","fontStyle":""},"xxl":{"lineHeight":"","fontWeight":"","letterSpacing":"","maxWidth":"","textTransform":"","fontStyle":""},"xxxl":{"lineHeight":"","fontWeight":"","letterSpacing":"","maxWidth":"","textTransform":"","fontStyle":""}} */

/* ── Accessibility ── */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0;
}
.skip-nav {
  position: absolute; top: 0; left: 1rem;
  transform: translateY(-120%);
  padding: 0.5rem 1rem;
  background: var(--bg-white, #fff); color: var(--color-cta);
  font-weight: var(--weight-heading, 700);
  z-index: var(--z-tooltip, 900);
  border-radius: var(--radius-2, 4px);
  text-decoration: none;
  transition: transform 0.15s;
}
.skip-nav:focus-visible { transform: translateY(0.5rem); }
/* Clickable parent — stretch a child <a> or <button> to cover its ancestor */
.clickable-parent { position: relative; }
.clickable-parent > a::after,
.clickable-parent > button::after {
  content: ''; position: absolute; inset: 0;
  z-index: var(--z-raised, 10);
}

/* ── Display ── */
.block        { display: block; }
.inline       { display: inline; }
.inline-block { display: inline-block; }
.inline-flex  { display: inline-flex; }
.hidden       { display: none; }

/* ── Visibility ── */
.visible   { visibility: visible; }
.invisible { visibility: hidden; }

/* ── Position ── */
.relative { position: relative; }
.absolute { position: absolute; }
/* .sticky is in the editable Extras block below */
.fixed    { position: fixed; }
.inset-0  { inset: 0; }

/* ── Overflow ── */
.overflow-hidden   { overflow: hidden; }
.overflow-auto     { overflow: auto; }
.overflow-x-hidden { overflow-x: hidden; }

/* ── Flex & Grid ── */
.flex        { display: flex; }
.flex-col    { display: flex; flex-direction: column; }
.flex-wrap   { flex-wrap: wrap; }
.flex-nowrap { flex-wrap: nowrap; }
.flex-1      { flex: 1 1 0%; }
.grow        { flex-grow: 1; }
.shrink-0    { flex-shrink: 0; }
.items-start    { align-items: flex-start; }
.items-center   { align-items: center; }
.items-end      { align-items: flex-end; }
.items-baseline { align-items: baseline; }
.items-stretch  { align-items: stretch; }
.justify-start   { justify-content: flex-start; }
.justify-center  { justify-content: center; }
.justify-end     { justify-content: flex-end; }
.justify-between { justify-content: space-between; }
.self-start  { align-self: flex-start; }
.self-center { align-self: center; }
.self-end    { align-self: flex-end; }
.gap-s { gap: var(--gap-s, 0.5rem); }
.gap-m { gap: var(--gap-m, 1rem); }
.gap-l { gap: var(--gap-l, 1.5rem); }

/* ── Layout patterns ── */
.stack    { display: flex; flex-direction: column; gap: var(--gap-m, 1rem); }
.cluster  { display: flex; flex-wrap: wrap; gap: var(--gap-m, 1rem); }
.auto-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(var(--auto-grid-min, 16rem), 100%), 1fr)); gap: var(--gap-m, 1rem); }
.center   { display: grid; place-items: center; }

/* ── Lists ── */
.list-none { list-style: none; }
.list-none > li:has(> .card) { display: contents; }

/* ── Typography ── */
.text-center { text-align: center; }
.text-right  { text-align: right; }
.truncate    { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.line-clamp-2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }

/* ── Sizing ── */
.w-full      { width: 100%; }
.max-w-prose { max-width: 65ch; }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-video  { aspect-ratio: 16 / 9; }

/* ── Cursor & interaction ── */
.cursor-pointer     { cursor: pointer; }
.cursor-not-allowed { cursor: not-allowed; }
.cursor-default     { cursor: default; }
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }
.select-none { user-select: none; }

/* ── Disabled state ── */
.disabled,
[disabled] {
  opacity: var(--opacity-disabled, 0.45);
  cursor: not-allowed;
  pointer-events: none;
}

/* ── Visual shorthands ── */
.border      { border: 1px solid var(--border); }
.rounded     { border-radius: var(--radius-3, 6px); }
.rounded-full { border-radius: var(--radius-pill, 9999px); }
.shadow      { box-shadow: var(--shadow-2); }
.shadow-lg   { box-shadow: var(--shadow-4); }

/* ── Background element ── */
.bg-element { position: absolute; inset: 0; z-index: -2; }
section:has(.bg-element),
.has-bg:has(.bg-element) { position: relative; overflow: hidden; }

/* ── Breakout / full-bleed ── */
.breakout {
  width: min(100vw, calc(var(--container-width, 1200px) + 200px));
  margin-inline: max(-100vw, calc((var(--container-width, 1200px) + 200px - 100%) / -2));
}
.full-bleed {
  width: 100vw;
  position: relative;
  left: 50%;
  margin-inline: -50vw;
}

/* ── Object fit ── */
.object-cover   { object-fit: cover; }
.object-contain { object-fit: contain; }

/* ── GenCSS Extras ── */
/* gc-extras-start */
.accent {
  color: var(--accent);
}

.heading-label {
  font-family: var(--font-heading);
  font-size: var(--h6);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--primary);
}

.heading-hook {
  font-family: var(--font-heading);
  font-size: var(--h2);
  font-weight: var(--weight-heading);
  line-height: var(--leading-heading);
  text-wrap: balance;
}

.heading-hook .accent { color: var(--accent); }

.sticky {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky, 200);
}
/* gc-extras-end */

/* ── Typography — text size utilities ── */
.text-xxs { font-size: var(--text-xxs); }
.text-xs { font-size: var(--text-xs); }
.text-s { font-size: var(--text-s); }
.text-m { font-size: var(--text-m); }
.text-l { font-size: var(--text-l); }
.text-xl { font-size: var(--text-xl); }
.text-xxl { font-size: var(--text-xxl); }
.text-xxxl { font-size: var(--text-xxxl); }
/* gc-toggle-extras: {"h2GapFix":false} */
/* ══ FEWD:UTILITIES:END ══ */
/* ══ USER:UTILITIES:START ══ */
/* ══ USER:UTILITIES:END ══ */
