:root {
  --white: #fff;
  --black: #000;
  --white-rgb: 255, 255, 255;
  --black-rgb: 0, 0, 0;

  --brand-red-50: #fff7fb;
  --brand-red-100: #ffedf6;
  --brand-red-200: #ffd4e7;
  --brand-red-300: #ffb8d3;
  --brand-red-400: #ff85a3;
  --brand-red-500: #ff4f65;
  --brand-red-600: #e64054;
  --brand-red-700: #bf2c3b;
  --brand-red-800: #991d29;
  --brand-red-900: #731018;
  --brand-red-950: #4a070c;

  --slate-50: #f8fafc;
  --slate-100: #f1f5f9;
  --slate-200: #e2e8f0;
  --slate-300: #cbd5e1;
  --slate-400: #94a3b8;
  --slate-500: #64748b;
  --slate-600: #475569;
  --slate-700: #334155;
  --slate-800: #1e293b;
  --slate-900: #0f172a;

  --grey-50: #f9fafb;
  --grey-100: #f3f4f6;
  --grey-200: #e5e7eb;
  --grey-300: #d1d5db;
  --grey-400: #9ca3af;
  --grey-500: #6b7280;
  --grey-600: #4b5563;
  --grey-700: #374151;
  --grey-800: #1f2937;
  --grey-900: #111827;
  --grey-950: #030712;

  --zinc-50: #fafafa;
  --zinc-100: #f4f4f5;
  --zinc-200: #e4e4e7;
  --zinc-300: #d4d4d8;
  --zinc-400: #a1a1aa;
  --zinc-500: #71717a;
  --zinc-600: #52525b;
  --zinc-700: #3f3f46;
  --zinc-800: #27272a;
  --zinc-900: #18181b;
  --zinc-950: #09090b;

  --stone-50: #fafaf9;
  --stone-100: #f5f5f4;
  --stone-200: #e7e5e4;
  --stone-300: #d6d3d1;
  --stone-400: #a8a29e;
  --stone-500: #78716c;
  --stone-600: #57534e;
  --stone-700: #44403c;
  --stone-800: #292524;
  --stone-900: #1c1917;
  --stone-950: #0c0a09;

  --red-50: #fef2f2;
  --red-100: #fee2e2;
  --red-200: #fecaca;
  --red-300: #fca5a5;
  --red-400: #f87171;
  --red-500: #ef4444;
  --red-600: #dc2626;
  --red-700: #b91c1c;
  --red-800: #991b1b;
  --red-900: #7f1d1d;

  --orange-50: #fff7ed;
  --orange-100: #ffedd5;
  --orange-200: #fed7aa;
  --orange-300: #fdba74;
  --orange-400: #fb923c;
  --orange-500: #f97316;
  --orange-600: #ea580c;
  --orange-700: #c2410c;
  --orange-800: #9a3412;
  --orange-900: #7c2d12;

  --amber-50: #fffbeb;
  --amber-100: #fef3c7;
  --amber-200: #fde68a;
  --amber-300: #fcd34d;
  --amber-400: #fbbf24;
  --amber-500: #f59e0b;
  --amber-600: #d97706;
  --amber-700: #b45309;
  --amber-800: #92400e;
  --amber-900: #78350f;

  --yellow-50: #fefce8;
  --yellow-100: #fef9c3;
  --yellow-200: #fef08a;
  --yellow-300: #fde047;
  --yellow-400: #facc15;
  --yellow-500: #eab308;
  --yellow-600: #ca8a04;
  --yellow-700: #a16207;
  --yellow-800: #854d0e;
  --yellow-900: #713f12;

  --green-50: #f0fdf4;
  --green-100: #dcfce7;
  --green-200: #bbf7d0;
  --green-300: #86efac;
  --green-400: #4ade80;
  --green-500: #22c55e;
  --green-600: #16a34a;
  --green-700: #15803d;
  --green-800: #166534;
  --green-900: #14532d;

  --emerald-50: #ecfdf5;
  --emerald-100: #d1fae5;
  --emerald-200: #a7f3d0;
  --emerald-300: #6ee7b7;
  --emerald-400: #34d399;
  --emerald-500: #10b981;
  --emerald-600: #059669;
  --emerald-700: #047857;
  --emerald-800: #065f46;
  --emerald-900: #064e3b;
  --emerald-950: #022c22;

  --blue-50: #eff6ff;
  --blue-100: #dbeafe;
  --blue-200: #bfdbfe;
  --blue-300: #93c5fd;
  --blue-400: #60a5fa;
  --blue-500: #3b82f6;
  --blue-600: #2563eb;
  --blue-700: #1d4ed8;
  --blue-800: #1e40af;
  --blue-900: #1e3a8a;

  --indigo-50: #eef2ff;
  --indigo-100: #e0e7ff;
  --indigo-200: #c7d2fe;
  --indigo-300: #a5b4fc;
  --indigo-400: #818cf8;
  --indigo-500: #6366f1;
  --indigo-600: #4f46e5;
  --indigo-700: #4338ca;
  --indigo-800: #3730a3;
  --indigo-900: #312e81;
  --indigo-950: #1e1b4b;

  --violet-50: #f5f3ff;
  --violet-100: #ede9fe;
  --violet-200: #ddd6fe;
  --violet-300: #c4b5fd;
  --violet-400: #a78bfa;
  --violet-500: #8b5cf6;
  --violet-600: #7c3aed;
  --violet-700: #6d28d9;
  --violet-800: #5b21b6;
  --violet-900: #4c1d95;
  --violet-950: #2e1065;

  --purple-50: #faf5ff;
  --purple-100: #f3e8ff;
  --purple-200: #e9d5ff;
  --purple-300: #d8b4fe;
  --purple-400: #c084fc;
  --purple-500: #a855f7;
  --purple-600: #9333ea;
  --purple-700: #7e22ce;
  --purple-800: #6b21a8;
  --purple-900: #581c87;

  --pink-50: #fdf2f8;
  --pink-100: #fce7f3;
  --pink-200: #fbcfe8;
  --pink-300: #f9a8d4;
  --pink-400: #f472b6;
  --pink-500: #ec4899;
  --pink-600: #db2777;
  --pink-700: #be185d;
  --pink-800: #9d174d;
  --pink-900: #831843;

  --sky-50: #f0f9ff;
  --sky-100: #e0f2fe;
  --sky-200: #bae6fd;
  --sky-300: #7dd3fc;
  --sky-400: #38bdf8;
  --sky-500: #0ea5e9;
  --sky-600: #0284c7;
  --sky-700: #0369a1;
  --sky-800: #075985;
  --sky-900: #0c4a6e;

  /* Font size */
  /* ---------------------------------------------------------------------------------------------------------------- */
  /* 9px */
  --font-size-3xs: 0.5625rem;

  /* 10px */
  --font-size-2xs: 0.625rem;

  /* 12px */
  --font-size-xs: 0.75rem;

  /* 14px */
  --font-size-sm: 0.875rem;

  /* 16px */
  --font-size-base: 1rem;

  /* 18px */
  --font-size-lg: 1.125rem;

  /* 20px */
  --font-size-xl: 1.25rem;

  /* 24px */
  --font-size-2xl: 1.5rem;

  /* 30px */
  --font-size-3xl: 1.875rem;

  /* 36px */
  --font-size-4xl: 2.25rem;

  /* 48px */
  --font-size-5xl: 3rem;

  /* 60px */
  --font-size-6xl: 3.75rem;

  /* 72px */
  --font-size-7xl: 4.5rem;

  /* 96px */
  --font-size-8xl: 6rem;

  /* 128px */
  --font-size-9xl: 8rem;

  /* Line height */
  /* ---------------------------------------------------------------------------------------------------------------- */
  --line-height-none: 1;
  --line-height-tight: 1.25;
  --line-height-snug: 1.375;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;
  --line-height-loose: 2;

  /* Space */
  /* ---------------------------------------------------------------------------------------------------------------- */
  --space-negative-4: -16px;
  --space-negative-3: -12px;
  --space-negative-2: -8px;
  --space-negative-1: -4px;

  --space-1px: 1px;
  --space-2px: 2px;
  --space-3px: 3px;

  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 28px;
  --space-8: 32px;
  --space-9: 36px;
  --space-10: 40px;
  --space-11: 44px;
  --space-12: 48px;
  --space-14: 56px;
  --space-16: 64px;
  --space-18: 72px;
  --space-20: 80px;
  --space-24: 96px;
  --space-28: 112px;
  --space-32: 128px;
  --space-36: 144px;
  --space-40: 160px;
  --space-44: 176px;
  --space-48: 192px;
  --space-52: 208px;
  --space-56: 224px;
  --space-60: 240px;
  --space-64: 256px;
  --space-72: 288px;
  --space-80: 320px;
  --space-96: 384px;

  /* Border radius */
  /* ---------------------------------------------------------------------------------------------------------------- */
  --border-radius-1: 2px;
  --border-radius-2: 4px;
  --border-radius-3: 6px;
  --border-radius-4: 8px;
  --border-radius-5: 12px;
  --border-radius-6: 16px;
  --border-radius-7: 24px;
  --border-radius-8: 50px;
  --border-radius-full: 50%;

  /* Shadow */
  /* ---------------------------------------------------------------------------------------------------------------- */
  --box-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --box-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --box-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --box-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --box-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);

  /* Max width */
  /* ---------------------------------------------------------------------------------------------------------------- */
  /* 320px */
  --max-width-xs: 20rem;

  /* 384px */
  --max-width-sm: 24rem;

  /* 448px */
  --max-width-md: 28rem;

  /* 512px */
  --max-width-lg: 32rem;

  /* 576px */
  --max-width-xl: 36rem;

  /* 672px */
  --max-width-2xl: 42rem;

  /* 768px */
  --max-width-3xl: 48rem;

  /* 896px */
  --max-width-4xl: 56rem;

  /* 1024px */
  --max-width-5xl: 64rem;

  /* 1152px */
  --max-width-6xl: 72rem;

  /* 1280px */
  --max-width-7xl: 80rem;

  --z-0: 0;
  --z-10: 10;
  --z-20: 20;
  --z-30: 30;
  --z-40: 40;
  --z-50: 50;
  --z-debug: 9999;

  /* font stacks */
  --font-family-sans: 'Noto Sans JP', sans-serif;
  --font-family-mono: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
}

body {
  font-family: var(--font-family-sans);
  font-size: var(--font-size-base);
  margin: 0;
  padding: 0;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  height: 100%;
  background: var(--slate-50);
  overflow: hidden scroll;
}

body.modal-open {
  overflow: hidden;
}

a {
  color: var(--slate-600);
  text-decoration: underline;
  border-radius: var(--border-radius-1);
}

a:focus-visible {
  outline: 2px solid var(--slate-500);
  outline-offset: 1px;
  text-decoration: none;
}

a:hover {
  color: var(--slate-900);
  text-decoration: underline;
}
