:root{color-scheme:light;--ff-display-fallback:Georgia, "Times New Roman", serif;--ff-body-fallback:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ff-mono-fallback:ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--color-background:oklch(97.3077% .004119 91.446);--color-surface:oklch(94.8774% .005438 95.101);--color-surface-elevated:var(--color-background);--color-text-primary:oklch(20.136% .010083 276.515);--color-text-secondary:oklch(47.9745% .014598 275.848);--color-text-muted:var(--color-text-secondary);--color-accent:oklch(51.3525% .272724 271.45);--color-accent-hover:var(--color-accent);--color-border:oklch(91.2671% .008356 91.488);--color-border-strong:var(--color-border);--color-selection-background:var(--color-accent);--color-selection-text:oklch(100% 0 0);--font-display:var(--ff-display,var(--ff-display-fallback));--font-body:var(--ff-body,var(--ff-body-fallback));--font-mono:var(--ff-mono,var(--ff-mono-fallback));--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-size-6xl:3.75rem;--font-size-display:clamp(2.25rem, 1.5rem + 2.5vw, 3rem);--font-size-heading:clamp(1.875rem, 1.5rem + 1.5vw, 2.25rem);--font-size-feature:clamp(1.5rem, 1.25rem + 1vw, 2.25rem);--font-size-lead:clamp(1.0625rem, 1rem + .25vw, 1.125rem);--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.1;--line-height-heading:1.2;--line-height-body:1.65;--line-height-relaxed:1.75;--tracking-tight:-.025em;--tracking-normal:0;--tracking-wide:.025em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--space-layout-gap:clamp(1rem, .75rem + 1vw, 1.5rem);--space-component-gap:clamp(1.25rem, 1rem + 1vw, 2rem);--space-card-padding:clamp(1.25rem, 1rem + 1vw, 2rem);--space-section:clamp(4rem, 2rem + 5vw, 8rem);--space-section-gap:clamp(4rem, 3rem + 2vw, 6rem);--space-section-separator:clamp(2.5rem, 2rem + 1.5vw, 4rem);--space-page-start:clamp(4rem, 2rem + 6vw, 8rem);--space-page-end:clamp(5rem, 4rem + 2vw, 6rem);--content-width:72rem;--content-width-narrow:64rem;--page-padding:clamp(1rem, .5rem + 2.5vw, 2rem);--record-leading-min:6rem;--record-meta-min:10rem;--project-panel-min:20rem;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-2xl:2rem;--radius-pill:999px;--shadow-sm:0 1px 2px oklch(0% 0 0/.05);--shadow-md:0 4px 12px oklch(0% 0 0/.06), 0 1px 3px oklch(0% 0 0/.04);--shadow-lg:0 16px 40px oklch(0% 0 0/.08), 0 4px 12px oklch(0% 0 0/.04);--motion-duration-instant:.1s;--motion-duration-fast:.15s;--motion-duration-normal:.25s;--motion-duration-slow:.4s;--motion-duration-page:.36s;--motion-duration-page-enter:var(--motion-duration-page);--motion-duration-page-exit:.12s;--motion-easing-standard:cubic-bezier(.2, 0, 0, 1);--motion-easing-enter:cubic-bezier(0, 0, 0, 1);--motion-easing-exit:cubic-bezier(.3, 0, 1, 1);--motion-easing-emphasized:cubic-bezier(.2, .8, .2, 1);--motion-distance-xs:.25rem;--motion-distance-sm:.5rem;--motion-distance-md:1rem;--motion-distance-lg:1.5rem;--motion-page-enter-distance:var(--motion-distance-sm);--motion-page-exit-distance:calc(var(--motion-distance-xs) * -1);--motion-tilt-angle:4deg;--motion-tilt-perspective:64rem;--focus-width:2px;--focus-offset:3px;--border-width:1px;--control-height:calc(var(--space-10) + var(--space-1));--control-width-select:15rem;--control-width-menu:16rem;--control-width-picker:18rem;--icon-size:1.25rem;--list-indent:1.5rem;--skip-link-hidden-position:-200%;--z-index-dropdown:20;--z-index-skip-link:10;--breakpoint-content-stack:42rem;--resume-font-family:Arial, Helvetica, sans-serif;--resume-paper:oklch(100% 0 0);--resume-ink:oklch(20.136% .010083 276.515);--resume-secondary:oklch(42% .014 275.848);--resume-accent:oklch(44% .22 271.45);--resume-border:oklch(86% .008 91.488);--resume-page-width:8.5in;--resume-page-min-height:11in;--resume-page-margin:.48in;--resume-screen-padding:.48in;--resume-body-size:10pt;--resume-detailed-body-size:11pt;--resume-small-size:8.5pt;--resume-label-size:8pt;--resume-name-size:24pt;--resume-title-size:11.5pt;--resume-section-size:10pt;--resume-role-size:10.5pt;--resume-line-height:1.28;--resume-detailed-line-height:1.34;--resume-compact-line-height:1.18;--resume-section-gap:.16in;--resume-item-gap:.09in;--resume-list-indent:.18in;--resume-divider-width:1px;--resume-screen-shadow:0 16px 40px oklch(0% 0 0/.12)}.dark{color-scheme:dark;--color-background:oklch(17.7869% .00637 271.042);--color-surface:oklch(22.3239% .009815 276.612);--color-surface-elevated:var(--color-background);--color-text-primary:oklch(95.7802% .005425 95.101);--color-text-secondary:oklch(69.4274% .014708 276.96);--color-text-muted:var(--color-text-secondary);--color-accent:oklch(64.8817% .191124 279.657);--color-accent-hover:var(--color-accent);--color-border:oklch(27.3755% .009308 276.767);--color-border-strong:var(--color-border);--color-selection-background:var(--color-accent);--color-selection-text:oklch(15% .01 280);--shadow-sm:0 1px 2px oklch(0% 0 0/.2);--shadow-md:0 4px 12px oklch(0% 0 0/.25), 0 1px 3px oklch(0% 0 0/.18);--shadow-lg:0 16px 40px oklch(0% 0 0/.35), 0 4px 12px oklch(0% 0 0/.2)}*,:before,:after{box-sizing:border-box}html{background-color:var(--color-background);min-width:20rem;color:var(--color-text-primary);font-family:var(--font-body);text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--color-background);min-height:100svh;color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}img,picture,svg,video,canvas{max-width:100%;display:block}img,video{height:auto}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6,p{margin-block-start:0}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-family:var(--font-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);letter-spacing:var(--tracking-tight);text-wrap:balance}p{color:var(--color-text-secondary)}ul,ol{margin-block-start:0}hr{background-color:var(--color-border);border:0;height:1px;margin:0}::selection{background-color:var(--color-selection-background);color:var(--color-selection-text)}:focus-visible{outline:var(--focus-width) solid var(--color-accent);outline-offset:var(--focus-offset)}:target{scroll-margin-block-start:var(--space-20)}.container{width:min(calc(100% - (var(--page-padding) * 2)), var(--content-width));margin-inline:auto}.container--narrow{width:min(calc(100% - (var(--page-padding) * 2)), var(--content-width-narrow));margin-inline:auto}.section{padding-block:var(--space-section)}.surface{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.surface--elevated{background-color:var(--color-surface-elevated);box-shadow:var(--shadow-md)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-accent)}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.font-mono{font-family:var(--font-mono)}.link{color:var(--color-accent);text-underline-offset:.2em;transition:color var(--motion-duration-fast) var(--motion-easing-standard), text-decoration-thickness var(--motion-duration-fast) var(--motion-easing-standard);text-decoration:underline 1px}.link:hover{color:var(--color-accent-hover);text-decoration-thickness:2px}.prose{max-width:70ch;color:var(--color-text-secondary);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.prose>*+*{margin-block-start:1.25em}.prose :where(h1,h2,h3,h4,h5,h6){color:var(--color-text-primary);font-family:var(--font-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);letter-spacing:var(--tracking-tight);text-wrap:balance;margin-block:1.8em .6em}.prose :where(h1){font-size:var(--font-size-4xl)}.prose :where(h2){font-size:var(--font-size-3xl)}.prose :where(h3){font-size:var(--font-size-2xl)}.prose :where(h4){font-size:var(--font-size-xl)}.prose :where(p){color:var(--color-text-secondary)}.prose :where(strong,b){color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.prose :where(a){color:var(--color-accent);text-underline-offset:.2em;transition:color var(--motion-duration-fast) var(--motion-easing-standard), text-decoration-thickness var(--motion-duration-fast) var(--motion-easing-standard);text-decoration:underline 1px}.prose :where(a:hover){color:var(--color-accent-hover);text-decoration-thickness:2px}.prose :where(ul,ol){padding-inline-start:1.5rem}.prose :where(li){padding-inline-start:.25rem}.prose :where(li)::marker{color:var(--color-accent)}.prose :where(blockquote){border-inline-start:3px solid var(--color-accent);color:var(--color-text-primary);margin-inline:0;padding-inline-start:var(--space-5);font-style:italic}.prose :where(hr){margin-block:var(--space-10);background-color:var(--color-border)}.prose :where(code){background-color:var(--color-surface);color:var(--color-text-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);padding:.15em .35em;font-size:.9em}.prose :where(pre){padding:var(--space-5);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.prose :where(pre code){color:inherit;font-size:var(--font-size-sm);background:0 0;border-radius:0;padding:0}.prose :where(table){border-collapse:collapse;width:100%}.prose :where(th,td){padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);text-align:start}.prose :where(th){color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}@page{size:Letter;margin:var(--resume-page-margin)}html{background:var(--color-surface);color:var(--resume-ink);font-family:var(--resume-font-family);print-color-adjust:exact}body.resume-preview{min-height:100svh;padding-block:var(--space-8);background:var(--color-surface);color:var(--resume-ink);font-family:var(--resume-font-family);font-size:var(--resume-body-size);line-height:var(--resume-line-height);margin:0}.resume{width:min(calc(100% - (var(--page-padding) * 2)), var(--resume-page-width));min-height:var(--resume-page-min-height);padding:var(--resume-screen-padding);background:var(--resume-paper);box-shadow:var(--resume-screen-shadow);margin-inline:auto}.resume--detailed{font-size:var(--resume-detailed-body-size);line-height:var(--resume-detailed-line-height)}.resume *,.resume :before,.resume :after{box-sizing:border-box}.resume :is(h1,h2,h3,p,ul){margin-block-start:0}.resume :is(p,ul){margin-block-end:var(--resume-item-gap)}.resume a{color:var(--resume-accent);text-decoration:underline;text-decoration-thickness:var(--resume-divider-width);text-underline-offset:var(--space-1)}.resume__header{border-block-end:var(--resume-divider-width) solid var(--resume-border);text-align:center;padding-block-end:var(--resume-section-gap)}.resume__header h1{color:var(--resume-ink);font-family:var(--resume-font-family);font-size:var(--resume-name-size);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);line-height:var(--resume-compact-line-height);text-transform:uppercase;margin-block-end:var(--space-1)}.resume__title{color:var(--resume-ink);font-size:var(--resume-title-size);font-weight:var(--font-weight-bold);line-height:var(--resume-compact-line-height);margin-block-end:var(--space-2)}.resume__contact{color:var(--resume-secondary);font-size:var(--resume-small-size);line-height:var(--resume-compact-line-height)}.resume__contact p{margin-block-end:var(--space-1)}.resume__contact-label{font-weight:var(--font-weight-bold)}.resume__keywords{margin-block:var(--space-2) 0;color:var(--resume-secondary);font-size:var(--resume-label-size);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-wide)}.resume__section{margin-block-start:var(--resume-section-gap)}.resume__section>h2{border-block-end:var(--resume-divider-width) solid var(--resume-border);color:var(--resume-accent);font-family:var(--resume-font-family);font-size:var(--resume-section-size);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-wide);line-height:var(--resume-compact-line-height);text-transform:uppercase;break-after:avoid;margin-block-end:var(--resume-item-gap);padding-block-end:var(--space-1)}.resume__inline-list,.resume__skill-groups,.resume__engagements,.resume__technologies{color:var(--resume-secondary)}.resume__skill-groups p{margin-block-end:var(--space-1)}.resume__experience-list{gap:var(--resume-section-gap);display:grid}.resume__project,.resume__education{break-inside:avoid-page}.resume__role-heading{align-items:flex-start;gap:var(--space-4);break-after:avoid;grid-template-columns:minmax(0,1fr) auto;margin-block-end:var(--space-1);display:grid}.resume__engagements{break-after:avoid-page}.resume__role h3,.resume__project h3{color:var(--resume-ink);font-family:var(--resume-font-family);font-size:var(--resume-role-size);font-weight:var(--font-weight-bold);line-height:var(--resume-compact-line-height);margin-block-end:0}.resume__role-title{color:var(--resume-secondary);margin-block-end:0;font-style:italic}.resume__role-meta{color:var(--resume-secondary);font-size:var(--resume-small-size);text-align:end;margin-block-end:0;display:grid}.resume ul{padding-inline-start:var(--resume-list-indent)}.resume li{margin-block-end:var(--space-1);padding-inline-start:var(--space-1)}.resume li::marker{color:var(--resume-accent)}.resume__credentials{margin-block-end:0}.resume__education p{margin-block-end:var(--space-1)}@media print{html,body.resume-preview{background:var(--resume-paper)}body.resume-preview{min-height:auto;padding:0}.resume{width:auto;min-height:auto;box-shadow:none;margin:0;padding:0}.resume a{color:var(--resume-accent)}.resume__experience-list{display:block}.resume__role+.resume__role{margin-block-start:var(--resume-section-gap)}}@media (width<=42rem){body.resume-preview{padding-block:0}.resume{width:100%;min-height:100svh;padding:clamp(var(--space-4), .75rem + 2vw, var(--space-5));box-shadow:none}.resume__role-heading{grid-template-columns:1fr}.resume__role-meta{text-align:start}}
