/* Generated by build-css.ts. Do not edit by hand. Edit tokens.ts and re-run. */
:root {

  /* surfaces */
  --surface-base: #0C0C0F;
  --surface-raised: #141418;
  --surface-float: #1E1E26;
  --surface-overlay: rgba(12, 12, 15, 0.85);
  --surface-alarm: #170505;

  /* text */
  --text-primary: #F0EEE9;
  --text-secondary: #7A7A8C;
  --text-secondary-accessible: #848497;
  --text-inverse: #0C0C0F;

  /* accents */
  --acid: #CAFF45;
  --blaze: #FF3330;
  --volt: #7B5CFF;
  --volt-text: #8A6EFF;
  --volt-deep: #6E52E4;
  --smoke: #3A3A48;
  --smoke-border: #67677F;
  --ember: #FF8C42;

  /* tints (pre-composed translucent washes) */
  --tint-card-highlight: rgba(255, 255, 255, 0.04);
  --tint-icon-press: rgba(255, 255, 255, 0.08);
  --tint-blaze-wash: rgba(255, 51, 48, 0.12);
  --tint-volt-shimmer: rgba(123, 92, 255, 0.12);
  --tint-mission-wash-alpha: 0.08;

  /* gradients */
  --gradient-pro: linear-gradient(135deg, #7B5CFF, #B490FF);
  --gradient-card: linear-gradient(135deg, #CAFF45, #7B5CFF);

  /* mission accents */
  --mission-pushups: #CAFF45;
  --mission-shake: #CAFF45;
  --mission-math: #FF8C42;
  --mission-make-bed: #7B5CFF;
  --mission-touch-grass: #7B5CFF;
  --mission-pet-hunt: #7B5CFF;

  /* font stacks */
  --font-display: "Syne", "Trebuchet MS", sans-serif;
  --font-body: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* type scale */
  --alarm-time-size: 88px;
  --alarm-time-weight: 800;
  --alarm-time-line: 92px;
  --alarm-time-tracking: -2px;
  --alarm-time-mobile-size: 64px;
  --alarm-time-mobile-weight: 800;
  --alarm-time-mobile-line: 68px;
  --alarm-time-mobile-tracking: -1.5px;
  --display-size: 48px;
  --display-weight: 700;
  --display-line: 52px;
  --display-tracking: -1.5px;
  --display-mobile-size: 38px;
  --display-mobile-weight: 700;
  --display-mobile-line: 42px;
  --display-mobile-tracking: -1px;
  --headline-size: 28px;
  --headline-weight: 700;
  --headline-line: 34px;
  --headline-tracking: -0.5px;
  --title-size: 20px;
  --title-weight: 600;
  --title-line: 26px;
  --title-tracking: -0.2px;
  --body-size: 15px;
  --body-weight: 400;
  --body-line: 22px;
  --body-tracking: 0px;
  --body-bold-size: 15px;
  --body-bold-weight: 700;
  --body-bold-line: 22px;
  --body-bold-tracking: 0px;
  --caption-size: 12px;
  --caption-weight: 500;
  --caption-line: 16px;
  --caption-tracking: 0.2px;
  --mono-counter-size: 36px;
  --mono-counter-weight: 600;
  --mono-counter-line: 40px;
  --mono-counter-tracking: -1px;
  --mono-label-size: 11px;
  --mono-label-weight: 500;
  --mono-label-line: 14px;
  --mono-label-tracking: 0.8px;

  /* spacing */
  --space-xxs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 20px;
  --space-xl: 24px;
  --space-xxl: 32px;
  --space-xxxl: 40px;
  --space-huge: 48px;
  --space-gutter: 20px;
  --space-card: 20px;

  /* radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-card: 20px;
  --radius-full: 9999px;

  /* sizes */
  --size-button: 56px;
  --size-touch-target: 44px;
  --size-icon-button-target: 48px;
  --size-icon-button-visual: 32px;
  --size-stepper: 36px;
  --size-confidence-bar-height: 4px;
  --size-mission-stripe-width: 4px;
  --size-tab-underline-height: 3px;
  --size-icon-stroke: 1.5px;
  --size-shutter: 72px;
  --size-icon-sm: 16px;
  --size-icon-md: 20px;
  --size-icon-lg: 24px;

  /* border widths */
  --border-hairline: 1px;
  --border-control: 1.5px;

  /* opacity */
  --opacity-card-highlight: 0.04;
  --opacity-mission-wash: 0.08;
  --opacity-lock-shimmer: 0.12;
  --opacity-card-gradient: 0.04;
  --opacity-card-noise: 0.06;
  --opacity-icon-press: 0.08;
  --opacity-disabled: 0.4;

  /* motion */
  --duration-ui: 160ms;
  --duration-blaze-fade: 400ms;
  --duration-blaze-pulse: 1200ms;
  --duration-rep-roll: 120ms;
  --duration-rep-flash: 200ms;
  --duration-ring-sweep: 600ms;
  --duration-check-draw: 400ms;
  --duration-complete-hold: 300ms;
  --duration-streak-burst: 300ms;
  --duration-shimmer-interval: 4000ms;
  --duration-card-reveal: 800ms;
  --stagger-mission-cards: 80ms;
  --stagger-price-lines: 60ms;
}

/* Springs cannot be expressed in CSS. These approximations are for static previews
   only; the app uses withSpring with the real mass/damping/stiffness from tokens.ts
   (1 / 14 / 200). */
:root {
  --ease-spring: cubic-bezier(0.22, 1.2, 0.36, 1);
}

/* Type roles as ready-made classes. */
.t-alarm-time {
  font-family: var(--font-display);
  font-size: var(--alarm-time-size);
  font-weight: var(--alarm-time-weight);
  line-height: var(--alarm-time-line);
  letter-spacing: var(--alarm-time-tracking);
}
.t-alarm-time-mobile {
  font-family: var(--font-display);
  font-size: var(--alarm-time-mobile-size);
  font-weight: var(--alarm-time-mobile-weight);
  line-height: var(--alarm-time-mobile-line);
  letter-spacing: var(--alarm-time-mobile-tracking);
}
.t-display {
  font-family: var(--font-display);
  font-size: var(--display-size);
  font-weight: var(--display-weight);
  line-height: var(--display-line);
  letter-spacing: var(--display-tracking);
}
.t-display-mobile {
  font-family: var(--font-display);
  font-size: var(--display-mobile-size);
  font-weight: var(--display-mobile-weight);
  line-height: var(--display-mobile-line);
  letter-spacing: var(--display-mobile-tracking);
}
.t-headline {
  font-family: var(--font-display);
  font-size: var(--headline-size);
  font-weight: var(--headline-weight);
  line-height: var(--headline-line);
  letter-spacing: var(--headline-tracking);
}
.t-title {
  font-family: var(--font-body);
  font-size: var(--title-size);
  font-weight: var(--title-weight);
  line-height: var(--title-line);
  letter-spacing: var(--title-tracking);
}
.t-body {
  font-family: var(--font-body);
  font-size: var(--body-size);
  font-weight: var(--body-weight);
  line-height: var(--body-line);
  letter-spacing: var(--body-tracking);
}
.t-body-bold {
  font-family: var(--font-body);
  font-size: var(--body-bold-size);
  font-weight: var(--body-bold-weight);
  line-height: var(--body-bold-line);
  letter-spacing: var(--body-bold-tracking);
}
.t-caption {
  font-family: var(--font-body);
  font-size: var(--caption-size);
  font-weight: var(--caption-weight);
  line-height: var(--caption-line);
  letter-spacing: var(--caption-tracking);
}
.t-mono-counter {
  font-family: var(--font-mono);
  font-size: var(--mono-counter-size);
  font-weight: var(--mono-counter-weight);
  line-height: var(--mono-counter-line);
  letter-spacing: var(--mono-counter-tracking);
}
.t-mono-label {
  font-family: var(--font-mono);
  font-size: var(--mono-label-size);
  font-weight: var(--mono-label-weight);
  line-height: var(--mono-label-line);
  letter-spacing: var(--mono-label-tracking);
  text-transform: uppercase;
}
