

:root {
  
  --kd-blue:      #2E75B6;  
  --kd-blue-dk:   #255F94;  
  --kd-navy:      #1E3354;  
  --kd-navy-dk:   #16263F;  
  --kd-coral:     #E25942;  
  --kd-coral-lt:  #FCE4DE;  
  --kd-blue-lt:   #DEEBF7;  

  --text-body:    #374151;  
  --text-sub:     #6B7280;  
  --text-muted:   #9CA3AF;  
  --text-invert:  #FFFFFF;
  --text-title:   #1E3354;  

  --surface:      #FFFFFF;  
  --surface-soft: #F4F7FA;  
  --surface-tint: #F7F9FB;  
  --surface-tint2:#F3F4F6;
  --surface-tint3:#EEF1F4;

  --line-card:    #C4CAD3;  
  --line-divider: #E5E7EB;  

  --kd-teal:      #14B8A6;
  --kd-teal-dk:   #0F766E;  
  --kd-teal-lt:   #E5F2F2;  
  --kd-teal-lt2:  #CCF2EC;  

  --data-amber:   #F59E0B;  
  --data-rose:    #F43F5E;  
  --data-blue:    #3B82F6;  
}

:root {
  --font-sans: "Paperlogy", "Noto Sans KR", -apple-system,
               BlinkMacSystemFont, "Segoe UI", sans-serif;

  --fw-light:     300;  
  --fw-regular:   400;  
  --fw-medium:    500;  
  --fw-semibold:  600;  
  --fw-bold:      700;  
  --fw-extrabold: 800;  
  --fw-black:     900;  

  --fs-hero:      3.5rem;    
  --fs-h1:        2.75rem;   
  --fs-bignum:    3rem;      
  --fs-h2:        1.875rem;  
  --fs-h3:        1.5rem;    
  --fs-h4:        1.25rem;   
  --fs-lead:      1.125rem;  
  --fs-body:      1rem;      
  --fs-cell:      0.9375rem; 
  --fs-caption:   0.875rem;  
  --fs-micro:     0.75rem;   

  --lh-body:  1.7;  
  --lh-title: 1.25; 
  --lh-hero:  1.1; 

  --ls-normal: 0; 
  --ls-caps:   0.08em;  
}

@media (max-width: 640px) {
  :root {
    --fs-hero:   2.25rem;  
    --fs-h1:     2rem;     
    --fs-bignum: 2.25rem;  
    --fs-h2:     1.5rem;   
    --fs-h3:     1.25rem;  
    --fs-h4:     1.125rem; 
    --fs-lead:   1rem;     
  }
}

:root {
  
  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3:  12px;
  --sp-4:  16px;
  --sp-6:  24px;
  --sp-8:  32px;
  --sp-12: 48px;
  --sp-16: 64px;
  --sp-24: 96px;
  --sp-32: 128px;

  --container-max: 1200px;
  --pad-desktop:   48px;
  --pad-mobile:    20px;
  --section-y:     76px;  
  --section-y-mobile: 56px;

  --radius: 0;          
  --radius-round: 50%;  

  --card-border:  1px solid var(--line-card);
  --card-shadow:  0 3px 8px rgba(30, 51, 84, 0.10);
  --card-shadow-hover: 0 6px 16px rgba(30, 51, 84, 0.14);
  --card-padding: 24px;
  --card-accent-h: 4px;

  --ease-out:   cubic-bezier(0.16, 1, 0.3, 1); 
  --t-fast:     150ms ease-out;  
  --t-scroll:   400ms cubic-bezier(0.16, 1, 0.3, 1); 

  --focus-ring: 2px solid var(--kd-blue); 
  --focus-offset: 2px; 
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: var(--fw-regular);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-body);
  background: var(--surface);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;

  word-break: keep-all;
  overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  color: var(--text-title);
  line-height: var(--lh-title);
  text-wrap: balance;
}

p { margin: 0; text-wrap: pretty; }

figcaption, li, th, td, dt, dd, .kd-eyebrow, label { text-wrap: balance; }

a {
  color: var(--kd-blue);
  text-decoration: none;
  transition: color var(--t-fast);
}
a:hover { color: var(--kd-blue-dk); text-decoration: underline; }
a:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.kd-eyebrow {
  font-size: var(--fs-micro);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--kd-blue);
}

.kd-wordmark {
  font-family: var(--font-sans);
  font-weight: var(--fw-black);
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--text-invert);
  line-height: 1;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
