/* Agentdex Design System v1 — ax-ds.css
   One source of truth for tokens + components. Loaded after ax-v2.css on every page.
   Docs: /design/  ·  Applied by tools/ds_apply.py (called from canon_header.py). */
:root{
 /* color */
 --ds-bg:#08090b;--ds-surface:#0d0f13;--ds-surface-2:#12141a;--ds-raise:#ffffff08;
 --ds-fg:#e8e9ec;--ds-fg-strong:#ffffff;--ds-mute:#9a9ca5;--ds-dim:#6b6d76;
 --ds-line:#ffffff12;--ds-line-2:#ffffff28;
 --ds-accent:#a0f0d0;--ds-accent-ink:#04261a;--ds-accent-soft:#a0f0d014;
 --ds-blue:#4f7cff;--ds-amber:#f5c26b;--ds-danger:#ff6b6b;
 /* type */
 --ds-font:Geist,Inter,ui-sans-serif,system-ui,sans-serif;--ds-mono:'Geist Mono',ui-monospace,monospace;
 --ds-t-xs:12px;--ds-t-sm:14px;--ds-t-md:16px;--ds-t-lg:18px;--ds-t-xl:22px;
 --ds-t-h3:20px;--ds-t-h2:clamp(24px,3vw,32px);--ds-t-h1:clamp(36px,5vw,52px);--ds-t-display:clamp(40px,7vw,84px);
 /* space (4px base) */
 --ds-1:4px;--ds-2:8px;--ds-3:12px;--ds-4:16px;--ds-5:24px;--ds-6:32px;--ds-7:48px;--ds-8:64px;--ds-9:96px;
 /* radius */
 --ds-r-sm:6px;--ds-r-md:10px;--ds-r-lg:16px;--ds-r-xl:20px;--ds-r-pill:999px;
 /* layout */
 --ds-w:1200px;--ds-w-prose:720px;--ds-w-narrow:480px;--ds-gutter:24px;
 --ds-ease:cubic-bezier(.2,.7,.2,1);
 color-scheme:dark;
}
/* ---------- base ---------- */
body{background:var(--ds-bg)!important;color:var(--ds-fg)!important;font-family:var(--ds-font)!important}
::selection{background:#a0f0d040;color:#fff}
:focus-visible{outline:2px solid var(--ds-accent);outline-offset:2px}
main h1{font-size:var(--ds-t-h1)!important;line-height:1.08!important;color:var(--ds-fg-strong)!important}
main h2{color:var(--ds-fg-strong)!important}
main h3{color:var(--ds-fg-strong)}
.axhero h1{font-size:var(--ds-t-display)!important;color:transparent!important}
/* ---------- container ---------- */
.ds-container,.axw{max-width:var(--ds-w);margin-inline:auto;padding-inline:var(--ds-gutter)}
main.max-w-6xl,main .max-w-6xl,main.st:not([style]){max-width:var(--ds-w)!important}
.ds-prose{max-width:var(--ds-w-prose);margin-inline:auto}
@media(max-width:600px){:root{--ds-gutter:16px}}
/* ---------- links ---------- */
.ds-link,main .prose a:not([class*=btn]),main article p a:not([class*=btn]),main p a:not([class]),main li a:not([class]){color:var(--ds-accent);text-decoration:underline;text-decoration-color:#a0f0d055;text-underline-offset:3px;transition:text-decoration-color .2s}
.ds-link:hover,main p a:not([class]):hover{text-decoration-color:var(--ds-accent)}
/* fix: prose wrappers carrying "[&_a]:text-[#d6ff4a]" were turning whole articles mint */
[class*="[&_a]:text-[#d6ff4a]"]{color:var(--ds-fg)!important}
[class*="[&_a]:text-[#d6ff4a]"] a:not(.ax-btn):not(.ds-btn):not(.axbtn){color:var(--ds-accent)!important}
[class*="[&_h2]"] h2{color:var(--ds-fg-strong)!important}
/* ---------- eyebrow / section heading ---------- */
.ds-eyebrow,.axeb,.ax-tag,main p[class*="tracking-[0.18em]"],main p[class*="tracking-[0.2em]"],main [class*="tracking-[0.18em]"][class*="uppercase"]{display:inline-block;font-family:var(--ds-font)!important;font-size:var(--ds-t-xs)!important;font-weight:500;letter-spacing:.12em!important;text-transform:uppercase;color:var(--ds-accent)!important}
.axeb{color:var(--ds-mute)!important}
.ds-section{padding-top:var(--ds-9)}
.ds-sh{display:flex;align-items:end;justify-content:space-between;gap:var(--ds-5);margin-bottom:var(--ds-6);flex-wrap:wrap}
.ds-sh h2,.ds-h2{font-size:var(--ds-t-h2);letter-spacing:-.03em;font-weight:600;line-height:1.15;margin-top:6px;color:var(--ds-fg-strong)}
.ds-lead{font-size:var(--ds-t-lg);line-height:1.6;color:var(--ds-mute);max-width:60ch}
/* ---------- buttons ---------- */
.ds-btn,.axbtn,.ax-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:var(--ds-r-md)!important;font:500 var(--ds-t-sm)/1 var(--ds-font)!important;white-space:nowrap;cursor:pointer;text-decoration:none!important;transition:transform .15s var(--ds-ease),background .2s,border-color .2s,box-shadow .2s;border:1px solid transparent}
.ds-btn:active,.axbtn:active,.ax-btn:active{transform:translateY(1px)}
/* primary */
.ds-btn-primary,.axbtn.p,.ax-btn{background:linear-gradient(180deg,#fff,#d9dbe0)!important;color:#08090b!important;border-color:transparent!important;box-shadow:0 0 0 1px #fff3,0 8px 24px -10px #b9f5ff66}
.ds-btn-primary:hover,.axbtn.p:hover,.ax-btn:hover{transform:translateY(-1px);box-shadow:0 0 0 1px #fff6,0 12px 32px -8px #b9f5ffaa}
/* secondary */
.ds-btn-secondary,.axbtn:not(.p){background:var(--ds-raise)!important;color:var(--ds-fg)!important;border-color:#ffffff1a!important}
.ds-btn-secondary:hover,.axbtn:not(.p):hover{background:#ffffff12!important;border-color:#ffffff30!important}
/* ghost */
.ds-btn-ghost{background:transparent!important;color:var(--ds-mute)!important;border-color:transparent!important}
.ds-btn-ghost:hover{color:#fff!important;background:#ffffff0a!important}
.ds-btn-sm,.axh .axbtn{height:36px;padding:0 14px}
.ds-btn-lg,.axbtn.lg{height:44px;padding:0 20px;font-size:var(--ds-t-md)!important}
.ax-btn{margin-top:var(--ds-3);height:auto;min-height:40px;padding:10px 18px;white-space:normal;text-align:center;line-height:1.2!important}
/* legacy Next.js lime pill / dark buy buttons -> primary */
main a[class*="bg-[#d6ff4a]"],main button[class*="bg-[#d6ff4a]"]{border-radius:var(--ds-r-md)!important;font-weight:500!important}
main a[style*="--shimmer-color"]{background:linear-gradient(180deg,#fff,#d9dbe0)!important;color:#08090b!important;border:0!important;border-radius:var(--ds-r-md)!important;font-weight:500;box-shadow:0 0 0 1px #fff3,0 8px 24px -10px #b9f5ff66}
main a[style*="--shimmer-color"]>div{display:none!important}
main a[style*="--shimmer-color"]>*:not(div){color:#08090b!important}
/* ---------- cards ---------- */
.ds-card,.axcard,.ax-card,.axpack,.ax-sub-card{padding:var(--ds-5);border-radius:var(--ds-r-lg)!important;background:linear-gradient(180deg,#ffffff0a,#ffffff03)!important;border:1px solid var(--ds-line)!important;transition:transform .3s var(--ds-ease),border-color .3s}
a.ds-card:hover,.axcard:hover,a.ax-card:hover,.axpack:hover{transform:translateY(-3px);border-color:var(--ds-line-2)!important}
main [class*="rounded-2xl"][class*="border"],main [class*="rounded-3xl"][class*="border"],main [class*="rounded-xl"][class*="border"]{border-radius:var(--ds-r-lg)!important}
.ds-panel,.axpanel{border-radius:var(--ds-r-xl)!important}
.ax-price{font-size:32px!important;font-weight:600;letter-spacing:-.03em;color:#fff}
/* ---------- badges ---------- */
.ds-badge,.axtag{display:inline-flex;align-items:center;gap:4px;font:500 var(--ds-t-xs)/1.4 var(--ds-font);padding:3px 9px;border-radius:var(--ds-r-sm);background:#ffffff0a;color:#b7b9c1;border:1px solid #ffffff0d}
.ds-badge-accent,.axtag.g{color:var(--ds-accent);background:var(--ds-accent-soft);border-color:#a0f0d022}
.ds-badge-pill,.axpill b{border-radius:var(--ds-r-pill)}
/* Sponsored label: always amber, always visible, same everywhere */
.ds-sponsored,.axsl{display:inline-flex;align-items:center;font:600 11px/1.4 var(--ds-font)!important;letter-spacing:.08em;text-transform:uppercase;color:var(--ds-amber)!important;background:#f5c26b10;border:1px solid #f5c26b44;padding:3px 8px;border-radius:var(--ds-r-sm)}
/* ---------- inputs ---------- */
.ds-input,.ax-in{width:100%;height:44px;padding:0 14px;border-radius:var(--ds-r-md)!important;background:var(--ds-raise)!important;border:1px solid #ffffff1a!important;color:#fff!important;font:400 var(--ds-t-md) var(--ds-font);outline:0;transition:border-color .2s,box-shadow .2s}
.ds-input:focus,.ax-in:focus{border-color:#4f7cff88!important;box-shadow:0 0 0 4px #4f7cff22}
.ds-input::placeholder,.ax-in::placeholder{color:var(--ds-dim)}
.ds-label{display:block;font-size:var(--ds-t-sm);color:var(--ds-fg);margin-bottom:6px}
.ds-check{display:flex;gap:8px;align-items:flex-start;font-size:var(--ds-t-sm);color:var(--ds-mute)}
input[type=checkbox]{accent-color:var(--ds-accent)}
/* ---------- footer ---------- */
.axf{margin-top:var(--ds-9)!important}
.axf .ax-sub{max-width:none!important}
.axf .ax-sub .ax-btn{margin-top:var(--ds-3)}
.axf .ax-sub label.flex{font-size:13px;line-height:1.45}
/* hide legacy Next.js footers re-rendered by hydration; the canonical .axf is used site-wide */
body footer:not(.axf):not(main footer):not(article footer){display:none!important}
/* ---------- utilities ---------- */
.ds-stack>*+*{margin-top:var(--ds-4)}.ds-row{display:flex;gap:var(--ds-3);flex-wrap:wrap;align-items:center}
.ds-mute{color:var(--ds-mute)}.ds-mono{font-family:var(--ds-mono)}
