/* ============================================================
   Print / PDF stylesheet — themed to match the site (blue/grey,
   monospace accents) while staying compact and readable on paper.
   Rendered both by real browser printing and by the server-side
   WeasyPrint export (both use the "print" media type), so this is
   the single source of truth for how a resume looks on paper.
   ============================================================ */

:root {
  --print-accent: #1f5f91;
  --print-text: #17202a;
  --print-muted: #52606e;
  --print-border: #c3cfdb;
  --print-mono: "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace;
  --print-sans: "Liberation Sans", Arial, Helvetica, sans-serif;
}

@page {
  size: letter;
  margin: 0.35in 0.5in;
}

* {
  animation: none !important;
  transition: none !important;
}

html {
  /* shrinks every rem-based margin/padding inherited from base.css
     proportionally for print, on top of the pt overrides below */
  font-size: 8pt;
}

body {
  background: #fff !important;
  color: var(--print-text) !important;
  font-family: var(--print-sans) !important;
  font-size: 9.5pt;
  line-height: 1.16;
}

body::before {
  content: none !important;
}

.no-print,
.term-bar,
.term-nav,
.term-footer,
.print-btn,
.cursor {
  display: none !important;
}

.crt {
  max-width: none;
  margin: 0;
  padding: 0;
}

.term-body {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
}

a {
  color: var(--print-accent) !important;
  text-decoration: none;
}

/* ---------- header ---------- */

.resume {
  position: relative;
  padding-top: 4pt;
}
.resume::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2.5pt;
  background: linear-gradient(90deg, var(--print-accent), var(--print-border) 70%);
}

.resume-header {
  border-bottom: 1.5pt solid var(--print-accent);
  padding-bottom: 4pt;
  margin-bottom: 6pt;
}
.resume-header h1 {
  color: var(--print-text) !important;
  font-family: var(--print-mono);
  font-weight: 700;
  font-size: 16.5pt;
  letter-spacing: -0.01em;
  margin-bottom: 1pt;
}
.print-command {
  display: block !important;
  font-family: var(--print-mono);
  color: var(--print-muted) !important;
  font-size: 7.5pt;
  margin: 0 0 2pt;
}
.resume-tagline {
  color: var(--print-muted) !important;
  font-size: 8.5pt;
  margin-bottom: 3pt;
}
.contact-list {
  color: var(--print-text) !important;
  font-size: 8pt;
  gap: 0.2rem 0.8rem;
  margin-bottom: 2pt;
}
.clearance {
  color: var(--print-accent) !important;
  font-weight: 700;
  font-size: 8.5pt;
  margin-bottom: 2pt;
}
.variant-banner {
  display: block;
  border-left: none;
  border-bottom: 0.75pt dotted var(--print-border);
  padding: 0 0 3pt;
  margin: 2pt 0 9pt;
  break-inside: avoid;
}
.variant-banner-label {
  color: var(--print-accent) !important;
  font-family: var(--print-mono);
  font-weight: 700;
  font-size: 8pt;
}

/* ---------- sections ---------- */

.resume-section {
  margin: 5.5pt 0;
  padding-top: 4pt;
  border-top: none;
  break-inside: auto;
}
.resume-section:first-of-type {
  padding-top: 0;
}
.resume-section h2 {
  display: inline-block;
  color: var(--print-accent) !important;
  font-family: var(--print-mono);
  font-weight: 700;
  font-size: 9.5pt;
  letter-spacing: 0.05em;
  background: #eaf2f9;
  border-left: 2.5pt solid var(--print-accent);
  padding: 1.5pt 5pt;
  margin-bottom: 4pt;
  break-after: avoid;
}
.resume-section h2::before {
  content: "## ";
  color: var(--print-muted);
}

/* leaf-level entries stay intact; the section/employer containers
   around them are free to break between entries */
.education-entry,
.project-entry,
.job {
  break-inside: avoid;
}

.employer {
  break-inside: auto;
}
.employer + .employer {
  margin-top: 6pt;
}

.employer h3,
.education-entry h3,
.project-entry h3 {
  color: var(--print-text) !important;
  font-family: var(--print-mono);
  font-weight: 700;
  font-size: 9.5pt;
  break-after: avoid;
}
.employer .location,
.education-entry .location,
.project-entry .location,
.job .dates {
  color: var(--print-muted) !important;
  font-weight: normal;
}
.employer .note {
  color: var(--print-muted) !important;
  margin-bottom: 4pt;
  font-style: italic;
  break-after: avoid;
}

.job {
  margin: 2pt 0 4.5pt;
}
.job h4 {
  color: var(--print-text) !important;
  font-family: var(--print-mono);
  font-weight: 700;
  font-size: 9pt;
  margin-bottom: 2pt;
  break-after: avoid;
}
.job ul,
.education-entry ul {
  padding-left: 1.1em;
}
.job li,
.education-entry li {
  margin-bottom: 1.5pt;
}
.job li::marker,
.education-entry li::marker {
  color: var(--print-accent);
}

.project-entry {
  margin-bottom: 3.5pt;
}
.project-entry p {
  margin-top: 2pt;
}
.project-entry .links {
  margin-top: 1.5pt;
  font-size: 7.5pt;
  color: var(--print-muted) !important;
}

/* ---------- skills ---------- */

.skills {
  list-style: none;
  margin: 0;
  padding: 0;
}
.skill-group {
  break-inside: avoid;
  margin-bottom: 3pt;
  font-size: 8.5pt;
  color: var(--print-text) !important;
}
.skill-group strong {
  color: var(--print-accent) !important;
}

/* ---------- footer ---------- */

.print-footer {
  margin-top: 4pt;
  padding-top: 3pt;
  border-top: 0.75pt solid var(--print-border);
  color: var(--print-muted) !important;
  font-family: var(--print-mono);
  font-size: 7.5pt;
}
.print-footer::before {
  content: "# ";
}
