:root,[data-theme=light]{color-scheme:light;--color-canvas: #dde3e5;--color-surface: #e9edef;--color-surface-muted: #cfd9dc;--color-text: #172125;--color-text-muted: #536268;--color-border: #aebdc1;--color-border-strong: #819398;--color-accent: #0b6470;--color-accent-strong: #074b54;--color-focus: #0b6470;--color-selection: #c6e5e8;--font-sans: "Aptos", "Segoe UI Variable", "Segoe UI", ui-sans-serif, system-ui, sans-serif;--font-mono: "Cascadia Code", "SFMono-Regular", Consolas, ui-monospace, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: clamp(1.0625rem, 1vw + .75rem, 1.25rem);--font-size-heading: clamp(2rem, 4vw, 4rem);--font-size-display: clamp(3rem, 8vw, 7rem);--line-height-tight: .98;--line-height-heading: 1.08;--line-height-body: 1.7;--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;--section-space: clamp(4.5rem, 10vw, 8rem);--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--content-width: 76rem;--reading-width: 68ch;--page-gutter: clamp(1.25rem, 4vw, 3rem);--duration-fast: .16s;--duration-base: .24s;--duration-reveal: .56s;--ease-standard: cubic-bezier(.2, .8, .2, 1);--ease-reveal: cubic-bezier(.16, 1, .3, 1);--layer-header: 10;--layer-overlay: 20;--header-height: 4.5rem}[data-theme=dark]{color-scheme:dark;--color-canvas: #101416;--color-surface: #171c1f;--color-surface-muted: #20272a;--color-text: #edf3f4;--color-text-muted: #a7b4b8;--color-border: #344044;--color-border-strong: #526166;--color-accent: #78c6cf;--color-accent-strong: #a5dfe5;--color-focus: #78c6cf;--color-selection: #244c52}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-canvas: #101416;--color-surface: #171c1f;--color-surface-muted: #20272a;--color-text: #edf3f4;--color-text-muted: #a7b4b8;--color-border: #344044;--color-border-strong: #526166;--color-accent: #78c6cf;--color-accent-strong: #a5dfe5;--color-focus: #78c6cf;--color-selection: #244c52}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-4));background:var(--color-canvas)}body{min-width:20rem;margin:0;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-body);text-rendering:optimizeLegibility}::selection{background:var(--color-selection);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}a{color:var(--color-accent);text-decoration-color:transparent;text-decoration-thickness:.08em;text-underline-offset:.2em;transition:color var(--duration-fast) var(--ease-standard),text-decoration-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}a:hover{color:var(--color-accent-strong);text-decoration-color:currentColor}a:active{transform:translateY(1px)}h1,h2,h3,p{margin-block:0}h1,h2,h3{color:var(--color-text);font-weight:650;letter-spacing:-.04em;text-wrap:balance}h1{max-width:12ch;font-size:var(--font-size-display);line-height:var(--line-height-tight)}h2{max-width:18ch;font-size:var(--font-size-heading);line-height:var(--line-height-heading)}p{max-width:var(--reading-width);color:var(--color-text-muted);text-wrap:pretty}.skip-link{position:fixed;z-index:var(--layer-overlay);inset-block-start:var(--space-4);inset-inline-start:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-text);color:var(--color-canvas);font-size:var(--font-size-sm);font-weight:600;transform:translateY(calc(-100% - var(--space-8)))}.skip-link:focus{transform:translateY(0)}main{width:min(100% - (2 * var(--page-gutter)),var(--content-width));margin-inline:auto}.site-header{position:sticky;z-index:var(--layer-header);inset-block-start:0;min-height:var(--header-height);border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-canvas) 92%,transparent);backdrop-filter:blur(1rem)}.site-header__inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;width:min(100% - (2 * var(--page-gutter)),var(--content-width));min-height:var(--header-height);margin-inline:auto}.site-identity{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--color-text);font-size:var(--font-size-sm);font-weight:650;letter-spacing:-.02em;text-decoration:none}.site-identity>span:first-child{display:grid;width:2rem;height:2rem;place-items:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.04em}.desktop-nav{justify-self:center}.nav-list,.mobile-menu__links{padding:0;margin:0;list-style:none}.nav-list{display:flex;align-items:center;gap:var(--space-6)}.nav-list a,.header-action{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:600;text-decoration:none}.nav-list a:hover,.header-action:hover{color:var(--color-text)}.desktop-actions{display:flex;align-items:center;gap:var(--space-3)}.language-toggle,.theme-toggle{min-width:2.75rem;min-height:2.25rem;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:650;letter-spacing:.04em;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.language-toggle:hover,.theme-toggle:hover{border-color:var(--color-accent);background:var(--color-surface-muted);color:var(--color-text)}.language-toggle:active,.theme-toggle:active{transform:translateY(1px)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center}.theme-toggle__indicator{position:relative;width:1.5rem;height:.75rem;border:1px solid var(--color-border-strong);border-radius:1rem;background:var(--color-surface-muted)}.theme-toggle__indicator:after{position:absolute;inset-block-start:.125rem;inset-inline-start:.125rem;width:.375rem;height:.375rem;border-radius:50%;background:var(--color-accent);content:"";transition:transform var(--duration-fast) var(--ease-standard)}[data-theme=dark] .theme-toggle__indicator:after{transform:translate(.75rem)}.theme-toggle__label,.language-toggle--mobile,.theme-toggle--mobile{display:none}.header-action{padding:var(--space-2) var(--space-3)}.header-action--primary{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text)}.header-action--primary:hover{border-color:var(--color-accent)}.menu-toggle,.mobile-menu{display:none}.section-shell{scroll-margin-top:calc(var(--header-height) + var(--space-4));min-height:40vh;padding-block:var(--section-space);border-bottom:1px solid var(--color-border)}[data-motion-ready=true] [data-reveal]{opacity:0;transform:translateY(.75rem);transition:opacity var(--duration-reveal) var(--ease-reveal),transform var(--duration-reveal) var(--ease-reveal)}[data-motion-ready=true] [data-reveal][data-reveal-order="1"]{transition-delay:60ms}[data-motion-ready=true] [data-reveal][data-reveal-order="2"]{transition-delay:.12s}[data-motion-ready=true] [data-reveal][data-reveal-order="3"]{transition-delay:.18s}[data-motion-ready=true] [data-reveal][data-revealed=true]{opacity:1;transform:translateY(0)}.hero{display:grid;align-items:end;min-height:min(46rem,calc(100dvh - 4.5rem));padding-block-start:clamp(5rem,12vw,9rem);padding-block-end:clamp(3.5rem,8vw,6rem)}.hero__layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(19rem,.85fr);gap:clamp(var(--space-8),6vw,var(--space-16));align-items:center;width:100%}.hero__identity{display:grid;align-content:end}.hero__identity h1{max-width:9ch}.hero__content{display:grid;gap:var(--space-6);padding-block-end:.25rem}.hero__headline,.hero__summary{max-width:60ch;font-size:var(--font-size-base)}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-block-start:var(--space-2)}.hero-action{display:inline-grid;min-height:3rem;padding:var(--space-3) var(--space-5);place-items:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);font-weight:650;text-align:center;text-decoration:none}.hero-action:hover{border-color:var(--color-accent);color:var(--color-text);text-decoration:none}.hero-action--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-canvas)}.hero-action--primary:hover{border-color:var(--color-accent-strong);background:var(--color-accent-strong);color:var(--color-canvas)}.section-heading{display:grid;gap:var(--space-5)}.experience-section{display:grid;grid-template-columns:minmax(15rem,.7fr) minmax(0,1.3fr);gap:clamp(var(--space-12),8vw,7rem);align-items:start}.experience-section__heading{position:sticky;inset-block-start:calc(var(--header-height) + var(--space-8))}.experience-list,.responsibility-list,.technology-list{padding:0;margin:0;list-style:none}.experience-list{border-top:1px solid var(--color-border-strong)}.experience-item{border-bottom:1px solid var(--color-border)}.experience-item article{display:grid;gap:var(--space-8);padding-block:clamp(var(--space-8),5vw,var(--space-12))}.experience-item__meta{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.06em;font-variant-numeric:tabular-nums}.experience-item__period{color:var(--color-text-muted);text-transform:uppercase}.experience-item__header{display:grid;gap:var(--space-2)}.experience-item__header h3{max-width:28ch;font-size:clamp(1.5rem,2.5vw,2.25rem);line-height:var(--line-height-heading)}.experience-item__role{color:var(--color-text);font-size:var(--font-size-lg);font-weight:600;letter-spacing:-.02em}.experience-item__details{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-8)}.experience-item__details section{display:grid;gap:var(--space-4);align-content:start}.experience-item__details h4{margin:0;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.responsibility-list{display:grid;gap:var(--space-3)}.responsibility-list li{position:relative;padding-inline-start:var(--space-5);color:var(--color-text-muted);text-wrap:pretty}.responsibility-list li:before{position:absolute;inset-block-start:.78em;inset-inline-start:0;width:.35rem;height:1px;background:var(--color-accent);content:""}.technology-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.technology-list li{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;line-height:1.5}.projects-section{display:grid;grid-template-columns:minmax(15rem,.7fr) minmax(0,1.3fr);gap:clamp(var(--space-12),8vw,7rem);align-items:start}.projects-section__heading{position:sticky;inset-block-start:calc(var(--header-height) + var(--space-8))}.project-list{padding:0;margin:0;border-top:1px solid var(--color-border-strong);list-style:none}.project-item{border-bottom:1px solid var(--color-border)}.project-item article{display:grid;gap:var(--space-8);padding-block:clamp(var(--space-8),5vw,var(--space-12))}.project-item__meta{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.06em;font-variant-numeric:tabular-nums}.project-item__period{color:var(--color-text-muted);line-height:1.6;text-transform:uppercase}.project-item__content{display:grid;gap:var(--space-6);align-content:start}.project-item__header{display:grid;gap:var(--space-2)}.project-item__header h3{max-width:24ch;font-size:clamp(1.5rem,2.5vw,2.25rem);line-height:var(--line-height-heading)}.project-item__organization{max-width:48ch;color:var(--color-text);font-size:var(--font-size-sm);font-weight:600;line-height:1.6}.project-item__description{max-width:58ch}.project-item__technologies{display:grid;gap:var(--space-3)}.project-item__technologies h4{margin:0;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.project-item__link{justify-self:start;padding-block:var(--space-1);color:var(--color-text);font-size:var(--font-size-sm);font-weight:650;text-decoration-color:var(--color-accent)}.technologies-section{display:grid;grid-template-columns:minmax(15rem,.7fr) minmax(0,1.3fr);gap:clamp(var(--space-12),8vw,7rem);align-items:start}.technologies-section__heading{position:sticky;inset-block-start:calc(var(--header-height) + var(--space-8))}.technology-groups{display:grid;gap:clamp(var(--space-12),7vw,var(--space-16))}.technology-group{border-top:1px solid var(--color-border-strong)}.technology-group__header{display:grid;padding-block:var(--space-5) var(--space-8)}.technology-group__header>div{display:grid;gap:var(--space-2)}.technology-group__header h3{font-size:clamp(1.5rem,2.5vw,2.25rem);line-height:var(--line-height-heading)}.technology-group__header p{max-width:48ch}.technology-group__list{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:0;margin:0;list-style:none}.technology-group__list li{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:600;letter-spacing:0}.technology-group[data-technology-classification=additional]{border-top-style:dashed}.technology-group[data-technology-classification=additional] .technology-group__header{padding-block-end:var(--space-6)}.reading-width{max-width:var(--reading-width)}.eyebrow{margin-bottom:var(--space-5);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase}@media(max-width:63.99rem){.hero__layout{grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr)}.experience-section{grid-template-columns:minmax(0,1fr);gap:var(--space-12)}.experience-section__heading,.projects-section__heading,.technologies-section__heading{position:static}.projects-section,.technologies-section{grid-template-columns:minmax(0,1fr);gap:var(--space-12)}}@media(max-width:59.99rem){:root{--section-space: clamp(3.5rem, 16vw, 5rem)}main{width:min(100% - (2 * var(--page-gutter)),var(--content-width))}.site-header__inner{grid-template-columns:1fr auto}.site-identity__name,.desktop-nav,.desktop-actions{display:none}.menu-toggle{display:grid;width:2.75rem;height:2.75rem;padding:0;place-items:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.language-toggle--mobile,.theme-toggle--mobile{display:grid;min-height:2.75rem;grid-column:1 / -1;place-items:center}.theme-toggle--mobile{grid-template-columns:auto auto;gap:var(--space-3)}.theme-toggle--mobile .theme-toggle__label{display:inline}.menu-toggle:hover{border-color:var(--color-accent);background:var(--color-surface-muted)}.menu-toggle:active{transform:translateY(1px)}.menu-toggle__icon{display:grid;width:1rem;gap:.3rem}.menu-toggle__icon span{display:block;width:100%;height:1px;background:currentColor;transition:transform var(--duration-base) var(--ease-standard)}[data-menu-open] .menu-toggle__icon span:first-child{transform:translateY(.2rem) rotate(45deg)}[data-menu-open] .menu-toggle__icon span:last-child{transform:translateY(-.2rem) rotate(-45deg)}.mobile-menu{width:min(100% - (2 * var(--page-gutter)),var(--content-width));padding-block:var(--space-4) var(--space-6);margin-inline:auto}.mobile-menu:not([hidden]){display:grid;gap:var(--space-8);animation:mobile-menu-enter var(--duration-base) var(--ease-reveal) both}.mobile-menu__links{display:grid}.mobile-menu__links a{display:block;padding-block:var(--space-3);border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-lg);font-weight:650;letter-spacing:-.025em;text-decoration:none}[data-menu-open] .mobile-menu__links li,[data-menu-open] .mobile-menu__actions>*{animation:mobile-menu-item-enter var(--duration-base) var(--ease-reveal) both}[data-menu-open] .mobile-menu__links li:nth-child(2),[data-menu-open] .mobile-menu__actions>:nth-child(2){animation-delay:40ms}[data-menu-open] .mobile-menu__links li:nth-child(3),[data-menu-open] .mobile-menu__actions>:nth-child(3){animation-delay:80ms}[data-menu-open] .mobile-menu__links li:nth-child(4),[data-menu-open] .mobile-menu__actions>:nth-child(4){animation-delay:.12s}.mobile-menu__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.mobile-action{display:grid;min-height:2.75rem;padding:var(--space-2) var(--space-3);place-items:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);font-weight:650;text-align:center;text-decoration:none}.mobile-action--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-canvas)}.mobile-action--primary:hover{background:var(--color-accent-strong);color:var(--color-canvas)}.hero{min-height:70dvh;padding-block-start:clamp(4.5rem,18vw,7rem);padding-block-end:var(--section-space)}.hero__layout{grid-template-columns:minmax(0,1fr);gap:var(--space-10)}.hero__identity h1{max-width:10ch}.hero__content{gap:var(--space-5)}.hero__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.experience-section,.projects-section,.technologies-section{gap:var(--space-10)}.experience-item article{gap:var(--space-6)}.experience-item__details{grid-template-columns:minmax(0,1fr);gap:var(--space-8)}.project-item article{gap:var(--space-6)}}@keyframes mobile-menu-enter{0%{opacity:0;transform:translateY(-.5rem)}}@keyframes mobile-menu-item-enter{0%{opacity:0;transform:translateY(.5rem)}}@media(max-width:25rem){.hero__actions{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-motion-ready=true] [data-reveal]{opacity:1;transform:none}}
