/* Supagent's design system dadaf616: every value of Central Command's Design system (2026-10-20), the same
   on every product. Load it before a product's own styles and use the names, never the values: a change made
   in Central Command then reaches every page. Generated: edit hq/DESIGN.md, not this file. */

@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fonts/geist-latin-ext.woff2?v=58a6b173d5") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fonts/geist-latin.woff2?v=9b6f5ff45b") 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: "Geist Mono"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fonts/geist-mono-latin-ext.woff2?v=745994b5cd") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Geist Mono"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fonts/geist-mono-latin.woff2?v=5f3d6ad60f") 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; }

/* Supagent: light by default, dark with <html data-theme="dark"> (supagent.js sets it), or with the device
   when no script set it. */
:root {
  --font-sans: Geist, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --text-hero: 72px; --text-hero--line-height: 1.02; --text-hero--font-weight: 700; --text-hero--letter-spacing: -.04em;
  --text-display: 48px; --text-display--line-height: 1.1; --text-display--font-weight: 700; --text-display--letter-spacing: -.03em;
  --text-title-1: 36px; --text-title-1--line-height: 1.1; --text-title-1--font-weight: 700; --text-title-1--letter-spacing: -.03em;
  --text-title-2: 24px; --text-title-2--line-height: 1.15; --text-title-2--font-weight: 700; --text-title-2--letter-spacing: -.02em;
  --text-title-3: 18px; --text-title-3--line-height: 1.2; --text-title-3--font-weight: 600; --text-title-3--letter-spacing: -.01em;
  --text-figures: 30px; --text-figures--line-height: 1.1; --text-figures--font-weight: 600; --text-figures--letter-spacing: -.02em;
  --text-body: 16px; --text-body--line-height: 1.55; --text-body--font-weight: 400;
  --text-small: 14px; --text-small--line-height: 1.5; --text-small--font-weight: 400;
  --text-label: 11px; --text-label--line-height: 1.4; --text-label--font-weight: 600; --text-label--letter-spacing: .12em;
  --h-inline: 20px;
  --h-small: 28px;
  --h-medium: 36px;
  --h-large: 48px;
  --radius-mark: 4px;
  --radius-xs: 6px;
  --radius-sm: 9px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-round: 999px;
  --shadow-sm: 0 1px 0 rgba(230,230,227,.6), 0 1px 2px rgba(20,20,23,.06);
  --shadow-md: 0 1px 2px rgba(20,20,23,.06), 0 8px 24px rgba(20,20,23,.08);
  --shadow-lg: 0 10px 30px rgba(20,20,23,.14), 0 2px 6px rgba(20,20,23,.08);
  --motion-press: 1px;
  --motion-pop-in: 0.12s;
  --motion-fade: 0.15s;
  --motion-fill: 0.3s;
  --motion-shake: 0.4s;
  --motion-sweep: 1.8s;
  --motion-ease: cubic-bezier(.2, .8, .2, 1);
  --depth: 0;
  --shadow-depth: none;
}
:root, [data-theme="light"] {
  color-scheme: light;
  --ds-light: 1;
  --color-page: oklch(0.975 0.01 250);
  --color-surface: oklch(1 0 0);
  --color-raised: oklch(0.935 0.012 250);
  --color-line: oklch(0.9 0.01 250);
  --color-text: oklch(0.21 0.02 255);
  --color-muted: oklch(0.38 0.018 255);
  --color-faint: oklch(0.52 0.016 255);
  --color-scrim: rgba(10,10,12,.4);
  --color-on-color: #FFFFFF;
  --color-primary: #006BCF; --color-primary-content: #FFFFFF;
  --color-accent: #006BCF; --color-accent-content: #FFFFFF;
  --color-ink: var(--color-primary);
  --color-on-ink: var(--color-primary-content);
  --color-lime: var(--color-accent);
  --color-on-lime: var(--color-accent-content);
  --color-saas-ideas: var(--color-accent);
  --color-launch-videos: var(--color-accent);
  --color-agent-hub: var(--color-accent);
  --color-pays: #12783A;
  --color-feels-the-cost: #267A49;
  --color-warning: #9A4B06;
  --color-error: #B42318;
  --color-rating: #D97706;
  --color-saved: #E11D48;
  --color-score-top-ink: #8a5a00;
  --color-score-top-bg: #fdf3d6;
  --color-score-top-frame: #e3a008;
  --color-score-strong-ink: #3d7354;
  --color-score-strong-bg: rgba(18, 120, 58, .065);
  --color-score-good-ink: #56703a;
  --color-score-good-bg: rgba(90, 140, 20, .075);
  --color-score-thin-ink: #6f6328;
  --color-score-thin-bg: rgba(190, 160, 20, .1);
  --color-score-skip-ink: #95504a;
  --color-score-skip-bg: rgba(180, 35, 24, .055);
}
[data-theme="dark"] {
  color-scheme: dark;
  --ds-light: 0;
  --color-page: oklch(0.165 0.012 255);
  --color-surface: oklch(0.235 0.014 255);
  --color-raised: oklch(0.265 0.014 255);
  --color-line: oklch(0.34 0.014 255);
  --color-text: oklch(0.95 0.008 250);
  --color-muted: oklch(0.82 0.01 255);
  --color-faint: oklch(0.66 0.014 255);
  --color-scrim: rgba(0,0,0,.55);
  --color-on-color: #FFFFFF;
  --color-primary: #006BCF; --color-primary-content: #FFFFFF;
  --color-accent: #3A92FA; --color-accent-content: #18181B;
  --color-ink: var(--color-primary);
  --color-on-ink: var(--color-primary-content);
  --color-lime: var(--color-accent);
  --color-on-lime: var(--color-accent-content);
  --color-saas-ideas: var(--color-accent);
  --color-launch-videos: var(--color-accent);
  --color-agent-hub: var(--color-accent);
  --color-pays: #5BE38D;
  --color-feels-the-cost: #A3D9B4;
  --color-warning: #FBC04A;
  --color-error: #FF8A80;
  --color-rating: #FBBF24;
  --color-saved: #FB7185;
  --color-score-top-ink: #f5c04a;
  --color-score-top-bg: rgba(245, 192, 74, .14);
  --color-score-top-frame: #f5c04a;
  --color-score-strong-ink: #8fcfa6;
  --color-score-strong-bg: rgba(91, 227, 141, .07);
  --color-score-good-ink: #b5cf8e;
  --color-score-good-bg: rgba(184, 224, 122, .07);
  --color-score-thin-ink: #d9cc85;
  --color-score-thin-bg: rgba(240, 220, 90, .08);
  --color-score-skip-ink: #e0a29b;
  --color-score-skip-bg: rgba(255, 138, 128, .07);
  --shadow-sm: 0 1px 2px rgba(0,0,0,.45);
  --shadow-md: 0 1px 2px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.5);
  --shadow-lg: 0 10px 30px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.45);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --ds-light: 0;
    --color-page: oklch(0.165 0.012 255);
    --color-surface: oklch(0.235 0.014 255);
    --color-raised: oklch(0.265 0.014 255);
    --color-line: oklch(0.34 0.014 255);
    --color-text: oklch(0.95 0.008 250);
    --color-muted: oklch(0.82 0.01 255);
    --color-faint: oklch(0.66 0.014 255);
    --color-scrim: rgba(0,0,0,.55);
    --color-on-color: #FFFFFF;
    --color-primary: #006BCF; --color-primary-content: #FFFFFF;
    --color-accent: #3A92FA; --color-accent-content: #18181B;
    --color-ink: var(--color-primary);
    --color-on-ink: var(--color-primary-content);
    --color-lime: var(--color-accent);
    --color-on-lime: var(--color-accent-content);
    --color-saas-ideas: var(--color-accent);
    --color-launch-videos: var(--color-accent);
    --color-agent-hub: var(--color-accent);
    --color-pays: #5BE38D;
    --color-feels-the-cost: #A3D9B4;
    --color-warning: #FBC04A;
    --color-error: #FF8A80;
    --color-rating: #FBBF24;
    --color-saved: #FB7185;
    --color-score-top-ink: #f5c04a;
    --color-score-top-bg: rgba(245, 192, 74, .14);
    --color-score-top-frame: #f5c04a;
    --color-score-strong-ink: #8fcfa6;
    --color-score-strong-bg: rgba(91, 227, 141, .07);
    --color-score-good-ink: #b5cf8e;
    --color-score-good-bg: rgba(184, 224, 122, .07);
    --color-score-thin-ink: #d9cc85;
    --color-score-thin-bg: rgba(240, 220, 90, .08);
    --color-score-skip-ink: #e0a29b;
    --color-score-skip-bg: rgba(255, 138, 128, .07);
    --shadow-sm: 0 1px 2px rgba(0,0,0,.45);
    --shadow-md: 0 1px 2px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.5);
    --shadow-lg: 0 10px 30px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.45);
  }
}

/* The other themes (<html data-palette="id">, picked in the navbar's theme menu): each gives its light and
   dark halves, its corners and its depth; every other shade follows from them. */
[data-palette] {
  --color-page: var(--t-base);
  --color-surface: var(--t-card, color-mix(in oklab, var(--t-base) calc(var(--ds-light) * 100%), var(--t-base2)));
  --color-raised: color-mix(in oklab, var(--t-base2) calc(100% - (1 - var(--ds-light)) * 7%), var(--t-content));
  --color-line: color-mix(in oklab, var(--t-base) 86%, var(--t-content));
  --color-text: var(--t-content);
  --color-muted: color-mix(in oklab, var(--t-content) 80%, var(--t-base));
  --color-faint: color-mix(in oklab, var(--t-content) 70%, var(--t-base));
  --color-primary: var(--t-primary); --color-primary-content: var(--t-primary-content);
  --color-accent: var(--t-link, var(--t-primary)); --color-accent-content: var(--t-primary-content);
  --color-ink: var(--color-primary);
  --color-on-ink: var(--color-primary-content);
  --color-lime: var(--color-accent);
  --color-on-lime: var(--color-accent-content);
  --color-saas-ideas: var(--color-accent);
  --color-launch-videos: var(--color-accent);
  --color-agent-hub: var(--color-accent);
}
[data-palette="claude"] {
  --t-base: oklch(98% 0.01 93.48);
  --t-base2: oklch(94.95% 0.01 87.47);
  --t-shadow: oklch(0.8685 0.0109 100.85);
  --t-content: oklch(34% 0.03 94.42);
  --t-primary: oklch(56% 0.14 39.15);
  --t-primary-content: oklch(100% 0 0);
  --t-secondary: oklch(69% 0.16 290.41);
  --t-accent: oklch(42.621% 0.074 224.389);
  --t-neutral: oklch(20% 0 0);
  --radius-mark: 16px;
  --radius-xs: 16px;
  --radius-sm: 16px;
  --radius-md: 16px;
  --radius-lg: 16px;
  --radius-xl: 16px;
  --radius-round: 16px;
  --depth: 1;
  --shadow-depth: inset 0 .5px 0 .5px oklch(100% 0 0 / 8%), inset 0 0 0 1px oklch(0% 0 0 / 5%), 0 1px 3px 0 color-mix(in oklab, var(--t-shadow, black) 40%, transparent), 0 1px 2px -1px color-mix(in oklab, var(--t-shadow, black) 40%, transparent);
}
[data-theme="dark"][data-palette="claude"], [data-theme="dark"] [data-palette="claude"] {
  --t-base: oklch(26.5% 0.004 90);
  --t-base2: oklch(30.5% 0.005 90);
  --t-shadow: oklch(18% 0.004 90);
  --t-content: oklch(93% 0.012 90);
  --t-primary: oklch(67% 0.14 39.15);
  --t-primary-content: oklch(26.5% 0.004 90);
  --t-secondary: oklch(74% 0.14 290.41);
  --t-accent: oklch(72% 0.08 224.389);
  --t-neutral: oklch(90% 0.01 90);
}
[data-palette="mintlify"] {
  --t-base: oklch(98.69% 0.007 145.52);
  --t-base2: oklch(95.89% 0.019 145.43);
  --t-shadow: oklch(48.75% 0.0326 146.64);
  --t-content: oklch(21% 0.006 56.043);
  --t-primary: oklch(50% 0.17 149.214);
  --t-primary-content: oklch(98% 0.018 155.826);
  --t-secondary: oklch(84.42% 0.172 84.934);
  --t-accent: oklch(55% 0.016 285.938);
  --t-neutral: oklch(26% 0.007 34.298);
  --radius-mark: 16px;
  --radius-xs: 16px;
  --radius-sm: 16px;
  --radius-md: 16px;
  --radius-lg: 16px;
  --radius-xl: 8px;
  --radius-round: 999px;
  --depth: 1;
  --shadow-depth: inset 0 .5px 0 .5px oklch(100% 0 0 / 8%), inset 0 0 0 1px oklch(0% 0 0 / 5%), 0 1px 3px 0 color-mix(in oklab, var(--t-shadow, black) 40%, transparent), 0 1px 2px -1px color-mix(in oklab, var(--t-shadow, black) 40%, transparent);
}
[data-theme="dark"][data-palette="mintlify"], [data-theme="dark"] [data-palette="mintlify"] {
  --t-base: oklch(17% 0.008 150);
  --t-base2: oklch(21.5% 0.01 150);
  --t-shadow: oklch(10% 0.006 150);
  --t-content: oklch(95% 0.006 145);
  --t-primary: oklch(72% 0.19 149.214);
  --t-primary-content: oklch(17% 0.008 150);
  --t-secondary: oklch(86% 0.16 84.934);
  --t-accent: oklch(74% 0.016 285.938);
  --t-neutral: oklch(90% 0.005 145);
}
[data-palette="shadcn"] {
  --t-base: oklch(100% 0 0);
  --t-base2: oklch(96.74% 0.0013 286.38);
  --t-shadow: oklch(0% 0 0);
  --t-content: oklch(21.03% 0.0059 285.89);
  --t-primary: oklch(27.39% 0.0055 286.03);
  --t-primary-content: oklch(98.51% 0 0);
  --t-secondary: oklch(55.79% 0.0221 301.91);
  --t-accent: oklch(62.31% 0.188 259.81);
  --t-neutral: oklch(40.66% 0.0251 282.21);
  --radius-mark: 4px;
  --radius-xs: 4px;
  --radius-sm: 4px;
  --radius-md: 4px;
  --radius-lg: 4px;
  --radius-xl: 6px;
  --radius-round: 2px;
  --depth: 1;
  --shadow-depth: inset 0 .5px 0 .5px oklch(100% 0 0 / 8%), inset 0 0 0 1px oklch(0% 0 0 / 5%), 0 1px 3px 0 color-mix(in oklab, var(--t-shadow, black) 40%, transparent), 0 1px 2px -1px color-mix(in oklab, var(--t-shadow, black) 40%, transparent);
}
[data-theme="dark"][data-palette="shadcn"], [data-theme="dark"] [data-palette="shadcn"] {
  --t-base: oklch(14.1% 0.005 285.823);
  --t-base2: oklch(21% 0.006 285.885);
  --t-shadow: oklch(0% 0 0);
  --t-content: oklch(98.5% 0 0);
  --t-primary: oklch(92% 0.004 286.32);
  --t-primary-content: oklch(14.1% 0.005 285.823);
  --t-secondary: oklch(72% 0.02 301.91);
  --t-accent: oklch(70% 0.16 259.81);
  --t-neutral: oklch(87% 0.006 286);
}
[data-palette="vscode"] {
  --t-base: oklch(99% 0.002 271);
  --t-base2: oklch(96% 0.004 271);
  --t-shadow: oklch(84% 0.012 271);
  --t-content: oklch(25% 0.012 271);
  --t-primary: oklch(52% 0.16 252);
  --t-primary-content: oklch(100% 0 0);
  --t-secondary: oklch(62% 0.11 254.128);
  --t-accent: oklch(55% 0.0173 273.66);
  --t-neutral: oklch(36% 0.02 252.894);
  --radius-mark: 0px;
  --radius-xs: 0px;
  --radius-sm: 0px;
  --radius-md: 0px;
  --radius-lg: 0px;
  --radius-xl: 0px;
  --radius-round: 0px;
  --depth: 1;
  --shadow-depth: inset 0 .5px 0 .5px oklch(100% 0 0 / 8%), inset 0 0 0 1px oklch(0% 0 0 / 5%), 0 1px 3px 0 color-mix(in oklab, var(--t-shadow, black) 40%, transparent), 0 1px 2px -1px color-mix(in oklab, var(--t-shadow, black) 40%, transparent);
}
[data-theme="dark"][data-palette="vscode"], [data-theme="dark"] [data-palette="vscode"] {
  --t-base: oklch(0.18 0.02 271.27);
  --t-base2: oklch(0.22 0.02 271.67);
  --t-shadow: oklch(0.28 0.03 270.91);
  --t-content: oklch(0.994 0 0);
  --t-primary: oklch(0.71 0.15 239.15);
  --t-primary-content: oklch(0.18 0.02 271.27);
  --t-secondary: oklch(88% 0.059 254.128);
  --t-accent: oklch(0.5636 0.0173 273.66);
  --t-neutral: oklch(86% 0.022 252.894);
}

/* A control tapped on its own (Sizes): on a touch screen, an invisible 48px tap area around its look, which
   keeps its height (a 44px button would be a fifth size). Uses ::before. Its position: relative sits in the base layer,
   which this file names already, so a product's own position wins (Tailwind's absolute, fixed or sticky, a components
   rule or an unlayered one; Launch Video Agent, Oct 20: unlayered, it pulled its dialogs' close buttons into the flow)
   and no layer name of ours reorders a product's own (naming components first ranked them under base). */
@layer base { :where(.supagent-tap) { position: relative; } }
@media (pointer: coarse) { .supagent-tap::before { content: ""; position: absolute; left: 50%; top: 50%; width: max(100%, 48px); height: max(100%, 48px); translate: -50% -50%; } }
/* A row of them closer than 12px (a switch, a toolbar): .supagent-tap-group on the row puts every tap area under the
   buttons, so none takes a neighbour's taps (SaaS Ideas, Oct 20: a later button's area covered the earlier one's own
   box). The row becomes a stacking context: a menu that opens from inside it stays within it. Keep its gap at least
   (48px - the control's size) / 2, 6px for 36px controls: closer, a neighbour's area takes the rounded corners
   (Agent Hub, Oct 20). Launch Videos' two more: a row of controls wider than 48px needs no group (their areas
   only reach up and down), and a grouped row with a menu opening from it is lifted (position: relative and a
   z-index), or the menu goes under what follows; a control that is its own stacking context (opacity under 1, a
   filter, a z-index) keeps its area inside itself, so move those to its icon. */
.supagent-tap-group { isolation: isolate; }
.supagent-tap-group .supagent-tap::before { z-index: -1; }
/* A row tighter than that gap (a switch, a toolbar): .supagent-tap-row instead lets each area reach up and down only,
   so none covers a neighbour and the row keeps its look, its corners its own (the navbar's icons, 2px apart). One line
   only: a grid or a row that wraps keeps the group, as its areas would reach into the line above (Launch Videos). */
.supagent-tap-row .supagent-tap::before { width: 100%; }

/* Motion (Design system, Motion): reduced motion zeroes every timing. */
@media (prefers-reduced-motion: reduce) { :root { --motion-pop-in: 0s; --motion-fade: 0s; --motion-fill: 0s; --motion-shake: 0s; --motion-sweep: 0s; } }
/* What the timings do not reach stops too (Oct 20 scan: Tailwind's transition classes and the template's own
   timings kept moving): every transition and animation ends at once, its end still fired for code waiting on it. */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; } }

/* Save (supagent.js: Supagent.saved(button, on), or a .supagent-save[data-save="toggle"] button): the heart
   fills in the Saved red with a small burst, and a spark flies to the navbar's heart, which bumps and fills red. A
   heart taken away only fades: its fill and its red go, nothing else. */
.supagent-save { position: relative; overflow: visible; }
.supagent-save[aria-pressed="true"] { color: var(--color-saved); transition: none; }  /* red at once, with its fill */
.supagent-save svg path { fill: currentColor; fill-opacity: 0; transition: fill-opacity var(--motion-fade) var(--motion-ease); }
.supagent-save[aria-pressed="true"] svg path { fill-opacity: 1; transition: none; }
.supagent-save.is-saving > svg { animation: supagent-save-bounce .6s cubic-bezier(.2, .7, .3, 1.1); }
.supagent-burst { position: absolute; inset: 0; pointer-events: none; }
.supagent-burst i { position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; margin: -2.5px 0 0 -2.5px; border-radius: var(--radius-round); background: var(--color-saved); opacity: 0; animation: supagent-burst .7s cubic-bezier(.2, .6, .3, 1) both; }
.supagent-burst i:nth-child(1) { --x: 0px; --y: -22px; }
.supagent-burst i:nth-child(2) { --x: 16px; --y: -16px; }
.supagent-burst i:nth-child(3) { --x: 22px; --y: 0px; }
.supagent-burst i:nth-child(4) { --x: 16px; --y: 16px; }
.supagent-burst i:nth-child(5) { --x: 0px; --y: 22px; }
.supagent-burst i:nth-child(6) { --x: -16px; --y: 16px; }
.supagent-burst i:nth-child(7) { --x: -22px; --y: 0px; }
.supagent-burst i:nth-child(8) { --x: -16px; --y: -16px; }
.supagent-spark { position: fixed; z-index: 1000; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: var(--radius-round); background: var(--color-saved); pointer-events: none; box-shadow: 0 0 6px color-mix(in oklab, var(--color-saved) 90%, transparent), 0 0 14px color-mix(in oklab, var(--color-saved) 55%, transparent), 0 0 22px color-mix(in oklab, var(--color-saved) 25%, transparent); animation: supagent-spark .72s cubic-bezier(.45, .05, .4, 1) forwards; }
.is-supagent-saved { animation: supagent-landed .42s cubic-bezier(.2, .7, .3, 1.1), supagent-flash 1s cubic-bezier(.3, .6, .4, 1); }
.is-supagent-saved svg path { animation: supagent-fill 1s cubic-bezier(.3, .6, .4, 1); }
@keyframes supagent-fill { 0%, 100% { fill: var(--color-saved); fill-opacity: 0; } 15%, 72% { fill: var(--color-saved); fill-opacity: 1; } }
@keyframes supagent-save-bounce { 35% { transform: scale(1.28); } 60% { transform: scale(.94); } }
@keyframes supagent-burst { 0% { opacity: 1; transform: translate(0, 0) scale(.4); } 60% { opacity: 1; transform: translate(var(--x), var(--y)) scale(1); } 100% { opacity: 0; transform: translate(calc(var(--x) * 1.25), calc(var(--y) * 1.25)) scale(.6); } }
@keyframes supagent-spark { 0% { transform: translate(0, 0) scale(.9); opacity: .95; } 50% { transform: translate(var(--mx), var(--my)) scale(1.15); opacity: 1; } 85% { transform: translate(var(--dx), var(--dy)) scale(.7); opacity: .9; } 100% { transform: translate(var(--dx), var(--dy)) scale(.2); opacity: 0; } }
@keyframes supagent-landed { 35% { transform: scale(1.32); } 60% { transform: scale(.9); } }
@keyframes supagent-flash { 15%, 72% { color: var(--color-saved); } }
@media (prefers-reduced-motion: reduce) { .supagent-save.is-saving > svg, .supagent-burst i, .supagent-spark, .is-supagent-saved, .is-supagent-saved svg path { animation: none; } }

/* Buttons show the hand, as links do (Tailwind v4 leaves them with the arrow). In the base layer, so a cursor-*
   class or a page's own rule still wins. */
@layer base { :where(button, [role="button"], summary):not(:disabled, [aria-disabled="true"]) { cursor: pointer; } }
