/* ═══════════════════════════════════════════════════
   PRINT STYLESHEET — trentpower.fr
   Loaded via <link rel="stylesheet" href="/print.css" media="print">
   No runtime effect. No CSP impact. No inline styles.
   ═══════════════════════════════════════════════════ */

/* ─── Page geometry ─────────────────────────────── */

@page {
  size: A4;
  margin: 20mm 22mm 24mm 22mm;

  @bottom-center {
    content: "trent@trentpower.fr";
    font-family: 'IBM Plex Mono', monospace;
    font-size: 7.5pt;
    color: #999;
  }
}

/* ─── Base ──────────────────────────────────────── */

body {
  background: #fff;
  color: #1F1E1C;
  font-size: 10pt;
  line-height: 1.5;
}

/* ─── Colour safety (B&W compatible) ────────────── */

* {
  color: #1F1E1C !important;
  background: transparent !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.chapter-label,
.label-num,
.chapter-detail,
.contact-secondary {
  color: #706B66 !important;
}

/* ─── Hide UI elements ──────────────────────────── */

.nav,
.skip-link,
.modal-overlay,
#access-btn,
.footer,
.page-back,
.code-block,
details,
.page-meta,
.project-preview,
.project-link,
.project-link-btn,
.project-emoji {
  display: none !important;
}

/* ─── Kill all viewport-relative spacing ────────── */
/* The screen CSS uses min-height: 100vh, clamp(…vh…)
   padding, and large margins. These create blank pages
   in print. Override everything to fixed small values. */

.site {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

.hero {
  min-height: 0 !important;
  padding: 0 0 8pt 0 !important;
  margin: 0 !important;
}

section {
  padding: 10pt 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

.principles,
.trajectory-grid,
.contact {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

.page {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

/* ─── Typography ────────────────────────────────── */

.hero-name {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 15pt;
  font-weight: 600;
  letter-spacing: 0.02em;
  margin-bottom: 3pt !important;
}

.hero-statement {
  font-family: 'Newsreader', serif;
  font-size: 10.5pt;
  font-weight: 400;
  font-style: italic;
  margin-bottom: 5pt !important;
}

.hero-body {
  font-family: 'Newsreader', serif;
  font-size: 9.5pt;
  font-weight: 300;
  line-height: 1.55;
  max-width: 44em;
  margin-bottom: 0 !important;
}

/* ─── Section labels ────────────────────────────── */

.section-label {
  font-size: 8pt;
  margin-top: 0 !important;
  margin-bottom: 5pt !important;
  page-break-after: avoid;
  break-after: avoid;
}

/* ─── Principles ────────────────────────────────── */

.principle {
  border: none !important;
  padding: 0 !important;
  margin-bottom: 6pt !important;
  background: none !important;
}

.principle:last-child {
  margin-bottom: 0 !important;
}

.principle-title {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 9pt;
  font-weight: 500;
  margin-bottom: 1pt !important;
  page-break-after: avoid;
  break-after: avoid;
}

.principle-body {
  font-family: 'Newsreader', serif;
  font-size: 9pt;
  font-weight: 300;
  line-height: 1.5;
  max-width: 44em;
  margin: 0 !important;
}

/* ─── Trajectory ────────────────────────────────── */

.trajectory-grid {
  display: block !important;
}

.trajectory-chapter {
  border: none !important;
  padding: 0 !important;
  margin-bottom: 6pt !important;
  background: none !important;
}

.trajectory-chapter:last-child {
  margin-bottom: 0 !important;
}

.chapter-label {
  font-size: 7pt;
  margin: 0 !important;
}

.chapter-title {
  font-size: 9.5pt;
  margin: 0 0 1pt 0 !important;
  page-break-after: avoid;
  break-after: avoid;
}

.chapter-detail {
  font-size: 8pt;
  margin: 0 !important;
}

.chapter-content {
  font-size: 9pt;
  line-height: 1.5;
  max-width: 44em;
  margin: 0 !important;
}

.chapter-list {
  font-size: 9pt;
  margin: 0 !important;
  padding-left: 1.2em !important;
}

/* ─── Projects (title + description only) ───────── */

.project-card {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
}

.project-card::before {
  display: none;
}

.project-name {
  font-size: 9.5pt;
  margin-bottom: 1pt !important;
}

.project-desc {
  font-size: 9pt;
  line-height: 1.5;
  margin: 0 0 2pt 0 !important;
}

.project-subline {
  font-size: 8.5pt;
  margin: 0 !important;
}

/* ─── Contact ───────────────────────────────────── */

.contact {
  padding: 6pt 0 0 0 !important;
}

.contact-email {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 9pt;
  margin: 0 !important;
}

.contact-secondary {
  font-size: 8pt;
  margin: 2pt 0 0 0 !important;
}

/* ─── Subpages (privacy, integrity) ─────────────── */

.page-title {
  font-size: 14pt;
  margin-bottom: 6pt !important;
}

.page-body {
  max-width: 44em;
}

.page-body p {
  font-size: 9.5pt;
  line-height: 1.55;
}

/* ─── Force scroll-reveal elements visible ──────── */

.hero-name,
.hero-statement,
.hero-body,
.principle,
.trajectory-chapter,
.project-card {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* ─── Links — show URLs for external only ───────── */

a[href^="http"]::after {
  content: " [" attr(href) "]";
  font-family: 'IBM Plex Mono', monospace;
  font-size: 7pt;
  font-weight: 300;
  color: #706B66 !important;
  word-break: break-all;
}

a[href^="#"]::after,
a[href^="/"]::after,
a[href^="mailto:"]::after {
  content: none;
}

/* ─── Pagination ────────────────────────────────── */

h1, h2, h3,
.principle-title,
.chapter-title,
.section-label,
.project-name {
  page-break-after: avoid;
  break-after: avoid;
}

p, .principle-body, .chapter-content, .project-desc {
  orphans: 3;
  widows: 3;
}

.hero {
  page-break-after: avoid;
  break-after: avoid;
}
