/* =====================================================================
   print.css — turns the page into a clean one-column résumé
   Triggered by "Save as PDF" (window.print) or Ctrl/Cmd+P.
   ===================================================================== */

@media print {
  @page { margin: 16mm 18mm; }

  :root, [data-theme="dark"] {
    --bg: #fff; --bg-elev: #fff; --ink: #111; --ink-2: #333; --muted: #666;
    --line: #ddd; --line-strong: #999; --accent: #b23a0a; --accent-soft: transparent;
  }
  html { scroll-behavior: auto; }
  body { font-size: 10.5pt; line-height: 1.45; background: #fff; color: #111; }

  .site-header, .progress, .grain, .glow, .cursor, .intro, .marquee, .hero, .scroll-hint, .site-footer, .timeline-track, .xp-node,
  .btn, .copy-btn, .socials, .section-num, .section-lede, .portrait, .noscript { display: none !important; }

  .print-only { display: block; }
  .print-header { padding-bottom: 0.75rem; margin-bottom: 1rem; border-bottom: 1.5px solid #111; }
  .print-header .print-name { font-family: var(--font-display); font-size: 24pt; font-weight: 500; margin: 0; }
  .print-role { margin: 0.15rem 0 0.35rem; font-size: 12pt; color: #333; }
  .print-contact { margin: 0; font-family: var(--font-mono); font-size: 8.5pt; color: #444; letter-spacing: 0.02em; }

  .container { max-width: none; padding: 0; }
  .section { padding: 0 0 1.25rem; break-inside: auto; }
  .section-head { margin-bottom: 0.6rem; break-after: avoid; }
  .section-title { font-size: 15pt; padding-bottom: 0.2rem; border-bottom: 1px solid #ccc; }

  .about-grid, .edu-grid { grid-template-columns: 1fr; gap: 0.75rem; }
  .about-side { position: static; }
  .about-text .lede { font-size: 12pt; font-family: var(--font-body); }
  .about-text p { font-size: 10.5pt; max-width: none; }
  .facts { border: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; }
  .fact { display: inline; padding: 0; border: 0; }
  .fact dt { display: inline; margin-right: 0.35rem; }
  .fact dd { display: inline; font-size: 9.5pt; }
  .fact dd::after { content: ""; }

  .timeline { border: 0; }
  .timeline.has-active .xp:not(.is-active) { opacity: 1; }
  .pillars { grid-template-columns: 1fr 1fr 1fr; gap: 0.5rem; }
  .pillar { padding: 0.6rem 0.7rem; border: 1px solid #ddd; border-radius: 4px; box-shadow: none; }
  .pillar-top { margin-bottom: 0.4rem; }
  .pillar-icon { width: 28px; height: 28px; border-radius: 6px; }
  .pillar-icon .icon { width: 16px; height: 16px; }
  .pillar-title { font-size: 11pt; }
  .pillar-text { font-size: 9.5pt; }
  .uptime { display: none; }
  .xp { grid-template-columns: 110px 1fr; gap: 0.25rem 1rem; padding: 0.7rem 0; border-bottom: 1px solid #e5e5e5; break-inside: avoid; }
  .xp::before { display: none; }
  .xp-when { position: static; }
  .xp-role { font-size: 12.5pt; }
  .xp-summary, .xp-highlights li { font-size: 10pt; max-width: none; margin-top: 0.35rem; }
  .xp-highlights li { margin-bottom: 0.15rem; }
  .xp-body .tags { margin-top: 0.4rem; }
  .tags li { background: none; border: 1px solid #ccc; padding: 0.05rem 0.4rem; }

  .projects-grid { grid-template-columns: 1fr 1fr; gap: 0.6rem; }
  .project { min-height: 0; padding: 0.7rem 0.8rem; border: 1px solid #ddd; border-radius: 4px; box-shadow: none; break-inside: avoid; }
  .project-title { font-size: 12pt; margin: 0; }
  .project-desc { font-size: 9.5pt; }
  .project-arrow { display: none; }
  .project-link::after { content: " (" attr(href) ")"; position: static; font-size: 8pt; color: #666; font-family: var(--font-mono); }

  .skills-grid { grid-template-columns: 1fr 1fr; gap: 0.5rem 1.5rem; }
  .skill-name { font-size: 11pt; margin-bottom: 0.25rem; }
  .pills { gap: 0.2rem; }
  .pills li { padding: 0.05rem 0.45rem; font-size: 9pt; border-color: #ccc; }

  .edu, .cert { padding: 0.5rem 0; break-inside: avoid; }
  .edu-degree { font-size: 12pt; }
  .edu-details, .edu-school { font-size: 10pt; }

  .contact .section-head { display: none; }
  .contact-heading, .contact-blurb { display: none; }
  .contact-email { font-size: 11pt; background: none; }

  .reveal, .hero-anim, .hero-word { opacity: 1 !important; transform: none !important; }
  /* Scroll-triggered effects that never fired (printing straight from the top of the page)
     must not leave headings and icons hidden in the PDF */
  .section-title .ch { transform: none !important; }
  .section-title .split { overflow: visible; }
  .pillar-icon .icon * { stroke-dashoffset: 0 !important; }
  a { text-decoration: none; color: inherit; }
}
