/* Theme: Aether (aether-future) */
/* A bold, corporate dark-mode workspace characterized by razor-sharp editorial typography, high-contrast cyan accents, and dense, highly scannable layouts. */

@tailwind base;
@tailwind components;
@tailwind utilities;

@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");

@layer base {
  :root {
    /* Custom slate-tinted neutral ramp derived from measured workspace gray. */
    --palette-neutral-100: #F9FAFB;
    --palette-neutral-150: #F8F9FA;
    --palette-neutral-200: #F2F4F5;
    --palette-neutral-250: #E9EDEF;
    --palette-neutral-300: #DCE2E5;
    --palette-neutral-350: #CCD4D8;
    --palette-neutral-400: #B8C3C8;
    --palette-neutral-450: #A1AFB6;
    --palette-neutral-500: #87979F;
    --palette-neutral-550: #687C85;
    --palette-neutral-600: #52626A;
    --palette-neutral-650: #3F4C53;
    --palette-neutral-700: #303A40;
    --palette-neutral-750: #242D31;
    --palette-neutral-800: #1C2326;
    --palette-neutral-850: #171D1F;
    --palette-neutral-900: #151B1D;
    /* Vibrant electric cyan primary brand anchor. */
    --palette-brand-100: #EFFDFF;
    --palette-brand-150: #EBFCFF;
    --palette-brand-200: #DDFAFE;
    --palette-brand-250: #C6F7FE;
    --palette-brand-300: #A5F2FD;
    --palette-brand-350: #7CECFC;
    --palette-brand-400: #4AE5FA;
    --palette-brand-450: #0EDBF8;
    --palette-brand-500: #06A3B9;
    --palette-brand-550: #048496;
    --palette-brand-600: #036977;
    --palette-brand-650: #02525D;
    --palette-brand-700: #023F48;
    --palette-brand-750: #013137;
    --palette-brand-800: #01262B;
    --palette-brand-850: #012024;
    --palette-brand-900: #011E22;
    --palette-danger-100: #FEF9F9;
    --palette-danger-150: #FEF7F7;
    --palette-danger-200: #FDF1F1;
    --palette-danger-250: #FBE6E6;
    --palette-danger-300: #F9D7D7;
    --palette-danger-350: #F5C3C3;
    --palette-danger-400: #F1ACAC;
    --palette-danger-450: #EC9191;
    --palette-danger-500: #E57171;
    --palette-danger-550: #DD3838;
    --palette-danger-600: #BD1F1F;
    --palette-danger-650: #941818;
    --palette-danger-700: #731212;
    --palette-danger-750: #590D0D;
    --palette-danger-800: #460A0A;
    --palette-danger-850: #3B0909;
    --palette-danger-900: #370808;
    --palette-warning-100: #FCFAF7;
    --palette-warning-150: #FBF9F5;
    --palette-warning-200: #F8F4ED;
    --palette-warning-250: #F3ECDF;
    --palette-warning-300: #EBE0CC;
    --palette-warning-350: #E1D1B4;
    --palette-warning-400: #D5BF96;
    --palette-warning-450: #C6A974;
    --palette-warning-500: #B58F4C;
    --palette-warning-550: #93743C;
    --palette-warning-600: #755C2F;
    --palette-warning-650: #5B4724;
    --palette-warning-700: #46371B;
    --palette-warning-750: #352915;
    --palette-warning-800: #292010;
    --palette-warning-850: #221A0D;
    --palette-warning-900: #1F190C;
    --palette-success-100: #F2FDF8;
    --palette-success-150: #EEFCF6;
    --palette-success-200: #E3FAF0;
    --palette-success-250: #CFF7E5;
    --palette-success-300: #B3F2D6;
    --palette-success-350: #90ECC3;
    --palette-success-400: #65E4AB;
    --palette-success-450: #32DB90;
    --palette-success-500: #1FA96B;
    --palette-success-550: #188957;
    --palette-success-600: #136D45;
    --palette-success-650: #0F5535;
    --palette-success-700: #0B4129;
    --palette-success-750: #08311F;
    --palette-success-800: #062618;
    --palette-success-850: #052014;
    --palette-success-900: #051E13;
    --palette-info-100: #F6FBFF;
    --palette-info-150: #F3F9FF;
    --palette-info-200: #EAF5FF;
    --palette-info-250: #DAEDFF;
    --palette-info-300: #C3E2FF;
    --palette-info-350: #A7D4FF;
    --palette-info-400: #85C3FF;
    --palette-info-450: #5DAFFF;
    --palette-info-500: #2F97FF;
    --palette-info-550: #007AF5;
    --palette-info-600: #0061C3;
    --palette-info-650: #004B98;
    --palette-info-700: #003A75;
    --palette-info-750: #002C59;
    --palette-info-800: #002245;
    --palette-info-850: #001C3A;
    --palette-info-900: #001A36;
    --palette-accent-100: #FFFAF0;
    --palette-accent-150: #FFF9EC;
    --palette-accent-200: #FFF5DE;
    --palette-accent-250: #FFEDC7;
    --palette-accent-300: #FFE3A7;
    --palette-accent-350: #FFD67D;
    --palette-accent-400: #FEC64B;
    --palette-accent-450: #FDB310;
    --palette-accent-500: #C68802;
    --palette-accent-550: #A06E01;
    --palette-accent-600: #7F5700;
    --palette-accent-650: #634400;
    --palette-accent-700: #4C3400;
    --palette-accent-750: #3A2800;
    --palette-accent-800: #2D1F00;
    --palette-accent-850: #251900;
    --palette-accent-900: #231800;
  }

  :root {
    --radius: 1rem;
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
    --background: var(--palette-neutral-100);
    --foreground: var(--palette-neutral-900);
    --card: var(--palette-neutral-150);
    --card-foreground: var(--palette-neutral-900);
    --popover: var(--palette-neutral-100);
    --popover-foreground: var(--palette-neutral-900);
    --primary: var(--palette-brand-600);
    --primary-foreground: var(--palette-neutral-100);
    --secondary: var(--palette-neutral-200);
    --secondary-foreground: var(--palette-neutral-900);
    --muted: var(--palette-neutral-150);
    --muted-foreground: var(--palette-neutral-700);
    --accent: var(--palette-accent-200);
    --accent-foreground: var(--palette-neutral-900);
    --destructive: var(--palette-danger-600);
    --destructive-foreground: var(--palette-neutral-100);
    --border: var(--palette-neutral-300);
    --input: var(--palette-neutral-300);
    --ring: var(--palette-brand-500);
    --chart-1: var(--palette-brand-500);
    --chart-2: var(--palette-accent-500);
    --chart-3: var(--palette-success-500);
    --chart-4: var(--palette-warning-500);
    --chart-5: var(--palette-danger-500);
    --sidebar: var(--palette-neutral-150);
    --sidebar-foreground: var(--palette-neutral-800);
    --sidebar-primary: var(--palette-brand-600);
    --sidebar-primary-foreground: var(--palette-neutral-100);
    --sidebar-accent: var(--palette-neutral-200);
    --sidebar-accent-foreground: var(--palette-neutral-900);
    --sidebar-border: var(--palette-neutral-250);
    --sidebar-ring: var(--palette-brand-500);
    --font-sans: "Source Serif 4", system-ui, sans-serif;
    --font-display: "Fraunces", system-ui, sans-serif;
    --font-mono: "DM Mono", ui-monospace, monospace;
    --text-hero: 800 4.125rem/4.5rem var(--font-display);
    --text-hero-tracking: -0.03em;
    --text-title: 700 2.375rem/2.75rem var(--font-display);
    --text-title-tracking: -0.02em;
    --text-heading: 700 1.1875rem/1.5rem var(--font-sans);
    --text-heading-tracking: -0.01em;
    --text-body: 450 1rem/1.4375rem var(--font-sans);
    --text-caption: 400 0.8125rem/0.8125rem var(--font-mono);
    --text-caption-tracking: 0.03em;
    --text-caption-transform: uppercase;
    --text-label: 700 1rem/1.25rem var(--font-sans);
    --text-overline: 700 0.8125rem/0.8125rem var(--font-mono);
    --text-overline-tracking: 0.05em;
    --text-overline-transform: uppercase;
    --shadow-xs: 0 1px 2px rgba(0,0,0,0.5);
    --shadow-sm: inset 0 -1px 0 0 rgb(95, 111, 119);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.3);
    --shadow-lg: 0 8px 24px rgba(0,0,0,0.4);
    --shadow-xl: 0 16px 40px rgba(0,0,0,0.5);
    --gradient-brand_wash: linear-gradient(135deg, #06A3B9 0%, #66E8FA 100%);
  }

  .dark {
    --background: #000000;
    --foreground: #E4EDF1;
    --card: #0A0B0B;
    --card-foreground: var(--palette-neutral-100);
    --popover: var(--palette-neutral-850);
    --popover-foreground: var(--palette-neutral-100);
    --primary: var(--palette-brand-400);
    --primary-foreground: var(--palette-neutral-900);
    --secondary: var(--palette-neutral-800);
    --secondary-foreground: var(--palette-neutral-100);
    --muted: var(--palette-neutral-800);
    --muted-foreground: var(--palette-neutral-400);
    --accent: var(--palette-accent-800);
    --accent-foreground: var(--palette-accent-100);
    --destructive: var(--palette-danger-500);
    --destructive-foreground: var(--palette-neutral-900);
    --border: var(--palette-neutral-700);
    --input: var(--palette-neutral-700);
    --ring: var(--palette-brand-400);
    --chart-1: var(--palette-brand-400);
    --chart-2: var(--palette-accent-400);
    --chart-3: var(--palette-success-400);
    --chart-4: var(--palette-warning-400);
    --chart-5: var(--palette-danger-400);
    --sidebar: var(--palette-neutral-900);
    --sidebar-foreground: var(--palette-neutral-100);
    --sidebar-primary: var(--palette-brand-400);
    --sidebar-primary-foreground: var(--palette-neutral-900);
    --sidebar-accent: var(--palette-neutral-800);
    --sidebar-accent-foreground: var(--palette-neutral-100);
    --sidebar-border: var(--palette-neutral-800);
    --sidebar-ring: var(--palette-brand-400);
  }
}

@layer base {
  * { border-color: var(--border); }
  body { background-color: var(--background); color: var(--foreground); font-family: var(--font-sans); }
}

@layer components {
  .text-hero {
    font: var(--text-hero);
    letter-spacing: var(--text-hero-tracking);
  }
  .text-title {
    font: var(--text-title);
    letter-spacing: var(--text-title-tracking);
  }
  .text-heading {
    font: var(--text-heading);
    letter-spacing: var(--text-heading-tracking);
  }
  .text-body {
    font: var(--text-body);
  }
  .text-caption {
    font: var(--text-caption);
    letter-spacing: var(--text-caption-tracking);
    text-transform: var(--text-caption-transform);
  }
  .text-label {
    font: var(--text-label);
  }
  .text-overline {
    font: var(--text-overline);
    letter-spacing: var(--text-overline-tracking);
    text-transform: var(--text-overline-transform);
  }
}