.resume-page { --resume-ink:#17233a; --resume-muted:#52627a; --resume-accent:#1769e0; --resume-rule:#dbe3eb; --resume-panel:#f3f7fc; }
.resume-page .nav nav a[aria-current="page"] { color:#1769e0; font-weight:700; }
.resume-page a:focus-visible { outline:2px solid #1769e0; outline-offset:3px; }
.resume-main { padding:36px 4vw 84px; }
.resume-back { max-width:210mm; margin:0 auto 18px; }
.resume-back a { display:inline-flex; align-items:center; gap:10px; min-height:44px; border-bottom:1px solid #868f9f; font-size:14px; }
.resume-back a:hover,.resume-project a:hover { color:#1769e0; }
.resume-sheet { box-sizing:border-box; width:min(100%,210mm); min-height:297mm; margin:0 auto; padding:15.5mm 16.5mm 15mm; background:#fff; color:var(--resume-ink); font-family:Inter,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; box-shadow:0 5px 20px rgba(23,35,58,.1); -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.resume-header { padding-bottom:4.6mm; border-bottom:1px solid var(--resume-rule); }
.resume-header h1 { margin:0; font-size:24pt; line-height:1.04; letter-spacing:-.035em; }
.resume-role { margin:2mm 0 2.8mm; font-size:11pt; font-weight:700; line-height:1.1; }
.resume-contact { display:flex; flex-wrap:wrap; gap:1.5mm 5mm; margin:0; color:var(--resume-muted); font-size:9pt; font-style:normal; line-height:1.25; }
.resume-contact a { text-decoration:underline; text-decoration-color:#a7b8cf; text-underline-offset:2px; }
.resume-contact a:last-child { color:var(--resume-accent); font-weight:650; }
.resume-profile { padding:5mm 0 5.5mm; }
.resume-profile h2,.resume-grid h2 { margin:0 0 2.6mm; color:var(--resume-accent); font-size:10pt; font-weight:750; line-height:1.2; letter-spacing:.055em; }
.resume-profile h2 { color:var(--resume-ink); }
.resume-profile p { margin:0; font-size:10pt; line-height:1.42; }
.resume-grid { display:grid; grid-template-columns:minmax(0,1.62fr) minmax(0,.95fr); gap:5.2mm; align-items:start; }
.resume-experience { padding:0 5.3mm 0 0; border-right:1px solid var(--resume-rule); }
.resume-job+.resume-job { margin-top:5.6mm; }
.resume-job h3,.resume-sidebar h3 { margin:0; font-size:9.7pt; line-height:1.2; font-weight:750; }
.resume-job-meta { margin:1.2mm 0 1.8mm; color:var(--resume-muted); font-size:8.9pt; line-height:1.28; }
.resume-job-meta span { white-space:nowrap; }
.resume-job-meta span::before { content:"  ·  "; }
.resume-job ul { margin:0; padding-left:4mm; }
.resume-job li { padding-left:.3mm; font-size:10pt; line-height:1.34; }
.resume-job li+li { margin-top:1.3mm; }
.resume-job li::marker { color:var(--resume-accent); font-size:.8em; }
.resume-sidebar { padding:4.2mm 4.4mm 4.6mm; background:var(--resume-panel); }
.resume-sidebar section+section { margin-top:6mm; }
.resume-sidebar h2 { margin-bottom:3.2mm; }
.resume-sidebar h3 { font-size:9.1pt; }
.resume-sidebar p { margin:1.3mm 0 0; color:var(--resume-muted); font-size:9.6pt; line-height:1.32; }
.resume-project+.resume-project { margin-top:4.8mm; }
.resume-project a { text-decoration:underline; text-decoration-color:#afc1dc; text-underline-offset:2px; }
.resume-project a span { font-size:.85em; }
.resume-sidebar .resume-project-type { color:var(--resume-accent); font-size:9pt; font-weight:650; }
.resume-skills h3 { color:var(--resume-accent); font-size:9.1pt; }
.resume-skills p+h3 { margin-top:3mm; }
.resume-education h3:not(:first-of-type) { margin-top:3.5mm; }
@media screen and (max-width:850px) {
  .resume-main { padding:24px 4vw 64px; }
  .resume-sheet { min-height:0; padding:clamp(20px,5vw,16.5mm); }
  .resume-grid { grid-template-columns:1fr; gap:8mm; }
  .resume-experience { border-right:0; padding-right:0; }
  .resume-sidebar { padding:6mm; }
  .resume-profile p,.resume-job li,.resume-sidebar p { font-size:15px; line-height:1.5; }
  .resume-job h3,.resume-sidebar h3 { font-size:14px; }
  .resume-job-meta,.resume-contact { font-size:13px; }
}
@media print {
  @page { size:A4; margin:0; }
  .resume-page { background:#fff; }
  .resume-page .nav,.resume-back,.resume-page footer { display:none !important; }
  .resume-main { padding:0; }
  .resume-sheet { width:210mm; min-height:297mm; margin:0; padding:15.5mm 16.5mm 15mm; box-shadow:none; }
  .resume-grid { grid-template-columns:minmax(0,1.62fr) minmax(0,.95fr); gap:5.2mm; }
  .resume-experience { border-right:1px solid var(--resume-rule); padding-right:5.3mm; }
  .resume-sidebar { padding:4.2mm 4.4mm 4.6mm; }
  .resume-job,.resume-project,.resume-education { break-inside:avoid; }
}
