/* ==========================================================================
   Something Big Already Happened — Print Stylesheet
   Overrides for PDF/LaTeX generation and physical printing
   ========================================================================== */

@media print {

  /* ========================================================================
     Light Theme Override
     ======================================================================== */

  :root {
    --bg-primary: #ffffff;
    --bg-secondary: #f8f9fa;
    --bg-card: #f1f3f5;
    --bg-elevated: #e9ecef;
    --bg-code: #f4f4f8;

    --accent: #CC5529;
    --accent-light: #E06A3A;
    --accent-dark: #993F1E;
    --accent2: #4F46E5;
    --accent2-light: #6366F1;
    --accent2-dark: #3B36B0;

    --success: #0A7D5A;
    --warning: #C47F09;
    --error: #C42B2B;

    --text-primary: #1a1a2e;
    --text-secondary: #4a4a6a;
    --text-muted: #6b7280;
    --text-inverse: #ffffff;

    --border: #d1d5db;
    --border-light: #e5e7eb;

    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: none;
    --shadow-xl: none;
    --shadow-glow-accent: none;
    --shadow-glow-accent2: none;
  }

  /* ========================================================================
     Base Overrides
     ======================================================================== */

  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  html {
    font-size: 11pt;
  }

  body {
    background: #fff !important;
    color: var(--text-primary) !important;
    font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    line-height: 1.6;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  /* ========================================================================
     Page Setup
     ======================================================================== */

  @page {
    size: 6in 9in; /* KDP standard trim */
    margin: 0.75in 0.625in 0.75in 0.875in;
  }

  @page :first {
    margin-top: 1.5in;
  }

  @page :left {
    margin-left: 0.875in;
    margin-right: 0.625in;
  }

  @page :right {
    margin-left: 0.625in;
    margin-right: 0.875in;
  }

  /* ========================================================================
     Page Breaks
     ======================================================================== */

  h1 {
    break-before: always;
    page-break-before: always;
  }

  h2, h3, h4 {
    break-after: avoid;
    page-break-after: avoid;
  }

  p, blockquote, .callout {
    orphans: 3;
    widows: 3;
  }

  figure, .chart-container, .diagram-container, .stat-grid, .timeline,
  table, .scorecard, .code-block, pre, blockquote, .callout {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  img, svg {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* ========================================================================
     Typography for Print
     ======================================================================== */

  h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
    color: var(--text-primary);
  }

  h1 {
    font-size: 28pt;
    margin-bottom: 14pt;
    border: none;
  }

  h2 {
    font-size: 18pt;
    margin-top: 28pt;
    margin-bottom: 10pt;
    border-bottom: 1.5pt solid var(--accent);
    display: inline-block;
  }

  h3 {
    font-size: 14pt;
    margin-top: 18pt;
    color: var(--accent2);
  }

  h4 {
    font-size: 12pt;
    margin-top: 14pt;
  }

  p {
    font-size: 11pt;
    margin-bottom: 8pt;
    color: var(--text-primary);
  }

  p.lead, .lead {
    font-size: 12pt;
    color: var(--text-secondary);
    border-left: 2pt solid var(--accent);
    padding-left: 10pt;
  }

  a {
    color: var(--text-primary);
    text-decoration: underline;
  }

  /* Print footnote-style links */
  a[href^="http"]::after {
    content: " [" attr(href) "]";
    font-size: 8pt;
    color: var(--text-muted);
    word-break: break-all;
  }

  /* ========================================================================
     Hero — Simplified for Print
     ======================================================================== */

  .hero {
    background: none !important;
    padding: 40pt 0 20pt;
    text-align: left;
    border-bottom: 2pt solid var(--accent);
    margin-bottom: 20pt;
  }

  .hero::before,
  .hero::after {
    display: none !important;
  }

  .hero h1 {
    background: none !important;
    -webkit-text-fill-color: var(--text-primary) !important;
    color: var(--text-primary) !important;
    font-size: 32pt;
    break-before: avoid;
  }

  .hero-label {
    color: var(--accent);
    font-size: 9pt;
  }

  .hero-subtitle {
    color: var(--text-secondary);
    font-size: 12pt;
    max-width: none;
  }

  .hero-meta {
    font-size: 8pt;
    color: var(--text-muted);
    margin-top: 10pt;
  }

  /* ========================================================================
     Stat Cards — Print Layout
     ======================================================================== */

  .stat-grid {
    display: flex;
    gap: 10pt;
    margin: 16pt 0;
  }

  .stat-card {
    flex: 1;
    background: var(--bg-card) !important;
    border: 1pt solid var(--border);
    border-radius: 4pt;
    padding: 12pt 8pt;
    text-align: center;
  }

  .stat-card::after {
    background: var(--accent) !important;
    height: 2pt;
  }

  .stat-card:hover {
    transform: none !important;
    box-shadow: none !important;
  }

  .stat-number {
    font-size: 24pt;
    font-weight: 900;
    color: var(--accent) !important;
    -webkit-text-fill-color: var(--accent) !important;
    background: none !important;
  }

  .stat-label {
    font-size: 8pt;
    color: var(--text-secondary);
  }

  .stat-date {
    font-size: 7pt;
  }

  /* ========================================================================
     Timeline — Print Layout
     ======================================================================== */

  .timeline {
    padding-left: 24pt;
    margin: 16pt 0;
  }

  .timeline::before {
    width: 1pt;
    left: 10pt;
    background: var(--border);
  }

  .timeline-item {
    margin-bottom: 12pt;
    padding: 10pt 14pt;
    background: var(--bg-card);
    border: 0.5pt solid var(--border);
    border-radius: 3pt;
  }

  .timeline-item:hover {
    border-color: var(--border);
    box-shadow: none;
  }

  .timeline-item::before {
    width: 8pt;
    height: 8pt;
    left: -20pt;
    background: var(--accent) !important;
    box-shadow: none !important;
  }

  /* ========================================================================
     Blockquote — Print
     ======================================================================== */

  blockquote {
    background: var(--bg-card);
    border-left: 3pt solid var(--accent);
    padding: 10pt 14pt;
    margin: 12pt 0;
    border-radius: 0;
  }

  blockquote::before {
    display: none;
  }

  blockquote .source,
  blockquote cite {
    font-size: 9pt;
  }

  /* ========================================================================
     Callout — Print
     ======================================================================== */

  .callout {
    background: var(--bg-card) !important;
    border: 1pt solid var(--accent2);
    border-radius: 3pt;
    padding: 10pt 14pt;
    margin: 12pt 0;
  }

  .callout-warning,
  .callout-caution {
    border-color: var(--warning) !important;
  }

  .callout-key-insight,
  .callout-important {
    border-color: var(--accent) !important;
  }

  .callout-note {
    border-color: var(--accent2) !important;
  }

  .callout-tip,
  .callout-success {
    border-color: var(--success) !important;
  }

  /* ========================================================================
     Prediction Cards — Print
     ======================================================================== */

  .prediction-card {
    background: var(--bg-card) !important;
    border: 0.5pt solid var(--border);
    border-radius: 3pt;
    padding: 10pt 14pt;
    margin: 10pt 0;
  }

  .prediction-card::before {
    height: 1.5pt;
  }

  .prediction-card .prediction-text {
    color: var(--text-primary);
  }

  /* ========================================================================
     Chart Container — Print
     ======================================================================== */

  .chart-container {
    background: var(--bg-secondary) !important;
    border: 0.5pt solid var(--border);
    border-radius: 3pt;
    padding: 14pt;
    margin: 14pt 0;
    box-shadow: none !important;
  }

  .chart-container .chart-label {
    font-size: 8pt;
    color: var(--accent);
  }

  .chart-container .chart-caption {
    font-size: 7pt;
  }

  /* ========================================================================
     Diagram Container — Print
     ======================================================================== */

  .diagram-container {
    background: var(--bg-secondary) !important;
    border: 0.5pt solid var(--border);
    border-radius: 3pt;
    padding: 14pt;
    margin: 14pt 0;
  }

  /* ========================================================================
     Scorecard / Table — Print
     ======================================================================== */

  .scorecard th {
    background: var(--bg-card) !important;
    font-size: 8pt;
    padding: 6pt 8pt;
    border-bottom: 1.5pt solid var(--accent);
  }

  .scorecard td {
    padding: 6pt 8pt;
    font-size: 9pt;
    border-bottom: 0.5pt solid var(--border);
  }

  .scorecard tr:hover td {
    background: transparent !important;
  }

  .status {
    padding: 1pt 6pt;
    font-size: 8pt;
    border: 0.5pt solid currentColor;
    background: transparent !important;
  }

  /* ========================================================================
     Code — Print
     ======================================================================== */

  .code-block,
  pre {
    background: var(--bg-code) !important;
    border: 0.5pt solid var(--border);
    border-radius: 2pt;
    font-size: 8pt;
    line-height: 1.5;
    padding: 8pt 10pt;
  }

  code {
    font-size: 0.85em;
    background: var(--bg-code);
    border: 0.5pt solid var(--border);
  }

  /* ========================================================================
     Chapter Navigation — Hidden in Print
     ======================================================================== */

  .chapter-nav,
  .page-navigation,
  nav,
  .navbar,
  #quarto-sidebar,
  #quarto-margin-sidebar,
  .sidebar-note {
    display: none !important;
  }

  /* ========================================================================
     Image Sizing for 300dpi
     ======================================================================== */

  img {
    max-width: 100% !important;
    height: auto !important;
    image-resolution: 300dpi;
  }

  svg {
    max-width: 100%;
    height: auto;
  }

  /* ========================================================================
     Comparison Cards — Print
     ======================================================================== */

  .comparison-grid {
    display: flex;
    gap: 10pt;
  }

  .comparison-card {
    flex: 1;
    background: var(--bg-card);
    border: 0.5pt solid var(--border);
    border-radius: 3pt;
  }

  .comparison-card.left {
    border-top: 2pt solid var(--accent);
  }

  .comparison-card.right {
    border-top: 2pt solid var(--accent2);
  }

  /* ========================================================================
     Key Figure — Print
     ======================================================================== */

  .key-figure .number {
    background: none !important;
    -webkit-text-fill-color: var(--accent) !important;
    color: var(--accent) !important;
  }

  /* ========================================================================
     Drop Cap — Print
     ======================================================================== */

  .drop-cap::first-letter,
  .chapter-content > p:first-of-type::first-letter {
    font-size: 3em;
    color: var(--accent);
  }

  /* ========================================================================
     Font Embedding Declarations
     ======================================================================== */

  @font-face {
    font-family: 'Playfair Display';
    font-weight: 700;
    font-style: normal;
    src: local('Playfair Display Bold');
  }

  @font-face {
    font-family: 'Playfair Display';
    font-weight: 900;
    font-style: normal;
    src: local('Playfair Display Black');
  }

  @font-face {
    font-family: 'Inter';
    font-weight: 400;
    font-style: normal;
    src: local('Inter Regular');
  }

  @font-face {
    font-family: 'Inter';
    font-weight: 600;
    font-style: normal;
    src: local('Inter SemiBold');
  }

  @font-face {
    font-family: 'Inter';
    font-weight: 700;
    font-style: normal;
    src: local('Inter Bold');
  }

  @font-face {
    font-family: 'JetBrains Mono';
    font-weight: 400;
    font-style: normal;
    src: local('JetBrains Mono Regular');
  }

  @font-face {
    font-family: 'JetBrains Mono';
    font-weight: 500;
    font-style: normal;
    src: local('JetBrains Mono Medium');
  }
}
