:root {
  /* Brand Colors */
  --color-brand-pink: #FF0062;
  --color-bg-dark: #FFFFFF;
  /* Changed to White */

  /* Brand Grayscale */
  --color-grey-dark: #333333;
  --color-grey-light: #F0F0F0;
  --color-off-white: #F8F8F8;
  --color-white: #FFFFFF;

  /* Functional Colors - Light Mode (Default) */
  --color-bg-surface: #F4F4F4;
  /* Light Grey Surface */
  --color-bg-surface-hover: #EAEAEA;
  --color-border: #E0E0E0;
  --color-text-primary: #090A1A;
  /* Dark Text */
  --color-text-secondary: #666666;

  /* Typography */
  --font-family-jp: 'Noto Sans JP', sans-serif;
  --font-family-en: 'Outfit', sans-serif;
  --font-family-base: var(--font-family-jp), var(--font-family-en);
  /* Prioritize JP font */

  /* Spacing & Radius (Multiples of 6 as per guidelines) */
  --radius-xl: 24px;
  --radius-lg: 18px;
  --radius-md: 12px;
  --radius-sm: 6px;

  --spacing-1: 6px;
  --spacing-2: 12px;
  --spacing-3: 18px;
  --spacing-4: 24px;
  --spacing-5: 30px;
  --spacing-6: 36px;
  --spacing-8: 48px;

  /* Shadows & Effects */
  --shadow-card: 0 4px 20px rgba(0, 0, 0, 0.05);
  /* Softer shadow */
  --shadow-glow: 0 0 15px rgba(255, 0, 98, 0.15);
  --glass-bg: rgba(255, 255, 255, 0.8);
  --glass-border: rgba(0, 0, 0, 0.05);
  --backdrop-blur: blur(12px);
}

/* Dark Mode Theme */
[data-theme="dark"] {
  --color-bg-dark: #0a0c14;
  --color-grey-dark: #E0E0E0;
  --color-grey-light: #1a1c28;
  --color-off-white: #12141e;
  --color-white: #0e1018;

  /* Dark Mode Functional Colors */
  --color-bg-surface: #14161f;
  --color-bg-surface-hover: #1a1c28;
  --color-border: #2a2c3a;
  --color-text-primary: #F0F0F0;
  --color-text-secondary: #9090A0;

  /* Dark Mode Shadows & Effects */
  --shadow-card: 0 4px 20px rgba(0, 0, 0, 0.3);
  --shadow-glow: 0 0 20px rgba(255, 0, 98, 0.25);
  --glass-bg: rgba(10, 12, 20, 0.8);
  --glass-border: rgba(255, 255, 255, 0.05);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background-color: var(--color-bg-dark);
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-family-en);
  font-weight: 700;
  line-height: 1.2;
}

/* Utilities */
.text-pink {
  color: var(--color-brand-pink);
}

.text-grey {
  color: var(--color-text-secondary);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--spacing-4);
  height: 48px;
  border-radius: var(--radius-md);
  font-family: var(--font-family-en);
  font-weight: 500;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
  text-decoration: none;
  gap: var(--spacing-2);
}

.btn-primary {
  background-color: var(--color-brand-pink);
  color: var(--color-white);
}

.btn-primary:hover {
  opacity: 0.9;
}

.btn-secondary {
  background-color: var(--color-white);
  color: var(--color-text-primary);
  border: 1px solid var(--color-border);
}

.btn-secondary:hover {
  background-color: var(--color-bg-surface-hover);
  border-color: var(--color-grey-dark);
}