.cv[data-astro-cid-s5s3z7k4]{--cv-gap:clamp(4.5rem, 10vw, 8.5rem);color:var(--rd-ink);overflow-x:clip}.cv[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4]{color:inherit}.cv-hero[data-astro-cid-s5s3z7k4]{padding-block:clamp(2.5rem,6vw,4.5rem) clamp(1rem,3vw,2rem)}.cv-eyebrow[data-astro-cid-s5s3z7k4],.cv-num[data-astro-cid-s5s3z7k4],.cv-figure-caption[data-astro-cid-s5s3z7k4],.cv-role-period[data-astro-cid-s5s3z7k4],.cv-role-meta[data-astro-cid-s5s3z7k4],.cv-course-meta[data-astro-cid-s5s3z7k4],.cv-row-meta[data-astro-cid-s5s3z7k4],.cv-project-stack[data-astro-cid-s5s3z7k4]{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.cv-eyebrow[data-astro-cid-s5s3z7k4]{color:var(--rd-muted);align-items:center;gap:.5rem;margin:0 0 1.5rem;font-size:.72rem;display:flex}.cv-eyebrow[data-astro-cid-s5s3z7k4] span[data-astro-cid-s5s3z7k4]{color:var(--rd-lane-4);margin-right:.4rem}.cv-name[data-astro-cid-s5s3z7k4]{max-width:12ch;font-family:var(--font-display);letter-spacing:-.05em;text-wrap:balance;margin:0;font-size:clamp(3rem,10vw,8.5rem);font-weight:700;line-height:.88}.cv-headline[data-astro-cid-s5s3z7k4]{max-width:44rem;font-family:var(--font-display);letter-spacing:-.02em;color:var(--rd-muted);margin:clamp(1.25rem,3vw,2rem) 0 0;font-size:clamp(1.2rem,2.4vw,1.9rem);font-weight:500;line-height:1.25}.cv-headline[data-astro-cid-s5s3z7k4] strong[data-astro-cid-s5s3z7k4]{color:var(--rd-ink);font-weight:650}.cv-focus[data-astro-cid-s5s3z7k4]:before{content:"·" / "";color:var(--rd-lane-4);margin-inline:.05em .3em}.cv-contacts[data-astro-cid-s5s3z7k4]{flex-wrap:wrap;gap:0 1.5rem;margin:clamp(1.5rem,3vw,2.25rem) 0 0;padding:0;list-style:none;display:flex}.cv[data-astro-cid-s5s3z7k4] .cv-contacts[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4]{min-height:2.75rem;color:var(--rd-muted);overflow-wrap:anywhere;align-items:center;gap:.45rem;font-weight:550;text-decoration:none;transition:color .2s;display:inline-flex}.cv[data-astro-cid-s5s3z7k4] .cv-contacts[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4]:hover{color:var(--rd-ink)}.cv-actions[data-astro-cid-s5s3z7k4],.cv-closing-actions[data-astro-cid-s5s3z7k4]{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.cv[data-astro-cid-s5s3z7k4] .cv-button[data-astro-cid-s5s3z7k4]{border:1px solid var(--rd-line-strong);border-radius:999px;align-items:center;gap:.5rem;min-height:3rem;padding:0 1.3rem;font-weight:650;text-decoration:none;transition:border-color .2s,translate .15s ease-out;display:inline-flex}.cv[data-astro-cid-s5s3z7k4] .cv-button[data-astro-cid-s5s3z7k4]:hover{border-color:var(--rd-ink);translate:0 -2px}.cv[data-astro-cid-s5s3z7k4] .cv-button[data-astro-cid-s5s3z7k4]:active{translate:0 1px}.cv[data-astro-cid-s5s3z7k4] .cv-button--primary[data-astro-cid-s5s3z7k4]{background:var(--rd-accent-fill);border-color:var(--rd-lane-4);color:var(--rd-on-accent)}.cv[data-astro-cid-s5s3z7k4] .cv-button--primary[data-astro-cid-s5s3z7k4]:hover{border-color:var(--rd-lane-4)}.cv-figures[data-astro-cid-s5s3z7k4]{border-top:1px solid var(--rd-line-strong);grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(2.5rem,6vw,4.5rem) 0 0;padding:0;list-style:none;display:grid}.cv-figures[data-astro-cid-s5s3z7k4] li[data-astro-cid-s5s3z7k4]+li[data-astro-cid-s5s3z7k4]{border-left:1px solid var(--rd-line)}.cv[data-astro-cid-s5s3z7k4] .cv-figures[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4]{align-content:start;gap:.35rem;height:100%;padding:1.4rem clamp(.75rem,2vw,1.5rem) .5rem;text-decoration:none;display:grid}.cv-figures[data-astro-cid-s5s3z7k4] li[data-astro-cid-s5s3z7k4]:first-child a[data-astro-cid-s5s3z7k4]{padding-left:0}.cv-figure-value[data-astro-cid-s5s3z7k4]{font-family:var(--font-display);letter-spacing:-.05em;color:var(--rd-lane-4);font-variant-numeric:tabular-nums;font-size:clamp(3rem,7vw,5.75rem);font-weight:700;line-height:.9}.cv-figure-label[data-astro-cid-s5s3z7k4]{font-weight:650;line-height:1.3;transition:color .2s}.cv[data-astro-cid-s5s3z7k4] .cv-figures[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4]:hover .cv-figure-label[data-astro-cid-s5s3z7k4]{color:var(--rd-lane-4)}.cv-figure-caption[data-astro-cid-s5s3z7k4]{color:var(--rd-faint);font-size:.66rem;line-height:1.6}html[data-js=true] .cv[data-astro-cid-s5s3z7k4]:not([data-armed]) [data-astro-cid-s5s3z7k4][data-count]{opacity:0;animation:0s 2.5s forwards cv-fallback}@keyframes cv-fallback{to{opacity:1}}.cv-section[data-astro-cid-s5s3z7k4]{padding-block:var(--cv-gap) 0}.cv-title[data-astro-cid-s5s3z7k4]{font-family:var(--font-display);letter-spacing:-.045em;text-wrap:balance;gap:.9rem;margin:0 0 clamp(2rem,4vw,3rem);font-size:clamp(2.4rem,5.5vw,4.5rem);font-weight:650;line-height:.95;display:grid}.cv-num[data-astro-cid-s5s3z7k4]{letter-spacing:.18em;color:var(--rd-lane-4);font-size:.72rem;font-weight:500;line-height:1}.cv-lead[data-astro-cid-s5s3z7k4]{letter-spacing:-.012em;max-width:34em;color:var(--rd-muted);margin:0;font-size:clamp(1.3rem,2.3vw,2rem);font-weight:450;line-height:1.45}.cv-lead[data-astro-cid-s5s3z7k4] strong[data-astro-cid-s5s3z7k4]{color:var(--rd-ink);background:linear-gradient(var(--rd-lane-4), var(--rd-lane-4)) no-repeat 0 100% / calc(var(--hl,1) * 100%) .1em;padding-bottom:.04em;font-weight:600}.cv-stack[data-astro-cid-s5s3z7k4]{border-top:1px solid var(--rd-line)}.cv-stack-row[data-astro-cid-s5s3z7k4]{border-bottom:1px solid var(--rd-line);grid-template-columns:minmax(12rem,18rem) minmax(0,1fr);align-items:start;gap:1rem clamp(1.5rem,4vw,3rem);padding-block:clamp(1.5rem,3vw,2.25rem);display:grid}.cv-stack-area[data-astro-cid-s5s3z7k4]{font-family:var(--font-display);letter-spacing:-.025em;align-items:baseline;gap:.75rem;margin:0;padding-top:.35rem;font-size:clamp(1.35rem,2.2vw,1.75rem);font-weight:650;line-height:1.1;display:flex}.cv-stack-area[data-astro-cid-s5s3z7k4]:before{content:"";background:var(--lane);border-radius:999px;flex:none;width:.6rem;height:.6rem;translate:0 -.1em}.cv-chips[data-astro-cid-s5s3z7k4]{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.cv-chip-item[data-astro-cid-s5s3z7k4]{display:flex}.cv-chip[data-astro-cid-s5s3z7k4]{border:1px solid var(--rd-line-strong);background:var(--rd-surface);border-radius:999px;align-items:center;gap:.55rem;min-height:2.75rem;padding:.45rem 1rem;font-weight:550;line-height:1.2;transition:translate .16s ease-out,border-color .16s ease-out;display:inline-flex}a[data-astro-cid-s5s3z7k4].cv-chip:hover,a[data-astro-cid-s5s3z7k4].cv-chip:focus-visible{border-color:var(--accent-text);translate:0 -2px}a[data-astro-cid-s5s3z7k4].cv-chip:focus-visible{outline-offset:2px}@media (prefers-reduced-motion:reduce){a[data-astro-cid-s5s3z7k4].cv-chip:hover,a[data-astro-cid-s5s3z7k4].cv-chip:focus-visible{translate:none}}.cv-logo[data-astro-cid-s5s3z7k4]{object-fit:contain;flex:none;width:auto;max-width:2.5rem;height:1.25rem}.cv-chip--mark[data-astro-cid-s5s3z7k4] .cv-logo[data-astro-cid-s5s3z7k4]{max-width:6rem;height:1.05rem}[data-theme=light] .cv-logo--dark[data-astro-cid-s5s3z7k4],[data-theme=dark] .cv-logo--light[data-astro-cid-s5s3z7k4]{display:none}.cv-timeline[data-astro-cid-s5s3z7k4]{--cv-period:clamp(10rem, 16vw, 14rem);--cv-node-col:3rem;--cv-col-gap:1rem;--cv-rail-x:calc(var(--cv-period) + var(--cv-col-gap) + 1.5rem);position:relative}.cv-rail[data-astro-cid-s5s3z7k4]{top:.6rem;bottom:0;left:var(--cv-rail-x);background:repeating-linear-gradient(to bottom, var(--rd-line-strong) 0 4px, transparent 4px 9px);width:2px;position:absolute;translate:-1px}.cv-rail-fill[data-astro-cid-s5s3z7k4]{background:var(--rd-lane-4);transform-origin:top;position:absolute;inset:0}.cv-roles[data-astro-cid-s5s3z7k4]{gap:clamp(1.5rem,3vw,2.5rem);margin:0;padding:0;list-style:none;display:grid}.cv-role[data-astro-cid-s5s3z7k4]{grid-template-columns:var(--cv-period) var(--cv-node-col) minmax(0, 1fr);column-gap:var(--cv-col-gap);grid-template-areas:"period node card";align-items:start;display:grid}.cv-node[data-astro-cid-s5s3z7k4]{border:2px solid var(--lane);background:var(--rd-bg);border-radius:999px;grid-area:node;justify-self:center;width:1.1rem;height:1.1rem;margin-top:1.9rem;position:relative}.cv-node-fill[data-astro-cid-s5s3z7k4]{border-radius:inherit;background:var(--lane);position:absolute;inset:2px}.cv-role-period[data-astro-cid-s5s3z7k4]{text-align:right;color:var(--rd-muted);grid-area:period;margin:1.85rem 0 0;font-size:.72rem;line-height:1.5}.cv-role-card[data-astro-cid-s5s3z7k4]{border:1px solid var(--rd-line);border-radius:var(--radius-card);background:var(--rd-surface);box-shadow:inset 3px 0 0 var(--lane);grid-area:card;padding:clamp(1.25rem,2.5vw,2rem)}.cv-role-title[data-astro-cid-s5s3z7k4]{font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(1.6rem,3vw,2.25rem);font-weight:650;line-height:1}.cv-role-org[data-astro-cid-s5s3z7k4]{color:var(--rd-ink);margin:.6rem 0 0;font-weight:600}.cv-role-meta[data-astro-cid-s5s3z7k4]{color:var(--rd-muted);flex-wrap:wrap;gap:.4rem 1rem;margin:.85rem 0 0;padding:0;font-size:.66rem;line-height:1.5;list-style:none;display:flex}.cv-role-meta[data-astro-cid-s5s3z7k4] .cv-role-years[data-astro-cid-s5s3z7k4]{border:1px solid var(--rd-lane-4);background:var(--rd-accent-fill);color:var(--rd-on-accent);border-radius:999px;padding:.2rem .6rem}.cv-points[data-astro-cid-s5s3z7k4]{color:var(--rd-muted);gap:.6rem;margin:1.25rem 0 0;padding:0;line-height:1.6;list-style:none;display:grid}.cv-points[data-astro-cid-s5s3z7k4] li[data-astro-cid-s5s3z7k4]{padding-left:1.4rem;position:relative}.cv-points[data-astro-cid-s5s3z7k4] li[data-astro-cid-s5s3z7k4]:before{content:"";background:var(--lane);width:.75rem;height:2px;position:absolute;top:.8em;left:0}.cv-projects[data-astro-cid-s5s3z7k4],.cv-education[data-astro-cid-s5s3z7k4]{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);margin:0;padding:0;list-style:none;display:grid}.cv-education[data-astro-cid-s5s3z7k4]{grid-template-columns:repeat(3,minmax(0,1fr))}.cv-project[data-astro-cid-s5s3z7k4],.cv-course[data-astro-cid-s5s3z7k4]{border:1px solid var(--rd-line);border-radius:var(--radius-card);background:var(--rd-surface);box-shadow:inset 0 3px 0 var(--lane);flex-direction:column;gap:.75rem;padding:clamp(1.4rem,3vw,2.25rem);display:flex}.cv-project-name[data-astro-cid-s5s3z7k4]{font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:.95}.cv-project-tagline[data-astro-cid-s5s3z7k4]{margin:0;font-size:1.1rem;font-weight:600;line-height:1.35}.cv-project-summary[data-astro-cid-s5s3z7k4],.cv-course-text[data-astro-cid-s5s3z7k4]{color:var(--rd-muted);margin:0;line-height:1.6}.cv-project-stack[data-astro-cid-s5s3z7k4]{flex-wrap:wrap;gap:.4rem;margin:.25rem 0 0;padding:0;font-size:.62rem;list-style:none;display:flex}.cv-project-stack[data-astro-cid-s5s3z7k4] li[data-astro-cid-s5s3z7k4]{border:1px solid var(--rd-line-strong);color:var(--rd-ink);border-radius:999px;padding:.35rem .6rem}.cv-project-links[data-astro-cid-s5s3z7k4]{flex-wrap:wrap;gap:0 1.5rem;margin:auto 0 0;padding:.5rem 0 0;list-style:none;display:flex}.cv[data-astro-cid-s5s3z7k4] .cv-project-links[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4]{min-height:2.75rem;color:var(--rd-lane-4);text-underline-offset:.25em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--rd-lane-4) 40%, transparent);align-items:center;gap:.4rem;font-weight:650;transition:text-decoration-color .2s;display:inline-flex}.cv[data-astro-cid-s5s3z7k4] .cv-project-links[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4]:hover{text-decoration-color:var(--rd-lane-4)}.cv-course-meta[data-astro-cid-s5s3z7k4]{color:var(--rd-lane-4);margin:0;font-size:.66rem}.cv-course-title[data-astro-cid-s5s3z7k4]{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:clamp(1.3rem,2vw,1.6rem);font-weight:650;line-height:1.12}.cv-pair[data-astro-cid-s5s3z7k4]{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,6vw,6rem);display:grid}.cv-section--compact[data-astro-cid-s5s3z7k4] .cv-title[data-astro-cid-s5s3z7k4]{font-size:clamp(2rem,4vw,3.25rem)}.cv-rows[data-astro-cid-s5s3z7k4]{border-top:1px solid var(--rd-line);margin:0;padding:0;list-style:none}.cv-row[data-astro-cid-s5s3z7k4]{border-bottom:1px solid var(--rd-line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1.5rem;padding-block:1.1rem;display:flex}.cv-row-title[data-astro-cid-s5s3z7k4]{font-weight:650}.cv-row-meta[data-astro-cid-s5s3z7k4]{color:var(--rd-muted);font-size:.66rem}.cv-row--language[data-astro-cid-s5s3z7k4]{flex-direction:column;align-items:start}.cv-row--language[data-astro-cid-s5s3z7k4] .cv-row-title[data-astro-cid-s5s3z7k4]{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.6rem}.cv-row-text[data-astro-cid-s5s3z7k4]{color:var(--rd-muted);line-height:1.5}.cv-closing[data-astro-cid-s5s3z7k4]{margin-top:var(--cv-gap);border-top:1px solid var(--rd-line);background:var(--rd-raised);padding-block:clamp(3.5rem,8vw,6rem)}.cv-closing-quote[data-astro-cid-s5s3z7k4]{border-top:3px solid var(--rd-lane-4);max-width:56rem;margin:0 0 clamp(1.5rem,3vw,2.25rem);padding-top:1.25rem}.cv-closing-quote[data-astro-cid-s5s3z7k4] p[data-astro-cid-s5s3z7k4]{max-width:22ch;font-family:var(--font-display);letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(2rem,5vw,4.25rem);font-weight:700;line-height:.98}@media (width>=1024px){.cv-hero-grid[data-astro-cid-s5s3z7k4]{grid-template-columns:minmax(0,1fr) minmax(17rem,22rem);align-items:end;column-gap:clamp(2.5rem,6vw,6rem);display:grid}.cv[data-astro-cid-s5s3z7k4] .cv-figures[data-astro-cid-s5s3z7k4]{border-top:0;border-left:1px solid var(--rd-line-strong);grid-template-columns:minmax(0,1fr);margin:0}.cv[data-astro-cid-s5s3z7k4] .cv-figures[data-astro-cid-s5s3z7k4] li[data-astro-cid-s5s3z7k4]+li[data-astro-cid-s5s3z7k4]{border-left:0;border-top:1px solid var(--rd-line)}.cv[data-astro-cid-s5s3z7k4] .cv-figures[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4],.cv[data-astro-cid-s5s3z7k4] .cv-figures[data-astro-cid-s5s3z7k4] li[data-astro-cid-s5s3z7k4]:first-child a[data-astro-cid-s5s3z7k4]{padding:1.1rem 0 1.1rem clamp(1.25rem,2.5vw,2rem)}}@media (width<=899.98px){.cv-stack-row[data-astro-cid-s5s3z7k4]{grid-template-columns:minmax(0,1fr)}.cv-education[data-astro-cid-s5s3z7k4]{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-pair[data-astro-cid-s5s3z7k4]{grid-template-columns:minmax(0,1fr)}.cv-timeline[data-astro-cid-s5s3z7k4]{--cv-node-col:1.5rem;--cv-col-gap:.85rem;--cv-rail-x:.75rem}.cv-role[data-astro-cid-s5s3z7k4]{grid-template-columns:var(--cv-node-col) minmax(0, 1fr);grid-template-areas:"node period""node card"}.cv-node[data-astro-cid-s5s3z7k4]{grid-row:1/span 2;margin-top:.2rem}.cv-role-period[data-astro-cid-s5s3z7k4]{text-align:left;margin:0 0 .6rem}.cv-rail[data-astro-cid-s5s3z7k4]{top:.3rem}}@media (width<=639.98px){.cv-figures[data-astro-cid-s5s3z7k4]{grid-template-columns:minmax(0,1fr)}.cv-figures[data-astro-cid-s5s3z7k4] li[data-astro-cid-s5s3z7k4]+li[data-astro-cid-s5s3z7k4]{border-left:0;border-top:1px solid var(--rd-line)}.cv[data-astro-cid-s5s3z7k4] .cv-figures[data-astro-cid-s5s3z7k4] a[data-astro-cid-s5s3z7k4]{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"value label""value caption";align-items:center;column-gap:1rem;padding:1rem 0}.cv-figure-value[data-astro-cid-s5s3z7k4]{grid-area:value;min-width:2ch}.cv-figure-label[data-astro-cid-s5s3z7k4]{grid-area:label;align-self:end}.cv-figure-caption[data-astro-cid-s5s3z7k4]{grid-area:caption;align-self:start}.cv-projects[data-astro-cid-s5s3z7k4],.cv-education[data-astro-cid-s5s3z7k4]{grid-template-columns:minmax(0,1fr)}}.cv-markdown[data-astro-cid-37omnnft] a{color:var(--ink);text-decoration-color:var(--border);text-underline-offset:.18em;text-decoration-line:underline;transition:color .15s ease-out,text-decoration-color .15s ease-out}.cv-markdown[data-astro-cid-37omnnft] a:hover{color:var(--accent-text);text-decoration-color:var(--accent-text)}.cv-markdown[data-astro-cid-37omnnft] strong{color:var(--ink)}
