:root{--ink: #1a2332;--ink-muted: #4a5568;--accent: #0d5c63;--rule: #c5d0d3;--paper: #f7f5f1;--paper-deep: #ebe6dc;--white: #ffffff;--font-display: "Source Serif 4", Georgia, serif;--font-body: "IBM Plex Sans", "Helvetica Neue", sans-serif}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-height:100vh;font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--ink);background:radial-gradient(ellipse 80% 50% at 10% 0%,rgba(13,92,99,.08),transparent 55%),linear-gradient(165deg,var(--paper) 0%,var(--paper-deep) 100%)}.page-shell{max-width:820px;margin:0 auto;padding:1.5rem 1rem 3rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .9rem;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:var(--white);font:inherit;font-size:.85rem;font-weight:500;text-decoration:none;cursor:pointer}.btn:hover{filter:brightness(1.08)}.btn-secondary{background:transparent;color:var(--accent)}.resume{background:var(--white);padding:2.25rem 2.5rem;box-shadow:0 12px 40px #1a233214;border:1px solid rgba(197,208,211,.7)}.header{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:2px solid var(--accent)}.name{margin:0;font-family:var(--font-display);font-size:clamp(2rem,4vw,2.65rem);font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--ink)}.label{margin:.4rem 0 0;font-size:1.05rem;font-weight:500;color:var(--accent)}.contact{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin-top:.85rem;font-size:.9rem;color:var(--ink-muted)}.contact a{color:var(--accent);text-decoration:none}.contact a:hover{text-decoration:underline}.section{margin-top:1.5rem}.section-title{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.15rem;font-weight:600;letter-spacing:.02em;color:var(--ink);border-bottom:1px solid var(--rule);padding-bottom:.35rem}.summary{margin:0;color:var(--ink)}.job,.edu{margin-bottom:1.25rem}.job:last-child,.edu:last-child{margin-bottom:0}.job-header,.edu-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;align-items:baseline}.job-title,.edu-title{margin:0;font-size:1rem;font-weight:600}.job-meta,.edu-meta{margin:.15rem 0 0;font-size:.9rem;color:var(--ink-muted)}.dates{font-size:.85rem;font-weight:500;color:var(--ink-muted);white-space:nowrap}.job-summary,.edu-summary{margin:.5rem 0 0}.highlights{margin:.45rem 0 0;padding-left:1.15rem}.highlights li{margin-bottom:.3rem}.skills-list{margin:0;padding:0;list-style:none;display:grid;gap:.55rem}.skills-list li{display:grid;grid-template-columns:minmax(9rem,11rem) 1fr;gap:.5rem 1rem}.skill-name{font-weight:600;color:var(--ink)}.skill-keywords{color:var(--ink-muted)}@media(max-width:560px){.resume{padding:1.5rem 1.15rem}.skills-list li{grid-template-columns:1fr;gap:.15rem}}@media print{body{background:#fff;font-size:11pt;line-height:1.35}.page-shell{max-width:none;padding:0}.no-print{display:none!important}.resume{box-shadow:none;border:none;padding:0}a{color:inherit;text-decoration:none}.header{margin-bottom:.55rem;padding-bottom:.45rem}.name{font-size:20pt}.label{font-size:11pt}.contact{margin-top:.35rem;font-size:10pt}.section{margin-top:.55rem}.section-title{margin-bottom:.35rem;font-size:12pt;padding-bottom:.15rem}.job,.edu{margin-bottom:.45rem}.job-title,.edu-title{font-size:11pt}.job-meta,.edu-meta,.dates{font-size:9.5pt}.job-summary,.edu-summary{margin-top:.25rem}.highlights{margin-top:.2rem}.highlights li{margin-bottom:.1rem}.skills-list{gap:.25rem}.skills-list li{grid-template-columns:minmax(8rem,10rem) 1fr}.section-title,.job-header,.edu-header{break-after:avoid}.job-summary,.edu-summary,.highlights{orphans:2;widows:2}}@page{margin:.5in;size:letter}.letter-body{font-size:1.02rem;line-height:1.65}.letter-body p{margin:0 0 1.1rem}.letter-body p:last-child{margin-bottom:0}.letter-close{margin-top:1.75rem!important}.letter-body a{color:var(--accent);text-decoration:none}.letter-body a:hover{text-decoration:underline}@media print{.letter-body{font-size:11pt;line-height:1.45}.letter-body p{margin-bottom:.75rem}}
