/* ==========================================================================
 * ESSAY — manifesto, verify, and any long-form editorial page
 * Used by /manifesto/, /verify/, and the "this is not an IDE" home section.
 * Loaded conditionally on these pages only (see _layouts/default.html).
 * Depends on tokens declared in terminal-paellero.css (--tp-*).
 * All values via design tokens — no hardcoded colors.
 * ========================================================================== */

body.home-tp .tp-essay {
  padding-block: var(--tp-section-pad-y);
  background: var(--tp-bg-deep);
  color: var(--tp-fg-bone);
}

body.home-tp .tp-essay-head {
  max-width: 920px;
  margin: 0 auto 80px;
  padding: 0 32px;
  text-align: center;
}

body.home-tp .tp-essay-eyebrow {
  margin-bottom: 32px;
  text-align: center;
}

body.home-tp .tp-essay-title {
  font-family: var(--tp-font-display);
  font-style: italic;
  font-size: var(--tp-display-lg);
  line-height: 0.9;
  letter-spacing: -0.03em;
  margin: 0 auto 32px;
  max-width: 820px;
  font-weight: 400;
}

body.home-tp .tp-essay-title-accent { color: var(--tp-accent-warm); }

body.home-tp .tp-essay-meta {
  font-family: var(--tp-font-mono);
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.7;
  margin: 0;
}

/* Lede paragraph style for verify/manifesto headers — sentence-cased prose, not eyebrow. */
body.home-tp .tp-essay-meta--intro {
  text-transform: none;
  letter-spacing: 0;
  font-size: 15px;
  line-height: 1.6;
  opacity: 0.85;
  max-width: 640px;
  margin: 0 auto;
}

body.home-tp .tp-essay-meta a {
  color: inherit;
  border-bottom: 1px solid currentColor;
}

body.home-tp .tp-essay-body {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 32px;
  font-family: var(--tp-font-mono);
  font-size: 17px;
  line-height: 1.7;
}

/* Wider body for cards/tables (verify pages) */
body.home-tp .tp-essay-body--wide { max-width: 920px; }

body.home-tp .tp-essay-body p { margin: 0 0 24px; }
body.home-tp .tp-essay-body p:last-child { margin-bottom: 0; }

body.home-tp .tp-essay-pull {
  font-family: var(--tp-font-display);
  font-style: italic;
  font-size: 28px;
  line-height: 1.2;
  color: var(--tp-accent-warm);
  margin: 0 0 48px;
}

body.home-tp .tp-essay-h2 {
  font-family: var(--tp-font-display);
  font-style: italic;
  font-size: 44px;
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 56px 0 32px;
  font-weight: 400;
}

body.home-tp .tp-essay-h2-accent { color: var(--tp-accent-warm); }

body.home-tp .tp-essay-end {
  font-family: var(--tp-font-display);
  font-style: italic;
  font-size: clamp(40px, 7vw, 72px);
  line-height: 1;
  letter-spacing: -0.03em;
  text-align: center;
  margin: 80px 0 0;
  font-weight: 400;
}

body.home-tp .tp-essay-foot {
  max-width: 680px;
  margin: 80px auto 0;
  padding: 60px 32px 0;
  text-align: center;
  border-top: 1px solid var(--tp-rule-soft);
}

body.home-tp .tp-essay-foot-eyebrow {
  font-family: var(--tp-font-mono);
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  opacity: 0.7;
  margin: 0 0 24px;
}

body.home-tp .tp-essay-foot-cta {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ==========================================================================
   CALLOUT LIST — bordered bullet items used in the manifesto section
   ========================================================================== */

body.home-tp .tp-callout-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: var(--tp-font-mono);
  font-size: 15px;
  line-height: 1.55;
}

body.home-tp .tp-callout-item {
  border-left: 2px solid var(--tp-rule);
  padding: 14px 0 14px 24px;
  margin-bottom: 16px;
}

body.home-tp .tp-callout-item:last-child { margin-bottom: 0; }

body.home-tp .tp-callout-item--warm { border-left-color: var(--tp-accent-warm); }
body.home-tp .tp-callout-item--highlight { border-left-color: var(--tp-accent-highlight); }
body.home-tp .tp-callout-item--ok { border-left-color: var(--tp-state-ok); }

body.home-tp .tp-callout-item-title {
  display: block;
  margin-bottom: 6px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 700;
}

body.home-tp .tp-callout-item--warm .tp-callout-item-title { color: var(--tp-accent-warm); }
body.home-tp .tp-callout-item--highlight .tp-callout-item-title { color: var(--tp-accent-highlight); }
body.home-tp .tp-callout-item--ok .tp-callout-item-title { color: var(--tp-state-ok); }

/* ==========================================================================
   VERIFY — release card, hash display, terminal command blocks
   ========================================================================== */

body.home-tp .tp-release-card {
  border: 1px solid var(--tp-rule);
  padding: 32px;
  margin-bottom: 32px;
  background: var(--tp-bg-subtle);
}

body.home-tp .tp-release-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 24px;
  flex-wrap: wrap;
  gap: 16px;
}

body.home-tp .tp-release-card-label,
body.home-tp .tp-cmd-label {
  font-family: var(--tp-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.7;
}

body.home-tp .tp-release-card-label { margin-bottom: 6px; }

body.home-tp .tp-release-version {
  font-family: var(--tp-font-display);
  font-style: italic;
  font-size: 32px;
  line-height: 1;
}

body.home-tp .tp-release-meta-value {
  font-family: var(--tp-font-mono);
  font-size: 14px;
}

body.home-tp .tp-release-meta-value--ok { color: var(--tp-state-ok); }

body.home-tp .tp-hash {
  display: block;
  font-family: var(--tp-font-mono);
  font-size: 13px;
  line-height: 1.4;
  padding: 16px;
  background: var(--tp-bg-elevated);
  border: 1px solid var(--tp-rule-soft);
  word-break: break-all;
  color: var(--tp-accent-warm);
}

body.home-tp .tp-cmd {
  font-family: var(--tp-font-mono);
  font-size: 13px;
  line-height: 1.6;
  padding: 20px;
  background: var(--tp-bg-elevated);
  border: 1px solid var(--tp-rule-soft);
  overflow-x: auto;
  margin: 0 0 24px;
  color: var(--tp-fg-bone);
}

body.home-tp .tp-cmd-prompt { color: var(--tp-state-ok); }
body.home-tp .tp-cmd-output { opacity: 0.85; }

body.home-tp .tp-cmd-label { margin: 32px 0 12px; }
