:root{--page:#f4f2ec;--surface:#fbfaf6;--surface-2:#ece9e0;--ink:#1f2328;--ink-muted:#5b6067;--ink-faint:#8e9298;--rule:#dcd8cd;--rule-strong:#c6c1b3;--accent:#1b5f80;--accent-strong:#0f4560;--accent-soft:#e1ecf1;--head:"Libre Franklin", system-ui, sans-serif;--body:"Lora", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--s-green:#8fcfa6;--s-yellow:#e8cd6c;--s-orange:#e9a865;--s-red:#e88b7b;--s-blue:#6b9fcf;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--page:#11171b;--surface:#182026;--surface-2:#1f2930;--ink:#e7e5de;--ink-muted:#a3aaaf;--ink-faint:#6e777d;--rule:#2a343a;--rule-strong:#3a464d;--accent:#86bcd8;--accent-strong:#acd2e6;--accent-soft:#1b2e39;color-scheme:dark}}:root[data-theme=dark]{--page:#11171b;--surface:#182026;--surface-2:#1f2930;--ink:#e7e5de;--ink-muted:#a3aaaf;--ink-faint:#6e777d;--rule:#2a343a;--rule-strong:#3a464d;--accent:#86bcd8;--accent-strong:#acd2e6;--accent-soft:#1b2e39;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--page);color:var(--ink);font:17px/1.6 var(--body);-webkit-font-smoothing:antialiased}a{color:var(--accent-strong)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}img{display:block;max-width:100%}.stripe{--b:18px;height:7px;flex:none;background:linear-gradient(to right,var(--s-green) 0 var(--b),var(--s-yellow) 0 calc(var(--b)*2),var(--s-orange) 0 calc(var(--b)*3),var(--s-red) 0 calc(var(--b)*4),var(--s-blue) 0 calc(100% - var(--b)*4),var(--s-red) 0 calc(100% - var(--b)*3),var(--s-orange) 0 calc(100% - var(--b)*2),var(--s-yellow) 0 calc(100% - var(--b)),var(--s-green) 0)}@media(max-width:520px){.stripe{--b:12px;height:5px}}.kicker{font:600 11.5px/1 var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.formats{display:flex;gap:6px}.formats a{font:500 11.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;text-decoration:none;color:var(--accent-strong);border:1px solid var(--rule-strong);border-radius:5px;padding:5px 7px 4px;background:var(--surface)}.formats a:hover{background:var(--accent-soft);border-color:var(--accent)}footer.site{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;padding:22px 16px 26px;font:12.5px/1.4 var(--head);color:var(--ink-faint)}footer.site a{color:inherit}.bar{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--page) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}.bar-in{max-width:820px;margin:0 auto;padding:10px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font:500 13.5px/1.2 var(--head)}.bar .home{color:var(--ink);text-decoration:none;font-weight:700}.bar .home:hover{color:var(--accent-strong)}.bar .variant{color:var(--ink-muted)}.bar .variant a{color:inherit}.bar .variant b{color:var(--ink);font-weight:600}.bar .formats{margin-left:auto}.bar .formats a{padding:6px 8px 5px}.bar .formats a:first-child{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--surface)}.resume{max-width:820px;margin:0 auto;padding:48px 16px 40px;font-size:16.5px;line-height:1.62}.resume>header h1{font:800 clamp(34px,6vw,50px)/1.02 var(--head);letter-spacing:-.03em;margin:0}.resume .headline{font:600 clamp(17px,2.2vw,21px)/1.3 var(--head);color:var(--accent-strong);margin:10px 0 0}.resume .tagline{font:15px/1.45 var(--head);color:var(--ink-muted);margin:6px 0 0}.contact{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px;font:13.5px/1.5 var(--head);color:var(--ink-muted)}.contact a{color:inherit;text-decoration-color:var(--rule-strong);text-underline-offset:3px}.contact a:hover{color:var(--accent-strong)}.phone{display:inline-flex;align-items:baseline;gap:8px}.phone [data-phone]{font-variant-numeric:tabular-nums}.phone button{font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--accent-strong);background:0 0;border:1px solid var(--rule-strong);border-radius:4px;padding:3px 6px 2px;cursor:pointer}.phone button:hover{border-color:var(--accent);background:var(--accent-soft)}.body h2{display:flex;align-items:center;gap:14px;margin:44px 0 16px;font:600 12px/1 var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.body h2::after{content:"";flex:1;height:1px;background:var(--rule)}.body>p{margin:0 0 12px;max-width:40em}#summary+p{font-size:18.5px;line-height:1.5}#core-competencies+ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px}#core-competencies+ul li{margin:0;padding:8px 11px;font:500 13.5px/1 var(--head);border-radius:999px;background:var(--surface);border:1px solid var(--rule)}#notable-achievements+ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}#notable-achievements+ul li{margin:0;padding:16px 18px;background:var(--surface);border:1px solid var(--rule);border-radius:10px;font-size:15px;line-height:1.5}#notable-achievements+ul strong{display:block;font:700 17px/1.25 var(--head);margin-bottom:6px}#notable-achievements+ul li:nth-child(3n+1){box-shadow:inset 0 3px 0 var(--s-orange)}#notable-achievements+ul li:nth-child(3n+2){box-shadow:inset 0 3px 0 var(--s-blue)}#notable-achievements+ul li:nth-child(3n){box-shadow:inset 0 3px 0 var(--s-green)}@media(max-width:640px){#notable-achievements+ul{grid-template-columns:1fr}}.body h3,.body h4{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px;margin:0}.body h3{font:700 20px/1.25 var(--head);letter-spacing:-.01em;margin-top:30px}.body h2+h3{margin-top:0}.body h3 small{font:14px/1 var(--head);color:var(--ink-muted);letter-spacing:0;margin-left:6px}.body h4{font:600 15.5px/1.3 var(--head);color:var(--accent-strong);margin-top:14px}.body h3+h4{margin-top:6px}.body time{font:12.5px/1 var(--mono);color:var(--ink-faint);white-space:nowrap;letter-spacing:.01em}.body h3 time{font-size:13px;color:var(--ink-muted)}.body ul{margin:8px 0 0;padding-left:1.15em}.body li{margin:0 0 7px;padding-left:.2em}.body li::marker{color:var(--rule-strong)}#earlier-experience+ul{list-style:none;padding:0}#earlier-experience+ul>li{margin:0 0 16px;padding:0;font:15.5px/1.3 var(--head);color:var(--ink-muted)}#earlier-experience+ul>li>strong{font-weight:600;color:var(--accent-strong)}#earlier-experience+ul>li>em{float:right;margin-left:16px;font:12.5px/1.6 var(--mono);font-style:normal;color:var(--ink-faint);letter-spacing:.01em}#earlier-experience+ul>li>ul{margin-top:6px;padding-left:1.15em;list-style:disc;font:16.5px/1.62 var(--body);color:var(--ink)}#technical-skills+ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 20px}#technical-skills+ul li{display:contents}#technical-skills+ul strong{font:600 14px/1.6 var(--head)}@media(max-width:560px){#technical-skills+ul{grid-template-columns:1fr;gap:2px}}#education+p strong{font:600 15.5px/1.4 var(--head)}.print-only{display:none}footer.site{border-top:1px solid var(--rule);max-width:820px;margin:20px auto 0;padding-top:28px}@page{size:Letter;margin:.55in .6in .6in}@media print{:root{--ink:#1b1d20;--ink-muted:#4f545a;--ink-faint:#6f747a;--rule:#cfcabd;--rule-strong:#b9b3a3;--accent-strong:#0f4560;color-scheme:light}html,body{background:#fff;color:var(--ink)}.bar,footer.site{display:none}.print-only{display:block}.stripe{--b:.16in;height:3.5pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}.resume{max-width:none;padding:12pt 0 0;font:9.6pt/1.42 var(--body)}.resume>header h1{font-size:23pt;letter-spacing:-.02em}.resume .headline{font-size:11.5pt;margin-top:4pt}.resume .tagline{font-size:9pt;margin-top:2pt}.contact{font-size:8.6pt;margin-top:7pt;gap:0 12pt}.contact a{text-decoration:none}.phone button{display:none}.body h2{font-size:8pt;margin:13pt 0 6pt;gap:8pt;color:var(--accent-strong);break-after:avoid}.body h2::after{background:var(--rule-strong)}.body>p{margin-bottom:5pt;max-width:none}#summary+p{font-size:10.4pt;line-height:1.4}#core-competencies+ul{display:block;font:9pt/1.5 var(--head)}#core-competencies+ul li{display:inline;padding:0;border:0;background:0 0;border-radius:0;font:inherit;white-space:nowrap}#core-competencies+ul li:not(:last-child)::after{content:"  ·  ";color:var(--ink-faint);white-space:pre}#notable-achievements+ul{display:block}#notable-achievements+ul li,#notable-achievements+ul li:nth-child(n){background:0 0;border:0;box-shadow:none;padding:0;margin:0 0 2pt;font-size:9.6pt}#notable-achievements+ul strong{display:inline;font-size:9.6pt;margin:0}.body h3{font-size:11pt;margin-top:9pt;break-after:avoid}.body h3 small{font-size:8.6pt}.body h4{font-size:9.8pt;margin-top:6pt;break-after:avoid}.body h3+h4{margin-top:2pt}.body time{font-size:8.2pt}.body h3 time{font-size:8.6pt}.body ul{margin-top:3pt}.body li{margin-bottom:3pt;break-inside:avoid}#technical-skills+ul{gap:2pt 12pt}#technical-skills+ul strong{font-size:9pt;line-height:1.45}#earlier-experience+ul>li{font-size:9.8pt;margin-bottom:3pt}#earlier-experience+ul>li>em{font-size:8.2pt;line-height:1.5}#earlier-experience+ul>li>ul{display:none}#education+p strong{font-size:9.6pt}.resume>footer{margin-top:14pt;text-align:center;font:7.5pt/1.4 var(--head);color:var(--ink-faint)}a{color:inherit}}