/* Bubbly Surreal — base element styles & a few utility helpers.
   Kept light: sets the page world, base typography, and a couple of
   brand helpers (dotted texture, blob). Components style themselves inline. */

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text-body);
  background-color: var(--surface-page);
  /* faint dotted "paper" texture — a recurring moodboard motif */
  background-image: radial-gradient(var(--line-hair) 1.4px, transparent 1.4px);
  background-size: 22px 22px;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  color: var(--text-strong);
  line-height: var(--leading-snug);
  margin: 0 0 0.4em;
}
h1 { font-size: var(--text-3xl); letter-spacing: var(--tracking-tight); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }
h4 { font-size: var(--text-lg); }

p { margin: 0 0 1em; }

a { color: var(--pink-deep); text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:hover { color: var(--ink); }

code, kbd, samp {
  font-family: var(--font-mono);
  font-size: 0.9em;
}

/* ---- Brand helper utilities ---- */

/* the mono micro-tag seen throughout the moodboards */
.bs-tag {
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-mono);
  color: var(--ink-soft);
}

/* dotted starfield texture, e.g. inside dark panels */
.bs-dots {
  background-image: radial-gradient(var(--cloud) 1.5px, transparent 1.5px);
  background-size: 16px 16px;
}

/* candy stripe fill */
.bs-stripes {
  background: repeating-linear-gradient(
    45deg,
    var(--pink) 0 14px,
    var(--butter) 14px 28px,
    var(--sky) 28px 42px,
    var(--lilac) 42px 56px
  );
}

/* organic blob shape */
.bs-blob { border-radius: var(--radius-blob); }
