/* ApexSimApps — design system
 * Base aesthetic: Concept D "Apex Wall" — light premium + broadcast accents
 * One stylesheet for the whole site. Page-specific styles live in <style> tags.
 */

/* ── self-hosted fonts (Inter + Space Grotesk, latin + latin-ext) ────────── */
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/spacegrotesk-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/spacegrotesk-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/spacegrotesk-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/spacegrotesk-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ── reset ───────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body { font-family:'Inter', system-ui, -apple-system, sans-serif; background:var(--bg); color:var(--ink); line-height:1.5; -webkit-font-smoothing:antialiased; }
img, svg { display:block; max-width:100%; }
a { color:inherit; }
button { font:inherit; cursor:pointer; }

/* ── tokens ──────────────────────────────────────────────────────────────── */
:root {
  --bg: #f6f4ef;
  --bg-soft: #efece5;
  --paper: #ffffff;
  --ink: #15110d;
  --ink-2: rgba(21,17,13,.7);
  --ink-3: rgba(21,17,13,.5);
  --ink-4: rgba(21,17,13,.25);
  --line: rgba(21,17,13,.1);
  --line-2: rgba(21,17,13,.06);

  --brand: #ff5e00;          /* orange — primary accent (kept from current site) */
  --brand-ink: #15110d;      /* on-brand text */
  --brand-soft: rgba(255,94,0,.08);

  --red: #d92121;            /* logo red — secondary accent for "A" wordmark */
  --green: #2da66b;          /* success / live dot */

  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 20px;
  --r-pill: 999px;

  --shadow-sm: 0 1px 2px rgba(21,17,13,.06);
  --shadow-md: 0 10px 30px -10px rgba(21,17,13,.18);
  --shadow-lg: 0 30px 80px -20px rgba(21,17,13,.25);

  --display: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  --body: 'Inter', system-ui, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;

  --max: 1280px;
  --pad: clamp(20px, 4vw, 56px);
}

/* dark variant (used on broadcast strip, footer, dark sections) */
.asa-dark {
  --bg: #0d0e10;
  --bg-soft: #14161a;
  --paper: #1a1c20;
  --ink: #f5f3ef;
  --ink-2: rgba(245,243,239,.7);
  --ink-3: rgba(245,243,239,.5);
  --ink-4: rgba(245,243,239,.25);
  --line: rgba(245,243,239,.1);
  --line-2: rgba(245,243,239,.06);
  --brand-ink: #0d0e10;
  background:var(--bg); color:var(--ink);
}

/* ── typography ──────────────────────────────────────────────────────────── */
.asa-eyebrow {
  font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--brand); display:inline-flex; align-items:center; gap:14px;
}
.asa-eyebrow::before { content:''; width:32px; height:1px; background:var(--brand); }

.asa-h1 { font-family:var(--display); font-weight:700; font-size:clamp(48px, 8vw, 112px); line-height:.92; letter-spacing:-.04em; margin:0 0 24px; text-wrap:balance; }
.asa-h2 { font-family:var(--display); font-weight:700; font-size:clamp(34px, 4.5vw, 56px); line-height:1; letter-spacing:-.03em; margin:0 0 18px; text-wrap:balance; }
.asa-h3 { font-family:var(--display); font-weight:600; font-size:clamp(22px, 2vw, 26px); line-height:1.15; letter-spacing:-.015em; margin:0 0 10px; }
.asa-h4 { font-family:var(--display); font-weight:600; font-size:18px; line-height:1.2; letter-spacing:-.01em; margin:0 0 8px; }

.asa-lead { font-size:clamp(17px, 1.4vw, 20px); line-height:1.55; color:var(--ink-2); max-width:60ch; margin:0 0 28px; }
.asa-lead b { color:var(--ink); font-weight:600; }

.asa-strike { position:relative; display:inline-block; }
.asa-strike::after { content:''; position:absolute; left:-4px; right:-4px; top:54%; height:.09em; background:var(--brand); transform-origin:left; transform:scaleX(0); animation:asaStrike 1.4s cubic-bezier(.6,.1,.3,1) .6s forwards; }
@keyframes asaStrike { to { transform:scaleX(1); } }

.asa-em { font-style:italic; color:var(--brand); font-weight:500; }

/* ── layout helpers ──────────────────────────────────────────────────────── */
.asa-container { max-width:var(--max); margin:0 auto; padding:0 var(--pad); }
.asa-section { padding:clamp(60px, 9vw, 120px) 0; position:relative; }
.asa-section.asa-tight { padding:clamp(40px, 6vw, 80px) 0; }

.asa-grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.asa-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.asa-grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width:900px) { .asa-grid-2, .asa-grid-3, .asa-grid-4 { grid-template-columns:1fr; } }

/* ── buttons ─────────────────────────────────────────────────────────────── */
.asa-btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 22px; border-radius:var(--r-pill);
  font-family:var(--body); font-weight:600; font-size:14.5px; letter-spacing:.01em;
  text-decoration:none; border:1px solid transparent;
  transition:transform .2s, background .2s, color .2s, border-color .2s, box-shadow .2s;
}
.asa-btn .arrow { display:inline-block; transition:transform .2s; }
.asa-btn:hover .arrow { transform:translateX(4px); }
.asa-btn.primary { background:var(--ink); color:var(--bg); }
.asa-btn.primary:hover { background:var(--brand); color:var(--ink); transform:translateY(-2px); box-shadow:0 12px 28px -8px rgba(255,94,0,.45); }
.asa-btn.brand { background:var(--brand); color:var(--ink); }
.asa-btn.brand:hover { transform:translateY(-2px); box-shadow:0 12px 28px -8px rgba(255,94,0,.55); }
.asa-btn.ghost { background:transparent; color:var(--ink); border-color:var(--line); }
.asa-btn.ghost:hover { border-color:var(--ink); transform:translateY(-2px); }
.asa-btn.sm { padding:9px 14px; font-size:13px; }

/* ── header ──────────────────────────────────────────────────────────────── */
.asa-broadcast { background:#15110d; color:#f5f3ef; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.18em; text-transform:uppercase; padding:8px 0; overflow:hidden; }
.asa-broadcast .row { display:flex; align-items:center; gap:20px; padding:0 var(--pad); max-width:var(--max); margin:0 auto; }
.asa-broadcast .live { color:var(--brand); font-weight:700; display:flex; align-items:center; gap:8px; }
.asa-broadcast .live::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--brand); box-shadow:0 0 8px var(--brand); animation:asaPulse 1.2s ease-in-out infinite; }
.asa-broadcast .sep { width:1px; height:12px; background:rgba(245,243,239,.15); }
.asa-broadcast .chan { color:rgba(245,243,239,.65); display:flex; align-items:center; gap:6px; }
.asa-broadcast .chan b { color:#f5f3ef; font-weight:600; }
.asa-broadcast .chan span { color:var(--brand); font-variant-numeric:tabular-nums; min-width:54px; text-align:right; }
.asa-broadcast .meta { margin-left:auto; color:rgba(245,243,239,.55); }
.asa-broadcast .meta b { color:#f5f3ef; }
@media (max-width:800px) {
  .asa-broadcast .chan, .asa-broadcast .sep, .asa-broadcast .meta { display:none; }
  .asa-broadcast .chan:nth-of-type(1), .asa-broadcast .sep:nth-of-type(1) { display:flex; }
}
@keyframes asaPulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.45;transform:scale(.8)} }

.asa-nav { position:sticky; top:0; z-index:50; background:rgba(246,244,239,.85); backdrop-filter:blur(10px); border-bottom:1px solid var(--line-2); }
.asa-nav-row { display:flex; align-items:center; gap:32px; padding:14px var(--pad); max-width:var(--max); margin:0 auto; }
.asa-logo { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); flex-shrink:0; }
.asa-logo img { width:34px; height:34px; object-fit:contain; display:block; }
.asa-logo b { font-family:var(--display); font-weight:700; font-size:17px; letter-spacing:-.01em; }
.asa-logo b span { color:var(--brand); }
.asa-nav-links { display:flex; gap:26px; font-size:14px; }
.asa-nav-links a { color:var(--ink-2); text-decoration:none; position:relative; padding:4px 0; transition:color .15s; }
.asa-nav-links a:hover, .asa-nav-links a.on { color:var(--ink); }
.asa-nav-links a::after { content:''; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--brand); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.asa-nav-links a:hover::after, .asa-nav-links a.on::after { transform:scaleX(1); }
.asa-nav-right { margin-left:auto; display:flex; align-items:center; gap:14px; }
.asa-lang { display:flex; gap:4px; font-family:var(--mono); font-size:11px; letter-spacing:.1em; }
.asa-lang a { padding:5px 9px; border-radius:4px; text-decoration:none; color:var(--ink-2); }
.asa-lang a.on { background:var(--ink); color:var(--bg); }

.asa-burger { display:none; background:none; border:0; padding:8px; }
.asa-burger b { display:block; width:22px; height:2px; background:var(--ink); margin:4px 0; transition:transform .2s; }
@media (max-width:800px) {
  .asa-nav-links { display:none; }
  .asa-nav-links.open { display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:var(--paper); padding:18px var(--pad); border-bottom:1px solid var(--line); }
  .asa-burger { display:block; }
  .asa-nav-right .asa-btn { display:none; }
}

/* ── badges / pills ──────────────────────────────────────────────────────── */
.asa-pill { display:inline-flex; align-items:center; gap:8px; padding:5px 11px; border-radius:var(--r-pill);
  background:var(--brand-soft); color:var(--brand); font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; }
.asa-pill.dark { background:var(--ink); color:var(--bg); }
.asa-pill.green { background:rgba(45,166,107,.12); color:var(--green); }

.asa-badge { padding:3px 7px; border-radius:4px; background:var(--brand); color:var(--ink); font-family:var(--mono); font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; }
.asa-badge.ai { background:var(--green); color:#fff; }
.asa-badge.red { background:var(--red); color:#fff; }

/* ── cards ───────────────────────────────────────────────────────────────── */
.asa-card { background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:28px; transition:border-color .25s, transform .25s, box-shadow .25s; }
.asa-card:hover { border-color:var(--brand); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.asa-card-tag { font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); display:flex; align-items:center; gap:8px; }
.asa-card-foot { display:flex; align-items:center; justify-content:space-between; margin-top:18px; padding-top:16px; border-top:1px dashed var(--line); font-size:13px; color:var(--ink-3); }
.asa-card-foot .go { font-weight:600; color:var(--brand); display:inline-flex; align-items:center; gap:4px; }

/* feature cell — clean and uniform */
.asa-feat { padding:28px; border-radius:var(--r-lg); background:var(--paper); border:1px solid var(--line); transition:border-color .25s, transform .25s; }
.asa-feat:hover { border-color:var(--ink-4); transform:translateY(-2px); }
.asa-feat-ico { width:44px; height:44px; border-radius:10px; background:var(--brand-soft); color:var(--brand); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.asa-feat-ico svg { width:22px; height:22px; }

/* ── stat ─────────────────────────────────────────────────────────────── */
.asa-stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.asa-stat { padding:28px 24px; border-left:1px solid var(--line); }
.asa-stat:first-child { border-left:0; }
.asa-stat-v { font-family:var(--display); font-weight:700; font-size:clamp(36px, 4vw, 48px); letter-spacing:-.03em; line-height:1; }
.asa-stat-v span { color:var(--brand); }
.asa-stat-l { font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin-top:8px; }
@media (max-width:700px) { .asa-stat-row { grid-template-columns:repeat(2,1fr); } .asa-stat:nth-child(3) { border-left:0; } }

/* ── footer ──────────────────────────────────────────────────────────────── */
.asa-footer { background:#0d0e10; color:#f5f3ef; padding:80px 0 32px; }
.asa-footer .row { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:48px; padding:0 var(--pad); max-width:var(--max); margin:0 auto; }
@media (max-width:800px) { .asa-footer .row { grid-template-columns:1fr 1fr; } }
.asa-footer h5 { font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(245,243,239,.5); margin:0 0 14px; font-weight:600; }
.asa-footer ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.asa-footer a { color:rgba(245,243,239,.7); text-decoration:none; font-size:14px; transition:color .15s; }
.asa-footer a:hover { color:var(--brand); }
.asa-footer .brand { display:flex; align-items:center; gap:10px; margin-bottom:14px; color:#fff; text-decoration:none; }
.asa-footer .brand img { width:38px; height:38px; object-fit:contain; display:block; }
.asa-footer .brand b { font-family:var(--display); font-size:19px; font-weight:700; }
.asa-footer .brand b span { color:var(--brand); }
.asa-footer .tag { color:rgba(245,243,239,.55); font-size:14px; line-height:1.55; max-width:32ch; }
.asa-footer .social { display:flex; gap:10px; margin-top:18px; }
.asa-footer .social a { width:38px; height:38px; border-radius:50%; background:rgba(245,243,239,.06); display:flex; align-items:center; justify-content:center; transition:background .2s; }
.asa-footer .social a:hover { background:var(--brand); color:#0d0e10; }
.asa-footer .bottom { max-width:var(--max); margin:48px auto 0; padding:24px var(--pad) 0 var(--pad); border-top:1px solid rgba(245,243,239,.08); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:rgba(245,243,239,.5); }

/* ── cookie banner ───────────────────────────────────────────────────────── */
.asa-cookie { position:fixed; left:20px; right:20px; bottom:20px; max-width:680px; margin:0 auto; z-index:90;
  background:#15110d; color:#f5f3ef; border-radius:var(--r-lg); padding:18px 22px; box-shadow:var(--shadow-lg);
  display:flex; align-items:center; gap:18px; transform:translateY(140%); transition:transform .4s cubic-bezier(.4,1.2,.6,1); }
.asa-cookie.in { transform:translateY(0); }
.asa-cookie p { margin:0; font-size:13.5px; line-height:1.45; color:rgba(245,243,239,.8); }
.asa-cookie p a { color:var(--brand); }
.asa-cookie .btns { display:flex; gap:8px; flex-shrink:0; }
.asa-cookie .btns button { padding:9px 14px; border-radius:var(--r-pill); border:0; font-weight:600; font-size:13px; }
.asa-cookie .accept { background:var(--brand); color:#15110d; }
.asa-cookie .deny { background:transparent; color:rgba(245,243,239,.7); border:1px solid rgba(245,243,239,.15); }
@media (max-width:560px) { .asa-cookie { flex-direction:column; align-items:stretch; } .asa-cookie .btns { justify-content:flex-end; } }

/* ── faq accordion ───────────────────────────────────────────────────────── */
.asa-faq { display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.asa-faq details { border-bottom:1px solid var(--line); }
.asa-faq summary { list-style:none; padding:22px 0; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; font-family:var(--display); font-weight:600; font-size:18px; letter-spacing:-.01em; }
.asa-faq summary::-webkit-details-marker { display:none; }
.asa-faq summary::after { content:''; width:20px; height:20px; border:1.5px solid var(--ink); border-radius:50%; flex-shrink:0; position:relative; transition:transform .25s, background .2s, color .2s; background:
  linear-gradient(currentColor, currentColor) center/10px 1.5px no-repeat,
  linear-gradient(currentColor, currentColor) center/1.5px 10px no-repeat;
  color:var(--ink); }
.asa-faq details[open] summary::after { transform:rotate(45deg); background:var(--ink); color:var(--bg); }
.asa-faq details[open] summary { color:var(--brand); }
.asa-faq .answer { padding:0 0 22px; color:var(--ink-2); font-size:15.5px; line-height:1.6; max-width:72ch; }

/* ── prose (legal pages) ─────────────────────────────────────────────────── */
.asa-prose { max-width:72ch; margin:0 auto; }
.asa-prose h2 { font-family:var(--display); font-size:30px; font-weight:700; margin:48px 0 18px; letter-spacing:-.02em; }
.asa-prose h3 { font-family:var(--display); font-size:20px; font-weight:600; margin:32px 0 10px; }
.asa-prose p { font-size:16.5px; line-height:1.65; color:var(--ink-2); margin:0 0 18px; }
.asa-prose ul, .asa-prose ol { font-size:16.5px; line-height:1.65; color:var(--ink-2); padding-left:22px; margin:0 0 18px; }
.asa-prose li { margin:6px 0; }
.asa-prose a { color:var(--brand); }

/* ── form ───────────────────────────────────────────────────────────────── */
.asa-field { display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.asa-field label { font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }
.asa-field input, .asa-field textarea, .asa-field select { font:inherit; padding:14px 16px; border-radius:var(--r-md); border:1px solid var(--line); background:var(--paper); color:var(--ink); transition:border-color .2s; }
.asa-field input:focus, .asa-field textarea:focus, .asa-field select:focus { outline:none; border-color:var(--brand); }
.asa-field textarea { min-height:140px; resize:vertical; font-family:var(--body); }

/* ── scroll reveal helper ───────────────────────────────────────────────── */
.asa-reveal { opacity:0; transform:translateY(20px); transition:opacity .8s, transform .8s; }
.asa-reveal.in { opacity:1; transform:translateY(0); }

/* ── utilities ───────────────────────────────────────────────────────────── */
.asa-ink-2 { color:var(--ink-2); }
.asa-ink-3 { color:var(--ink-3); }
.asa-brand { color:var(--brand); }
.asa-text-center { text-align:center; }
.asa-mono { font-family:var(--mono); }
