/* ==========================================================
   Jesse Becker - Personal Site  |  print.css
   Loaded with media="print". This stylesheet generates the
   downloadable resume PDF (print resume.html to PDF), so the
   pt sizes below are tuned to fit one page - change with care.

   Rule one: print is always the light theme. The token block
   below re-declares light values for BOTH :root and the dark
   override, so a visitor printing in dark mode still gets ink
   on white paper.
   ========================================================== */

@media print {
  :root,
  [data-theme="dark"] {
    color-scheme: light;

    --bg:             #FFFFFF;
    --surface:        #FFFFFF;
    --surface-sunken: #F7F4EE;

    --ink:       #171310;
    --ink-soft:  #45403A;
    --ink-faint: #6B645C;

    --accent:      #C23A0A;
    --accent-deep: #A33009;
    --accent-tint: #FBE3D6;

    --hairline:        #D8CFC0;
    --hairline-strong: #BDB2A0;

    --shadow-sheet: none;
    --shadow-lift:  none;
    --shadow-float: none;

    --grain-opacity: 0;
    --grain-invert:  0;

    --polaroid-bg:  #FFFFFF;
    --polaroid-ink: #45403A;

    --ghost-damp: 1;
  }

  @page { size: Letter; margin: .42in .48in; }

  body {
    background: #fff;
    color: var(--ink);
    font-size: 9pt;
  }

  /* Strip every decorative and navigational layer */
  body::after,
  .stack::before,
  .stack::after,
  .navbar,
  .nav-links,
  .skip-link,
  .to-top,
  .page-banner,
  .cta-section,
  .site-footer,
  .theme-toggle,
  .resume-actions .btn,
  .resume-sidebar .sidebar-card:last-child {
    display: none !important;
  }

  /* Nothing tilts, lifts, or animates on paper */
  *, *::before, *::after {
    transform: none !important;
    box-shadow: none !important;
    animation: none !important;
    transition: none !important;
  }

  /* Scroll-reveal elements that never entered the viewport are still
     at opacity 0; printing must not depend on how far the visitor
     scrolled (headless print never scrolls at all). */
  .reveal { opacity: 1 !important; }

  .sheet { border: 1px solid var(--hairline); border-radius: 0; }

  .section { padding: 0; }
  .container { max-width: none; padding: 0; }

  .resume-actions {
    margin-bottom: .14in;
    padding: 0 0 .1in;
    border: none;
    border-bottom: 2px solid var(--accent);
    border-radius: 0;
    background: #fff;
  }

  .resume-actions-left h2 { font-size: 18pt; letter-spacing: -.02em; }
  .resume-actions-left p { margin-top: .02in; font-size: 8.5pt; }
  .resume-contact { margin-top: .04in; font-size: 8pt; }
  .resume-contact small { font-size: 7pt; }

  .resume-layout { display: block; }

  .resume-summary {
    margin-bottom: .1in;
    padding: .1in .12in;
    border: 1px solid var(--hairline);
    border-radius: 0;
    background: var(--surface-sunken);
  }

  .resume-summary h3 { margin-bottom: .04in; font-size: 9pt; }
  .resume-summary p { font-size: 8pt; line-height: 1.35; }

  .resume-section-heading { gap: .08in; margin: .1in 0 .06in; }
  .resume-section-heading h2 { font-size: 9.5pt; }

  .experience-list { gap: .08in; }

  .experience-card {
    break-inside: avoid;
    padding: .08in .1in;
    border: 1px solid var(--hairline);
    border-radius: 0;
    background: #fff;
  }

  /* The paper is narrower than the 820px breakpoint, so the mobile
     stacking rules match during print. Stacked, the title block's
     12rem flex-basis becomes a 12rem-tall column - pin the header
     back to the desktop row layout on paper. */
  .experience-card-header { flex-direction: row; gap: .08in; margin-bottom: .05in; }
  .experience-meta { align-items: flex-end; }
  .experience-role { font-size: 9pt; }
  .experience-company { font-size: 7.8pt; }
  .experience-date { padding: .01in .05in; font-size: 7pt; }
  .experience-location { font-size: 6.8pt; }
  .experience-summary { margin-bottom: .05in; font-size: 7.8pt; line-height: 1.3; }
  .experience-highlights { gap: .025in; }

  .experience-highlight { gap: .05in; font-size: 7.35pt; line-height: 1.28; }
  .experience-highlight::before { width: 4px; height: 4px; margin-top: .055in; }

  .experience-card .tags { display: none; }

  .resume-sidebar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .08in;
    margin-top: .1in;
  }

  .sidebar-card {
    break-inside: avoid;
    padding: .08in .1in;
    border: 1px solid var(--hairline);
    border-radius: 0;
    background: #fff;
  }

  .sidebar-card:first-child { grid-column: 1 / -1; }
  .sidebar-card h3 { margin-bottom: .06in; font-size: 8.5pt; }
  .sidebar-skill-group { margin-bottom: .045in; }
  .sidebar-skill-label { margin-bottom: .025in; font-size: 6.2pt; }
  .sidebar-tags { gap: .025in; }
  .sidebar-tag { padding: .015in .045in; border-radius: 0; font-size: 6.2pt; }

  .edu-entry,
  .cert-entry { padding: .03in 0; }

  .edu-degree { font-size: 7.4pt; }
  .edu-school { font-size: 7pt; }
  .cert-entry { gap: .05in; }
  .cert-icon { width: .22in; height: .22in; font-size: 6.5pt; }
  .cert-name { font-size: 7pt; }
  .cert-org { font-size: 6.4pt; }
}
