/* TWB v3 — typography.css
   Editorial display + body type. Magazine-warm, not corporate.
*/

.wordmark { display: block; text-decoration: none; color: var(--tw-ink); }
.wordmark__title {
  display: block;
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.wordmark__tag {
  display: block;
  margin-top: .35rem;
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 400;
  font-size: .9rem;
  color: var(--tw-dek);
  font-style: italic;
}
@media (min-width: 720px) {
  .wordmark__title { font-size: 2.6rem; }
  .wordmark__tag   { font-size: 1rem; }
}

/* Section + article headings */
h1, h2, h3, h4 {
  font-family: 'Source Serif 4', Georgia, serif;
  color: var(--tw-ink);
  line-height: 1.2;
  margin: 0 0 .6em;
  letter-spacing: -0.01em;
}
h1 { font-size: 2.2rem; font-weight: 700; }
h2 { font-size: 1.6rem; font-weight: 700; }
h3 { font-size: 1.25rem; font-weight: 600; }
h4 { font-size: 1.05rem; font-weight: 600; }
@media (min-width: 720px) {
  h1 { font-size: 2.6rem; }
  h2 { font-size: 1.85rem; }
}

/* Article display */
.single__header {
  margin-bottom: 2rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--tw-rule);
  max-width: var(--tw-content-max);
}
.single__title {
  font-size: 2rem;
  margin: .25rem 0 .5rem;
}
@media (min-width: 720px) {
  .single__title { font-size: 2.6rem; }
}
.single__dek {
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 1.15rem;
  font-style: italic;
  color: var(--tw-dek);
  line-height: 1.45;
  margin: .25rem 0 1rem;
}
.single__meta {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .85rem;
  color: var(--tw-muted);
  letter-spacing: .03em;
  text-transform: uppercase;
}
.single__meta .byline { font-weight: 600; }
.single__meta .date::before { content: " · "; }

/* Spine labels — earn structural visibility */
.spine-label {
  display: inline-block;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 .5rem;
  padding: .15rem .55rem;
  border: 1px solid var(--tw-rule);
  border-radius: 999px;
  color: var(--tw-ink-soft);
  background: transparent;
}
.spine-label--A { color: var(--tw-spine-a); border-color: var(--tw-spine-a); }
.spine-label--B { color: var(--tw-spine-b); border-color: var(--tw-spine-b); }

/* Body prose */
.prose {
  max-width: var(--tw-content-max);
  font-size: 1.05rem;
  line-height: 1.65;
}
.prose p { margin: 0 0 1.1em; }
.prose h2 { margin-top: 1.8em; }
.prose h3 { margin-top: 1.5em; }
.prose ul, .prose ol { padding-left: 1.4em; margin: 0 0 1.1em; }
.prose li { margin-bottom: .35em; }
.prose blockquote {
  margin: 1.5em 0;
  padding: .25em 0 .25em 1.2em;
  border-left: 3px solid var(--tw-accent);
  font-style: italic;
  color: var(--tw-ink-soft);
}
.prose hr {
  border: 0;
  border-top: 1px solid var(--tw-rule);
  margin: 2em 0;
}
.prose code {
  font-family: 'Menlo', 'Consolas', monospace;
  font-size: .9em;
  background: var(--tw-rule-soft);
  padding: .1em .35em;
  border-radius: 3px;
}

/* List/index pages */
.list__header {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--tw-rule);
}
.list__title { font-size: 2rem; margin-bottom: .35rem; }
.list__dek {
  font-family: 'Source Serif 4', Georgia, serif;
  font-style: italic;
  color: var(--tw-dek);
  font-size: 1.1rem;
  margin: 0 0 1rem;
}
.list__intro { margin-top: 1rem; }
.list__items { list-style: none; padding: 0; margin: 0; }
.list__item { border-bottom: 1px solid var(--tw-rule-soft); padding: 1.25rem 0; }
.list__empty { color: var(--tw-muted); font-style: italic; }

.card { display: block; text-decoration: none; color: inherit; }
.card:hover .card__title { color: var(--tw-link-hover); }
.card__title {
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 1.3rem;
  font-weight: 600;
  margin: 0 0 .3rem;
  color: var(--tw-ink);
}
.card__dek {
  font-family: 'Source Serif 4', Georgia, serif;
  color: var(--tw-dek);
  font-size: 1rem;
  margin: 0 0 .35rem;
  line-height: 1.45;
}
.card__date {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: .8rem;
  color: var(--tw-muted);
  letter-spacing: .05em;
  text-transform: uppercase;
}