/* The practice on paper. One semantic source; no duplicate print-only copy.
   Physical units keep the reading edition independent of the screen viewport.
   Notes remain in document order, followed by practice, method and profile.
   Reuse the globally registered screen font so a first native print cannot
   race a separate print-only font face. */
@page {
  size: A4 portrait;
  margin: 19mm 18mm 20mm;
  @top-left {
    content: "Jonas Hertner";
    font: 400 8pt "Bradford Editorial", Georgia, serif;
    color: #555;
  }
  @top-right {
    content: "jonashertner.com";
    font: 400 8pt "Bradford Editorial", Georgia, serif;
    color: #555;
  }
  @bottom-right {
    content: counter(page) " / " counter(pages);
    font: 400 8pt "Bradford Editorial", Georgia, serif;
    color: #555;
  }
}
@page :first {
  @top-left { content: none; }
  @top-right { content: none; }
}

@media print {
  :root {
    color-scheme: light !important;
    --paper: #fff;
    --ink: #161b1b;
    --text: "Bradford Editorial", Georgia, serif;
    --display: var(--text);
    --sans: Arial, sans-serif;
    --mono: monospace;
  }
  *, *::before, *::after {
    box-sizing: border-box;
    animation: none !important;
    transition: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  html, body {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: white !important;
    color: #161b1b !important;
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
  }
  body {
    font: 400 10.5pt/14.2pt var(--text);
    font-synthesis: none;
    /* Keep native PDF text maps faithful when WebKit embeds the font. */
    font-variant-ligatures: none;
    text-rendering: optimizeLegibility;
    -webkit-print-color-adjust: economy;
    print-color-adjust: economy;
  }
  body::before, body::after,
  .site-header, .skip-link, .sr-only, .light-passage,
  .command-dialog, .command-launch, .appearance-slot, .site-utility-footer,
  .journal__read, .journal__links a + a, .format-nav,
  .publication-meta__title, .publication-meta__description,
  .footer__name, .footer__top > div:last-child,
  .mobile-reading-disclosure > summary,
  [aria-hidden="true"] { display: none !important; }
  main, section, article, header, footer, figure { margin: 0; padding: 0; }
  main { display: block; }
  p, h1, h2, h3, dl, dd, ol, ul { margin: 0; padding: 0; }
  p, li, dd { widows: 3; orphans: 3; }
  h1, h2, h3, .section-head, .journal__header { break-after: avoid; }
  h1, h2, h3 { font-weight: 400; text-align: left; hyphens: none; }
  a, a:visited { color: inherit; text-decoration: none; }
  a { overflow-wrap: anywhere; }
  p a, dd a { text-decoration: underline; text-decoration-thickness: .4pt; text-underline-offset: 1.4pt; }
  a[href="https://ruleandreason.com/"],
  a[href="https://www.regenerative.law/"] { white-space: nowrap; }
  :target { outline: 0 !important; }

  /* An opening, rather than a separate cover sheet. */
  .hero { margin-bottom: 4mm; break-inside: avoid; }
  .hero__premise { display: block; font-size: 10pt; line-height: 14pt; color: #555; }
  .hero__name { display: block; font-size: 34pt; line-height: 38pt; letter-spacing: -.025em; margin-top: 2mm; }
  .hero__verdict { margin-top: 3mm; font-size: 16pt; line-height: 20pt; }
  .hero__verdict br { display: none; }
  .hero__lede { margin-top: 2mm; }
  .hero__actions { margin-top: 2mm; font-size: 9pt; line-height: 12pt; }
  .hero__actions > a + a { display: none; }

  .section-code {
    font: 400 7.5pt/10pt var(--sans);
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #555;
  }
  .section-head, .journal__header {
    padding-top: 3mm;
    margin-bottom: 3.5mm;
    border-top: .65pt solid #333;
  }
  h2 { font-size: 19pt; line-height: 23pt; letter-spacing: -.015em; margin-top: 1mm; }
  h3 { font-size: 13pt; line-height: 16pt; }

  /* A small reading list; the essays themselves have their own print edition. */
  .journal { margin-bottom: 4mm; break-inside: avoid; }
  .journal__header { display: flex; gap: 7mm; align-items: baseline; margin-bottom: 2.5mm; }
  .journal__header > div { display: flex; gap: 3mm; align-items: baseline; }
  .journal__header h2 { font-size: 12pt; line-height: 15pt; margin: 0; }
  .journal__intro { display: none; }
  .journal__body { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 6mm; }
  .journal__more { display: contents; }
  .journal__date { font: 400 7.5pt/10pt var(--sans); color: #555; margin-bottom: 1.5mm; }
  .journal__date > span { display: none; }
  .journal__feature h3, .journal__entry h3 { font-size: 11pt; line-height: 14pt; }
  .journal__summary { display: none; }
  .journal__links { margin-top: 2.5mm; font-size: 8.5pt; line-height: 11pt; }
  .journal__links a::after { content: " · jonashertner.com" attr(href); color: #555; }

  /* WebKit flattens multicolumn print content and can split grid rows across
     the page edge. Inline blocks paginate as complete pairs in reading order.
     Zero parent text size removes HTML whitespace between the two blocks;
     both the headings and paragraphs set their own physical type sizes. */
  .practice-list { font-size: 0; }
  .practice-row { display: inline-block; width: calc(50% - 4mm); vertical-align: top; break-inside: avoid; margin-bottom: 3.5mm; }
  .practice-row:nth-child(odd) { margin-right: 8mm; }
  .practice-row h3 { margin-bottom: 1.5mm; font-size: 12.5pt; line-height: 15pt; }
  .practice-row p { font-size: 10.2pt; line-height: 13.5pt; hyphens: auto; hyphenate-limit-chars: 8 3 3; }
  html:lang(en) .practice-row p { hyphens: none; }

  /* The method and professional record form one reading sequence. */
  .approach { break-before: page; padding-top: 1mm; }
  .approach__thesis { max-width: 152mm; margin-bottom: 4mm; }
  .model-table { width: 100%; border-collapse: collapse; margin-bottom: 5mm; }
  .model-table thead { display: none; }
  .model-table tr { break-inside: avoid; }
  .model-table th, .model-table td { padding: 2mm 0; border-bottom: .35pt solid #ccc; vertical-align: top; text-align: left; }
  .model-table th { width: 29mm; padding-right: 5mm; font-weight: 400; }
  .model-table td { font-size: 10.5pt; line-height: 14.2pt; }
  .boundary { display: grid; grid-template-columns: 1fr 1fr; gap: 8mm; margin: 4mm 0 7mm; break-inside: avoid; }
  .boundary__label { font: 400 7.5pt/10pt var(--sans); color: #555; margin-bottom: 1.5mm; }
  .boundary h3 { margin-bottom: 2mm; }
  .boundary__text { font-size: 10pt; line-height: 13.5pt; }

  .profile { border-top: .65pt solid #333; padding-top: 3mm; }
  /* Let the record paginate in ordinary block flow, outside a grid item. */
  .profile__grid { display: flow-root; }
  .profile__intro { float: left; width: 38mm; break-inside: avoid; }
  .profile__intro h2 { max-width: 38mm; }
  .profile__portrait { width: 30mm; margin-top: 5mm; }
  .profile__portrait picture, .profile__portrait img { display: block; width: 30mm; height: 30mm; object-fit: cover; object-position: center 25%; filter: grayscale(1); }
  .profile__record { min-width: 0; margin-left: 45mm; }
  .profile__bio { margin-bottom: 3mm; }
  .evidence__row { break-inside: avoid; margin-top: 2.5mm; }
  .evidence dt { font: 400 7.5pt/10pt var(--sans); color: #555; margin-bottom: 1mm; }
  .evidence dd { font-size: 10pt; line-height: 13.5pt; }

  /* Public work and contact close the edition on the same sheet. */
  .work { break-before: page; padding-top: 1mm; }
  .work__intro { margin-bottom: 4mm; }
  .work-grid { list-style: none; }
  .work-grid li { break-inside: avoid; margin-bottom: 3mm; }
  .work-card { display: grid; grid-template-columns: 32mm 1fr; gap: 7mm; }
  .work-card__meta { font: 400 7.5pt/11pt var(--sans); color: #555; }
  .work-card__meta > span { display: block; }
  .work-card__meta > span:first-child { display: none; }
  .work-card__meta > span:last-child { margin-top: 1mm; overflow-wrap: anywhere; }
  .work-card__date { display: block; }
  .work-card__body h3 { margin-bottom: 1.5mm; }
  .work-card__body p { font-size: 10pt; line-height: 13.5pt; }
  .work__note { margin-top: 2mm; font-size: 9pt; line-height: 12pt; }
  .work__note a::after { content: " (jonashertner.com" attr(href) ")"; }
  .contact { margin-top: 4mm; break-inside: avoid; }
  .contact .section-head { margin-bottom: 3mm; }
  .contact__email { display: block; font-size: 16pt; line-height: 20pt; margin-bottom: 2mm; }
  .contact__caution { font-size: 9.5pt; line-height: 13pt; }
  .contact__agent { margin-top: 2mm; font-size: 8.5pt; line-height: 11.5pt; color: #444; }
  .contact__agent span { font-style: italic; margin-right: 1mm; }

  .site-footer { margin-top: 3mm; }
  .publication-meta { margin-bottom: 3mm; font-size: 8pt; line-height: 11pt; color: #555; }
  .edition { display: flex; gap: 1mm; }
  .footer__top { display: grid; grid-template-columns: 1fr 1fr; gap: 8mm; margin-bottom: 3mm; break-inside: avoid; }
  .footer__label { display: block; margin-bottom: 1mm; font: 400 7.5pt/10pt var(--sans); color: #555; }
  address { font-style: normal; font-size: 9.5pt; line-height: 12.5pt; }
  .footer__policies { padding-top: 3mm; border-top: .35pt solid #ccc; }
  .footer__policies section { margin-bottom: 2mm; break-inside: avoid; }
  .footer__policies h2 { font-size: 9.5pt; line-height: 12pt; margin: 0 0 1mm; }
  .footer__policies p, .policy-disclosure { font-size: 8.5pt; line-height: 12pt; }
  .policy-disclosure, .policy-disclosure > *, .mobile-reading-disclosure { display: block !important; }
  .policy-disclosure::details-content, .mobile-reading-disclosure::details-content { content-visibility: visible !important; display: block !important; }
  .policy-disclosure > summary { display: block !important; list-style: none; }
  .policy-disclosure > summary::-webkit-details-marker { display: none; }
  .policy-disclosure > p { display: none !important; }
  .policy-disclosure::after { display: block; content: "jonashertner.com/privacy/"; }
  html:lang(de) .policy-disclosure::after { content: "jonashertner.com/de/privacy/"; }
  html:lang(fr) .policy-disclosure::after { content: "jonashertner.com/fr/privacy/"; }
  .footer__bottom { margin-top: 2mm; font-size: 8pt; line-height: 10.5pt; color: #555; break-before: avoid; }
}
