/* Shared by the React shell and the generated festival/recycling pages. */
@layer theme, base, components, utilities;

:root {
  --font-body: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
    "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-brand: "Orbitron", "Space Grotesk", sans-serif;
  --type-display: clamp(2rem, 4vw, 3rem);
  --type-title: clamp(2rem, 3vw, 2.5rem);
  --type-section: clamp(1.5rem, 2.5vw, 2rem);
  --type-card: 1.25rem;
  --type-lead: 1.125rem;
  --type-body: 1rem;
  --type-ui: 0.875rem;
  --type-caption: 0.75rem;
  --leading-heading: 1.35;
  --leading-body: 1.7;
  --leading-ui: 1.5;
  --tracking-heading: -0.015em;
  --tracking-eyebrow: 0.12em;
}

[lang] {
  --tracking-heading: -0.015em;
  --tracking-eyebrow: 0.12em;
}

:root:lang(ko),
:root:lang(ja),
:root:lang(zh),
[lang]:lang(ko),
[lang]:lang(ja),
[lang]:lang(zh) {
  --tracking-heading: 0em;
  --tracking-eyebrow: 0em;
}

@layer base {
  body {
    font-family: var(--font-body);
    font-size: var(--type-body);
    line-height: var(--leading-body);
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-family: var(--font-body);
    line-height: var(--leading-heading);
    letter-spacing: var(--tracking-heading);
    overflow-wrap: break-word;
  }

  button,
  input,
  select,
  textarea {
    font-family: inherit;
  }

  :where(h1, h2, h3, p, li, dd):lang(ko) {
    word-break: keep-all;
    overflow-wrap: break-word;
  }
}

.type-display,
.type-title,
.type-section,
.type-card {
  font-family: var(--font-body);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-heading);
  overflow-wrap: break-word;
}

.type-display {
  font-size: var(--type-display);
  font-weight: 700;
}

.type-title {
  font-size: var(--type-title);
  font-weight: 700;
}

.type-section {
  font-size: var(--type-section);
  font-weight: 600;
}

.type-card {
  font-size: var(--type-card);
  font-weight: 600;
}

.type-lead {
  font-size: var(--type-lead);
  line-height: var(--leading-body);
}

.type-body {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.type-ui {
  font-size: var(--type-ui);
  line-height: var(--leading-ui);
}

.type-caption {
  font-size: var(--type-caption);
  line-height: var(--leading-ui);
}

.type-eyebrow {
  font-size: var(--type-caption);
  font-weight: 600;
  line-height: var(--leading-ui);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}
