/* =======================================================================
   Xóa Mù AI — Design Tokens
   Colors + Typography + Spacing + Radii + Shadows
   ======================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root {
  /* ---------- BRAND COLORS ---------- */
  /* Energy yellow — primary CTA, highlights, energy */
  --xm-yellow:        #FFB800;
  --xm-yellow-600:    #E6A300;
  --xm-yellow-700:    #B88200;
  --xm-yellow-100:    #FFF3CC;   /* tint background */

  /* Hot orange — accent, hover state on yellow, urgency */
  --xm-orange:        #FF6B00;
  --xm-orange-600:    #E55F00;
  --xm-orange-700:    #B84B00;
  --xm-orange-100:    #FFE2CC;

  /* Pure ink — primary surface for the bold/punk feel */
  --xm-ink:           #000000;
  --xm-ink-soft:      #111111;
  --xm-ink-700:       #2A2A2A;

  /* Neutrals */
  --xm-white:         #FFFFFF;
  --xm-bone:          #FAFAF7;       /* warm white alt */
  --xm-gray-50:       #F5F5F5;       /* section background */
  --xm-gray-100:      #ECECEC;
  --xm-gray-200:      #D9D9D9;
  --xm-gray-400:      #9A9A9A;
  --xm-gray-600:      #5A5A5A;
  --xm-gray-800:      #2A2A2A;

  /* Semantic */
  --xm-success:       #16A34A;
  --xm-success-100:   #D1FADF;
  --xm-danger:        #DC2626;
  --xm-info:          #2563EB;

  /* ---------- SEMANTIC COLOR TOKENS ---------- */
  --bg:               var(--xm-white);
  --bg-section:       var(--xm-gray-50);
  --bg-inverted:      var(--xm-ink);
  --bg-accent:        var(--xm-yellow);

  --fg-1:             var(--xm-ink);          /* headings, primary text */
  --fg-2:             var(--xm-gray-800);     /* body */
  --fg-3:             var(--xm-gray-600);     /* secondary / meta */
  --fg-on-yellow:     var(--xm-ink);
  --fg-on-ink:        var(--xm-white);

  --border-1:         var(--xm-ink);          /* hard 2px on cards */
  --border-soft:      var(--xm-gray-200);

  /* ---------- TYPOGRAPHY ---------- */
  --font-display:     'Be Vietnam Pro', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-body:        'Be Vietnam Pro', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono:        'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;

  /* Type scale — mobile-first, large + bold */
  --fs-display:       clamp(40px, 9vw, 88px);   /* hero */
  --fs-h1:            clamp(32px, 6vw, 56px);
  --fs-h2:            clamp(26px, 4.5vw, 40px);
  --fs-h3:            clamp(20px, 3vw, 28px);
  --fs-lead:          clamp(18px, 2.4vw, 22px); /* lead paragraph */
  --fs-body:          17px;                      /* mobile body */
  --fs-body-lg:       18px;
  --fs-small:         14px;
  --fs-overline:      12px;

  --lh-tight:         1.05;
  --lh-snug:          1.18;
  --lh-base:          1.55;

  --ls-tight:         -0.02em;
  --ls-snug:          -0.01em;
  --ls-overline:      0.12em;

  /* ---------- SPACING ---------- */
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  20px;
  --space-6:  24px;
  --space-8:  32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;

  /* ---------- RADII ---------- */
  --r-none:   0;
  --r-sm:     6px;
  --r-md:     12px;
  --r-lg:     20px;
  --r-xl:     28px;
  --r-pill:   999px;

  /* ---------- SHADOWS ---------- */
  /* Hard "neo-brutal" drop shadow — signature element */
  --shadow-hard-sm:   3px 3px 0 0 var(--xm-ink);
  --shadow-hard:      6px 6px 0 0 var(--xm-ink);
  --shadow-hard-lg:   10px 10px 0 0 var(--xm-ink);

  /* Soft elevation — used sparingly */
  --shadow-soft-sm:   0 2px 8px rgba(0,0,0,0.06);
  --shadow-soft:      0 8px 24px rgba(0,0,0,0.08);
  --shadow-soft-lg:   0 24px 48px rgba(0,0,0,0.12);

  /* ---------- BORDERS ---------- */
  --bw-hairline: 1px;
  --bw-card:     2px;
  --bw-thick:    3px;

  /* ---------- MOTION ---------- */
  --ease-out-snap: cubic-bezier(0.2, 0.9, 0.2, 1);
  --ease-out-soft: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur-fast:      120ms;
  --dur-base:      220ms;
  --dur-slow:      420ms;
}

/* =======================================================================
   BASE TYPOGRAPHY
   ======================================================================= */

html { -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--fg-1);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Heading reset */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--fg-1);
  margin: 0;
  font-weight: 800;
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  text-wrap: balance;
}

.t-display {
  font-size: var(--fs-display);
  font-weight: 900;
  line-height: 0.98;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

h1, .t-h1 {
  font-size: var(--fs-h1);
  font-weight: 800;
}

h2, .t-h2 {
  font-size: var(--fs-h2);
  font-weight: 800;
}

h3, .t-h3 {
  font-size: var(--fs-h3);
  font-weight: 700;
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-snug);
}

p, .t-body {
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--fg-2);
  margin: 0;
}

.t-body-lg, .t-lead {
  font-size: var(--fs-lead);
  line-height: 1.5;
  color: var(--fg-2);
}

.t-small { font-size: var(--fs-small); color: var(--fg-3); }

.t-overline {
  font-size: var(--fs-overline);
  text-transform: uppercase;
  letter-spacing: var(--ls-overline);
  font-weight: 700;
  color: var(--fg-3);
}

code, kbd, .t-mono {
  font-family: var(--font-mono);
  font-size: 0.92em;
}

/* Selection */
::selection {
  background: var(--xm-yellow);
  color: var(--xm-ink);
}
