/* ============================================================
   NEW WORKOUTS — Design Tokens
   tokens.css | All CSS custom properties for the project.
   No hardcoded values anywhere else.
   ============================================================ */

/* Google Fonts Import */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Outfit:wght@300;400;500;600;700;800&display=swap');
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css');

/* ============================================================
   COLOR TOKENS
   ============================================================ */
:root {
  /* Backgrounds */
  --color-bg:             #fff5f5;
  --color-bg-dark:        #120808;

  /* Surfaces */
  --color-surface:        #ffffff;
  --color-surface-dark:   rgba(255, 255, 255, 0.06);

  /* Accent — Rosewood */
  --color-accent:         #c97070;
  --color-accent-light:   #d4887a;
  --color-accent-dark:    #a85555;

  /* Secondary — Blush */
  --color-secondary:      #f5c6c6;

  /* Text */
  --color-text:           #3a2a2a;
  --color-text-muted:     #7a5a5a;
  --color-text-light:     #ffffff;

  /* Borders */
  --color-border:         rgba(201, 112, 112, 0.15);
  --color-border-dark:    rgba(255, 255, 255, 0.08);

  /* ============================================================
     TYPOGRAPHY TOKENS
     ============================================================ */

  /* Font Families */
  --font-display: 'DM Serif Display', 'Pretendard Variable', 'Pretendard', serif;
  --font-heading: 'Outfit', 'Pretendard Variable', 'Pretendard', sans-serif;
  --font-body:    'Pretendard Variable', 'Pretendard', 'Outfit', sans-serif;
  --font-kr:      'Pretendard Variable', 'Pretendard', sans-serif;

  /* Type Scale */
  --text-xs:   0.75rem;   /* 12px */
  --text-sm:   0.875rem;  /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg:   1.125rem;  /* 18px */
  --text-xl:   1.25rem;   /* 20px */
  --text-2xl:  1.5rem;    /* 24px */
  --text-3xl:  1.875rem;  /* 30px */
  --text-4xl:  2.25rem;   /* 36px */
  --text-5xl:  3rem;      /* 48px */
  --text-6xl:  4.5rem;    /* 72px */

  /* Line Heights */
  --leading-tight:  1.1;
  --leading-snug:   1.35;
  --leading-normal: 1.6;

  /* Font Weights */
  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-extrabold: 800;

  /* ============================================================
     SPACING TOKENS
     Base unit: 4px
     ============================================================ */
  --space-1:  0.25rem;   /* 4px  */
  --space-2:  0.5rem;    /* 8px  */
  --space-3:  0.75rem;   /* 12px */
  --space-4:  1rem;      /* 16px */
  --space-5:  1.25rem;   /* 20px */
  --space-6:  1.5rem;    /* 24px */
  --space-7:  1.75rem;   /* 28px */
  --space-8:  2rem;      /* 32px */
  --space-9:  2.25rem;   /* 36px */
  --space-10: 2.5rem;    /* 40px */
  --space-11: 2.75rem;   /* 44px */
  --space-12: 3rem;      /* 48px */
  --space-14: 3.5rem;    /* 56px */
  --space-16: 4rem;      /* 64px */
  --space-18: 4.5rem;    /* 72px */
  --space-20: 5rem;      /* 80px */
  --space-24: 6rem;      /* 96px */

  /* ============================================================
     BORDER RADIUS TOKENS
     ============================================================ */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   16px;
  --radius-full: 9999px;

  /* ============================================================
     SHADOW TOKENS
     ============================================================ */
  --shadow-sm:   0 1px 3px rgba(58, 42, 42, 0.08),
                 0 1px 2px rgba(58, 42, 42, 0.04);
  --shadow-md:   0 4px 12px rgba(58, 42, 42, 0.10),
                 0 2px 4px rgba(58, 42, 42, 0.06);
  --shadow-lg:   0 12px 32px rgba(58, 42, 42, 0.14),
                 0 4px 8px rgba(58, 42, 42, 0.08);
  --shadow-glow: 0 0 24px rgba(201, 112, 112, 0.35),
                 0 0 48px rgba(201, 112, 112, 0.15);

  /* ============================================================
     Z-INDEX TOKENS
     ============================================================ */
  --z-base:    1;
  --z-sticky:  10;
  --z-overlay: 20;
  --z-modal:   30;

  /* ============================================================
     MOTION TOKENS
     ============================================================ */
  --ease-out:       cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast:  150ms;
  --duration-base:  250ms;
  --duration-slow:  400ms;
}

/* ============================================================
   BASE RESETS
   ============================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  font-size: 16px;
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  color: var(--color-text);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-out);
}

a:hover {
  color: var(--color-accent);
}

button {
  font-family: var(--font-heading);
  cursor: pointer;
  border: none;
  background: none;
}

input,
textarea,
select {
  font-family: var(--font-body);
  font-size: var(--text-base);
}

ul,
ol {
  list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  line-height: var(--leading-tight);
  color: var(--color-text);
}

p {
  line-height: var(--leading-normal);
}

/* Focus visible for accessibility */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* Selection color */
::selection {
  background-color: var(--color-secondary);
  color: var(--color-text);
}
