/* Brutus design tokens.
   Monochrome workshop: white paper on a soft gray canvas, hairline edges,
   pill controls, 24px containers. Colour is reserved for small stage marks
   and for destructive actions. Motion values come from transitions.dev. */
@font-face {
  font-family: "Geist Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/fonts/geist-latin-wght-normal.woff2") format("woff2-variations");
  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;
}
:root {
  /* Surfaces */
  --canvas: #f5f5f5;
  --paper: #ffffff;
  --surface-alt: #fafafa;
  --fill: #f5f5f5;
  --fill-hover: #ededed;
  --fill-strong: #e5e5e5;
  /* Translucent states that read on both canvas and paper. */
  --overlay-hover: rgb(0 0 0 / 0.045);
  --overlay-press: rgb(0 0 0 / 0.08);
  --frost: rgb(255 255 255 / 0.84);
  --frost-canvas: rgb(245 245 245 / 0.86);
  /* Ink */
  --ink: #0a0a0a;
  --ink-soft: #171717;
  --ink-hover: #262626;
  --ink-2: #404040;
  --muted: #737373;
  --faint: #a3a3a3;
  --on-ink: #fafafa;
  /* Edges */
  --hairline: #e5e5e5;
  --hairline-strong: #d4d4d4;
  /* The single hue the system itself uses: destructive only. */
  --ember: #e7000b;
  --ember-hover: #c10007;
  --ember-wash: #fef2f2;
  /* Sparse stage marks: dots and small icons, never fills. */
  --stage-review: #a3a3a3;
  --stage-apply: #f59e0b;
  --stage-applying: #3b82f6;
  --stage-ready: #8b5cf6;
  --stage-applied: #10b981;
  --positive: #10b981;
  /* Icon hues: glyphs only (never chips or fills), one meaning each. */
  --icon-blue: #3b82f6;
  --icon-sky: #0ea5e9;
  --icon-indigo: #6366f1;
  --icon-violet: #8b5cf6;
  --icon-amber: #f59e0b;
  --icon-orange: #f97316;
  --icon-rose: #f43f5e;
  --icon-emerald: #10b981;
  --icon-teal: #14b8a6;
  --icon-linkedin: #0a66c2;

  /* Typography */
  --font-sans:
    "Geist Variable", "Geist", ui-sans-serif, system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-mono:
    ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, monospace;
  --text-caption: 12px;
  --text-meta: 13px;
  --text-body: 14px;
  --text-body-lg: 16px;
  --text-subheading: 18px;
  --text-heading-sm: 24px;
  --text-heading: 30px;
  --tracking-caption: 0.05em;
  --tracking-heading: -0.025em;
  --tracking-display: -0.04em;

  /* Shape */
  --radius-small: 6px;
  --radius-nested: 10px;
  --radius-control: 18px;
  --radius-card: 24px;

  /* Elevation: whisper-quiet. */
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-card:
    0 0 0 1px rgb(23 23 23 / 0.02), 0 1px 3px 0 rgb(0 0 0 / 0.07),
    0 1px 2px -1px rgb(0 0 0 / 0.07);
  --shadow-popover:
    0 0 0 1px rgb(0 0 0 / 0.04), 0 2px 6px rgb(0 0 0 / 0.04),
    0 12px 32px -8px rgb(0 0 0 / 0.14);
  --shadow-dialog:
    0 0 0 1px rgb(0 0 0 / 0.04), 0 24px 64px -16px rgb(0 0 0 / 0.22);
  --ring: 0 0 0 3px rgb(163 163 163 / 0.3);

  /* Layout */
  --page-max: 1360px;
  --gutter: 24px;
  --control-h: 36px;
  --control-h-sm: 32px;
  --touch: 44px;
}

/* transitions-dev — copy this :root block into your project once.
   Every transition snippet reads from these semantic names. */
:root {
  /* ── Motion tokens — shared scale ──────────────────────────────
     Reference these with var(--…) anywhere in your project. The
     transitions below ship literal values so each snippet works on
     its own; `transitions refine` maps hardcoded values back to
     these tokens. */
  /* Durations */
  --duration-stagger: 40ms; /* per-item stagger offset */
  --duration-micro: 80ms; /* tooltip/path delay, shake segment, large stagger */
  --duration-quick: 150ms; /* modal/dropdown close, text swap, tooltip appear */
  --duration-fast: 250ms; /* icon swap, dropdown/modal open, tabs sliding, page slide */
  --duration-medium: 350ms; /* panel close, toast close */
  --duration-slow: 400ms; /* panel open, skeleton content reveal, input clear */
  --duration-very-slow: 500ms; /* emphasis moments, badge appear, text reveal, success check */
  /* Easings */
  --ease-smooth-out: cubic-bezier(
    0.22,
    1,
    0.36,
    1
  ); /* modal/dropdown/panel open + close, page slide, resize, position change */
  --ease-in-out: ease-in-out; /* icon swap, text swap, text reveal, skeleton reveal */
  --ease-out: ease-out; /* tooltip open / close */
  --ease-linear: linear; /* shimmer, skeleton pulse, spinner */
  --ease-bounce: cubic-bezier(0.34, 1.36, 0.64, 1); /* badge pop open */
  --ease-bounce-strong: cubic-bezier(
    0.34,
    3.85,
    0.64,
    1
  ); /* bouncy hover-out (avatar return) */
  /* Distances */
  --distance-micro: 4px; /* text swap */
  --distance-small: 6px; /* error shake (small segment) */
  --distance-base: 8px; /* badge diagonal reveal, page slide, error shake (large segment) */
  --distance-medium: 12px; /* text reveal */
  --distance-large: 30px; /* check badge appear */
  /* Scales */
  --scale-large: 0.96; /* modal open / close */
  --scale-medium: 0.97; /* dropdown open */
  --scale-small: 0.98; /* tooltip open */
  --scale-tiny: 0.99; /* dropdown close */
  /* Blur */
  --blur-small: 2px; /* panel reveal, icon swap, text swap, skeleton reveal, number pop-in */
  --blur-medium: 3px; /* page slide, text reveal */
  --blur-large: 8px; /* success check open */

  /* Card resize */
  --resize-dur: 300ms;
  --resize-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Number pop-in */
  --digit-dur: 500ms;
  --digit-distance: 8px;
  --digit-stagger: 70ms;
  --digit-blur: 2px;
  --digit-ease: cubic-bezier(0.34, 1.45, 0.64, 1);
  --digit-dir-x: 0;
  --digit-dir-y: 1;
  /* Notification badge */
  --badge-slide-dur: 260ms;
  --badge-pop-dur: 500ms;
  --badge-pop-close-dur: 180ms;
  --badge-fade-dur: 400ms;
  --badge-fade-close-dur: 180ms;
  --badge-blur: 2px;
  --badge-offset-x: -8.2px;
  --badge-offset-y: 12.4px;
  --badge-slide-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --badge-pop-ease: cubic-bezier(0.34, 1.36, 0.64, 1);
  --badge-close-ease: cubic-bezier(0.4, 0, 0.2, 1);
  /* Text states swap */
  --text-swap-dur: 150ms;
  --text-swap-translate-y: 4px;
  --text-swap-blur: 2px;
  --text-swap-ease: ease-in-out;
  /* Menu dropdown */
  --dropdown-open-dur: 250ms;
  --dropdown-close-dur: 150ms;
  --dropdown-pre-scale: 0.97;
  --dropdown-closing-scale: 0.99;
  --dropdown-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Modal open / close */
  --modal-open-dur: 250ms;
  --modal-close-dur: 150ms;
  --modal-scale: 0.96;
  --modal-scale-close: 0.96;
  --modal-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Panel reveal */
  --panel-open-dur: 400ms;
  --panel-close-dur: 350ms;
  --panel-translate-y: 100px;
  --panel-blur: 2px;
  --panel-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Page side-by-side */
  --page-slide-dur: 250ms;
  --page-fade-dur: 250ms;
  --page-slide-distance: 8px;
  --page-blur: 3px;
  --page-stagger: 0ms;
  --page-exit-enabled: 1;
  --page-slide-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --page-fade-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Icon swap */
  --icon-swap-dur: 250ms;
  --icon-swap-blur: 2px;
  --icon-swap-start-scale: 0.25;
  --icon-swap-ease: ease-in-out;
  /* Success check */
  --check-opacity-dur: 500ms;
  --check-rotate-dur: 500ms;
  --check-rotate-from: 80deg;
  --check-bob-dur: 500ms;
  --check-y-amount: 40px;
  --check-blur-dur: 500ms;
  --check-blur-from: 10px;
  --check-path-dur: 500ms;
  --check-path-delay: 80ms;
  --check-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --check-ease-opacity: cubic-bezier(0.22, 1, 0.36, 1);
  --check-ease-rotate: cubic-bezier(0.22, 1, 0.36, 1);
  --check-ease-bob: cubic-bezier(0.34, 1.35, 0.64, 1);
  --check-ease-path: cubic-bezier(0.22, 1, 0.36, 1);
  /* Avatar group hover */
  --avatar-lift: -4px;
  --avatar-dur: 320ms;
  --avatar-scale: 1.05;
  --avatar-falloff: 0.45;
  --avatar-ease-in: cubic-bezier(0.22, 1, 0.36, 1);
  --avatar-ease-out: cubic-bezier(0.34, 3.85, 0.64, 1);
  /* Error state shake */
  --shake-distance: 6px;
  --shake-overshoot: 4px;
  --shake-dur-a: 80ms;
  --shake-dur-b: 60ms;
  --shake-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --revert-hold: 3000ms;
  --revert-dur: 280ms;
  /* Input clear with dissolve */
  --clear-dur: 1000ms;
  --clear-out-dur: 400ms;
  --clear-in-dur: 400ms;
  --clear-out-fly: 12px;
  --clear-in-fly: 12px;
  --clear-out-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --clear-in-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --clear-blur: 2px;
  --glow-delay: 50ms;
  --glow-peak-at: 0.15;
  --glow-opacity: 0.42;
  --glow-spread: 1.5;
  /* Skeleton loader and reveal */
  --pulse-dur: 1000ms;
  --pulse-count: 1;
  --pulse-min: 0.5;
  --reveal-dur: 400ms;
  --reveal-blur: 2px;
  --reveal-ease: ease-in-out;
  /* Shimmer text */
  --shimmer-dur: 2000ms;
  --shimmer-base: #7c7c7c;
  --shimmer-highlight: #0d0d0d;
  --shimmer-band: 400%;
  --shimmer-ease: linear;
  /* Tabs sliding */
  --tabs-dur: 250ms;
  --tabs-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tabs-text-muted: rgba(15, 15, 15, 0.8);
  --tabs-text-active: #0f0f0f;
  --tabs-bar-bg: #f1f1f1;
  --tabs-pill-bg: #ffffff;
  /* Tooltip open/close */
  --tt-in-dur: 150ms;
  --tt-out-dur: 50ms;
  --tt-scale: 0.98;
  --tt-delay: 80ms;
  --tt-in-ease: ease-out;
  --tt-out-ease: ease-out;
  --tt-move-dur: 160ms;
  --tt-move-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tt-bg: #ffffff;
  --tt-fg: #2f2f2f;
  /* Texts reveal */
  --stagger-dur: 500ms;
  --stagger-distance: 12px;
  --stagger-stagger: 40ms;
  --stagger-blur: 3px;
  --stagger-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Card hover tilt */
  --tilt-perspective: 1000px;
  --tilt-return: 1000ms;
  --tilt-return-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tilt-follow: 400ms;
  --tilt-follow-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tilt-glare-opacity: 0.32;
  --tilt-glare-fade: 300ms;
  --tilt-glare-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Plus to menu morph */
  --morph-open-dur: 350ms;
  --morph-close-dur: 250ms;
  --morph-ease: cubic-bezier(0.34, 1.25, 0.64, 1);
  --morph-close-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --morph-r-closed: 40px;
  --morph-r-open: 20px;
  --morph-fade-dur: 200ms;
  --morph-slide: 40px;
  --morph-rotate: 45deg;
  --morph-scale: 0.97;
  --morph-blur: 2px;
  /* Accordion expand */
  --acc-expand: 250ms;
  --acc-collapse: 250ms;
  --acc-chevron: 250ms;
  --acc-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Toast open / close */
  --toast-open: 350ms;
  --toast-close: 250ms;
  --toast-distance: 16px;
  --toast-blur: 2px;
  --toast-scale: 0.97;
  --toast-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Like button */
  --like-color: #f40051;
  --like-fill: 150ms;
  --like-pop: 350ms;
  --like-pop-ease: cubic-bezier(0.34, 1.96, 0.64, 1);
  --like-particle-dur: 600ms;
  --like-particle-dist: 20px;
  --like-particle-size: 2.5px;
  --like-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Learn more hover */
  --learn-shift: 2px;
  --learn-spread: 8deg;
  --learn-in: 350ms;
  --learn-out: 350ms;
  --learn-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Checkbox check */
  --check-box: 150ms;
  --check-draw: 350ms;
  --check-delay: 0ms;
  --check-uncheck: 150ms;
  --check-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Spinning counter */
  --reel-dur: 1400ms;
  --reel-cell: 30px;
  --reel-spin-blur: 3px;
  --reel-stagger: 90ms;
  --reel-ease: cubic-bezier(0.16, 1, 0.3, 1);
  /* Toggle */
  --toggle-dur: 350ms;
  --toggle-travel: 14.66px;
  --toggle-ov1: 1px;
  --toggle-ov2: 0px;
  --toggle-track: 0ms;
  --toggle-ease: cubic-bezier(0.34, 1.35, 0.64, 1);
  /* Thinking states */
  --think-hold: 2000ms;
  --think-swap: 150ms;
  --think-gap: 50ms;
  --think-distance: 8px;
  --think-blur: 2px;
  --think-shimmer: 2000ms;
  --think-base: #7c7c7c;
  --think-highlight: #0d0d0d;
  --think-ease: ease-in-out;
  /* Reasoning stream */
  --reason-hold: 840ms;
  --reason-step: 500ms;
  --reason-lines: 2;
  --reason-fade: 28px;
  --reason-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Streaming text */
  --stream-gap: 60ms;
  --stream-fade: 350ms;
  --stream-blur: 1px;
  --stream-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* Matrix dot loader */
  --matrix-cycle: 1200ms;
  --matrix-base: #d9d9d9;
  --matrix-active: #85858f;
  --matrix-ease: ease-in-out;
  /* Banner stacking */
  --stack-open: 350ms;
  --stack-close: 250ms;
  --stack-rise: 60px;
  --stack-blur: 2px;
  --stack-scale: 0.97;
  --stack-peek: 12px;
  --stack-spread-gap: 8px;
  --stack-depth-scale: 0.06;
  --stack-depth-fade: 0.4;
  --stack-depth1-blur: 1px;
  --stack-depth2-blur: 2px;
  --stack-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Brutus tuning of the semantic transition variables: palette-matched
   colours only. Timing stays on the transitions.dev scale. */
:root {
  --tt-bg: var(--ink-soft);
  --tt-fg: var(--on-ink);
  --tabs-text-muted: var(--muted);
  --tabs-text-active: var(--ink);
  --tabs-bar-bg: var(--fill);
  --tabs-pill-bg: var(--paper);
  --shimmer-base: var(--faint);
  --shimmer-highlight: var(--ink);
}
