.cv-page{--paper:#f6f3ec;--paper-2:#fff;--ink:#221e17;--ink-soft:#6b6355;--line:#ded5c2;--accent:#23a55d;--accent-soft:#dff3e6;--amber:#3ddc84;--stamp:#23a55d;--shadow:0 1px 2px #221e170a;--ease:cubic-bezier(.22, 1, .36, 1)}@media (prefers-color-scheme:dark){.cv-page{--paper:#121a16;--paper-2:#121a16;--ink:#efe8da;--ink-soft:#a99e88;--line:#3a3226;--accent:#3ddc84;--accent-soft:#16281e;--amber:#3ddc84;--stamp:#3ddc84;--shadow:0 1px 2px #00000059}}:root[data-theme=dark] .cv-page{--paper:#121a16;--paper-2:#121a16;--ink:#efe8da;--ink-soft:#a99e88;--line:#3a3226;--accent:#3ddc84;--accent-soft:#16281e;--amber:#3ddc84;--stamp:#3ddc84;--shadow:0 1px 2px #00000059}:root[data-theme=light] .cv-page{--paper:#f6f3ec;--paper-2:#fff;--ink:#221e17;--ink-soft:#6b6355;--line:#ded5c2;--accent:#23a55d;--accent-soft:#dff3e6;--amber:#3ddc84;--stamp:#23a55d;--shadow:0 1px 2px #221e170a}.cv-page{background-color:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;background-image:linear-gradient(#060c0ab8,#060c0ad1),url(/hero-workspace.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;padding-top:74px;font-family:ui-sans-serif,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6}.cv-page .serif{font-family:ui-serif,Georgia,Iowan Old Style,Times New Roman,serif}.cv-page .mono{font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,Consolas,monospace}.cv-page .signature{font-family:ui-serif,Georgia,Iowan Old Style,Times New Roman,serif;font-style:italic}.cv-page a{color:var(--accent)}.cv-page .page{max-width:1000px;margin:0 auto;padding:clamp(28px,6vw,72px) clamp(20px,6vw,40px) 90px}.cv-page .letter{background:var(--paper-2);border:1px solid var(--line);opacity:0;padding:clamp(24px,6vw,52px);animation:.5s forwards cv-rise;position:relative}.cv-page .letterhead{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px;padding-bottom:20px;display:flex}.cv-page .identity{align-items:center;gap:16px;display:flex}.cv-page .avatar{object-fit:cover;border:1px solid var(--line);border-radius:50%;flex-shrink:0;width:128px;height:128px}.cv-page .letterhead h1{text-wrap:balance;margin:0 0 4px;font-size:clamp(24px,4vw,30px);font-weight:500}.cv-page .letterhead .role{color:var(--ink-soft);margin:0;font-size:14px;font-weight:400}.cv-page .addr{text-align:right;color:var(--ink-soft);font-size:13px;line-height:1.7}.cv-page .addr a{color:var(--ink-soft);text-decoration:none}.cv-page .addr a:hover{color:var(--accent)}.cv-page .contact-lines{color:var(--ink-soft);margin-top:6px;font-size:13px;line-height:1.7}.cv-page .contact-lines a{color:var(--ink-soft);text-decoration:none}.cv-page .contact-lines a:hover{color:var(--accent)}.cv-page .lede{color:var(--ink-soft);margin:0;font-size:14.5px}.cv-page .lede b{color:var(--ink);font-weight:600}.cv-page .cert-columns{grid-template-columns:1fr 1fr;column-gap:28px;display:grid}.cv-page .cert-item{border-top:1px solid var(--line);padding:9px 0;font-size:14px}.cv-page .cert-item:first-child{border-top:none}.cv-page .cert-item .what{font-weight:500}.cv-page .cert-item .org{color:var(--ink-soft);font-size:13px}.cv-page .dateline{color:var(--ink-soft);margin-bottom:26px;font-size:13px}.cv-page .salute{margin-bottom:16px}.cv-page .letter-body p{max-width:66ch;margin:0 0 16px}.cv-page .closing{margin-top:30px}.cv-page .closing .sig-name{color:var(--accent);margin-top:4px;font-size:22px}.cv-page .closing .sig-role{color:var(--ink-soft);margin-top:2px;font-size:12.5px}.cv-page .enclosure-tab{align-items:center;gap:12px;margin:40px 0 24px;display:flex}.cv-page .enclosure-tab .rule{background:var(--line);flex:1;height:1px}.cv-page .enclosure-tab span.label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:11px}.cv-page section.block{margin-top:30px}.cv-page .block h2{letter-spacing:.02em;align-items:baseline;gap:10px;margin:0 0 16px;font-size:15px;font-weight:600;display:flex}.cv-page .block h2 .num{color:var(--ink-soft);font-size:12px;font-weight:400}.cv-page .skills-grid{grid-template-columns:120px 1fr;gap:10px 16px;font-size:14px;display:grid}.cv-page .skills-grid dt{color:var(--accent);font-weight:600}.cv-page .skills-grid dd{color:var(--ink-soft);margin:0}.cv-page .job{border-top:1px solid var(--line);padding:16px 0}.cv-page .job:first-child{border-top:none;padding-top:0}.cv-page .job-head{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:6px;display:flex}.cv-page .job-title{font-size:15.5px;font-weight:600}.cv-page .job-title .org{color:var(--accent)}.cv-page .job-when{color:var(--ink-soft);white-space:nowrap;font-size:12.5px}.cv-page .job ul{color:var(--ink-soft);margin:6px 0;padding-left:18px;font-size:14.5px}.cv-page .job ul li{margin-bottom:3px}.cv-page .job .clients{color:var(--ink-soft);font-size:13px}.cv-page .job .clients b{color:var(--ink);font-weight:600}.cv-page .list-rows{flex-direction:column;display:flex}.cv-page .row{border-top:1px solid var(--line);grid-template-columns:130px 1fr;align-items:baseline;gap:14px;padding:9px 0;font-size:14px;display:grid}.cv-page .row:first-child{border-top:none}.cv-page .row .when{color:var(--ink-soft);font-size:12.5px}.cv-page .row .what{font-weight:500}.cv-page .row .org{color:var(--ink-soft);font-size:13px}.cv-page .facts{color:var(--ink-soft);flex-wrap:wrap;gap:8px 22px;font-size:13px;display:flex}.cv-page .facts b{color:var(--ink);font-weight:600}.cv-page .letter-footer{border-top:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:44px;padding-top:18px;font-size:12px;display:flex}@keyframes cv-rise{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.cv-page .letter{opacity:1;animation:none}}@media (max-width:560px){.cv-page .letterhead{flex-direction:column}.cv-page .addr{text-align:left}.cv-page .skills-grid{grid-template-columns:1fr;row-gap:4px}.cv-page .row,.cv-page .cert-columns{grid-template-columns:1fr}.cv-page .footer-copy{text-align:left}}.cv-page .download-bar{justify-content:center;margin-top:28px;display:flex}.cv-page .download-btn{color:var(--ink);border:1px solid var(--ink);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;padding:10px 22px;font-size:13px;text-decoration:none;transition:background .15s,color .15s;display:inline-block}.cv-page .download-btn:hover{background:var(--ink);color:var(--paper-2)}@media print{.cv-page .download-bar,.cv-page .navbar,.cv-page .footer,:is(body:has(.cv-page) .back-to-top,body:has(.cv-page) .progress-bar){display:none}.cv-page{background-image:none;background-color:var(--paper);padding-top:0!important}.cv-page .page{max-width:none;padding:0}.cv-page .letter{opacity:1;border:none;padding:0;animation:none}.cv-page .job,.cv-page .row,.cv-page .block{break-inside:avoid;page-break-inside:avoid}.cv-page .block h2{break-after:avoid;page-break-after:avoid}}body:has(.cv-page) .progress-bar{background:linear-gradient(90deg,#3ddc84,#23a55d)}.cv-page .navbar{padding:18px 0}.cv-page .navbar.scrolled{box-shadow:var(--shadow);border-bottom:1px solid var(--line);background:#121a16bf;padding:12px 0}@media (prefers-color-scheme:light){.cv-page .navbar.scrolled{background:#f6f3ecd9}}:root[data-theme=light] .cv-page .navbar.scrolled{background:#f6f3ecd9}.cv-page .nav.container{max-width:1000px}.cv-page .nav-brand{color:var(--ink)}.cv-page .nav-brand .dot{color:var(--accent)}.cv-page .nav-links a{color:var(--ink-soft)}.cv-page .nav-links a:hover,.cv-page .nav-links a:focus-visible{color:var(--ink)}.cv-page .nav-links a:after{background:var(--accent)}.cv-page .footer{background:var(--accent-soft);border-top:1px solid var(--line)}.cv-page .footer-tag,.cv-page .footer-links,.cv-page .footer-links a{color:var(--ink-soft)}.cv-page .footer-links a:hover{color:var(--accent)}.cv-page .footer-copy{color:var(--ink-soft)}body:has(.cv-page) .back-to-top{color:#0e1512;background:#23a55d;box-shadow:0 1px 2px #221e170a}
