@charset "UTF-8";
/* ==========================================================================
   utils.css is GENERATED from this file — do not edit utils.css by hand.
   Compile:  sass assets/scss/utils.scss assets/css/utils.css
   Watch:    sass --watch assets/scss/utils.scss:assets/css/utils.css
   (Dart Sass, single binary — see CLAUDE.md. Only utils.css is generated;
    style.css / fonts.css / catalog.css stay hand-written plain CSS.)
   ========================================================================== */
/* ==========================================================================
   1. RESET — Eric Meyer's reset v2.0 (public domain)
   http://meyerweb.com/eric/tools/css/reset/
   ========================================================================== */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* ==========================================================================
   1b. BASE — additions the Meyer reset omits
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
}

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

/* ==========================================================================
   2. TOKENS
   ========================================================================== */
:root {
  /* Spacing scale */
  --s-1: 0.25rem; /* 4px */
  --s-2: 0.5rem; /* 8px */
  --s-3: 0.75rem; /* 12px */
  --s-4: 1rem; /* 16px */
  --s-5: 1.25rem; /* 20px */
  --s-6: 1.5rem; /* 24px */
  --s-8: 2rem; /* 32px */
  --s-10: 2.5rem; /* 40px */
  --s-12: 3rem; /* 48px */
  --s-16: 4rem; /* 64px */
  --s-20: 5rem; /* 80px */
  --s-24: 6rem; /* 96px */
  /* Type scale */
  --text-xs: 0.625rem; /* 10px */
  --text-sm: 0.875rem; /* 14px */
  --text-base: 1rem; /* 16px */
  --text-base-bump: 1.125rem; /* 18px */
  --text-lg: 1.625rem; /* 26px */
  --text-xl: 2.875rem; /* 46px */
  --text-xl-bump: 3.375rem; /* 54px */
  /* Line height */
  --leading-tightest: 1;
  --leading-tighter: 1.1;
  --leading-tight: 1.2;
  --leading-normal: 1.3;
  --leading-loose: 1.4;
  --leading-looser: 1.6;
  --leading-loosest: 1.8;
  /* Letter spacing (tracking) */
  --tracking-tight: -0.01em;
  --tracking-normal: 0;
  --tracking-loose: 0.02em;
  /* Max width (reading measures / container) */
  --max-sm: 24rem; /* 384px */
  --max-md: 32rem; /* 512px */
  --max-lg: 48rem; /* 768px */
  --max-xl: 64rem; /* 1024px */
  --max-xxl: 80rem; /* 1280px */
  --max-xxxl: 96rem; /* 1536px */
  /* column width unit — 1 col = 120px */
  --col: 120px;
  /* Colors */
  --gray-light: #f5f5f5;
  --border-color: #000;
  --border-width: 1px;
  --link: blue;
  /* Default gap used by fractional flex widths (matches .gap-6) */
  --flex-gap: var(--s-6);
}

/* ==========================================================================
   CONFIG — Sass maps/lists that drive the generated utilities.
   These are compile-time only; runtime values still come from the :root vars.
   Step lists mirror the base scale exactly — edit here to change coverage
   everywhere (base + every breakpoint) at once.
   ========================================================================== */
/* --------------------------------------------------------------------------
   The one mixin that emits every responsive-eligible family. Called once with
   $name: null for the base (unprefixed) layer, then once inside each @media
   block with the breakpoint name — so base and breakpoints can never drift.
   $sep resolves to "" for base or e.g. "md\:" for a breakpoint; selectors are
   built by string concat so the escaped ":" and "/" survive to the output.
   -------------------------------------------------------------------------- */
/* ==========================================================================
   3. UTILITIES — base layer (unprefixed = smallest state)
   ========================================================================== */
/* display */
.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.grid {
  display: grid;
}

.hidden {
  display: none;
}

/* position */
.static {
  position: static;
}

.relative {
  position: relative;
}

.absolute {
  position: absolute;
}

.fixed {
  position: fixed;
}

.sticky {
  position: sticky;
}

.inset-0 {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.top-0 {
  top: 0;
}

.right-0 {
  right: 0;
}

.bottom-0 {
  bottom: 0;
}

.left-0 {
  left: 0;
}

/* flex */
.flex-row {
  flex-direction: row;
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-start {
  align-items: flex-start;
}

.items-center {
  align-items: center;
}

.items-end {
  align-items: flex-end;
}

.justify-start {
  justify-content: flex-start;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.justify-end {
  justify-content: flex-end;
}

.flex-1 {
  flex: 1 1 0%;
}

.min-w-0 {
  min-width: 0;
}

.flex-cols {
  display: flex;
  flex-wrap: wrap;
  gap: var(--flex-gap);
}

/* sizing / overflow */
.h-screen {
  height: 100vh;
}

.h-full {
  height: 100%;
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-y-auto {
  overflow-y: auto;
}

.overflow-x-auto {
  overflow-x: auto;
}

.w-full {
  width: 100%;
}

.w-auto {
  width: auto;
}

.w-half {
  width: 50%;
}

.max-w-sm {
  max-width: var(--max-sm);
}

.max-w-md {
  max-width: var(--max-md);
}

.max-w-lg {
  max-width: var(--max-lg);
}

.max-w-xl {
  max-width: var(--max-xl);
}

.max-w-xxl {
  max-width: var(--max-xxl);
}

.max-w-xxxl {
  max-width: var(--max-xxxl);
}

.max-w-full {
  max-width: 100%;
}

/* width — column units (1 col = 120px) */
.col-1 {
  width: calc(var(--col) * 1);
}

.col-2 {
  width: calc(var(--col) * 2);
}

.col-3 {
  width: calc(var(--col) * 3);
}

.col-4 {
  width: calc(var(--col) * 4);
}

.col-5 {
  width: calc(var(--col) * 5);
}

.col-6 {
  width: calc(var(--col) * 6);
}

.col-7 {
  width: calc(var(--col) * 7);
}

.col-8 {
  width: calc(var(--col) * 8);
}

.col-9 {
  width: calc(var(--col) * 9);
}

.col-10 {
  width: calc(var(--col) * 10);
}

.col-11 {
  width: calc(var(--col) * 11);
}

.col-12 {
  width: calc(var(--col) * 12);
}

/* grid templates */
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.col-span-1 {
  grid-column: span 1/span 1;
}

.col-span-2 {
  grid-column: span 2/span 2;
}

.col-span-3 {
  grid-column: span 3/span 3;
}

.col-span-4 {
  grid-column: span 4/span 4;
}

.col-span-5 {
  grid-column: span 5/span 5;
}

.col-span-6 {
  grid-column: span 6/span 6;
}

.col-span-full {
  grid-column: 1/-1;
}

/* fractional flex widths (gap-aware) */
.basis-1\/2 {
  flex: 0 0 calc((100% - 1 * var(--flex-gap)) / 2);
}

.basis-1\/3 {
  flex: 0 0 calc((100% - 2 * var(--flex-gap)) / 3);
}

.basis-1\/4 {
  flex: 0 0 calc((100% - 3 * var(--flex-gap)) / 4);
}

/* multi-column lists */
.list-cols-1 {
  column-count: 1;
}

.list-cols-2 {
  column-count: 2;
}

.list-cols-3 {
  column-count: 3;
}

.list-cols-4 {
  column-count: 4;
}

/* gap */
.gap-0 {
  gap: var(--s-0);
}

.gap-1 {
  gap: var(--s-1);
}

.gap-2 {
  gap: var(--s-2);
}

.gap-3 {
  gap: var(--s-3);
}

.gap-4 {
  gap: var(--s-4);
}

.gap-5 {
  gap: var(--s-5);
}

.gap-6 {
  gap: var(--s-6);
}

.gap-8 {
  gap: var(--s-8);
}

.gap-10 {
  gap: var(--s-10);
}

.gap-12 {
  gap: var(--s-12);
}

.gap-16 {
  gap: var(--s-16);
}

.gap-20 {
  gap: var(--s-20);
}

.gap-24 {
  gap: var(--s-24);
}

/* text align */
.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

/* text size */
.text-xs {
  font-size: var(--text-xs);
}

.text-sm {
  font-size: var(--text-sm);
}

.text-base {
  font-size: var(--text-base);
}

.text-base-bump {
  font-size: var(--text-base-bump);
}

.text-lg {
  font-size: var(--text-lg);
}

.text-xl {
  font-size: var(--text-xl);
}

.text-xl-bump {
  font-size: var(--text-xl-bump);
}

/* padding */
.p-0 {
  padding: var(--s-0);
}

.p-1 {
  padding: var(--s-1);
}

.p-2 {
  padding: var(--s-2);
}

.p-3 {
  padding: var(--s-3);
}

.p-4 {
  padding: var(--s-4);
}

.p-5 {
  padding: var(--s-5);
}

.p-6 {
  padding: var(--s-6);
}

.p-8 {
  padding: var(--s-8);
}

.p-10 {
  padding: var(--s-10);
}

.p-12 {
  padding: var(--s-12);
}

.p-16 {
  padding: var(--s-16);
}

.p-20 {
  padding: var(--s-20);
}

.p-24 {
  padding: var(--s-24);
}

.px-0 {
  padding-left: var(--s-0);
  padding-right: var(--s-0);
}

.px-1 {
  padding-left: var(--s-1);
  padding-right: var(--s-1);
}

.px-2 {
  padding-left: var(--s-2);
  padding-right: var(--s-2);
}

.px-3 {
  padding-left: var(--s-3);
  padding-right: var(--s-3);
}

.px-4 {
  padding-left: var(--s-4);
  padding-right: var(--s-4);
}

.px-5 {
  padding-left: var(--s-5);
  padding-right: var(--s-5);
}

.px-6 {
  padding-left: var(--s-6);
  padding-right: var(--s-6);
}

.px-8 {
  padding-left: var(--s-8);
  padding-right: var(--s-8);
}

.px-10 {
  padding-left: var(--s-10);
  padding-right: var(--s-10);
}

.px-12 {
  padding-left: var(--s-12);
  padding-right: var(--s-12);
}

.px-16 {
  padding-left: var(--s-16);
  padding-right: var(--s-16);
}

.px-20 {
  padding-left: var(--s-20);
  padding-right: var(--s-20);
}

.px-24 {
  padding-left: var(--s-24);
  padding-right: var(--s-24);
}

.py-0 {
  padding-top: var(--s-0);
  padding-bottom: var(--s-0);
}

.py-1 {
  padding-top: var(--s-1);
  padding-bottom: var(--s-1);
}

.py-2 {
  padding-top: var(--s-2);
  padding-bottom: var(--s-2);
}

.py-3 {
  padding-top: var(--s-3);
  padding-bottom: var(--s-3);
}

.py-4 {
  padding-top: var(--s-4);
  padding-bottom: var(--s-4);
}

.py-5 {
  padding-top: var(--s-5);
  padding-bottom: var(--s-5);
}

.py-6 {
  padding-top: var(--s-6);
  padding-bottom: var(--s-6);
}

.py-8 {
  padding-top: var(--s-8);
  padding-bottom: var(--s-8);
}

.py-10 {
  padding-top: var(--s-10);
  padding-bottom: var(--s-10);
}

.py-12 {
  padding-top: var(--s-12);
  padding-bottom: var(--s-12);
}

.py-16 {
  padding-top: var(--s-16);
  padding-bottom: var(--s-16);
}

.py-20 {
  padding-top: var(--s-20);
  padding-bottom: var(--s-20);
}

.py-24 {
  padding-top: var(--s-24);
  padding-bottom: var(--s-24);
}

.pt-0 {
  padding-top: var(--s-0);
}

.pt-1 {
  padding-top: var(--s-1);
}

.pt-2 {
  padding-top: var(--s-2);
}

.pt-3 {
  padding-top: var(--s-3);
}

.pt-4 {
  padding-top: var(--s-4);
}

.pt-5 {
  padding-top: var(--s-5);
}

.pt-6 {
  padding-top: var(--s-6);
}

.pt-8 {
  padding-top: var(--s-8);
}

.pt-10 {
  padding-top: var(--s-10);
}

.pt-12 {
  padding-top: var(--s-12);
}

.pt-16 {
  padding-top: var(--s-16);
}

.pt-20 {
  padding-top: var(--s-20);
}

.pt-24 {
  padding-top: var(--s-24);
}

.pr-0 {
  padding-right: var(--s-0);
}

.pr-1 {
  padding-right: var(--s-1);
}

.pr-2 {
  padding-right: var(--s-2);
}

.pr-3 {
  padding-right: var(--s-3);
}

.pr-4 {
  padding-right: var(--s-4);
}

.pr-5 {
  padding-right: var(--s-5);
}

.pr-6 {
  padding-right: var(--s-6);
}

.pr-8 {
  padding-right: var(--s-8);
}

.pr-10 {
  padding-right: var(--s-10);
}

.pr-12 {
  padding-right: var(--s-12);
}

.pr-16 {
  padding-right: var(--s-16);
}

.pr-20 {
  padding-right: var(--s-20);
}

.pr-24 {
  padding-right: var(--s-24);
}

.pb-0 {
  padding-bottom: var(--s-0);
}

.pb-1 {
  padding-bottom: var(--s-1);
}

.pb-2 {
  padding-bottom: var(--s-2);
}

.pb-3 {
  padding-bottom: var(--s-3);
}

.pb-4 {
  padding-bottom: var(--s-4);
}

.pb-5 {
  padding-bottom: var(--s-5);
}

.pb-6 {
  padding-bottom: var(--s-6);
}

.pb-8 {
  padding-bottom: var(--s-8);
}

.pb-10 {
  padding-bottom: var(--s-10);
}

.pb-12 {
  padding-bottom: var(--s-12);
}

.pb-16 {
  padding-bottom: var(--s-16);
}

.pb-20 {
  padding-bottom: var(--s-20);
}

.pb-24 {
  padding-bottom: var(--s-24);
}

.pl-0 {
  padding-left: var(--s-0);
}

.pl-1 {
  padding-left: var(--s-1);
}

.pl-2 {
  padding-left: var(--s-2);
}

.pl-3 {
  padding-left: var(--s-3);
}

.pl-4 {
  padding-left: var(--s-4);
}

.pl-5 {
  padding-left: var(--s-5);
}

.pl-6 {
  padding-left: var(--s-6);
}

.pl-8 {
  padding-left: var(--s-8);
}

.pl-10 {
  padding-left: var(--s-10);
}

.pl-12 {
  padding-left: var(--s-12);
}

.pl-16 {
  padding-left: var(--s-16);
}

.pl-20 {
  padding-left: var(--s-20);
}

.pl-24 {
  padding-left: var(--s-24);
}

/* margin */
.m-0 {
  margin: var(--s-0);
}

.m-1 {
  margin: var(--s-1);
}

.m-2 {
  margin: var(--s-2);
}

.m-3 {
  margin: var(--s-3);
}

.m-4 {
  margin: var(--s-4);
}

.m-5 {
  margin: var(--s-5);
}

.m-6 {
  margin: var(--s-6);
}

.m-8 {
  margin: var(--s-8);
}

.m-10 {
  margin: var(--s-10);
}

.m-12 {
  margin: var(--s-12);
}

.m-16 {
  margin: var(--s-16);
}

.m-20 {
  margin: var(--s-20);
}

.m-24 {
  margin: var(--s-24);
}

.m-auto {
  margin: auto;
}

.mx-0 {
  margin-left: var(--s-0);
  margin-right: var(--s-0);
}

.mx-1 {
  margin-left: var(--s-1);
  margin-right: var(--s-1);
}

.mx-2 {
  margin-left: var(--s-2);
  margin-right: var(--s-2);
}

.mx-3 {
  margin-left: var(--s-3);
  margin-right: var(--s-3);
}

.mx-4 {
  margin-left: var(--s-4);
  margin-right: var(--s-4);
}

.mx-5 {
  margin-left: var(--s-5);
  margin-right: var(--s-5);
}

.mx-6 {
  margin-left: var(--s-6);
  margin-right: var(--s-6);
}

.mx-8 {
  margin-left: var(--s-8);
  margin-right: var(--s-8);
}

.mx-10 {
  margin-left: var(--s-10);
  margin-right: var(--s-10);
}

.mx-12 {
  margin-left: var(--s-12);
  margin-right: var(--s-12);
}

.mx-16 {
  margin-left: var(--s-16);
  margin-right: var(--s-16);
}

.mx-20 {
  margin-left: var(--s-20);
  margin-right: var(--s-20);
}

.mx-24 {
  margin-left: var(--s-24);
  margin-right: var(--s-24);
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-0 {
  margin-top: var(--s-0);
  margin-bottom: var(--s-0);
}

.my-1 {
  margin-top: var(--s-1);
  margin-bottom: var(--s-1);
}

.my-2 {
  margin-top: var(--s-2);
  margin-bottom: var(--s-2);
}

.my-3 {
  margin-top: var(--s-3);
  margin-bottom: var(--s-3);
}

.my-4 {
  margin-top: var(--s-4);
  margin-bottom: var(--s-4);
}

.my-5 {
  margin-top: var(--s-5);
  margin-bottom: var(--s-5);
}

.my-6 {
  margin-top: var(--s-6);
  margin-bottom: var(--s-6);
}

.my-8 {
  margin-top: var(--s-8);
  margin-bottom: var(--s-8);
}

.my-10 {
  margin-top: var(--s-10);
  margin-bottom: var(--s-10);
}

.my-12 {
  margin-top: var(--s-12);
  margin-bottom: var(--s-12);
}

.my-16 {
  margin-top: var(--s-16);
  margin-bottom: var(--s-16);
}

.my-20 {
  margin-top: var(--s-20);
  margin-bottom: var(--s-20);
}

.my-24 {
  margin-top: var(--s-24);
  margin-bottom: var(--s-24);
}

.mt-0 {
  margin-top: var(--s-0);
}

.mt-1 {
  margin-top: var(--s-1);
}

.mt-2 {
  margin-top: var(--s-2);
}

.mt-3 {
  margin-top: var(--s-3);
}

.mt-4 {
  margin-top: var(--s-4);
}

.mt-5 {
  margin-top: var(--s-5);
}

.mt-6 {
  margin-top: var(--s-6);
}

.mt-8 {
  margin-top: var(--s-8);
}

.mt-10 {
  margin-top: var(--s-10);
}

.mt-12 {
  margin-top: var(--s-12);
}

.mt-16 {
  margin-top: var(--s-16);
}

.mt-20 {
  margin-top: var(--s-20);
}

.mt-24 {
  margin-top: var(--s-24);
}

.mr-0 {
  margin-right: var(--s-0);
}

.mr-1 {
  margin-right: var(--s-1);
}

.mr-2 {
  margin-right: var(--s-2);
}

.mr-3 {
  margin-right: var(--s-3);
}

.mr-4 {
  margin-right: var(--s-4);
}

.mr-5 {
  margin-right: var(--s-5);
}

.mr-6 {
  margin-right: var(--s-6);
}

.mr-8 {
  margin-right: var(--s-8);
}

.mr-10 {
  margin-right: var(--s-10);
}

.mr-12 {
  margin-right: var(--s-12);
}

.mr-16 {
  margin-right: var(--s-16);
}

.mr-20 {
  margin-right: var(--s-20);
}

.mr-24 {
  margin-right: var(--s-24);
}

.mb-0 {
  margin-bottom: var(--s-0);
}

.mb-1 {
  margin-bottom: var(--s-1);
}

.mb-2 {
  margin-bottom: var(--s-2);
}

.mb-3 {
  margin-bottom: var(--s-3);
}

.mb-4 {
  margin-bottom: var(--s-4);
}

.mb-5 {
  margin-bottom: var(--s-5);
}

.mb-6 {
  margin-bottom: var(--s-6);
}

.mb-8 {
  margin-bottom: var(--s-8);
}

.mb-10 {
  margin-bottom: var(--s-10);
}

.mb-12 {
  margin-bottom: var(--s-12);
}

.mb-16 {
  margin-bottom: var(--s-16);
}

.mb-20 {
  margin-bottom: var(--s-20);
}

.mb-24 {
  margin-bottom: var(--s-24);
}

.ml-0 {
  margin-left: var(--s-0);
}

.ml-1 {
  margin-left: var(--s-1);
}

.ml-2 {
  margin-left: var(--s-2);
}

.ml-3 {
  margin-left: var(--s-3);
}

.ml-4 {
  margin-left: var(--s-4);
}

.ml-5 {
  margin-left: var(--s-5);
}

.ml-6 {
  margin-left: var(--s-6);
}

.ml-8 {
  margin-left: var(--s-8);
}

.ml-10 {
  margin-left: var(--s-10);
}

.ml-12 {
  margin-left: var(--s-12);
}

.ml-16 {
  margin-left: var(--s-16);
}

.ml-20 {
  margin-left: var(--s-20);
}

.ml-24 {
  margin-left: var(--s-24);
}

/* borders */
.border {
  border: var(--border-width) solid var(--border-color);
}

.border-x {
  border-left: var(--border-width) solid var(--border-color);
  border-right: var(--border-width) solid var(--border-color);
}

.border-y {
  border-top: var(--border-width) solid var(--border-color);
  border-bottom: var(--border-width) solid var(--border-color);
}

.border-t {
  border-top: var(--border-width) solid var(--border-color);
}

.border-b {
  border-bottom: var(--border-width) solid var(--border-color);
}

.border-l {
  border-left: var(--border-width) solid var(--border-color);
}

.border-r {
  border-right: var(--border-width) solid var(--border-color);
}

.border-none {
  border: 0;
}

/* --- base-only utilities (no responsive variants) --- */
/* Line height */
.leading-tightest {
  line-height: var(--leading-tightest);
}

.leading-tighter {
  line-height: var(--leading-tighter);
}

.leading-tight {
  line-height: var(--leading-tight);
}

.leading-normal {
  line-height: var(--leading-normal);
}

.leading-loose {
  line-height: var(--leading-loose);
}

.leading-looser {
  line-height: var(--leading-looser);
}

.leading-loosest {
  line-height: var(--leading-loosest);
}

/* Letter spacing (tracking) */
.tracking-tight {
  letter-spacing: var(--tracking-tight);
}

.tracking-normal {
  letter-spacing: var(--tracking-normal);
}

.tracking-loose {
  letter-spacing: var(--tracking-loose);
}

/* Z-index */
.z-0 {
  z-index: 0;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-30 {
  z-index: 30;
}

.z-40 {
  z-index: 40;
}

.z-50 {
  z-index: 50;
}

/* Sizing extras */
.min-h-screen {
  min-height: 100vh;
}

.min-w-full {
  min-width: 100%;
}

.max-h-screen {
  max-height: 100vh;
}

/* Height — em steps (for image / div heights) */
.h-1l {
  height: 1lh;
}

.h-2l {
  height: 2lh;
}

.h-3l {
  height: 3lh;
}

.h-1 {
  height: 1rem;
}

.h-2 {
  height: 2rem;
}

.h-2-5 {
  height: 2.5rem;
}

.h-3 {
  height: 3rem;
}

.h-4 {
  height: 4rem;
}

.h-5 {
  height: 5rem;
}

.h-6 {
  height: 6rem;
}

.h-7 {
  height: 7rem;
}

.h-8 {
  height: 8rem;
}

.h-9 {
  height: 9rem;
}

.h-10 {
  height: 10rem;
}

.h-11 {
  height: 11rem;
}

.h-12 {
  height: 12rem;
}

.h-16 {
  height: 16rem;
}

.h-24 {
  height: 24rem;
}

.h-32 {
  height: 32rem;
}

/* Flex extras */
.inline-flex {
  display: inline-flex;
}

.center {
  display: flex;
  align-items: center;
  justify-content: center;
} /* center both axes */
/* Width — spacing-step widths */
.w-1 {
  width: var(--s-1);
}

.w-2 {
  width: var(--s-2);
}

.w-4 {
  width: var(--s-4);
}

.w-6 {
  width: var(--s-6);
}

.w-8 {
  width: var(--s-8);
}

.w-12 {
  width: var(--s-12);
}

.w-16 {
  width: var(--s-16);
}

/* Container — centered, padded, capped */
.container {
  width: 100%;
  max-width: var(--max-xl);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--s-4);
  padding-right: var(--s-4);
}

/* Borders — now emitted by the mixin (base + responsive variants) */
/* Background colors */
.bg-white {
  background-color: #fff;
}

.bg-gray {
  background-color: var(--gray-light);
}

/* Multi-column list internals (the .list-cols-N classes come from the mixin) */
[class*=list-cols-] > * {
  break-inside: avoid;
}

/* Column / page break control */
.break-none {
  break-inside: avoid;
} /* don't split this element across columns */
.break-before {
  break-before: column;
} /* force a column break before this element */
.break-after {
  break-after: column;
} /* force a column break after this element */
/* Whitespace / wrapping (override the global word-break: keep-all) */
.whitespace-nowrap {
  white-space: nowrap;
} /* never wrap onto a new line */
.whitespace-normal {
  white-space: normal;
} /* wrap normally */
.whitespace-pre {
  white-space: pre;
} /* preserve whitespace, no wrap */
.whitespace-pre-line {
  white-space: pre-line;
} /* preserve line breaks, wrap */
/* ==========================================================================
   4. RESPONSIVE — mobile-first
   sm 640 · md 768 · lg 1024 · xl 1280
   ACTIVE: each breakpoint re-emits the same utilities() mixin with its prefix,
   so coverage is identical by construction (no hand-copying / drift).
   Base (unprefixed) class = smallest state; prefixed variants add at min-width.
   ========================================================================== */
@media (min-width: 640px) {
  /* display */
  .sm\:block {
    display: block;
  }
  .sm\:inline-block {
    display: inline-block;
  }
  .sm\:inline {
    display: inline;
  }
  .sm\:flex {
    display: flex;
  }
  .sm\:grid {
    display: grid;
  }
  .sm\:hidden {
    display: none;
  }
  /* position */
  .sm\:static {
    position: static;
  }
  .sm\:relative {
    position: relative;
  }
  .sm\:absolute {
    position: absolute;
  }
  .sm\:fixed {
    position: fixed;
  }
  .sm\:sticky {
    position: sticky;
  }
  .sm\:inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  .sm\:top-0 {
    top: 0;
  }
  .sm\:right-0 {
    right: 0;
  }
  .sm\:bottom-0 {
    bottom: 0;
  }
  .sm\:left-0 {
    left: 0;
  }
  /* flex */
  .sm\:flex-row {
    flex-direction: row;
  }
  .sm\:flex-col {
    flex-direction: column;
  }
  .sm\:flex-wrap {
    flex-wrap: wrap;
  }
  .sm\:items-start {
    align-items: flex-start;
  }
  .sm\:items-center {
    align-items: center;
  }
  .sm\:items-end {
    align-items: flex-end;
  }
  .sm\:justify-start {
    justify-content: flex-start;
  }
  .sm\:justify-center {
    justify-content: center;
  }
  .sm\:justify-between {
    justify-content: space-between;
  }
  .sm\:justify-end {
    justify-content: flex-end;
  }
  .sm\:flex-1 {
    flex: 1 1 0%;
  }
  .sm\:min-w-0 {
    min-width: 0;
  }
  .sm\:flex-cols {
    display: flex;
    flex-wrap: wrap;
    gap: var(--flex-gap);
  }
  /* sizing / overflow */
  .sm\:h-screen {
    height: 100vh;
  }
  .sm\:h-full {
    height: 100%;
  }
  .sm\:overflow-hidden {
    overflow: hidden;
  }
  .sm\:overflow-y-auto {
    overflow-y: auto;
  }
  .sm\:overflow-x-auto {
    overflow-x: auto;
  }
  .sm\:w-full {
    width: 100%;
  }
  .sm\:w-auto {
    width: auto;
  }
  .sm\:w-half {
    width: 50%;
  }
  .sm\:max-w-sm {
    max-width: var(--max-sm);
  }
  .sm\:max-w-md {
    max-width: var(--max-md);
  }
  .sm\:max-w-lg {
    max-width: var(--max-lg);
  }
  .sm\:max-w-xl {
    max-width: var(--max-xl);
  }
  .sm\:max-w-xxl {
    max-width: var(--max-xxl);
  }
  .sm\:max-w-xxxl {
    max-width: var(--max-xxxl);
  }
  .sm\:max-w-full {
    max-width: 100%;
  }
  /* width — column units (1 col = 120px) */
  .sm\:col-1 {
    width: calc(var(--col) * 1);
  }
  .sm\:col-2 {
    width: calc(var(--col) * 2);
  }
  .sm\:col-3 {
    width: calc(var(--col) * 3);
  }
  .sm\:col-4 {
    width: calc(var(--col) * 4);
  }
  .sm\:col-5 {
    width: calc(var(--col) * 5);
  }
  .sm\:col-6 {
    width: calc(var(--col) * 6);
  }
  .sm\:col-7 {
    width: calc(var(--col) * 7);
  }
  .sm\:col-8 {
    width: calc(var(--col) * 8);
  }
  .sm\:col-9 {
    width: calc(var(--col) * 9);
  }
  .sm\:col-10 {
    width: calc(var(--col) * 10);
  }
  .sm\:col-11 {
    width: calc(var(--col) * 11);
  }
  .sm\:col-12 {
    width: calc(var(--col) * 12);
  }
  /* grid templates */
  .sm\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .sm\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .sm\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .sm\:col-span-1 {
    grid-column: span 1/span 1;
  }
  .sm\:col-span-2 {
    grid-column: span 2/span 2;
  }
  .sm\:col-span-3 {
    grid-column: span 3/span 3;
  }
  .sm\:col-span-4 {
    grid-column: span 4/span 4;
  }
  .sm\:col-span-5 {
    grid-column: span 5/span 5;
  }
  .sm\:col-span-6 {
    grid-column: span 6/span 6;
  }
  .sm\:col-span-full {
    grid-column: 1/-1;
  }
  /* fractional flex widths (gap-aware) */
  .sm\:basis-1\/2 {
    flex: 0 0 calc((100% - 1 * var(--flex-gap)) / 2);
  }
  .sm\:basis-1\/3 {
    flex: 0 0 calc((100% - 2 * var(--flex-gap)) / 3);
  }
  .sm\:basis-1\/4 {
    flex: 0 0 calc((100% - 3 * var(--flex-gap)) / 4);
  }
  /* multi-column lists */
  .sm\:list-cols-1 {
    column-count: 1;
  }
  .sm\:list-cols-2 {
    column-count: 2;
  }
  .sm\:list-cols-3 {
    column-count: 3;
  }
  .sm\:list-cols-4 {
    column-count: 4;
  }
  /* gap */
  .sm\:gap-0 {
    gap: var(--s-0);
  }
  .sm\:gap-1 {
    gap: var(--s-1);
  }
  .sm\:gap-2 {
    gap: var(--s-2);
  }
  .sm\:gap-3 {
    gap: var(--s-3);
  }
  .sm\:gap-4 {
    gap: var(--s-4);
  }
  .sm\:gap-5 {
    gap: var(--s-5);
  }
  .sm\:gap-6 {
    gap: var(--s-6);
  }
  .sm\:gap-8 {
    gap: var(--s-8);
  }
  .sm\:gap-10 {
    gap: var(--s-10);
  }
  .sm\:gap-12 {
    gap: var(--s-12);
  }
  .sm\:gap-16 {
    gap: var(--s-16);
  }
  .sm\:gap-20 {
    gap: var(--s-20);
  }
  .sm\:gap-24 {
    gap: var(--s-24);
  }
  /* text align */
  .sm\:text-left {
    text-align: left;
  }
  .sm\:text-center {
    text-align: center;
  }
  .sm\:text-right {
    text-align: right;
  }
  /* text size */
  .sm\:text-xs {
    font-size: var(--text-xs);
  }
  .sm\:text-sm {
    font-size: var(--text-sm);
  }
  .sm\:text-base {
    font-size: var(--text-base);
  }
  .sm\:text-base-bump {
    font-size: var(--text-base-bump);
  }
  .sm\:text-lg {
    font-size: var(--text-lg);
  }
  .sm\:text-xl {
    font-size: var(--text-xl);
  }
  .sm\:text-xl-bump {
    font-size: var(--text-xl-bump);
  }
  /* padding */
  .sm\:p-0 {
    padding: var(--s-0);
  }
  .sm\:p-1 {
    padding: var(--s-1);
  }
  .sm\:p-2 {
    padding: var(--s-2);
  }
  .sm\:p-3 {
    padding: var(--s-3);
  }
  .sm\:p-4 {
    padding: var(--s-4);
  }
  .sm\:p-5 {
    padding: var(--s-5);
  }
  .sm\:p-6 {
    padding: var(--s-6);
  }
  .sm\:p-8 {
    padding: var(--s-8);
  }
  .sm\:p-10 {
    padding: var(--s-10);
  }
  .sm\:p-12 {
    padding: var(--s-12);
  }
  .sm\:p-16 {
    padding: var(--s-16);
  }
  .sm\:p-20 {
    padding: var(--s-20);
  }
  .sm\:p-24 {
    padding: var(--s-24);
  }
  .sm\:px-0 {
    padding-left: var(--s-0);
    padding-right: var(--s-0);
  }
  .sm\:px-1 {
    padding-left: var(--s-1);
    padding-right: var(--s-1);
  }
  .sm\:px-2 {
    padding-left: var(--s-2);
    padding-right: var(--s-2);
  }
  .sm\:px-3 {
    padding-left: var(--s-3);
    padding-right: var(--s-3);
  }
  .sm\:px-4 {
    padding-left: var(--s-4);
    padding-right: var(--s-4);
  }
  .sm\:px-5 {
    padding-left: var(--s-5);
    padding-right: var(--s-5);
  }
  .sm\:px-6 {
    padding-left: var(--s-6);
    padding-right: var(--s-6);
  }
  .sm\:px-8 {
    padding-left: var(--s-8);
    padding-right: var(--s-8);
  }
  .sm\:px-10 {
    padding-left: var(--s-10);
    padding-right: var(--s-10);
  }
  .sm\:px-12 {
    padding-left: var(--s-12);
    padding-right: var(--s-12);
  }
  .sm\:px-16 {
    padding-left: var(--s-16);
    padding-right: var(--s-16);
  }
  .sm\:px-20 {
    padding-left: var(--s-20);
    padding-right: var(--s-20);
  }
  .sm\:px-24 {
    padding-left: var(--s-24);
    padding-right: var(--s-24);
  }
  .sm\:py-0 {
    padding-top: var(--s-0);
    padding-bottom: var(--s-0);
  }
  .sm\:py-1 {
    padding-top: var(--s-1);
    padding-bottom: var(--s-1);
  }
  .sm\:py-2 {
    padding-top: var(--s-2);
    padding-bottom: var(--s-2);
  }
  .sm\:py-3 {
    padding-top: var(--s-3);
    padding-bottom: var(--s-3);
  }
  .sm\:py-4 {
    padding-top: var(--s-4);
    padding-bottom: var(--s-4);
  }
  .sm\:py-5 {
    padding-top: var(--s-5);
    padding-bottom: var(--s-5);
  }
  .sm\:py-6 {
    padding-top: var(--s-6);
    padding-bottom: var(--s-6);
  }
  .sm\:py-8 {
    padding-top: var(--s-8);
    padding-bottom: var(--s-8);
  }
  .sm\:py-10 {
    padding-top: var(--s-10);
    padding-bottom: var(--s-10);
  }
  .sm\:py-12 {
    padding-top: var(--s-12);
    padding-bottom: var(--s-12);
  }
  .sm\:py-16 {
    padding-top: var(--s-16);
    padding-bottom: var(--s-16);
  }
  .sm\:py-20 {
    padding-top: var(--s-20);
    padding-bottom: var(--s-20);
  }
  .sm\:py-24 {
    padding-top: var(--s-24);
    padding-bottom: var(--s-24);
  }
  .sm\:pt-0 {
    padding-top: var(--s-0);
  }
  .sm\:pt-1 {
    padding-top: var(--s-1);
  }
  .sm\:pt-2 {
    padding-top: var(--s-2);
  }
  .sm\:pt-3 {
    padding-top: var(--s-3);
  }
  .sm\:pt-4 {
    padding-top: var(--s-4);
  }
  .sm\:pt-5 {
    padding-top: var(--s-5);
  }
  .sm\:pt-6 {
    padding-top: var(--s-6);
  }
  .sm\:pt-8 {
    padding-top: var(--s-8);
  }
  .sm\:pt-10 {
    padding-top: var(--s-10);
  }
  .sm\:pt-12 {
    padding-top: var(--s-12);
  }
  .sm\:pt-16 {
    padding-top: var(--s-16);
  }
  .sm\:pt-20 {
    padding-top: var(--s-20);
  }
  .sm\:pt-24 {
    padding-top: var(--s-24);
  }
  .sm\:pr-0 {
    padding-right: var(--s-0);
  }
  .sm\:pr-1 {
    padding-right: var(--s-1);
  }
  .sm\:pr-2 {
    padding-right: var(--s-2);
  }
  .sm\:pr-3 {
    padding-right: var(--s-3);
  }
  .sm\:pr-4 {
    padding-right: var(--s-4);
  }
  .sm\:pr-5 {
    padding-right: var(--s-5);
  }
  .sm\:pr-6 {
    padding-right: var(--s-6);
  }
  .sm\:pr-8 {
    padding-right: var(--s-8);
  }
  .sm\:pr-10 {
    padding-right: var(--s-10);
  }
  .sm\:pr-12 {
    padding-right: var(--s-12);
  }
  .sm\:pr-16 {
    padding-right: var(--s-16);
  }
  .sm\:pr-20 {
    padding-right: var(--s-20);
  }
  .sm\:pr-24 {
    padding-right: var(--s-24);
  }
  .sm\:pb-0 {
    padding-bottom: var(--s-0);
  }
  .sm\:pb-1 {
    padding-bottom: var(--s-1);
  }
  .sm\:pb-2 {
    padding-bottom: var(--s-2);
  }
  .sm\:pb-3 {
    padding-bottom: var(--s-3);
  }
  .sm\:pb-4 {
    padding-bottom: var(--s-4);
  }
  .sm\:pb-5 {
    padding-bottom: var(--s-5);
  }
  .sm\:pb-6 {
    padding-bottom: var(--s-6);
  }
  .sm\:pb-8 {
    padding-bottom: var(--s-8);
  }
  .sm\:pb-10 {
    padding-bottom: var(--s-10);
  }
  .sm\:pb-12 {
    padding-bottom: var(--s-12);
  }
  .sm\:pb-16 {
    padding-bottom: var(--s-16);
  }
  .sm\:pb-20 {
    padding-bottom: var(--s-20);
  }
  .sm\:pb-24 {
    padding-bottom: var(--s-24);
  }
  .sm\:pl-0 {
    padding-left: var(--s-0);
  }
  .sm\:pl-1 {
    padding-left: var(--s-1);
  }
  .sm\:pl-2 {
    padding-left: var(--s-2);
  }
  .sm\:pl-3 {
    padding-left: var(--s-3);
  }
  .sm\:pl-4 {
    padding-left: var(--s-4);
  }
  .sm\:pl-5 {
    padding-left: var(--s-5);
  }
  .sm\:pl-6 {
    padding-left: var(--s-6);
  }
  .sm\:pl-8 {
    padding-left: var(--s-8);
  }
  .sm\:pl-10 {
    padding-left: var(--s-10);
  }
  .sm\:pl-12 {
    padding-left: var(--s-12);
  }
  .sm\:pl-16 {
    padding-left: var(--s-16);
  }
  .sm\:pl-20 {
    padding-left: var(--s-20);
  }
  .sm\:pl-24 {
    padding-left: var(--s-24);
  }
  /* margin */
  .sm\:m-0 {
    margin: var(--s-0);
  }
  .sm\:m-1 {
    margin: var(--s-1);
  }
  .sm\:m-2 {
    margin: var(--s-2);
  }
  .sm\:m-3 {
    margin: var(--s-3);
  }
  .sm\:m-4 {
    margin: var(--s-4);
  }
  .sm\:m-5 {
    margin: var(--s-5);
  }
  .sm\:m-6 {
    margin: var(--s-6);
  }
  .sm\:m-8 {
    margin: var(--s-8);
  }
  .sm\:m-10 {
    margin: var(--s-10);
  }
  .sm\:m-12 {
    margin: var(--s-12);
  }
  .sm\:m-16 {
    margin: var(--s-16);
  }
  .sm\:m-20 {
    margin: var(--s-20);
  }
  .sm\:m-24 {
    margin: var(--s-24);
  }
  .sm\:m-auto {
    margin: auto;
  }
  .sm\:mx-0 {
    margin-left: var(--s-0);
    margin-right: var(--s-0);
  }
  .sm\:mx-1 {
    margin-left: var(--s-1);
    margin-right: var(--s-1);
  }
  .sm\:mx-2 {
    margin-left: var(--s-2);
    margin-right: var(--s-2);
  }
  .sm\:mx-3 {
    margin-left: var(--s-3);
    margin-right: var(--s-3);
  }
  .sm\:mx-4 {
    margin-left: var(--s-4);
    margin-right: var(--s-4);
  }
  .sm\:mx-5 {
    margin-left: var(--s-5);
    margin-right: var(--s-5);
  }
  .sm\:mx-6 {
    margin-left: var(--s-6);
    margin-right: var(--s-6);
  }
  .sm\:mx-8 {
    margin-left: var(--s-8);
    margin-right: var(--s-8);
  }
  .sm\:mx-10 {
    margin-left: var(--s-10);
    margin-right: var(--s-10);
  }
  .sm\:mx-12 {
    margin-left: var(--s-12);
    margin-right: var(--s-12);
  }
  .sm\:mx-16 {
    margin-left: var(--s-16);
    margin-right: var(--s-16);
  }
  .sm\:mx-20 {
    margin-left: var(--s-20);
    margin-right: var(--s-20);
  }
  .sm\:mx-24 {
    margin-left: var(--s-24);
    margin-right: var(--s-24);
  }
  .sm\:mx-auto {
    margin-left: auto;
    margin-right: auto;
  }
  .sm\:my-0 {
    margin-top: var(--s-0);
    margin-bottom: var(--s-0);
  }
  .sm\:my-1 {
    margin-top: var(--s-1);
    margin-bottom: var(--s-1);
  }
  .sm\:my-2 {
    margin-top: var(--s-2);
    margin-bottom: var(--s-2);
  }
  .sm\:my-3 {
    margin-top: var(--s-3);
    margin-bottom: var(--s-3);
  }
  .sm\:my-4 {
    margin-top: var(--s-4);
    margin-bottom: var(--s-4);
  }
  .sm\:my-5 {
    margin-top: var(--s-5);
    margin-bottom: var(--s-5);
  }
  .sm\:my-6 {
    margin-top: var(--s-6);
    margin-bottom: var(--s-6);
  }
  .sm\:my-8 {
    margin-top: var(--s-8);
    margin-bottom: var(--s-8);
  }
  .sm\:my-10 {
    margin-top: var(--s-10);
    margin-bottom: var(--s-10);
  }
  .sm\:my-12 {
    margin-top: var(--s-12);
    margin-bottom: var(--s-12);
  }
  .sm\:my-16 {
    margin-top: var(--s-16);
    margin-bottom: var(--s-16);
  }
  .sm\:my-20 {
    margin-top: var(--s-20);
    margin-bottom: var(--s-20);
  }
  .sm\:my-24 {
    margin-top: var(--s-24);
    margin-bottom: var(--s-24);
  }
  .sm\:mt-0 {
    margin-top: var(--s-0);
  }
  .sm\:mt-1 {
    margin-top: var(--s-1);
  }
  .sm\:mt-2 {
    margin-top: var(--s-2);
  }
  .sm\:mt-3 {
    margin-top: var(--s-3);
  }
  .sm\:mt-4 {
    margin-top: var(--s-4);
  }
  .sm\:mt-5 {
    margin-top: var(--s-5);
  }
  .sm\:mt-6 {
    margin-top: var(--s-6);
  }
  .sm\:mt-8 {
    margin-top: var(--s-8);
  }
  .sm\:mt-10 {
    margin-top: var(--s-10);
  }
  .sm\:mt-12 {
    margin-top: var(--s-12);
  }
  .sm\:mt-16 {
    margin-top: var(--s-16);
  }
  .sm\:mt-20 {
    margin-top: var(--s-20);
  }
  .sm\:mt-24 {
    margin-top: var(--s-24);
  }
  .sm\:mr-0 {
    margin-right: var(--s-0);
  }
  .sm\:mr-1 {
    margin-right: var(--s-1);
  }
  .sm\:mr-2 {
    margin-right: var(--s-2);
  }
  .sm\:mr-3 {
    margin-right: var(--s-3);
  }
  .sm\:mr-4 {
    margin-right: var(--s-4);
  }
  .sm\:mr-5 {
    margin-right: var(--s-5);
  }
  .sm\:mr-6 {
    margin-right: var(--s-6);
  }
  .sm\:mr-8 {
    margin-right: var(--s-8);
  }
  .sm\:mr-10 {
    margin-right: var(--s-10);
  }
  .sm\:mr-12 {
    margin-right: var(--s-12);
  }
  .sm\:mr-16 {
    margin-right: var(--s-16);
  }
  .sm\:mr-20 {
    margin-right: var(--s-20);
  }
  .sm\:mr-24 {
    margin-right: var(--s-24);
  }
  .sm\:mb-0 {
    margin-bottom: var(--s-0);
  }
  .sm\:mb-1 {
    margin-bottom: var(--s-1);
  }
  .sm\:mb-2 {
    margin-bottom: var(--s-2);
  }
  .sm\:mb-3 {
    margin-bottom: var(--s-3);
  }
  .sm\:mb-4 {
    margin-bottom: var(--s-4);
  }
  .sm\:mb-5 {
    margin-bottom: var(--s-5);
  }
  .sm\:mb-6 {
    margin-bottom: var(--s-6);
  }
  .sm\:mb-8 {
    margin-bottom: var(--s-8);
  }
  .sm\:mb-10 {
    margin-bottom: var(--s-10);
  }
  .sm\:mb-12 {
    margin-bottom: var(--s-12);
  }
  .sm\:mb-16 {
    margin-bottom: var(--s-16);
  }
  .sm\:mb-20 {
    margin-bottom: var(--s-20);
  }
  .sm\:mb-24 {
    margin-bottom: var(--s-24);
  }
  .sm\:ml-0 {
    margin-left: var(--s-0);
  }
  .sm\:ml-1 {
    margin-left: var(--s-1);
  }
  .sm\:ml-2 {
    margin-left: var(--s-2);
  }
  .sm\:ml-3 {
    margin-left: var(--s-3);
  }
  .sm\:ml-4 {
    margin-left: var(--s-4);
  }
  .sm\:ml-5 {
    margin-left: var(--s-5);
  }
  .sm\:ml-6 {
    margin-left: var(--s-6);
  }
  .sm\:ml-8 {
    margin-left: var(--s-8);
  }
  .sm\:ml-10 {
    margin-left: var(--s-10);
  }
  .sm\:ml-12 {
    margin-left: var(--s-12);
  }
  .sm\:ml-16 {
    margin-left: var(--s-16);
  }
  .sm\:ml-20 {
    margin-left: var(--s-20);
  }
  .sm\:ml-24 {
    margin-left: var(--s-24);
  }
  /* borders */
  .sm\:border {
    border: var(--border-width) solid var(--border-color);
  }
  .sm\:border-x {
    border-left: var(--border-width) solid var(--border-color);
    border-right: var(--border-width) solid var(--border-color);
  }
  .sm\:border-y {
    border-top: var(--border-width) solid var(--border-color);
    border-bottom: var(--border-width) solid var(--border-color);
  }
  .sm\:border-t {
    border-top: var(--border-width) solid var(--border-color);
  }
  .sm\:border-b {
    border-bottom: var(--border-width) solid var(--border-color);
  }
  .sm\:border-l {
    border-left: var(--border-width) solid var(--border-color);
  }
  .sm\:border-r {
    border-right: var(--border-width) solid var(--border-color);
  }
  .sm\:border-none {
    border: 0;
  }
}
@media (min-width: 768px) {
  /* display */
  .md\:block {
    display: block;
  }
  .md\:inline-block {
    display: inline-block;
  }
  .md\:inline {
    display: inline;
  }
  .md\:flex {
    display: flex;
  }
  .md\:grid {
    display: grid;
  }
  .md\:hidden {
    display: none;
  }
  /* position */
  .md\:static {
    position: static;
  }
  .md\:relative {
    position: relative;
  }
  .md\:absolute {
    position: absolute;
  }
  .md\:fixed {
    position: fixed;
  }
  .md\:sticky {
    position: sticky;
  }
  .md\:inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  .md\:top-0 {
    top: 0;
  }
  .md\:right-0 {
    right: 0;
  }
  .md\:bottom-0 {
    bottom: 0;
  }
  .md\:left-0 {
    left: 0;
  }
  /* flex */
  .md\:flex-row {
    flex-direction: row;
  }
  .md\:flex-col {
    flex-direction: column;
  }
  .md\:flex-wrap {
    flex-wrap: wrap;
  }
  .md\:items-start {
    align-items: flex-start;
  }
  .md\:items-center {
    align-items: center;
  }
  .md\:items-end {
    align-items: flex-end;
  }
  .md\:justify-start {
    justify-content: flex-start;
  }
  .md\:justify-center {
    justify-content: center;
  }
  .md\:justify-between {
    justify-content: space-between;
  }
  .md\:justify-end {
    justify-content: flex-end;
  }
  .md\:flex-1 {
    flex: 1 1 0%;
  }
  .md\:min-w-0 {
    min-width: 0;
  }
  .md\:flex-cols {
    display: flex;
    flex-wrap: wrap;
    gap: var(--flex-gap);
  }
  /* sizing / overflow */
  .md\:h-screen {
    height: 100vh;
  }
  .md\:h-full {
    height: 100%;
  }
  .md\:overflow-hidden {
    overflow: hidden;
  }
  .md\:overflow-y-auto {
    overflow-y: auto;
  }
  .md\:overflow-x-auto {
    overflow-x: auto;
  }
  .md\:w-full {
    width: 100%;
  }
  .md\:w-auto {
    width: auto;
  }
  .md\:w-half {
    width: 50%;
  }
  .md\:max-w-sm {
    max-width: var(--max-sm);
  }
  .md\:max-w-md {
    max-width: var(--max-md);
  }
  .md\:max-w-lg {
    max-width: var(--max-lg);
  }
  .md\:max-w-xl {
    max-width: var(--max-xl);
  }
  .md\:max-w-xxl {
    max-width: var(--max-xxl);
  }
  .md\:max-w-xxxl {
    max-width: var(--max-xxxl);
  }
  .md\:max-w-full {
    max-width: 100%;
  }
  /* width — column units (1 col = 120px) */
  .md\:col-1 {
    width: calc(var(--col) * 1);
  }
  .md\:col-2 {
    width: calc(var(--col) * 2);
  }
  .md\:col-3 {
    width: calc(var(--col) * 3);
  }
  .md\:col-4 {
    width: calc(var(--col) * 4);
  }
  .md\:col-5 {
    width: calc(var(--col) * 5);
  }
  .md\:col-6 {
    width: calc(var(--col) * 6);
  }
  .md\:col-7 {
    width: calc(var(--col) * 7);
  }
  .md\:col-8 {
    width: calc(var(--col) * 8);
  }
  .md\:col-9 {
    width: calc(var(--col) * 9);
  }
  .md\:col-10 {
    width: calc(var(--col) * 10);
  }
  .md\:col-11 {
    width: calc(var(--col) * 11);
  }
  .md\:col-12 {
    width: calc(var(--col) * 12);
  }
  /* grid templates */
  .md\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .md\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .md\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .md\:col-span-1 {
    grid-column: span 1/span 1;
  }
  .md\:col-span-2 {
    grid-column: span 2/span 2;
  }
  .md\:col-span-3 {
    grid-column: span 3/span 3;
  }
  .md\:col-span-4 {
    grid-column: span 4/span 4;
  }
  .md\:col-span-5 {
    grid-column: span 5/span 5;
  }
  .md\:col-span-6 {
    grid-column: span 6/span 6;
  }
  .md\:col-span-full {
    grid-column: 1/-1;
  }
  /* fractional flex widths (gap-aware) */
  .md\:basis-1\/2 {
    flex: 0 0 calc((100% - 1 * var(--flex-gap)) / 2);
  }
  .md\:basis-1\/3 {
    flex: 0 0 calc((100% - 2 * var(--flex-gap)) / 3);
  }
  .md\:basis-1\/4 {
    flex: 0 0 calc((100% - 3 * var(--flex-gap)) / 4);
  }
  /* multi-column lists */
  .md\:list-cols-1 {
    column-count: 1;
  }
  .md\:list-cols-2 {
    column-count: 2;
  }
  .md\:list-cols-3 {
    column-count: 3;
  }
  .md\:list-cols-4 {
    column-count: 4;
  }
  /* gap */
  .md\:gap-0 {
    gap: var(--s-0);
  }
  .md\:gap-1 {
    gap: var(--s-1);
  }
  .md\:gap-2 {
    gap: var(--s-2);
  }
  .md\:gap-3 {
    gap: var(--s-3);
  }
  .md\:gap-4 {
    gap: var(--s-4);
  }
  .md\:gap-5 {
    gap: var(--s-5);
  }
  .md\:gap-6 {
    gap: var(--s-6);
  }
  .md\:gap-8 {
    gap: var(--s-8);
  }
  .md\:gap-10 {
    gap: var(--s-10);
  }
  .md\:gap-12 {
    gap: var(--s-12);
  }
  .md\:gap-16 {
    gap: var(--s-16);
  }
  .md\:gap-20 {
    gap: var(--s-20);
  }
  .md\:gap-24 {
    gap: var(--s-24);
  }
  /* text align */
  .md\:text-left {
    text-align: left;
  }
  .md\:text-center {
    text-align: center;
  }
  .md\:text-right {
    text-align: right;
  }
  /* text size */
  .md\:text-xs {
    font-size: var(--text-xs);
  }
  .md\:text-sm {
    font-size: var(--text-sm);
  }
  .md\:text-base {
    font-size: var(--text-base);
  }
  .md\:text-base-bump {
    font-size: var(--text-base-bump);
  }
  .md\:text-lg {
    font-size: var(--text-lg);
  }
  .md\:text-xl {
    font-size: var(--text-xl);
  }
  .md\:text-xl-bump {
    font-size: var(--text-xl-bump);
  }
  /* padding */
  .md\:p-0 {
    padding: var(--s-0);
  }
  .md\:p-1 {
    padding: var(--s-1);
  }
  .md\:p-2 {
    padding: var(--s-2);
  }
  .md\:p-3 {
    padding: var(--s-3);
  }
  .md\:p-4 {
    padding: var(--s-4);
  }
  .md\:p-5 {
    padding: var(--s-5);
  }
  .md\:p-6 {
    padding: var(--s-6);
  }
  .md\:p-8 {
    padding: var(--s-8);
  }
  .md\:p-10 {
    padding: var(--s-10);
  }
  .md\:p-12 {
    padding: var(--s-12);
  }
  .md\:p-16 {
    padding: var(--s-16);
  }
  .md\:p-20 {
    padding: var(--s-20);
  }
  .md\:p-24 {
    padding: var(--s-24);
  }
  .md\:px-0 {
    padding-left: var(--s-0);
    padding-right: var(--s-0);
  }
  .md\:px-1 {
    padding-left: var(--s-1);
    padding-right: var(--s-1);
  }
  .md\:px-2 {
    padding-left: var(--s-2);
    padding-right: var(--s-2);
  }
  .md\:px-3 {
    padding-left: var(--s-3);
    padding-right: var(--s-3);
  }
  .md\:px-4 {
    padding-left: var(--s-4);
    padding-right: var(--s-4);
  }
  .md\:px-5 {
    padding-left: var(--s-5);
    padding-right: var(--s-5);
  }
  .md\:px-6 {
    padding-left: var(--s-6);
    padding-right: var(--s-6);
  }
  .md\:px-8 {
    padding-left: var(--s-8);
    padding-right: var(--s-8);
  }
  .md\:px-10 {
    padding-left: var(--s-10);
    padding-right: var(--s-10);
  }
  .md\:px-12 {
    padding-left: var(--s-12);
    padding-right: var(--s-12);
  }
  .md\:px-16 {
    padding-left: var(--s-16);
    padding-right: var(--s-16);
  }
  .md\:px-20 {
    padding-left: var(--s-20);
    padding-right: var(--s-20);
  }
  .md\:px-24 {
    padding-left: var(--s-24);
    padding-right: var(--s-24);
  }
  .md\:py-0 {
    padding-top: var(--s-0);
    padding-bottom: var(--s-0);
  }
  .md\:py-1 {
    padding-top: var(--s-1);
    padding-bottom: var(--s-1);
  }
  .md\:py-2 {
    padding-top: var(--s-2);
    padding-bottom: var(--s-2);
  }
  .md\:py-3 {
    padding-top: var(--s-3);
    padding-bottom: var(--s-3);
  }
  .md\:py-4 {
    padding-top: var(--s-4);
    padding-bottom: var(--s-4);
  }
  .md\:py-5 {
    padding-top: var(--s-5);
    padding-bottom: var(--s-5);
  }
  .md\:py-6 {
    padding-top: var(--s-6);
    padding-bottom: var(--s-6);
  }
  .md\:py-8 {
    padding-top: var(--s-8);
    padding-bottom: var(--s-8);
  }
  .md\:py-10 {
    padding-top: var(--s-10);
    padding-bottom: var(--s-10);
  }
  .md\:py-12 {
    padding-top: var(--s-12);
    padding-bottom: var(--s-12);
  }
  .md\:py-16 {
    padding-top: var(--s-16);
    padding-bottom: var(--s-16);
  }
  .md\:py-20 {
    padding-top: var(--s-20);
    padding-bottom: var(--s-20);
  }
  .md\:py-24 {
    padding-top: var(--s-24);
    padding-bottom: var(--s-24);
  }
  .md\:pt-0 {
    padding-top: var(--s-0);
  }
  .md\:pt-1 {
    padding-top: var(--s-1);
  }
  .md\:pt-2 {
    padding-top: var(--s-2);
  }
  .md\:pt-3 {
    padding-top: var(--s-3);
  }
  .md\:pt-4 {
    padding-top: var(--s-4);
  }
  .md\:pt-5 {
    padding-top: var(--s-5);
  }
  .md\:pt-6 {
    padding-top: var(--s-6);
  }
  .md\:pt-8 {
    padding-top: var(--s-8);
  }
  .md\:pt-10 {
    padding-top: var(--s-10);
  }
  .md\:pt-12 {
    padding-top: var(--s-12);
  }
  .md\:pt-16 {
    padding-top: var(--s-16);
  }
  .md\:pt-20 {
    padding-top: var(--s-20);
  }
  .md\:pt-24 {
    padding-top: var(--s-24);
  }
  .md\:pr-0 {
    padding-right: var(--s-0);
  }
  .md\:pr-1 {
    padding-right: var(--s-1);
  }
  .md\:pr-2 {
    padding-right: var(--s-2);
  }
  .md\:pr-3 {
    padding-right: var(--s-3);
  }
  .md\:pr-4 {
    padding-right: var(--s-4);
  }
  .md\:pr-5 {
    padding-right: var(--s-5);
  }
  .md\:pr-6 {
    padding-right: var(--s-6);
  }
  .md\:pr-8 {
    padding-right: var(--s-8);
  }
  .md\:pr-10 {
    padding-right: var(--s-10);
  }
  .md\:pr-12 {
    padding-right: var(--s-12);
  }
  .md\:pr-16 {
    padding-right: var(--s-16);
  }
  .md\:pr-20 {
    padding-right: var(--s-20);
  }
  .md\:pr-24 {
    padding-right: var(--s-24);
  }
  .md\:pb-0 {
    padding-bottom: var(--s-0);
  }
  .md\:pb-1 {
    padding-bottom: var(--s-1);
  }
  .md\:pb-2 {
    padding-bottom: var(--s-2);
  }
  .md\:pb-3 {
    padding-bottom: var(--s-3);
  }
  .md\:pb-4 {
    padding-bottom: var(--s-4);
  }
  .md\:pb-5 {
    padding-bottom: var(--s-5);
  }
  .md\:pb-6 {
    padding-bottom: var(--s-6);
  }
  .md\:pb-8 {
    padding-bottom: var(--s-8);
  }
  .md\:pb-10 {
    padding-bottom: var(--s-10);
  }
  .md\:pb-12 {
    padding-bottom: var(--s-12);
  }
  .md\:pb-16 {
    padding-bottom: var(--s-16);
  }
  .md\:pb-20 {
    padding-bottom: var(--s-20);
  }
  .md\:pb-24 {
    padding-bottom: var(--s-24);
  }
  .md\:pl-0 {
    padding-left: var(--s-0);
  }
  .md\:pl-1 {
    padding-left: var(--s-1);
  }
  .md\:pl-2 {
    padding-left: var(--s-2);
  }
  .md\:pl-3 {
    padding-left: var(--s-3);
  }
  .md\:pl-4 {
    padding-left: var(--s-4);
  }
  .md\:pl-5 {
    padding-left: var(--s-5);
  }
  .md\:pl-6 {
    padding-left: var(--s-6);
  }
  .md\:pl-8 {
    padding-left: var(--s-8);
  }
  .md\:pl-10 {
    padding-left: var(--s-10);
  }
  .md\:pl-12 {
    padding-left: var(--s-12);
  }
  .md\:pl-16 {
    padding-left: var(--s-16);
  }
  .md\:pl-20 {
    padding-left: var(--s-20);
  }
  .md\:pl-24 {
    padding-left: var(--s-24);
  }
  /* margin */
  .md\:m-0 {
    margin: var(--s-0);
  }
  .md\:m-1 {
    margin: var(--s-1);
  }
  .md\:m-2 {
    margin: var(--s-2);
  }
  .md\:m-3 {
    margin: var(--s-3);
  }
  .md\:m-4 {
    margin: var(--s-4);
  }
  .md\:m-5 {
    margin: var(--s-5);
  }
  .md\:m-6 {
    margin: var(--s-6);
  }
  .md\:m-8 {
    margin: var(--s-8);
  }
  .md\:m-10 {
    margin: var(--s-10);
  }
  .md\:m-12 {
    margin: var(--s-12);
  }
  .md\:m-16 {
    margin: var(--s-16);
  }
  .md\:m-20 {
    margin: var(--s-20);
  }
  .md\:m-24 {
    margin: var(--s-24);
  }
  .md\:m-auto {
    margin: auto;
  }
  .md\:mx-0 {
    margin-left: var(--s-0);
    margin-right: var(--s-0);
  }
  .md\:mx-1 {
    margin-left: var(--s-1);
    margin-right: var(--s-1);
  }
  .md\:mx-2 {
    margin-left: var(--s-2);
    margin-right: var(--s-2);
  }
  .md\:mx-3 {
    margin-left: var(--s-3);
    margin-right: var(--s-3);
  }
  .md\:mx-4 {
    margin-left: var(--s-4);
    margin-right: var(--s-4);
  }
  .md\:mx-5 {
    margin-left: var(--s-5);
    margin-right: var(--s-5);
  }
  .md\:mx-6 {
    margin-left: var(--s-6);
    margin-right: var(--s-6);
  }
  .md\:mx-8 {
    margin-left: var(--s-8);
    margin-right: var(--s-8);
  }
  .md\:mx-10 {
    margin-left: var(--s-10);
    margin-right: var(--s-10);
  }
  .md\:mx-12 {
    margin-left: var(--s-12);
    margin-right: var(--s-12);
  }
  .md\:mx-16 {
    margin-left: var(--s-16);
    margin-right: var(--s-16);
  }
  .md\:mx-20 {
    margin-left: var(--s-20);
    margin-right: var(--s-20);
  }
  .md\:mx-24 {
    margin-left: var(--s-24);
    margin-right: var(--s-24);
  }
  .md\:mx-auto {
    margin-left: auto;
    margin-right: auto;
  }
  .md\:my-0 {
    margin-top: var(--s-0);
    margin-bottom: var(--s-0);
  }
  .md\:my-1 {
    margin-top: var(--s-1);
    margin-bottom: var(--s-1);
  }
  .md\:my-2 {
    margin-top: var(--s-2);
    margin-bottom: var(--s-2);
  }
  .md\:my-3 {
    margin-top: var(--s-3);
    margin-bottom: var(--s-3);
  }
  .md\:my-4 {
    margin-top: var(--s-4);
    margin-bottom: var(--s-4);
  }
  .md\:my-5 {
    margin-top: var(--s-5);
    margin-bottom: var(--s-5);
  }
  .md\:my-6 {
    margin-top: var(--s-6);
    margin-bottom: var(--s-6);
  }
  .md\:my-8 {
    margin-top: var(--s-8);
    margin-bottom: var(--s-8);
  }
  .md\:my-10 {
    margin-top: var(--s-10);
    margin-bottom: var(--s-10);
  }
  .md\:my-12 {
    margin-top: var(--s-12);
    margin-bottom: var(--s-12);
  }
  .md\:my-16 {
    margin-top: var(--s-16);
    margin-bottom: var(--s-16);
  }
  .md\:my-20 {
    margin-top: var(--s-20);
    margin-bottom: var(--s-20);
  }
  .md\:my-24 {
    margin-top: var(--s-24);
    margin-bottom: var(--s-24);
  }
  .md\:mt-0 {
    margin-top: var(--s-0);
  }
  .md\:mt-1 {
    margin-top: var(--s-1);
  }
  .md\:mt-2 {
    margin-top: var(--s-2);
  }
  .md\:mt-3 {
    margin-top: var(--s-3);
  }
  .md\:mt-4 {
    margin-top: var(--s-4);
  }
  .md\:mt-5 {
    margin-top: var(--s-5);
  }
  .md\:mt-6 {
    margin-top: var(--s-6);
  }
  .md\:mt-8 {
    margin-top: var(--s-8);
  }
  .md\:mt-10 {
    margin-top: var(--s-10);
  }
  .md\:mt-12 {
    margin-top: var(--s-12);
  }
  .md\:mt-16 {
    margin-top: var(--s-16);
  }
  .md\:mt-20 {
    margin-top: var(--s-20);
  }
  .md\:mt-24 {
    margin-top: var(--s-24);
  }
  .md\:mr-0 {
    margin-right: var(--s-0);
  }
  .md\:mr-1 {
    margin-right: var(--s-1);
  }
  .md\:mr-2 {
    margin-right: var(--s-2);
  }
  .md\:mr-3 {
    margin-right: var(--s-3);
  }
  .md\:mr-4 {
    margin-right: var(--s-4);
  }
  .md\:mr-5 {
    margin-right: var(--s-5);
  }
  .md\:mr-6 {
    margin-right: var(--s-6);
  }
  .md\:mr-8 {
    margin-right: var(--s-8);
  }
  .md\:mr-10 {
    margin-right: var(--s-10);
  }
  .md\:mr-12 {
    margin-right: var(--s-12);
  }
  .md\:mr-16 {
    margin-right: var(--s-16);
  }
  .md\:mr-20 {
    margin-right: var(--s-20);
  }
  .md\:mr-24 {
    margin-right: var(--s-24);
  }
  .md\:mb-0 {
    margin-bottom: var(--s-0);
  }
  .md\:mb-1 {
    margin-bottom: var(--s-1);
  }
  .md\:mb-2 {
    margin-bottom: var(--s-2);
  }
  .md\:mb-3 {
    margin-bottom: var(--s-3);
  }
  .md\:mb-4 {
    margin-bottom: var(--s-4);
  }
  .md\:mb-5 {
    margin-bottom: var(--s-5);
  }
  .md\:mb-6 {
    margin-bottom: var(--s-6);
  }
  .md\:mb-8 {
    margin-bottom: var(--s-8);
  }
  .md\:mb-10 {
    margin-bottom: var(--s-10);
  }
  .md\:mb-12 {
    margin-bottom: var(--s-12);
  }
  .md\:mb-16 {
    margin-bottom: var(--s-16);
  }
  .md\:mb-20 {
    margin-bottom: var(--s-20);
  }
  .md\:mb-24 {
    margin-bottom: var(--s-24);
  }
  .md\:ml-0 {
    margin-left: var(--s-0);
  }
  .md\:ml-1 {
    margin-left: var(--s-1);
  }
  .md\:ml-2 {
    margin-left: var(--s-2);
  }
  .md\:ml-3 {
    margin-left: var(--s-3);
  }
  .md\:ml-4 {
    margin-left: var(--s-4);
  }
  .md\:ml-5 {
    margin-left: var(--s-5);
  }
  .md\:ml-6 {
    margin-left: var(--s-6);
  }
  .md\:ml-8 {
    margin-left: var(--s-8);
  }
  .md\:ml-10 {
    margin-left: var(--s-10);
  }
  .md\:ml-12 {
    margin-left: var(--s-12);
  }
  .md\:ml-16 {
    margin-left: var(--s-16);
  }
  .md\:ml-20 {
    margin-left: var(--s-20);
  }
  .md\:ml-24 {
    margin-left: var(--s-24);
  }
  /* borders */
  .md\:border {
    border: var(--border-width) solid var(--border-color);
  }
  .md\:border-x {
    border-left: var(--border-width) solid var(--border-color);
    border-right: var(--border-width) solid var(--border-color);
  }
  .md\:border-y {
    border-top: var(--border-width) solid var(--border-color);
    border-bottom: var(--border-width) solid var(--border-color);
  }
  .md\:border-t {
    border-top: var(--border-width) solid var(--border-color);
  }
  .md\:border-b {
    border-bottom: var(--border-width) solid var(--border-color);
  }
  .md\:border-l {
    border-left: var(--border-width) solid var(--border-color);
  }
  .md\:border-r {
    border-right: var(--border-width) solid var(--border-color);
  }
  .md\:border-none {
    border: 0;
  }
}
@media (min-width: 1024px) {
  /* display */
  .lg\:block {
    display: block;
  }
  .lg\:inline-block {
    display: inline-block;
  }
  .lg\:inline {
    display: inline;
  }
  .lg\:flex {
    display: flex;
  }
  .lg\:grid {
    display: grid;
  }
  .lg\:hidden {
    display: none;
  }
  /* position */
  .lg\:static {
    position: static;
  }
  .lg\:relative {
    position: relative;
  }
  .lg\:absolute {
    position: absolute;
  }
  .lg\:fixed {
    position: fixed;
  }
  .lg\:sticky {
    position: sticky;
  }
  .lg\:inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  .lg\:top-0 {
    top: 0;
  }
  .lg\:right-0 {
    right: 0;
  }
  .lg\:bottom-0 {
    bottom: 0;
  }
  .lg\:left-0 {
    left: 0;
  }
  /* flex */
  .lg\:flex-row {
    flex-direction: row;
  }
  .lg\:flex-col {
    flex-direction: column;
  }
  .lg\:flex-wrap {
    flex-wrap: wrap;
  }
  .lg\:items-start {
    align-items: flex-start;
  }
  .lg\:items-center {
    align-items: center;
  }
  .lg\:items-end {
    align-items: flex-end;
  }
  .lg\:justify-start {
    justify-content: flex-start;
  }
  .lg\:justify-center {
    justify-content: center;
  }
  .lg\:justify-between {
    justify-content: space-between;
  }
  .lg\:justify-end {
    justify-content: flex-end;
  }
  .lg\:flex-1 {
    flex: 1 1 0%;
  }
  .lg\:min-w-0 {
    min-width: 0;
  }
  .lg\:flex-cols {
    display: flex;
    flex-wrap: wrap;
    gap: var(--flex-gap);
  }
  /* sizing / overflow */
  .lg\:h-screen {
    height: 100vh;
  }
  .lg\:h-full {
    height: 100%;
  }
  .lg\:overflow-hidden {
    overflow: hidden;
  }
  .lg\:overflow-y-auto {
    overflow-y: auto;
  }
  .lg\:overflow-x-auto {
    overflow-x: auto;
  }
  .lg\:w-full {
    width: 100%;
  }
  .lg\:w-auto {
    width: auto;
  }
  .lg\:w-half {
    width: 50%;
  }
  .lg\:max-w-sm {
    max-width: var(--max-sm);
  }
  .lg\:max-w-md {
    max-width: var(--max-md);
  }
  .lg\:max-w-lg {
    max-width: var(--max-lg);
  }
  .lg\:max-w-xl {
    max-width: var(--max-xl);
  }
  .lg\:max-w-xxl {
    max-width: var(--max-xxl);
  }
  .lg\:max-w-xxxl {
    max-width: var(--max-xxxl);
  }
  .lg\:max-w-full {
    max-width: 100%;
  }
  /* width — column units (1 col = 120px) */
  .lg\:col-1 {
    width: calc(var(--col) * 1);
  }
  .lg\:col-2 {
    width: calc(var(--col) * 2);
  }
  .lg\:col-3 {
    width: calc(var(--col) * 3);
  }
  .lg\:col-4 {
    width: calc(var(--col) * 4);
  }
  .lg\:col-5 {
    width: calc(var(--col) * 5);
  }
  .lg\:col-6 {
    width: calc(var(--col) * 6);
  }
  .lg\:col-7 {
    width: calc(var(--col) * 7);
  }
  .lg\:col-8 {
    width: calc(var(--col) * 8);
  }
  .lg\:col-9 {
    width: calc(var(--col) * 9);
  }
  .lg\:col-10 {
    width: calc(var(--col) * 10);
  }
  .lg\:col-11 {
    width: calc(var(--col) * 11);
  }
  .lg\:col-12 {
    width: calc(var(--col) * 12);
  }
  /* grid templates */
  .lg\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lg\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .lg\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .lg\:col-span-1 {
    grid-column: span 1/span 1;
  }
  .lg\:col-span-2 {
    grid-column: span 2/span 2;
  }
  .lg\:col-span-3 {
    grid-column: span 3/span 3;
  }
  .lg\:col-span-4 {
    grid-column: span 4/span 4;
  }
  .lg\:col-span-5 {
    grid-column: span 5/span 5;
  }
  .lg\:col-span-6 {
    grid-column: span 6/span 6;
  }
  .lg\:col-span-full {
    grid-column: 1/-1;
  }
  /* fractional flex widths (gap-aware) */
  .lg\:basis-1\/2 {
    flex: 0 0 calc((100% - 1 * var(--flex-gap)) / 2);
  }
  .lg\:basis-1\/3 {
    flex: 0 0 calc((100% - 2 * var(--flex-gap)) / 3);
  }
  .lg\:basis-1\/4 {
    flex: 0 0 calc((100% - 3 * var(--flex-gap)) / 4);
  }
  /* multi-column lists */
  .lg\:list-cols-1 {
    column-count: 1;
  }
  .lg\:list-cols-2 {
    column-count: 2;
  }
  .lg\:list-cols-3 {
    column-count: 3;
  }
  .lg\:list-cols-4 {
    column-count: 4;
  }
  /* gap */
  .lg\:gap-0 {
    gap: var(--s-0);
  }
  .lg\:gap-1 {
    gap: var(--s-1);
  }
  .lg\:gap-2 {
    gap: var(--s-2);
  }
  .lg\:gap-3 {
    gap: var(--s-3);
  }
  .lg\:gap-4 {
    gap: var(--s-4);
  }
  .lg\:gap-5 {
    gap: var(--s-5);
  }
  .lg\:gap-6 {
    gap: var(--s-6);
  }
  .lg\:gap-8 {
    gap: var(--s-8);
  }
  .lg\:gap-10 {
    gap: var(--s-10);
  }
  .lg\:gap-12 {
    gap: var(--s-12);
  }
  .lg\:gap-16 {
    gap: var(--s-16);
  }
  .lg\:gap-20 {
    gap: var(--s-20);
  }
  .lg\:gap-24 {
    gap: var(--s-24);
  }
  /* text align */
  .lg\:text-left {
    text-align: left;
  }
  .lg\:text-center {
    text-align: center;
  }
  .lg\:text-right {
    text-align: right;
  }
  /* text size */
  .lg\:text-xs {
    font-size: var(--text-xs);
  }
  .lg\:text-sm {
    font-size: var(--text-sm);
  }
  .lg\:text-base {
    font-size: var(--text-base);
  }
  .lg\:text-base-bump {
    font-size: var(--text-base-bump);
  }
  .lg\:text-lg {
    font-size: var(--text-lg);
  }
  .lg\:text-xl {
    font-size: var(--text-xl);
  }
  .lg\:text-xl-bump {
    font-size: var(--text-xl-bump);
  }
  /* padding */
  .lg\:p-0 {
    padding: var(--s-0);
  }
  .lg\:p-1 {
    padding: var(--s-1);
  }
  .lg\:p-2 {
    padding: var(--s-2);
  }
  .lg\:p-3 {
    padding: var(--s-3);
  }
  .lg\:p-4 {
    padding: var(--s-4);
  }
  .lg\:p-5 {
    padding: var(--s-5);
  }
  .lg\:p-6 {
    padding: var(--s-6);
  }
  .lg\:p-8 {
    padding: var(--s-8);
  }
  .lg\:p-10 {
    padding: var(--s-10);
  }
  .lg\:p-12 {
    padding: var(--s-12);
  }
  .lg\:p-16 {
    padding: var(--s-16);
  }
  .lg\:p-20 {
    padding: var(--s-20);
  }
  .lg\:p-24 {
    padding: var(--s-24);
  }
  .lg\:px-0 {
    padding-left: var(--s-0);
    padding-right: var(--s-0);
  }
  .lg\:px-1 {
    padding-left: var(--s-1);
    padding-right: var(--s-1);
  }
  .lg\:px-2 {
    padding-left: var(--s-2);
    padding-right: var(--s-2);
  }
  .lg\:px-3 {
    padding-left: var(--s-3);
    padding-right: var(--s-3);
  }
  .lg\:px-4 {
    padding-left: var(--s-4);
    padding-right: var(--s-4);
  }
  .lg\:px-5 {
    padding-left: var(--s-5);
    padding-right: var(--s-5);
  }
  .lg\:px-6 {
    padding-left: var(--s-6);
    padding-right: var(--s-6);
  }
  .lg\:px-8 {
    padding-left: var(--s-8);
    padding-right: var(--s-8);
  }
  .lg\:px-10 {
    padding-left: var(--s-10);
    padding-right: var(--s-10);
  }
  .lg\:px-12 {
    padding-left: var(--s-12);
    padding-right: var(--s-12);
  }
  .lg\:px-16 {
    padding-left: var(--s-16);
    padding-right: var(--s-16);
  }
  .lg\:px-20 {
    padding-left: var(--s-20);
    padding-right: var(--s-20);
  }
  .lg\:px-24 {
    padding-left: var(--s-24);
    padding-right: var(--s-24);
  }
  .lg\:py-0 {
    padding-top: var(--s-0);
    padding-bottom: var(--s-0);
  }
  .lg\:py-1 {
    padding-top: var(--s-1);
    padding-bottom: var(--s-1);
  }
  .lg\:py-2 {
    padding-top: var(--s-2);
    padding-bottom: var(--s-2);
  }
  .lg\:py-3 {
    padding-top: var(--s-3);
    padding-bottom: var(--s-3);
  }
  .lg\:py-4 {
    padding-top: var(--s-4);
    padding-bottom: var(--s-4);
  }
  .lg\:py-5 {
    padding-top: var(--s-5);
    padding-bottom: var(--s-5);
  }
  .lg\:py-6 {
    padding-top: var(--s-6);
    padding-bottom: var(--s-6);
  }
  .lg\:py-8 {
    padding-top: var(--s-8);
    padding-bottom: var(--s-8);
  }
  .lg\:py-10 {
    padding-top: var(--s-10);
    padding-bottom: var(--s-10);
  }
  .lg\:py-12 {
    padding-top: var(--s-12);
    padding-bottom: var(--s-12);
  }
  .lg\:py-16 {
    padding-top: var(--s-16);
    padding-bottom: var(--s-16);
  }
  .lg\:py-20 {
    padding-top: var(--s-20);
    padding-bottom: var(--s-20);
  }
  .lg\:py-24 {
    padding-top: var(--s-24);
    padding-bottom: var(--s-24);
  }
  .lg\:pt-0 {
    padding-top: var(--s-0);
  }
  .lg\:pt-1 {
    padding-top: var(--s-1);
  }
  .lg\:pt-2 {
    padding-top: var(--s-2);
  }
  .lg\:pt-3 {
    padding-top: var(--s-3);
  }
  .lg\:pt-4 {
    padding-top: var(--s-4);
  }
  .lg\:pt-5 {
    padding-top: var(--s-5);
  }
  .lg\:pt-6 {
    padding-top: var(--s-6);
  }
  .lg\:pt-8 {
    padding-top: var(--s-8);
  }
  .lg\:pt-10 {
    padding-top: var(--s-10);
  }
  .lg\:pt-12 {
    padding-top: var(--s-12);
  }
  .lg\:pt-16 {
    padding-top: var(--s-16);
  }
  .lg\:pt-20 {
    padding-top: var(--s-20);
  }
  .lg\:pt-24 {
    padding-top: var(--s-24);
  }
  .lg\:pr-0 {
    padding-right: var(--s-0);
  }
  .lg\:pr-1 {
    padding-right: var(--s-1);
  }
  .lg\:pr-2 {
    padding-right: var(--s-2);
  }
  .lg\:pr-3 {
    padding-right: var(--s-3);
  }
  .lg\:pr-4 {
    padding-right: var(--s-4);
  }
  .lg\:pr-5 {
    padding-right: var(--s-5);
  }
  .lg\:pr-6 {
    padding-right: var(--s-6);
  }
  .lg\:pr-8 {
    padding-right: var(--s-8);
  }
  .lg\:pr-10 {
    padding-right: var(--s-10);
  }
  .lg\:pr-12 {
    padding-right: var(--s-12);
  }
  .lg\:pr-16 {
    padding-right: var(--s-16);
  }
  .lg\:pr-20 {
    padding-right: var(--s-20);
  }
  .lg\:pr-24 {
    padding-right: var(--s-24);
  }
  .lg\:pb-0 {
    padding-bottom: var(--s-0);
  }
  .lg\:pb-1 {
    padding-bottom: var(--s-1);
  }
  .lg\:pb-2 {
    padding-bottom: var(--s-2);
  }
  .lg\:pb-3 {
    padding-bottom: var(--s-3);
  }
  .lg\:pb-4 {
    padding-bottom: var(--s-4);
  }
  .lg\:pb-5 {
    padding-bottom: var(--s-5);
  }
  .lg\:pb-6 {
    padding-bottom: var(--s-6);
  }
  .lg\:pb-8 {
    padding-bottom: var(--s-8);
  }
  .lg\:pb-10 {
    padding-bottom: var(--s-10);
  }
  .lg\:pb-12 {
    padding-bottom: var(--s-12);
  }
  .lg\:pb-16 {
    padding-bottom: var(--s-16);
  }
  .lg\:pb-20 {
    padding-bottom: var(--s-20);
  }
  .lg\:pb-24 {
    padding-bottom: var(--s-24);
  }
  .lg\:pl-0 {
    padding-left: var(--s-0);
  }
  .lg\:pl-1 {
    padding-left: var(--s-1);
  }
  .lg\:pl-2 {
    padding-left: var(--s-2);
  }
  .lg\:pl-3 {
    padding-left: var(--s-3);
  }
  .lg\:pl-4 {
    padding-left: var(--s-4);
  }
  .lg\:pl-5 {
    padding-left: var(--s-5);
  }
  .lg\:pl-6 {
    padding-left: var(--s-6);
  }
  .lg\:pl-8 {
    padding-left: var(--s-8);
  }
  .lg\:pl-10 {
    padding-left: var(--s-10);
  }
  .lg\:pl-12 {
    padding-left: var(--s-12);
  }
  .lg\:pl-16 {
    padding-left: var(--s-16);
  }
  .lg\:pl-20 {
    padding-left: var(--s-20);
  }
  .lg\:pl-24 {
    padding-left: var(--s-24);
  }
  /* margin */
  .lg\:m-0 {
    margin: var(--s-0);
  }
  .lg\:m-1 {
    margin: var(--s-1);
  }
  .lg\:m-2 {
    margin: var(--s-2);
  }
  .lg\:m-3 {
    margin: var(--s-3);
  }
  .lg\:m-4 {
    margin: var(--s-4);
  }
  .lg\:m-5 {
    margin: var(--s-5);
  }
  .lg\:m-6 {
    margin: var(--s-6);
  }
  .lg\:m-8 {
    margin: var(--s-8);
  }
  .lg\:m-10 {
    margin: var(--s-10);
  }
  .lg\:m-12 {
    margin: var(--s-12);
  }
  .lg\:m-16 {
    margin: var(--s-16);
  }
  .lg\:m-20 {
    margin: var(--s-20);
  }
  .lg\:m-24 {
    margin: var(--s-24);
  }
  .lg\:m-auto {
    margin: auto;
  }
  .lg\:mx-0 {
    margin-left: var(--s-0);
    margin-right: var(--s-0);
  }
  .lg\:mx-1 {
    margin-left: var(--s-1);
    margin-right: var(--s-1);
  }
  .lg\:mx-2 {
    margin-left: var(--s-2);
    margin-right: var(--s-2);
  }
  .lg\:mx-3 {
    margin-left: var(--s-3);
    margin-right: var(--s-3);
  }
  .lg\:mx-4 {
    margin-left: var(--s-4);
    margin-right: var(--s-4);
  }
  .lg\:mx-5 {
    margin-left: var(--s-5);
    margin-right: var(--s-5);
  }
  .lg\:mx-6 {
    margin-left: var(--s-6);
    margin-right: var(--s-6);
  }
  .lg\:mx-8 {
    margin-left: var(--s-8);
    margin-right: var(--s-8);
  }
  .lg\:mx-10 {
    margin-left: var(--s-10);
    margin-right: var(--s-10);
  }
  .lg\:mx-12 {
    margin-left: var(--s-12);
    margin-right: var(--s-12);
  }
  .lg\:mx-16 {
    margin-left: var(--s-16);
    margin-right: var(--s-16);
  }
  .lg\:mx-20 {
    margin-left: var(--s-20);
    margin-right: var(--s-20);
  }
  .lg\:mx-24 {
    margin-left: var(--s-24);
    margin-right: var(--s-24);
  }
  .lg\:mx-auto {
    margin-left: auto;
    margin-right: auto;
  }
  .lg\:my-0 {
    margin-top: var(--s-0);
    margin-bottom: var(--s-0);
  }
  .lg\:my-1 {
    margin-top: var(--s-1);
    margin-bottom: var(--s-1);
  }
  .lg\:my-2 {
    margin-top: var(--s-2);
    margin-bottom: var(--s-2);
  }
  .lg\:my-3 {
    margin-top: var(--s-3);
    margin-bottom: var(--s-3);
  }
  .lg\:my-4 {
    margin-top: var(--s-4);
    margin-bottom: var(--s-4);
  }
  .lg\:my-5 {
    margin-top: var(--s-5);
    margin-bottom: var(--s-5);
  }
  .lg\:my-6 {
    margin-top: var(--s-6);
    margin-bottom: var(--s-6);
  }
  .lg\:my-8 {
    margin-top: var(--s-8);
    margin-bottom: var(--s-8);
  }
  .lg\:my-10 {
    margin-top: var(--s-10);
    margin-bottom: var(--s-10);
  }
  .lg\:my-12 {
    margin-top: var(--s-12);
    margin-bottom: var(--s-12);
  }
  .lg\:my-16 {
    margin-top: var(--s-16);
    margin-bottom: var(--s-16);
  }
  .lg\:my-20 {
    margin-top: var(--s-20);
    margin-bottom: var(--s-20);
  }
  .lg\:my-24 {
    margin-top: var(--s-24);
    margin-bottom: var(--s-24);
  }
  .lg\:mt-0 {
    margin-top: var(--s-0);
  }
  .lg\:mt-1 {
    margin-top: var(--s-1);
  }
  .lg\:mt-2 {
    margin-top: var(--s-2);
  }
  .lg\:mt-3 {
    margin-top: var(--s-3);
  }
  .lg\:mt-4 {
    margin-top: var(--s-4);
  }
  .lg\:mt-5 {
    margin-top: var(--s-5);
  }
  .lg\:mt-6 {
    margin-top: var(--s-6);
  }
  .lg\:mt-8 {
    margin-top: var(--s-8);
  }
  .lg\:mt-10 {
    margin-top: var(--s-10);
  }
  .lg\:mt-12 {
    margin-top: var(--s-12);
  }
  .lg\:mt-16 {
    margin-top: var(--s-16);
  }
  .lg\:mt-20 {
    margin-top: var(--s-20);
  }
  .lg\:mt-24 {
    margin-top: var(--s-24);
  }
  .lg\:mr-0 {
    margin-right: var(--s-0);
  }
  .lg\:mr-1 {
    margin-right: var(--s-1);
  }
  .lg\:mr-2 {
    margin-right: var(--s-2);
  }
  .lg\:mr-3 {
    margin-right: var(--s-3);
  }
  .lg\:mr-4 {
    margin-right: var(--s-4);
  }
  .lg\:mr-5 {
    margin-right: var(--s-5);
  }
  .lg\:mr-6 {
    margin-right: var(--s-6);
  }
  .lg\:mr-8 {
    margin-right: var(--s-8);
  }
  .lg\:mr-10 {
    margin-right: var(--s-10);
  }
  .lg\:mr-12 {
    margin-right: var(--s-12);
  }
  .lg\:mr-16 {
    margin-right: var(--s-16);
  }
  .lg\:mr-20 {
    margin-right: var(--s-20);
  }
  .lg\:mr-24 {
    margin-right: var(--s-24);
  }
  .lg\:mb-0 {
    margin-bottom: var(--s-0);
  }
  .lg\:mb-1 {
    margin-bottom: var(--s-1);
  }
  .lg\:mb-2 {
    margin-bottom: var(--s-2);
  }
  .lg\:mb-3 {
    margin-bottom: var(--s-3);
  }
  .lg\:mb-4 {
    margin-bottom: var(--s-4);
  }
  .lg\:mb-5 {
    margin-bottom: var(--s-5);
  }
  .lg\:mb-6 {
    margin-bottom: var(--s-6);
  }
  .lg\:mb-8 {
    margin-bottom: var(--s-8);
  }
  .lg\:mb-10 {
    margin-bottom: var(--s-10);
  }
  .lg\:mb-12 {
    margin-bottom: var(--s-12);
  }
  .lg\:mb-16 {
    margin-bottom: var(--s-16);
  }
  .lg\:mb-20 {
    margin-bottom: var(--s-20);
  }
  .lg\:mb-24 {
    margin-bottom: var(--s-24);
  }
  .lg\:ml-0 {
    margin-left: var(--s-0);
  }
  .lg\:ml-1 {
    margin-left: var(--s-1);
  }
  .lg\:ml-2 {
    margin-left: var(--s-2);
  }
  .lg\:ml-3 {
    margin-left: var(--s-3);
  }
  .lg\:ml-4 {
    margin-left: var(--s-4);
  }
  .lg\:ml-5 {
    margin-left: var(--s-5);
  }
  .lg\:ml-6 {
    margin-left: var(--s-6);
  }
  .lg\:ml-8 {
    margin-left: var(--s-8);
  }
  .lg\:ml-10 {
    margin-left: var(--s-10);
  }
  .lg\:ml-12 {
    margin-left: var(--s-12);
  }
  .lg\:ml-16 {
    margin-left: var(--s-16);
  }
  .lg\:ml-20 {
    margin-left: var(--s-20);
  }
  .lg\:ml-24 {
    margin-left: var(--s-24);
  }
  /* borders */
  .lg\:border {
    border: var(--border-width) solid var(--border-color);
  }
  .lg\:border-x {
    border-left: var(--border-width) solid var(--border-color);
    border-right: var(--border-width) solid var(--border-color);
  }
  .lg\:border-y {
    border-top: var(--border-width) solid var(--border-color);
    border-bottom: var(--border-width) solid var(--border-color);
  }
  .lg\:border-t {
    border-top: var(--border-width) solid var(--border-color);
  }
  .lg\:border-b {
    border-bottom: var(--border-width) solid var(--border-color);
  }
  .lg\:border-l {
    border-left: var(--border-width) solid var(--border-color);
  }
  .lg\:border-r {
    border-right: var(--border-width) solid var(--border-color);
  }
  .lg\:border-none {
    border: 0;
  }
}
@media (min-width: 1280px) {
  /* display */
  .xl\:block {
    display: block;
  }
  .xl\:inline-block {
    display: inline-block;
  }
  .xl\:inline {
    display: inline;
  }
  .xl\:flex {
    display: flex;
  }
  .xl\:grid {
    display: grid;
  }
  .xl\:hidden {
    display: none;
  }
  /* position */
  .xl\:static {
    position: static;
  }
  .xl\:relative {
    position: relative;
  }
  .xl\:absolute {
    position: absolute;
  }
  .xl\:fixed {
    position: fixed;
  }
  .xl\:sticky {
    position: sticky;
  }
  .xl\:inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  .xl\:top-0 {
    top: 0;
  }
  .xl\:right-0 {
    right: 0;
  }
  .xl\:bottom-0 {
    bottom: 0;
  }
  .xl\:left-0 {
    left: 0;
  }
  /* flex */
  .xl\:flex-row {
    flex-direction: row;
  }
  .xl\:flex-col {
    flex-direction: column;
  }
  .xl\:flex-wrap {
    flex-wrap: wrap;
  }
  .xl\:items-start {
    align-items: flex-start;
  }
  .xl\:items-center {
    align-items: center;
  }
  .xl\:items-end {
    align-items: flex-end;
  }
  .xl\:justify-start {
    justify-content: flex-start;
  }
  .xl\:justify-center {
    justify-content: center;
  }
  .xl\:justify-between {
    justify-content: space-between;
  }
  .xl\:justify-end {
    justify-content: flex-end;
  }
  .xl\:flex-1 {
    flex: 1 1 0%;
  }
  .xl\:min-w-0 {
    min-width: 0;
  }
  .xl\:flex-cols {
    display: flex;
    flex-wrap: wrap;
    gap: var(--flex-gap);
  }
  /* sizing / overflow */
  .xl\:h-screen {
    height: 100vh;
  }
  .xl\:h-full {
    height: 100%;
  }
  .xl\:overflow-hidden {
    overflow: hidden;
  }
  .xl\:overflow-y-auto {
    overflow-y: auto;
  }
  .xl\:overflow-x-auto {
    overflow-x: auto;
  }
  .xl\:w-full {
    width: 100%;
  }
  .xl\:w-auto {
    width: auto;
  }
  .xl\:w-half {
    width: 50%;
  }
  .xl\:max-w-sm {
    max-width: var(--max-sm);
  }
  .xl\:max-w-md {
    max-width: var(--max-md);
  }
  .xl\:max-w-lg {
    max-width: var(--max-lg);
  }
  .xl\:max-w-xl {
    max-width: var(--max-xl);
  }
  .xl\:max-w-xxl {
    max-width: var(--max-xxl);
  }
  .xl\:max-w-xxxl {
    max-width: var(--max-xxxl);
  }
  .xl\:max-w-full {
    max-width: 100%;
  }
  /* width — column units (1 col = 120px) */
  .xl\:col-1 {
    width: calc(var(--col) * 1);
  }
  .xl\:col-2 {
    width: calc(var(--col) * 2);
  }
  .xl\:col-3 {
    width: calc(var(--col) * 3);
  }
  .xl\:col-4 {
    width: calc(var(--col) * 4);
  }
  .xl\:col-5 {
    width: calc(var(--col) * 5);
  }
  .xl\:col-6 {
    width: calc(var(--col) * 6);
  }
  .xl\:col-7 {
    width: calc(var(--col) * 7);
  }
  .xl\:col-8 {
    width: calc(var(--col) * 8);
  }
  .xl\:col-9 {
    width: calc(var(--col) * 9);
  }
  .xl\:col-10 {
    width: calc(var(--col) * 10);
  }
  .xl\:col-11 {
    width: calc(var(--col) * 11);
  }
  .xl\:col-12 {
    width: calc(var(--col) * 12);
  }
  /* grid templates */
  .xl\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .xl\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .xl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .xl\:col-span-1 {
    grid-column: span 1/span 1;
  }
  .xl\:col-span-2 {
    grid-column: span 2/span 2;
  }
  .xl\:col-span-3 {
    grid-column: span 3/span 3;
  }
  .xl\:col-span-4 {
    grid-column: span 4/span 4;
  }
  .xl\:col-span-5 {
    grid-column: span 5/span 5;
  }
  .xl\:col-span-6 {
    grid-column: span 6/span 6;
  }
  .xl\:col-span-full {
    grid-column: 1/-1;
  }
  /* fractional flex widths (gap-aware) */
  .xl\:basis-1\/2 {
    flex: 0 0 calc((100% - 1 * var(--flex-gap)) / 2);
  }
  .xl\:basis-1\/3 {
    flex: 0 0 calc((100% - 2 * var(--flex-gap)) / 3);
  }
  .xl\:basis-1\/4 {
    flex: 0 0 calc((100% - 3 * var(--flex-gap)) / 4);
  }
  /* multi-column lists */
  .xl\:list-cols-1 {
    column-count: 1;
  }
  .xl\:list-cols-2 {
    column-count: 2;
  }
  .xl\:list-cols-3 {
    column-count: 3;
  }
  .xl\:list-cols-4 {
    column-count: 4;
  }
  /* gap */
  .xl\:gap-0 {
    gap: var(--s-0);
  }
  .xl\:gap-1 {
    gap: var(--s-1);
  }
  .xl\:gap-2 {
    gap: var(--s-2);
  }
  .xl\:gap-3 {
    gap: var(--s-3);
  }
  .xl\:gap-4 {
    gap: var(--s-4);
  }
  .xl\:gap-5 {
    gap: var(--s-5);
  }
  .xl\:gap-6 {
    gap: var(--s-6);
  }
  .xl\:gap-8 {
    gap: var(--s-8);
  }
  .xl\:gap-10 {
    gap: var(--s-10);
  }
  .xl\:gap-12 {
    gap: var(--s-12);
  }
  .xl\:gap-16 {
    gap: var(--s-16);
  }
  .xl\:gap-20 {
    gap: var(--s-20);
  }
  .xl\:gap-24 {
    gap: var(--s-24);
  }
  /* text align */
  .xl\:text-left {
    text-align: left;
  }
  .xl\:text-center {
    text-align: center;
  }
  .xl\:text-right {
    text-align: right;
  }
  /* text size */
  .xl\:text-xs {
    font-size: var(--text-xs);
  }
  .xl\:text-sm {
    font-size: var(--text-sm);
  }
  .xl\:text-base {
    font-size: var(--text-base);
  }
  .xl\:text-base-bump {
    font-size: var(--text-base-bump);
  }
  .xl\:text-lg {
    font-size: var(--text-lg);
  }
  .xl\:text-xl {
    font-size: var(--text-xl);
  }
  .xl\:text-xl-bump {
    font-size: var(--text-xl-bump);
  }
  /* padding */
  .xl\:p-0 {
    padding: var(--s-0);
  }
  .xl\:p-1 {
    padding: var(--s-1);
  }
  .xl\:p-2 {
    padding: var(--s-2);
  }
  .xl\:p-3 {
    padding: var(--s-3);
  }
  .xl\:p-4 {
    padding: var(--s-4);
  }
  .xl\:p-5 {
    padding: var(--s-5);
  }
  .xl\:p-6 {
    padding: var(--s-6);
  }
  .xl\:p-8 {
    padding: var(--s-8);
  }
  .xl\:p-10 {
    padding: var(--s-10);
  }
  .xl\:p-12 {
    padding: var(--s-12);
  }
  .xl\:p-16 {
    padding: var(--s-16);
  }
  .xl\:p-20 {
    padding: var(--s-20);
  }
  .xl\:p-24 {
    padding: var(--s-24);
  }
  .xl\:px-0 {
    padding-left: var(--s-0);
    padding-right: var(--s-0);
  }
  .xl\:px-1 {
    padding-left: var(--s-1);
    padding-right: var(--s-1);
  }
  .xl\:px-2 {
    padding-left: var(--s-2);
    padding-right: var(--s-2);
  }
  .xl\:px-3 {
    padding-left: var(--s-3);
    padding-right: var(--s-3);
  }
  .xl\:px-4 {
    padding-left: var(--s-4);
    padding-right: var(--s-4);
  }
  .xl\:px-5 {
    padding-left: var(--s-5);
    padding-right: var(--s-5);
  }
  .xl\:px-6 {
    padding-left: var(--s-6);
    padding-right: var(--s-6);
  }
  .xl\:px-8 {
    padding-left: var(--s-8);
    padding-right: var(--s-8);
  }
  .xl\:px-10 {
    padding-left: var(--s-10);
    padding-right: var(--s-10);
  }
  .xl\:px-12 {
    padding-left: var(--s-12);
    padding-right: var(--s-12);
  }
  .xl\:px-16 {
    padding-left: var(--s-16);
    padding-right: var(--s-16);
  }
  .xl\:px-20 {
    padding-left: var(--s-20);
    padding-right: var(--s-20);
  }
  .xl\:px-24 {
    padding-left: var(--s-24);
    padding-right: var(--s-24);
  }
  .xl\:py-0 {
    padding-top: var(--s-0);
    padding-bottom: var(--s-0);
  }
  .xl\:py-1 {
    padding-top: var(--s-1);
    padding-bottom: var(--s-1);
  }
  .xl\:py-2 {
    padding-top: var(--s-2);
    padding-bottom: var(--s-2);
  }
  .xl\:py-3 {
    padding-top: var(--s-3);
    padding-bottom: var(--s-3);
  }
  .xl\:py-4 {
    padding-top: var(--s-4);
    padding-bottom: var(--s-4);
  }
  .xl\:py-5 {
    padding-top: var(--s-5);
    padding-bottom: var(--s-5);
  }
  .xl\:py-6 {
    padding-top: var(--s-6);
    padding-bottom: var(--s-6);
  }
  .xl\:py-8 {
    padding-top: var(--s-8);
    padding-bottom: var(--s-8);
  }
  .xl\:py-10 {
    padding-top: var(--s-10);
    padding-bottom: var(--s-10);
  }
  .xl\:py-12 {
    padding-top: var(--s-12);
    padding-bottom: var(--s-12);
  }
  .xl\:py-16 {
    padding-top: var(--s-16);
    padding-bottom: var(--s-16);
  }
  .xl\:py-20 {
    padding-top: var(--s-20);
    padding-bottom: var(--s-20);
  }
  .xl\:py-24 {
    padding-top: var(--s-24);
    padding-bottom: var(--s-24);
  }
  .xl\:pt-0 {
    padding-top: var(--s-0);
  }
  .xl\:pt-1 {
    padding-top: var(--s-1);
  }
  .xl\:pt-2 {
    padding-top: var(--s-2);
  }
  .xl\:pt-3 {
    padding-top: var(--s-3);
  }
  .xl\:pt-4 {
    padding-top: var(--s-4);
  }
  .xl\:pt-5 {
    padding-top: var(--s-5);
  }
  .xl\:pt-6 {
    padding-top: var(--s-6);
  }
  .xl\:pt-8 {
    padding-top: var(--s-8);
  }
  .xl\:pt-10 {
    padding-top: var(--s-10);
  }
  .xl\:pt-12 {
    padding-top: var(--s-12);
  }
  .xl\:pt-16 {
    padding-top: var(--s-16);
  }
  .xl\:pt-20 {
    padding-top: var(--s-20);
  }
  .xl\:pt-24 {
    padding-top: var(--s-24);
  }
  .xl\:pr-0 {
    padding-right: var(--s-0);
  }
  .xl\:pr-1 {
    padding-right: var(--s-1);
  }
  .xl\:pr-2 {
    padding-right: var(--s-2);
  }
  .xl\:pr-3 {
    padding-right: var(--s-3);
  }
  .xl\:pr-4 {
    padding-right: var(--s-4);
  }
  .xl\:pr-5 {
    padding-right: var(--s-5);
  }
  .xl\:pr-6 {
    padding-right: var(--s-6);
  }
  .xl\:pr-8 {
    padding-right: var(--s-8);
  }
  .xl\:pr-10 {
    padding-right: var(--s-10);
  }
  .xl\:pr-12 {
    padding-right: var(--s-12);
  }
  .xl\:pr-16 {
    padding-right: var(--s-16);
  }
  .xl\:pr-20 {
    padding-right: var(--s-20);
  }
  .xl\:pr-24 {
    padding-right: var(--s-24);
  }
  .xl\:pb-0 {
    padding-bottom: var(--s-0);
  }
  .xl\:pb-1 {
    padding-bottom: var(--s-1);
  }
  .xl\:pb-2 {
    padding-bottom: var(--s-2);
  }
  .xl\:pb-3 {
    padding-bottom: var(--s-3);
  }
  .xl\:pb-4 {
    padding-bottom: var(--s-4);
  }
  .xl\:pb-5 {
    padding-bottom: var(--s-5);
  }
  .xl\:pb-6 {
    padding-bottom: var(--s-6);
  }
  .xl\:pb-8 {
    padding-bottom: var(--s-8);
  }
  .xl\:pb-10 {
    padding-bottom: var(--s-10);
  }
  .xl\:pb-12 {
    padding-bottom: var(--s-12);
  }
  .xl\:pb-16 {
    padding-bottom: var(--s-16);
  }
  .xl\:pb-20 {
    padding-bottom: var(--s-20);
  }
  .xl\:pb-24 {
    padding-bottom: var(--s-24);
  }
  .xl\:pl-0 {
    padding-left: var(--s-0);
  }
  .xl\:pl-1 {
    padding-left: var(--s-1);
  }
  .xl\:pl-2 {
    padding-left: var(--s-2);
  }
  .xl\:pl-3 {
    padding-left: var(--s-3);
  }
  .xl\:pl-4 {
    padding-left: var(--s-4);
  }
  .xl\:pl-5 {
    padding-left: var(--s-5);
  }
  .xl\:pl-6 {
    padding-left: var(--s-6);
  }
  .xl\:pl-8 {
    padding-left: var(--s-8);
  }
  .xl\:pl-10 {
    padding-left: var(--s-10);
  }
  .xl\:pl-12 {
    padding-left: var(--s-12);
  }
  .xl\:pl-16 {
    padding-left: var(--s-16);
  }
  .xl\:pl-20 {
    padding-left: var(--s-20);
  }
  .xl\:pl-24 {
    padding-left: var(--s-24);
  }
  /* margin */
  .xl\:m-0 {
    margin: var(--s-0);
  }
  .xl\:m-1 {
    margin: var(--s-1);
  }
  .xl\:m-2 {
    margin: var(--s-2);
  }
  .xl\:m-3 {
    margin: var(--s-3);
  }
  .xl\:m-4 {
    margin: var(--s-4);
  }
  .xl\:m-5 {
    margin: var(--s-5);
  }
  .xl\:m-6 {
    margin: var(--s-6);
  }
  .xl\:m-8 {
    margin: var(--s-8);
  }
  .xl\:m-10 {
    margin: var(--s-10);
  }
  .xl\:m-12 {
    margin: var(--s-12);
  }
  .xl\:m-16 {
    margin: var(--s-16);
  }
  .xl\:m-20 {
    margin: var(--s-20);
  }
  .xl\:m-24 {
    margin: var(--s-24);
  }
  .xl\:m-auto {
    margin: auto;
  }
  .xl\:mx-0 {
    margin-left: var(--s-0);
    margin-right: var(--s-0);
  }
  .xl\:mx-1 {
    margin-left: var(--s-1);
    margin-right: var(--s-1);
  }
  .xl\:mx-2 {
    margin-left: var(--s-2);
    margin-right: var(--s-2);
  }
  .xl\:mx-3 {
    margin-left: var(--s-3);
    margin-right: var(--s-3);
  }
  .xl\:mx-4 {
    margin-left: var(--s-4);
    margin-right: var(--s-4);
  }
  .xl\:mx-5 {
    margin-left: var(--s-5);
    margin-right: var(--s-5);
  }
  .xl\:mx-6 {
    margin-left: var(--s-6);
    margin-right: var(--s-6);
  }
  .xl\:mx-8 {
    margin-left: var(--s-8);
    margin-right: var(--s-8);
  }
  .xl\:mx-10 {
    margin-left: var(--s-10);
    margin-right: var(--s-10);
  }
  .xl\:mx-12 {
    margin-left: var(--s-12);
    margin-right: var(--s-12);
  }
  .xl\:mx-16 {
    margin-left: var(--s-16);
    margin-right: var(--s-16);
  }
  .xl\:mx-20 {
    margin-left: var(--s-20);
    margin-right: var(--s-20);
  }
  .xl\:mx-24 {
    margin-left: var(--s-24);
    margin-right: var(--s-24);
  }
  .xl\:mx-auto {
    margin-left: auto;
    margin-right: auto;
  }
  .xl\:my-0 {
    margin-top: var(--s-0);
    margin-bottom: var(--s-0);
  }
  .xl\:my-1 {
    margin-top: var(--s-1);
    margin-bottom: var(--s-1);
  }
  .xl\:my-2 {
    margin-top: var(--s-2);
    margin-bottom: var(--s-2);
  }
  .xl\:my-3 {
    margin-top: var(--s-3);
    margin-bottom: var(--s-3);
  }
  .xl\:my-4 {
    margin-top: var(--s-4);
    margin-bottom: var(--s-4);
  }
  .xl\:my-5 {
    margin-top: var(--s-5);
    margin-bottom: var(--s-5);
  }
  .xl\:my-6 {
    margin-top: var(--s-6);
    margin-bottom: var(--s-6);
  }
  .xl\:my-8 {
    margin-top: var(--s-8);
    margin-bottom: var(--s-8);
  }
  .xl\:my-10 {
    margin-top: var(--s-10);
    margin-bottom: var(--s-10);
  }
  .xl\:my-12 {
    margin-top: var(--s-12);
    margin-bottom: var(--s-12);
  }
  .xl\:my-16 {
    margin-top: var(--s-16);
    margin-bottom: var(--s-16);
  }
  .xl\:my-20 {
    margin-top: var(--s-20);
    margin-bottom: var(--s-20);
  }
  .xl\:my-24 {
    margin-top: var(--s-24);
    margin-bottom: var(--s-24);
  }
  .xl\:mt-0 {
    margin-top: var(--s-0);
  }
  .xl\:mt-1 {
    margin-top: var(--s-1);
  }
  .xl\:mt-2 {
    margin-top: var(--s-2);
  }
  .xl\:mt-3 {
    margin-top: var(--s-3);
  }
  .xl\:mt-4 {
    margin-top: var(--s-4);
  }
  .xl\:mt-5 {
    margin-top: var(--s-5);
  }
  .xl\:mt-6 {
    margin-top: var(--s-6);
  }
  .xl\:mt-8 {
    margin-top: var(--s-8);
  }
  .xl\:mt-10 {
    margin-top: var(--s-10);
  }
  .xl\:mt-12 {
    margin-top: var(--s-12);
  }
  .xl\:mt-16 {
    margin-top: var(--s-16);
  }
  .xl\:mt-20 {
    margin-top: var(--s-20);
  }
  .xl\:mt-24 {
    margin-top: var(--s-24);
  }
  .xl\:mr-0 {
    margin-right: var(--s-0);
  }
  .xl\:mr-1 {
    margin-right: var(--s-1);
  }
  .xl\:mr-2 {
    margin-right: var(--s-2);
  }
  .xl\:mr-3 {
    margin-right: var(--s-3);
  }
  .xl\:mr-4 {
    margin-right: var(--s-4);
  }
  .xl\:mr-5 {
    margin-right: var(--s-5);
  }
  .xl\:mr-6 {
    margin-right: var(--s-6);
  }
  .xl\:mr-8 {
    margin-right: var(--s-8);
  }
  .xl\:mr-10 {
    margin-right: var(--s-10);
  }
  .xl\:mr-12 {
    margin-right: var(--s-12);
  }
  .xl\:mr-16 {
    margin-right: var(--s-16);
  }
  .xl\:mr-20 {
    margin-right: var(--s-20);
  }
  .xl\:mr-24 {
    margin-right: var(--s-24);
  }
  .xl\:mb-0 {
    margin-bottom: var(--s-0);
  }
  .xl\:mb-1 {
    margin-bottom: var(--s-1);
  }
  .xl\:mb-2 {
    margin-bottom: var(--s-2);
  }
  .xl\:mb-3 {
    margin-bottom: var(--s-3);
  }
  .xl\:mb-4 {
    margin-bottom: var(--s-4);
  }
  .xl\:mb-5 {
    margin-bottom: var(--s-5);
  }
  .xl\:mb-6 {
    margin-bottom: var(--s-6);
  }
  .xl\:mb-8 {
    margin-bottom: var(--s-8);
  }
  .xl\:mb-10 {
    margin-bottom: var(--s-10);
  }
  .xl\:mb-12 {
    margin-bottom: var(--s-12);
  }
  .xl\:mb-16 {
    margin-bottom: var(--s-16);
  }
  .xl\:mb-20 {
    margin-bottom: var(--s-20);
  }
  .xl\:mb-24 {
    margin-bottom: var(--s-24);
  }
  .xl\:ml-0 {
    margin-left: var(--s-0);
  }
  .xl\:ml-1 {
    margin-left: var(--s-1);
  }
  .xl\:ml-2 {
    margin-left: var(--s-2);
  }
  .xl\:ml-3 {
    margin-left: var(--s-3);
  }
  .xl\:ml-4 {
    margin-left: var(--s-4);
  }
  .xl\:ml-5 {
    margin-left: var(--s-5);
  }
  .xl\:ml-6 {
    margin-left: var(--s-6);
  }
  .xl\:ml-8 {
    margin-left: var(--s-8);
  }
  .xl\:ml-10 {
    margin-left: var(--s-10);
  }
  .xl\:ml-12 {
    margin-left: var(--s-12);
  }
  .xl\:ml-16 {
    margin-left: var(--s-16);
  }
  .xl\:ml-20 {
    margin-left: var(--s-20);
  }
  .xl\:ml-24 {
    margin-left: var(--s-24);
  }
  /* borders */
  .xl\:border {
    border: var(--border-width) solid var(--border-color);
  }
  .xl\:border-x {
    border-left: var(--border-width) solid var(--border-color);
    border-right: var(--border-width) solid var(--border-color);
  }
  .xl\:border-y {
    border-top: var(--border-width) solid var(--border-color);
    border-bottom: var(--border-width) solid var(--border-color);
  }
  .xl\:border-t {
    border-top: var(--border-width) solid var(--border-color);
  }
  .xl\:border-b {
    border-bottom: var(--border-width) solid var(--border-color);
  }
  .xl\:border-l {
    border-left: var(--border-width) solid var(--border-color);
  }
  .xl\:border-r {
    border-right: var(--border-width) solid var(--border-color);
  }
  .xl\:border-none {
    border: 0;
  }
}

/*# sourceMappingURL=utils.css.map */
