/* ===================================
   variables.css - Design Tokens
   =================================== */

:root {
  /* === Brand Colors === */
  --accent:        #0066FF;
  --accent-light:  #3388FF;
  --accent-dark:   #0044CC;
  --accent-glow:   rgba(0, 102, 255, 0.35);

  /* === Light Mode === */
  --bg-primary:    #F4F6FA;
  --bg-secondary:  #FFFFFF;
  --bg-tertiary:   #E8ECF4;
  --text-primary:  #0A0E1A;
  --text-secondary:#3A4060;
  --text-muted:    #7A8099;
  --border:        rgba(10, 14, 26, 0.1);

  /* === Glass === */
  --glass-bg:      rgba(255, 255, 255, 0.65);
  --glass-border:  rgba(255, 255, 255, 0.8);
  --glass-blur:    blur(20px) saturate(180%);
  --glass-shadow:  0 8px 32px rgba(0, 0, 0, 0.08);

  /* === Typography === */
  --font-display:  'Syne', 'Hiragino Kaku Gothic ProN', sans-serif;
  --font-body:     'DM Sans', 'Hiragino Kaku Gothic ProN', sans-serif;
  --font-mono:     'JetBrains Mono', monospace;

  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  2rem;
  --text-4xl:  2.75rem;
  --text-5xl:  3.75rem;
  --text-6xl:  5rem;

  /* === Spacing === */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* === Layout === */
  --container-sm:  640px;
  --container-md:  768px;
  --container-lg:  1024px;
  --container-xl:  1280px;
  --container-2xl: 1440px;

  /* === Radii === */
  --radius-sm:  6px;
  --radius-md:  12px;
  --radius-lg:  20px;
  --radius-xl:  32px;
  --radius-full: 9999px;

  /* === Transitions === */
  --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:   cubic-bezier(0.7, 0, 0.84, 0);
  --ease-io:   cubic-bezier(0.87, 0, 0.13, 1);
  --dur-fast:  180ms;
  --dur-base:  320ms;
  --dur-slow:  600ms;
  --dur-xslow: 1000ms;

  /* === Z-Index === */
  --z-below:   -1;
  --z-base:     0;
  --z-above:    10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-mobile-nav: 190;   /* ヘッダー(200)より低く、常にヘッダーの下 */
  --z-modal:    300;
  --z-toast:    400;
  --z-cursor:   500;

  /* === Header height（mobile-nav の top 基準点） === */
  --header-h: 80px;      /* header padding-block × 2 + コンテンツ高 */
  --header-h-scrolled: 56px;

  /* === Shadows === */
  --shadow-sm:  0 2px 8px rgba(0, 0, 0, 0.06);
  --shadow-md:  0 8px 24px rgba(0, 0, 0, 0.1);
  --shadow-lg:  0 20px 48px rgba(0, 0, 0, 0.14);
  --shadow-xl:  0 32px 80px rgba(0, 0, 0, 0.18);
  --shadow-accent: 0 8px 32px var(--accent-glow);
}

/* Dark Mode */
[data-theme="dark"] {
  --bg-primary:    #080C18;
  --bg-secondary:  #0E1221;
  --bg-tertiary:   #151929;
  --text-primary:  #EDF0FA;
  --text-secondary:#9BA3BF;
  --text-muted:    #5A6280;
  --border:        rgba(237, 240, 250, 0.08);

  --glass-bg:      rgba(14, 18, 33, 0.7);
  --glass-border:  rgba(255, 255, 255, 0.08);
  --glass-shadow:  0 8px 32px rgba(0, 0, 0, 0.4);
}
