*{box-sizing:border-box}html{background:var(--bg);color:var(--fg);font-family:var(--font-text);font-size:var(--text-sm);line-height:var(--leading-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;scrollbar-color:var(--fg-muted) transparent}body{background:var(--bg);margin:0}a{color:inherit;text-decoration:none}a,button{transition:color var(--dur-fast) ease}a:hover,button:hover{color:var(--link-hover)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}ul,dl{margin:0;padding:0;list-style:none}p,h1,h2,h3,dd{margin:0}::selection{background:var(--lagoon-400);color:var(--ink-900)}:focus-visible{outline:1.5px solid var(--focus);outline-offset:4px;border-radius:4px}.skip{z-index:100;border-radius:var(--radius-pill);background:var(--inverse-bg);color:var(--inverse-fg);padding:8px 14px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip:focus{transform:none}.display{font-family:var(--font-display);font-weight:var(--weight-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display)}.link{text-decoration:underline;-webkit-text-decoration-color:var(--underline);text-decoration-color:var(--underline);text-underline-offset:3px;text-decoration-thickness:1px}.link:hover{text-decoration-color:currentColor}.cv-bar{z-index:10;padding:var(--edge-top) max(var(--gutter), calc((100% - 1120px) / 2 + var(--gutter))) 12px;background:var(--bg);justify-content:space-between;align-items:center;gap:20px;font-weight:500;display:flex;position:sticky;top:0}.cv-bar__logo{width:var(--logo-w);color:var(--fg);display:block}.cv-bar__logo svg{width:100%;height:auto;display:block}.cv-bar__logo .logo-palm{fill:var(--palm)}.cv-bar__logo:hover{color:var(--fg)}.cv-bar__nav{align-items:center;gap:20px;display:inline-flex}.cv{--label:clamp(140px, 18vw, 240px);max-width:1120px;padding:clamp(40px, 9vh, 112px) var(--gutter) 96px;margin-inline:auto}.cv__head{gap:14px;padding-bottom:clamp(40px,7vh,80px);display:grid}.cv__name{font-size:var(--display-hero)}.cv__headline{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(20px,2.2vw,28px);font-weight:500;line-height:1.2}.cv__contact{color:var(--fg-muted);flex-wrap:wrap;gap:6px 20px;display:flex}.cv__section{grid-template-columns:var(--label) minmax(0, 1fr);gap:0 var(--space-8);border-top:1px solid var(--rule);padding:28px 0;display:grid}.cv__label{font-size:var(--text-sm);color:var(--fg-muted);font-weight:500}.cv__body{max-width:68ch}.cv__summary{font-size:var(--text-lg);text-wrap:pretty;gap:12px;line-height:1.55;display:grid}.cv__role+.cv__role{margin-top:36px}.cv__role-head{grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;margin-bottom:12px;display:grid}.cv__role-title{font-size:var(--text-lg);font-weight:500;line-height:1.3}.cv__role-meta{color:var(--fg-muted);grid-column:1}.cv__role-span{color:var(--fg-muted);white-space:nowrap;font-variant-numeric:tabular-nums;grid-area:1/2;align-self:baseline}.cv__points{gap:8px;display:grid}.cv__points li{text-wrap:pretty;padding-left:18px;position:relative}.cv__points li:before{content:"";border-top:1px solid var(--underline);width:6px;position:absolute;top:.7em;left:2px}.cv__work{gap:22px;display:grid}.cv__project{gap:2px;display:grid}.cv__project-title{font-size:var(--text-lg);font-weight:500;line-height:1.3}.cv__project-meta{color:var(--fg-muted)}.cv__project-summary{text-wrap:pretty;margin-top:4px}.cv__print-url{display:none}.cv__skills{gap:14px;display:grid}.cv__skill{gap:2px;display:grid}.cv__skill dt{font-weight:500}.cv__skill dd{color:var(--fg-muted)}.cv__plain{gap:8px;display:grid}@media (width<=767px){.cv__section{grid-template-columns:minmax(0,1fr);gap:14px;padding:24px 0}.cv__summary{font-size:16px}.cv__role-head{grid-template-columns:minmax(0,1fr)}.cv__role-span{white-space:normal;grid-area:auto/1}}@page{size:A4;margin:14mm 15mm}@media print{:root,:root[data-theme=dark],:root:not([data-theme=light]){--bg:#fff;--fg:#16292b;--fg-muted:#475759;--rule:#16292b2e;--underline:#16292b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{background:#fff;font-size:9pt;line-height:1.42}.skip,.cv-bar{display:none}.cv{--label:30mm;max-width:none;padding:0}.cv__head{gap:4pt;padding-bottom:10pt}.cv__name{font-size:26pt}.cv__headline{font-size:12pt}.cv__contact{gap:2pt 12pt}.link{text-decoration:none}.cv__section{break-inside:auto;gap:0 6mm;padding:9pt 0}.cv__label{font-size:9pt}.cv__body{max-width:none}.cv__summary{gap:5pt;font-size:9.5pt;line-height:1.45}.cv__role{break-inside:avoid}.cv__role+.cv__role{margin-top:10pt}.cv__role-head{margin-bottom:4pt}.cv__role-title,.cv__project-title{font-size:10pt}.cv__points{gap:3pt}.cv__points li{padding-left:11pt}.cv__work{gap:7pt}.cv__project{break-inside:avoid}.cv__project-summary{margin-top:1pt}.cv__print-url{color:var(--fg-muted);display:block}.cv__skills{gap:5pt}.cv__plain{gap:3pt}}
