/* ==========================================================================
   Act of Kindness — Design Tokens
   ========================================================================== */

@font-face {
  font-family: "Playfair Display";
  src: url("fonts/PlayfairDisplay-Italic.otf") format("opentype");
  font-weight: 400 900;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Raleway";
  src: url("fonts/Raleway-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root {
  /* ---------- Brand palette ---------- */
  --aok-yellow:        #FCBF12;   /* Primary — warmth, generosity, sun */
  --aok-yellow-soft:   #FFE39A;   /* Tint, backgrounds, wash */
  --aok-yellow-deep:   #E0A200;   /* Hover, pressed, accent on light */

  --aok-purple:        #562565;   /* Secondary — depth, dignity, care */
  --aok-purple-soft:   #8B5E9A;   /* Tint, hover on purple */
  --aok-purple-deep:   #2E0F3A;   /* Emphasis, shadows */

  --aok-ink:           #141014;   /* Body text, icons */
  --aok-ink-mute:      #4A444A;   /* Secondary text */
  --aok-ink-soft:      #7F7782;   /* Tertiary, captions */
  --aok-rule:          #E9E2EC;   /* Hairlines, dividers on light */

  --aok-paper:         #FBF7F2;   /* Primary surface — warm off-white */
  --aok-paper-deep:    #F2ECE1;   /* Recessed surface */
  --aok-white:         #FFFFFF;

  --aok-success:       #3E7D4F;
  --aok-danger:        #B54545;

  /* ---------- Semantic mappings (light canvas) ---------- */
  --bg:          var(--aok-paper);
  --surface:     var(--aok-white);
  --surface-alt: var(--aok-paper-deep);
  --text:        var(--aok-ink);
  --text-mute:   var(--aok-ink-mute);
  --text-soft:   var(--aok-ink-soft);
  --border:      var(--aok-rule);
  --accent:      var(--aok-yellow);
  --accent-ink:  var(--aok-purple);

  /* ---------- Type ---------- */
  --font-display: "Playfair Display", "Iowan Old Style", Georgia, serif;
  --font-sans:    "Raleway", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

  /* Modular scale (1.250 major third) — anchored at 16px body */
  --fs-xs:   12px;
  --fs-sm:   14px;
  --fs-base: 16px;
  --fs-md:   18px;
  --fs-lg:   22px;
  --fs-xl:   28px;
  --fs-2xl:  36px;
  --fs-3xl:  48px;
  --fs-4xl:  64px;
  --fs-5xl:  84px;
  --fs-6xl:  112px;

  --lh-tight:  1.05;
  --lh-snug:   1.2;
  --lh-normal: 1.45;
  --lh-loose:  1.65;

  --tracking-display: -0.01em;   /* Playfair italic reads best slightly tight */
  --tracking-caps:    0.14em;    /* Raleway medium caps — label vibe */

  /* ---------- Spacing (4pt grid) ---------- */
  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3:  12px;
  --sp-4:  16px;
  --sp-5:  20px;
  --sp-6:  24px;
  --sp-8:  32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;
  --sp-20: 80px;
  --sp-24: 96px;
  --sp-32: 128px;

  /* ---------- Radii ---------- */
  --r-xs:   2px;
  --r-sm:   4px;
  --r-md:   8px;
  --r-lg:   14px;
  --r-xl:   22px;
  --r-pill: 999px;

  /* ---------- Elevation (warm, low-key) ---------- */
  --shadow-1: 0 1px 2px rgba(46, 15, 58, 0.06),
              0 1px 3px rgba(46, 15, 58, 0.04);
  --shadow-2: 0 2px 6px rgba(46, 15, 58, 0.08),
              0 8px 20px rgba(46, 15, 58, 0.06);
  --shadow-3: 0 12px 32px rgba(46, 15, 58, 0.14);

  /* ---------- Motion ---------- */
  --ease:         cubic-bezier(.2, .7, .2, 1);
  --ease-spring:  cubic-bezier(.25, 1.4, .4, 1);
  --dur-fast:     120ms;
  --dur-med:      220ms;
  --dur-slow:     420ms;
}

/* ---------- Base utility helpers used across UI kit ---------- */
html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body { font-family: var(--font-sans); font-weight: 500; color: var(--text); background: var(--bg); font-size: var(--fs-base); line-height: var(--lh-normal); margin: 0; }

.aok-eyebrow {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: var(--fs-xs);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--aok-purple);
}

.aok-display {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  letter-spacing: var(--tracking-display);
  line-height: var(--lh-tight);
  color: var(--aok-purple-deep);
}

.aok-pattern-dotgrid {
  background-image: radial-gradient(rgba(86, 37, 101, 0.18) 1.2px, transparent 1.4px);
  background-size: 18px 18px;
  background-position: 0 0;
}
