/* =============================================================
   LUYM — Level Up Your Mind
   Design tokens: colors + typography
   Aligned with production landing page (LUYM Landing Page.html).
   ============================================================= */

/* Brand display + body + serif accent — production stack. */
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:wght@300;400;500;600;700&family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&display=swap');

/* Montserrat is retained as a system fallback (legacy preview cards). */
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; src: url('fonts/Montserrat-Regular.ttf') format('truetype'); font-display: swap; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; src: url('fonts/Montserrat-SemiBold.ttf') format('truetype'); font-display: swap; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 700; src: url('fonts/Montserrat-Bold.ttf') format('truetype'); font-display: swap; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 900; src: url('fonts/Montserrat-Black.ttf') format('truetype'); font-display: swap; }

:root {
  /* =====================================================
     BRAND PALETTE — production CI (landing page truth)
     ===================================================== */

  /* Gold — accents, CTAs, the "UP" arrow */
  --luym-gold:        #C9A84C;
  --luym-gold-light:  #E8C97A;
  --luym-gold-dark:   #9A7A2E;
  --luym-gold-soft:   #F1D98B;

  /* Purple — the brand workhorse (interactive, structure, surfaces) */
  --luym-purple:        #6B3FA0;   /* mid — interactive, hero glow */
  --luym-purple-deep:   #4A2570;   /* deep — button gradients, dark surfaces */
  --luym-purple-dark:   #2D1547;   /* darker — gradient ends */
  --luym-purple-light:  #9B6FD0;   /* light — accents on dark */
  --luym-purple-glow:   rgba(107,63,160,0.35);
  --luym-purple-tint:   #EBE4F8;   /* faint wash on light surfaces */

  /* Dark canvas system (event/landing dark theme) */
  --luym-black:  #0C0812;          /* primary dark canvas */
  --luym-dark:   #110D1A;          /* section alt */
  --luym-dark-2: #1A1326;          /* card surface */
  --luym-dark-3: #221930;          /* card hover */

  /* Light canvas system (cream theme — retained for editorial surfaces) */
  --luym-cream:       #FAF7ED;
  --luym-cream-deep:  #F1ECD9;
  --luym-paper:       #FFFFFF;

  /* Foreground tones */
  --luym-white:        #F8F5FF;
  --luym-white-muted:  #C4BAD4;
  --luym-silver:       #8C82A0;
  --luym-ink:          #20063C;     /* used on light surfaces */
  --luym-ink-2:        #4A3A66;
  --luym-ink-3:        #8A7BA3;

  /* Lines / dividers */
  --luym-line:    #E5DFCE;
  --luym-line-2:  rgba(32,6,60,0.10);
  --luym-line-dark: rgba(107,63,160,0.18);

  /* =====================================================
     SEMANTIC TOKENS — dark theme is the default
     ===================================================== */
  --fg-1: var(--luym-white);
  --fg-2: var(--luym-white-muted);
  --fg-3: var(--luym-silver);
  --fg-accent: var(--luym-gold);
  --fg-on-light: var(--luym-ink);

  --bg-1: var(--luym-black);        /* primary canvas (event/landing) */
  --bg-2: var(--luym-dark);         /* alt section */
  --bg-card: var(--luym-dark-2);    /* card surface */
  --bg-card-hover: var(--luym-dark-3);
  --bg-light: var(--luym-cream);    /* cream alternative */
  --bg-paper: var(--luym-paper);

  /* Feedback */
  --success: #2E7D5B;
  --warning: #C9892A;
  --danger:  #B0344D;
  --info:    var(--luym-purple);

  /* =====================================================
     TYPOGRAPHY
     ===================================================== */
  --font-display: 'Bebas Neue', 'Archivo Black', 'Impact', sans-serif;
  --font-body:    'DM Sans', system-ui, -apple-system, 'Helvetica Neue', sans-serif;
  --font-serif:   'Cormorant Garamond', 'Georgia', serif;
  --font-sans:    var(--font-body); /* alias for legacy preview cards */
  --font-script:  var(--font-serif); /* italic Cormorant fills the script role */
  --font-mono:    ui-monospace, 'JetBrains Mono', 'Menlo', monospace;

  /* Type scale (Bebas reads narrow — display sizes are generous) */
  --fs-display: clamp(80px, 12vw, 160px);   /* hero */
  --fs-h1:      clamp(56px, 9vw, 130px);    /* final CTA / section openers */
  --fs-h2:      clamp(44px, 6.5vw, 84px);   /* section titles */
  --fs-h3:      32px;
  --fs-h4:      22px;
  --fs-body-lg: 17px;
  --fs-body:    15px;
  --fs-small:   13px;
  --fs-micro:   11px;

  --lh-tight: 0.9;
  --lh-snug:  1.05;
  --lh-normal: 1.5;
  --lh-loose:  1.75;

  --ls-display:  0.01em;
  --ls-eyebrow:  0.35em;
  --ls-label:    0.18em;
  --ls-button:   0.18em;

  /* =====================================================
     SPACING (4px base)
     ===================================================== */
  --sp-0: 0;
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;
  --sp-9: 96px;
  --sp-10: 128px;

  /* =====================================================
     RADII — sharp, editorial; never round
     ===================================================== */
  --r-xs:   2px;
  --r-sm:   3px;
  --r-md:   4px;
  --r-lg:   8px;
  --r-xl:   16px;
  --r-pill: 100px;

  /* =====================================================
     SHADOWS
     ===================================================== */
  --shadow-1: 0 1px 2px rgba(0,0,0,0.3), 0 1px 1px rgba(0,0,0,0.2);
  --shadow-2: 0 8px 24px -6px rgba(0,0,0,0.45), 0 2px 6px rgba(0,0,0,0.25);
  --shadow-3: 0 20px 50px -10px rgba(0,0,0,0.6), 0 6px 16px rgba(0,0,0,0.35);
  --shadow-purple: 0 0 30px rgba(107,63,160,0.4);
  --shadow-purple-lg: 0 12px 40px rgba(107,63,160,0.5);
  --shadow-gold: 0 12px 40px rgba(201,168,76,0.4);

  /* Gradients (use sparingly — solid blocks > muddy gradients) */
  --grad-purple:  linear-gradient(135deg, var(--luym-purple), var(--luym-purple-deep));
  --grad-purple-light: linear-gradient(135deg, var(--luym-purple-light), var(--luym-purple-deep));
  --grad-gold:    linear-gradient(135deg, var(--luym-gold), var(--luym-gold-dark));
  --grad-section: linear-gradient(180deg, var(--luym-black) 0%, var(--luym-dark) 100%);

  /* =====================================================
     MOTION
     ===================================================== */
  --ease-out:    cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-1: 120ms;
  --dur-2: 250ms;
  --dur-3: 400ms;
}

/* =============================================================
   Semantic element styles (dark theme baseline)
   ============================================================= */

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

/* Display headings — Bebas Neue, the brand voice */
.luym-display,
h1.display {
  font-family: var(--font-display);
  font-weight: 400; /* Bebas has one weight */
  font-size: var(--fs-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  color: var(--fg-1);
  margin: 0;
}

h1, .h1 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--fs-h1);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  color: var(--fg-1);
  margin: 0 0 var(--sp-5);
}

h2, .h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--fs-h2);
  line-height: 0.93;
  letter-spacing: var(--ls-display);
  color: var(--fg-1);
  margin: 0 0 var(--sp-5);
}
h2 .gold, h2 span,
.section-title .gold, .section-title span {
  color: var(--luym-gold);
}
h2 em, .section-title em {
  color: var(--luym-purple-light);
  font-style: normal;
}

h3, .h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--fs-h3);
  line-height: var(--lh-snug);
  letter-spacing: 0.02em;
  color: var(--fg-1);
  margin: 0 0 var(--sp-3);
}

h4, .h4 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--fs-h4);
  line-height: var(--lh-snug);
  color: var(--fg-1);
  margin: 0 0 var(--sp-2);
}

p, .p {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-loose);
  color: var(--fg-2);
  margin: 0 0 var(--sp-4);
  text-wrap: pretty;
}

.lead {
  font-size: var(--fs-body-lg);
  color: var(--fg-1);
  line-height: 1.7;
}

/* Eyebrow / section label — uppercase, tight gold caps */
.eyebrow, .section-label {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: var(--ls-eyebrow);
  color: var(--luym-gold);
  margin: 0;
}

/* Editorial italic — Cormorant for testimonials, taglines */
.script, .editorial {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(18px, 2vw, 26px);
  line-height: 1.4;
  color: var(--luym-white-muted);
}

small, .small { font-size: var(--fs-small); color: var(--fg-3); }
.micro { font-size: var(--fs-micro); color: var(--fg-3); letter-spacing: 0.04em; text-transform: uppercase; }

code, .code, kbd {
  font-family: var(--font-mono);
  font-size: 0.9em;
  background: rgba(107,63,160,0.15);
  color: var(--luym-gold-light);
  padding: 2px 6px;
  border-radius: var(--r-xs);
}

a {
  color: var(--luym-gold);
  text-decoration: none;
  transition: color var(--dur-1) var(--ease-out);
}
a:hover { color: var(--luym-gold-light); }

/* =============================================================
   Light-theme override — use on cream/editorial surfaces
   ============================================================= */
.theme-light {
  background: var(--bg-light);
  color: var(--fg-on-light);
}
.theme-light h1, .theme-light h2, .theme-light h3, .theme-light h4 {
  color: var(--luym-ink);
}
.theme-light p { color: var(--luym-ink-2); }
.theme-light .eyebrow,
.theme-light .section-label { color: var(--luym-purple); }
.theme-light a { color: var(--luym-purple); }
.theme-light a:hover { color: var(--luym-purple-deep); }
