@font-face{font-family:Merriweather;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/merriweather-regular.woff2) format("woff2")}@font-face{font-family:Merriweather;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/merriweather-bold.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-regular.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-medium.woff2) format("woff2")}*{box-sizing:border-box}:root{--ink: #1a1d22;--ink-soft: #3d434c;--ink-mute: #6a717c;--paper: #fbfaf7;--bg: #efece6;--accent-bg: #1d5d72;--accent-text: #f3f1eb;--accent-text-soft: #cdd6dc;--accent-text-mute: #94a8b3;--mono: "JetBrains Mono", ui-monospace, monospace;--sans: "Merriweather", Georgia, serif}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}.page{max-width:780px;margin:16px auto 48px;background:var(--paper);padding:44px;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f}section+section{margin-top:36px}.page-actions{max-width:780px;margin:48px auto 0;padding:0;display:flex;justify-content:flex-end}.download-pdf{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:1px solid var(--ink-soft);border-radius:6px;padding:12px 18px;cursor:pointer;line-height:1.2;text-decoration:none;transition:border-color .15s ease,background-color .15s ease}.download-pdf .pdf-icon{width:18px;height:18px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.download-pdf:hover{background:var(--paper);color:var(--ink);border-color:var(--ink)}.download-pdf:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.intro{display:grid;grid-template-columns:44% 1fr;gap:32px;align-items:start}.personal{padding:22px 26px;border-radius:6px;min-width:0;background:var(--accent-bg);color:var(--accent-text)}.personal .tagline,.personal .contact{color:var(--accent-text-soft)}.personal .contact-sep{color:var(--accent-text-mute)}.personal .contact a:hover{color:var(--accent-text)}.intro h1{font-size:32px;font-weight:700;letter-spacing:-.02em;margin:0 0 4px;line-height:1.1}.intro .tagline{font-size:15px;margin:0 0 14px;font-weight:400}.summary{font-size:15px;color:var(--ink-soft);margin:0;max-width:62ch;padding-top:8px}.contact{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:12px;margin:0}.contact-row{display:flex;align-items:center;gap:8px}.contact-sep{opacity:.6}.contact a{color:inherit;text-decoration:none}.job{display:grid;grid-template-columns:130px 1fr;gap:24px;margin-bottom:28px}.job:last-child{margin-bottom:0}.job-meta{font-family:var(--mono);font-size:12px;color:var(--ink-mute);line-height:1.5;padding-top:3px}.job-body h3{font-size:15.5px;font-weight:600;margin:0 0 2px;color:var(--ink)}.job-body .company{font-size:14px;color:var(--ink-soft);margin:0 0 10px}.job-body ul{margin:0;padding-left:22px;color:var(--ink-soft);list-style:disc outside}.job-body li{margin-bottom:4px;padding-left:4px}.job-body li::marker{color:var(--ink-soft)}.technical{background:var(--accent-bg);color:var(--accent-text);border-radius:6px;padding:22px 26px}.technical .tech-grid dt{color:var(--accent-text-mute)}.technical .tech-grid dd{color:var(--accent-text-soft)}.tech-grid{display:grid;grid-template-columns:130px 1fr;gap:22px 24px;margin:0}.tech-grid dt{font-family:var(--mono);font-size:12px;padding-top:3px;text-transform:uppercase;letter-spacing:.04em}.tech-grid dd{margin:0;font-size:14.5px}@media (max-width: 640px){.page-actions{margin-top:16px;padding:0}.page{padding:32px 24px;margin:8px 0 0}.intro,.job,.tech-grid{grid-template-columns:1fr;gap:4px}.intro{gap:16px}.job-meta,.tech-grid dt{padding-top:0}}@page{size:Letter}@media print{html,body{background:var(--paper);-webkit-print-color-adjust:exact;print-color-adjust:exact}.page-actions{display:none}.page{background:var(--paper);box-shadow:none;margin:0;max-width:none;padding:0}.intro,.technical,.job{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.experience{-moz-column-break-inside:auto;break-inside:auto;page-break-inside:auto}.job-body h3,.job-body .company{-moz-column-break-after:avoid;break-after:avoid;page-break-after:avoid}}
