:root,
:root[data-theme="light"] {
  color-scheme: light;

  /* Surface */
  --surface-background: #ffffff;
  --surface-container: #fafafa;
  --surface-card: #ffffff;
  --surface-popover: #ffffff;
  --surface-muted: #f5f5f5;
  --surface-accent: #f5f5f5;
  --surface-subtle: #e5e5e5;
  --surface-overlay: rgb(0 0 0 / 60%);
  --surface-overlay-muted: rgb(0 0 0 / 30%);
  --surface-inverse: #0a0a0a;

  /* Text */
  --text-primary: #0a0a0a;
  --text-secondary: #404040;
  --text-tertiary: #737373;
  --text-overlay-primary: #ffffff;
  --text-overlay-secondary: rgb(255 255 255 / 60%);
  --text-inverse: #fafafa;

  /* Border */
  --border-default: #e5e5e5;
  --border-default-muted: #f5f5f5;
  --border-default-accent: #a3a3a3;
  --border-overlay: rgb(0 0 0 / 10%);
  --border-overlay-muted: rgb(0 0 0 / 5%);
  --feedback-info-surface: #e6f4fe;
  --feedback-info-surface-subtle: #f4faff;
  --feedback-info-border-subtle: #c2e5ff;
  --feedback-info-primary: #0090ff;

  /* Component */
  --component-focus-ring: #d4d4d4;
  --component-ghost: rgb(255 255 255 / 0%);
  --component-translucent-subtle: rgb(0 0 0 / 5%);
  --component-translucent-medium: rgb(0 0 0 / 5%);
  --component-translucent-strong: rgb(0 0 0 / 10%);
  --component-translucent-inverse: rgb(255 255 255 / 20%);
  --component-ring-background: #ffffff;

  /* Default brand */
  --brand-default-primary: #171717;
  --brand-default-on-primary: #fafafa;
  --brand-default-secondary: #f5f5f5;
  --brand-default-on-secondary: #0a0a0a;
  --brand-default-primary-hover: #404040;
  --brand-default-secondary-hover: #fafafa;

  /* PixPix brand */
  --brand-pixpix-primary: #0aa5ff;
  --brand-pixpix-on-primary: #ffffff;
  --brand-pixpix-surface: #e6f4fe;
  --brand-pixpix-surface-subtle: #f4faff;
  --brand-pixpix-border: #acd8fc;
  --brand-pixpix-border-subtle: #c2e5ff;
  --brand-pixpix-text: #0588f0;
  --brand-pixpix-text-muted: #5eb1ef;

  /* Page-specific surfaces */
  --home-hero-gradient:
    linear-gradient(185.354deg, rgb(24 202 222 / 12%) 5.425%, rgb(88 137 255 / 0%) 80.349%),
    linear-gradient(166.682deg, rgb(211 68 243 / 14%) 3.007%, rgb(109 68 243 / 0%) 60.706%);
  --home-featured-surface: rgb(189 195 239 / 50%);
  --home-footer-background:
    linear-gradient(180deg, rgb(2 136 225 / 0%) 0%, rgb(2 136 225 / 64%) 100%),
    #000000;
  --tool-media-placeholder: var(--component-translucent-subtle);
  --tool-step-card-surface:
    linear-gradient(190.7deg, rgb(24 202 222 / 12%) 5.4245%, rgb(88 137 255 / 0%) 80.349%),
    linear-gradient(154.486deg, rgb(211 68 243 / 14%) 3.0072%, rgb(109 68 243 / 0%) 60.706%),
    var(--surface-card);
}

:root[data-theme="dark"] {
  color-scheme: dark;

  --surface-background: #0a0a0a;
  --surface-container: #171717;
  --surface-card: #171717;
  --surface-popover: #262626;
  --surface-muted: #262626;
  --surface-accent: #404040;
  --surface-subtle: #404040;
  --surface-overlay: rgb(0 0 0 / 60%);
  --surface-overlay-muted: rgb(0 0 0 / 30%);
  --surface-inverse: #ffffff;

  --text-primary: #fafafa;
  --text-secondary: #d4d4d4;
  --text-tertiary: #a3a3a3;
  --text-overlay-primary: #ffffff;
  --text-overlay-secondary: rgb(255 255 255 / 60%);
  --text-inverse: #0a0a0a;

  --border-default: #404040;
  --border-default-muted: #171717;
  --border-default-accent: #525252;
  --border-overlay: rgb(255 255 255 / 10%);
  --border-overlay-muted: rgb(255 255 255 / 5%);
  --feedback-info-surface: #0d2847;
  --feedback-info-surface-subtle: #111927;
  --feedback-info-border-subtle: #004074;
  --feedback-info-primary: #0090ff;

  --component-focus-ring: #737373;
  --component-ghost: rgb(0 0 0 / 0%);
  --component-translucent-subtle: rgb(255 255 255 / 5%);
  --component-translucent-medium: rgb(255 255 255 / 10%);
  --component-translucent-strong: rgb(255 255 255 / 15%);
  --component-translucent-inverse: rgb(0 0 0 / 20%);
  --component-ring-background: #0a0a0a;

  --brand-default-primary: #e5e5e5;
  --brand-default-on-primary: #171717;
  --brand-default-secondary: #262626;
  --brand-default-on-secondary: #fafafa;
  --brand-default-primary-hover: #d4d4d4;
  --brand-default-secondary-hover: #171717;

  --brand-pixpix-primary: #4de0ff;
  --brand-pixpix-on-primary: #ffffff;
  --brand-pixpix-surface: #e6f4fe;
  --brand-pixpix-surface-subtle: #f4faff;
  --brand-pixpix-border: #acd8fc;
  --brand-pixpix-border-subtle: #c2e5ff;
  --brand-pixpix-text: #0588f0;
  --brand-pixpix-text-muted: #5eb1ef;

  --home-hero-gradient:
    linear-gradient(185.354deg, rgb(77 224 255 / 12%) 5.425%, rgb(88 137 255 / 0%) 80.349%),
    linear-gradient(166.682deg, rgb(211 68 243 / 16%) 3.007%, rgb(109 68 243 / 0%) 60.706%);
  --home-featured-surface: rgb(91 98 160 / 42%);
  --home-footer-background:
    linear-gradient(180deg, rgb(2 136 225 / 0%) 0%, rgb(2 136 225 / 64%) 100%),
    #000000;
  --tool-media-placeholder: var(--component-translucent-subtle);
  --tool-step-card-surface:
    linear-gradient(190.7deg, rgb(24 202 222 / 12%) 5.4245%, rgb(88 137 255 / 0%) 80.349%),
    linear-gradient(154.486deg, rgb(211 68 243 / 14%) 3.0072%, rgb(109 68 243 / 0%) 60.706%),
    var(--surface-card);
}

:root {
  /* Spacing */
  --space-5xs: 2px;
  --space-4xs: 4px;
  --space-3xs: 6px;
  --space-2xs: 8px;
  --space-xs: 10px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 20px;
  --space-xl: 24px;
  --space-2xl: 32px;
  --space-3xl: 40px;
  --space-4xl: 48px;
  --space-5xl: 64px;
  --space-6xl: 80px;
  --space-7xl: 96px;
  --space-8xl: 112px;
  --space-9xl: 128px;
  --space-10xl: 144px;

  /* Radius */
  --radius-none: 0;
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 10px;
  --radius-2xl: 12px;
  --radius-3xl: 16px;
  --radius-4xl: 24px;
  --radius-5xl: 32px;
  --radius-full: 9999px;

  /* Border width */
  --border-width-hairline: 0.5px;
  --border-width-default: 1px;
  --border-width-medium: 2px;

  /* Typography */
  --font-sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-display: "Bricolage Grotesque", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;
  --font-pricing: "Bebas Neue", "Arial Narrow", sans-serif;
  --font-mono: "Geist Mono", "SFMono-Regular", Consolas, monospace;

  --font-size-mini: 11px;
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-base: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-size-2xl: 24px;
  --font-size-3xl: 30px;
  --font-size-4xl: 36px;
  --font-size-5xl: 48px;
  --font-size-6xl: 60px;
  --font-size-7xl: 72px;
  --font-size-8xl: 96px;
  --font-size-9xl: 128px;

  --line-height-2: 12px;
  --line-height-3: 14px;
  --line-height-4: 16px;
  --line-height-5: 20px;
  --line-height-6: 24px;
  --line-height-7: 28px;
  --line-height-8: 32px;
  --line-height-9: 36px;
  --line-height-10: 40px;
  --line-height-12: 48px;
  --line-height-15: 60px;
  --line-height-18: 72px;
  --line-height-24: 96px;
  --line-height-32: 128px;

  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  --letter-spacing-tighter: -0.8px;
  --letter-spacing-tight: -0.4px;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.4px;
  --letter-spacing-wider: 0.8px;
  --letter-spacing-widest: 1.6px;

  /* Effects */
  --shadow-xs: 0 1px 2px rgb(0 0 0 / 10%);
  --shadow-sm: 0 1px 3px rgb(0 0 0 / 10%), 0 1px 2px -1px rgb(0 0 0 / 10%);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -2px rgb(0 0 0 / 10%);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 8px 10px -6px rgb(0 0 0 / 10%);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 10%);
  --focus-ring: 0 0 0 3px var(--component-focus-ring);

  /* Layout */
  --page-max: 1760px;
  --footer-max: 1200px;
  --header-height: 60px;
}
