/* ============================================================
   base.css — static replacement for the Tailwind Play CDN.

   The site previously loaded https://cdn.tailwindcss.com on every
   page. That CDN is a dev-only runtime JIT compiler (ships a large
   JS bundle + causes a flash of unstyled content). This file
   reproduces exactly what the CDN injected:

     1. Tailwind v3 "Preflight" base reset
     2. Only the handful of Tailwind utility classes the site uses

   IMPORTANT: link this AFTER /css/style.css. The CDN used to inject
   its <style> after the stylesheet, so a few utilities (.font-serif,
   .tracking-widest) and Preflight rules (body line-height) were
   winning over style.css. Loading this last preserves that cascade
   and keeps rendering pixel-identical.

   Curate pages never loaded Tailwind, so they intentionally do NOT
   link this file.
   ============================================================ */

/* ── Tailwind v3 Preflight ───────────────────────────────────── */
*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb;
}

::before,
::after { --tw-content: ''; }

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  tab-size: 4;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,
    'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  font-feature-settings: normal;
  font-variation-settings: normal;
}

body {
  margin: 0;
  line-height: inherit;
}

hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}

abbr:where([title]) { text-decoration: underline dotted; }

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}

a {
  color: inherit;
  text-decoration: inherit;
}

b, strong { font-weight: bolder; }

code, kbd, samp, pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    'Liberation Mono', 'Courier New', monospace;
  font-size: 1em;
}

small { font-size: 80%; }

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub { bottom: -0.25em; }
sup { top: -0.5em; }

table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}

button, select { text-transform: none; }

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}

:-moz-focusring { outline: auto; }
:-moz-ui-invalid { box-shadow: none; }

progress { vertical-align: baseline; }

::-webkit-inner-spin-button,
::-webkit-outer-spin-button { height: auto; }

[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

::-webkit-search-decoration { -webkit-appearance: none; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

summary { display: list-item; }

blockquote, dl, dd, h1, h2, h3, h4, h5, h6,
hr, figure, p, pre { margin: 0; }

fieldset { margin: 0; padding: 0; }
legend { padding: 0; }

ol, ul, menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

dialog { padding: 0; }

textarea { resize: vertical; }

input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #9ca3af;
}

button,
[role="button"] { cursor: pointer; }

:disabled { cursor: default; }

img, svg, video, canvas, audio, iframe, embed, object {
  display: block;
  vertical-align: middle;
}

img, video {
  max-width: 100%;
  height: auto;
}

[hidden] { display: none; }

/* ── Utilities (only the classes the site actually uses) ─────── */
.block { display: block; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.hidden { display: none; }

.items-center { align-items: center; }
.justify-center { justify-content: center; }

.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }

.w-full { width: 100%; }
.max-w-7xl { max-width: 80rem; }
.mx-auto { margin-left: auto; margin-right: auto; }

.mt-1 { margin-top: 0.25rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-8 { margin-bottom: 2rem; }

.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.pb-24 { padding-bottom: 6rem; }

.text-center { text-align: center; }
.uppercase { text-transform: uppercase; }
.font-light { font-weight: 300; }
.tracking-widest { letter-spacing: 0.1em; }

.font-sans {
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,
    'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
}
.font-serif {
  font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
}

.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }

.overflow-x-hidden { overflow-x: hidden; }

@media (min-width: 768px) {
  .md\:px-8 { padding-left: 2rem; padding-right: 2rem; }
  .md\:px-12 { padding-left: 3rem; padding-right: 3rem; }
  .md\:text-5xl { font-size: 3rem; line-height: 1; }
}
