.HeroSection-module-scss-module__M6sFSa__hero{padding-block:var(--space-2xl) var(--space-3xl)}@media (min-width:60rem){.HeroSection-module-scss-module__M6sFSa__hero{padding-block:var(--space-3xl) var(--space-4xl)}}.HeroSection-module-scss-module__M6sFSa__shell{width:100%;max-width:var(--shell-max);padding-inline:var(--shell-pad);gap:var(--space-xl);grid-template-columns:minmax(0,1fr);align-items:start;margin-inline:auto;display:grid}@media (min-width:1024px){.HeroSection-module-scss-module__M6sFSa__shell{gap:var(--space-2xl);grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.HeroSection-module-scss-module__M6sFSa__lede{min-width:0}.HeroSection-module-scss-module__M6sFSa__greeting{font-size:var(--text-md);color:var(--color-muted);margin-block-end:var(--space-2xs)}.HeroSection-module-scss-module__M6sFSa__name{font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--color-ink);margin-block-end:var(--space-2xs);font-style:normal}.HeroSection-module-scss-module__M6sFSa__role{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-ink-2);margin-block-end:var(--space-md)}.HeroSection-module-scss-module__M6sFSa__description{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-ink-2);text-wrap:pretty}@media (min-width:768px){.HeroSection-module-scss-module__M6sFSa__description{white-space:pre-line}}.HeroSection-module-scss-module__M6sFSa__actions{align-items:center;gap:var(--space-md);flex-wrap:wrap;margin-block-start:var(--space-lg);display:flex}.HeroSection-module-scss-module__M6sFSa__primary{align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-ink);font-size:var(--text-sm);font-weight:var(--weight-semibold);transition:background-color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out);white-space:nowrap;display:inline-flex}@media (pointer:coarse){.HeroSection-module-scss-module__M6sFSa__primary{min-height:44px}}.HeroSection-module-scss-module__M6sFSa__primary:disabled,.HeroSection-module-scss-module__M6sFSa__primary[aria-disabled=true]{opacity:.55;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.HeroSection-module-scss-module__M6sFSa__primary:hover,.HeroSection-module-scss-module__M6sFSa__primary:active,.HeroSection-module-scss-module__M6sFSa__primary:hover svg{transform:none}}.HeroSection-module-scss-module__M6sFSa__primary svg{transition:transform var(--dur-micro) var(--ease-out)}@media (hover:hover) and (pointer:fine){.HeroSection-module-scss-module__M6sFSa__primary:hover svg{transform:translate(2px)}}.HeroSection-module-scss-module__M6sFSa__primary:active{transform:translateY(1px)}.HeroSection-module-scss-module__M6sFSa__primary:focus-visible{outline:var(--rule-solid) solid var(--color-focus);outline-offset:2px}.HeroSection-module-scss-module__M6sFSa__secondary{padding-block:var(--space-3xs);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-ink-2);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-rule-2);text-decoration-color:var(--color-rule-2);text-underline-offset:5px;transition:color var(--dur-micro) var(--ease-out),text-decoration-color var(--dur-micro) var(--ease-out);white-space:nowrap}@media (pointer:coarse){.HeroSection-module-scss-module__M6sFSa__secondary{min-height:44px}}.HeroSection-module-scss-module__M6sFSa__secondary:disabled,.HeroSection-module-scss-module__M6sFSa__secondary[aria-disabled=true]{opacity:.55;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.HeroSection-module-scss-module__M6sFSa__secondary:hover,.HeroSection-module-scss-module__M6sFSa__secondary:active,.HeroSection-module-scss-module__M6sFSa__secondary:hover svg{transform:none}}@media (hover:hover) and (pointer:fine){.HeroSection-module-scss-module__M6sFSa__secondary:hover{color:var(--color-accent-text);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}}.HeroSection-module-scss-module__M6sFSa__secondary:focus-visible{outline:var(--rule-solid) solid var(--color-focus);outline-offset:2px;border-radius:2px}.HeroSection-module-scss-module__M6sFSa__spec{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2);min-width:0;overflow:clip}.HeroSection-module-scss-module__M6sFSa__specHead{padding:var(--space-2xs) var(--space-sm);background:var(--color-paper-3);border-block-end:var(--rule-hair) solid var(--color-rule);justify-content:space-between;align-items:center;display:flex}.HeroSection-module-scss-module__M6sFSa__specTitle{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted);font-weight:500}.HeroSection-module-scss-module__M6sFSa__specRow{gap:var(--space-3xs);padding:var(--space-xs) var(--space-sm);grid-template-columns:minmax(0,1fr);display:grid}.HeroSection-module-scss-module__M6sFSa__specRow+.HeroSection-module-scss-module__M6sFSa__specRow{border-block-start:var(--rule-hair) solid var(--color-rule)}@media (min-width:640px){.HeroSection-module-scss-module__M6sFSa__specRow{gap:var(--space-sm);grid-template-columns:6.5rem minmax(0,1fr);align-items:baseline}}.HeroSection-module-scss-module__M6sFSa__specKey{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted);font-weight:500}.HeroSection-module-scss-module__M6sFSa__specValue{font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--color-ink);overflow-wrap:anywhere}
.SectionWrapper-module-scss-module__mDYNGG__section{padding-block:var(--space-2xl) var(--space-3xl);position:relative}.SectionWrapper-module-scss-module__mDYNGG__surface{background:var(--color-paper-2);border-block:var(--rule-hair) solid var(--color-rule)}.SectionWrapper-module-scss-module__mDYNGG__shell{width:100%;max-width:var(--shell-max);padding-inline:var(--shell-pad);margin-inline:auto}
.AboutSection-module-scss-module__Dc6EIG__heading{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--color-ink);margin-block-end:var(--space-xl);font-style:normal}.AboutSection-module-scss-module__Dc6EIG__bio{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-ink-2);text-wrap:pretty}@media (min-width:768px){.AboutSection-module-scss-module__Dc6EIG__bio{white-space:pre-line}}.AboutSection-module-scss-module__Dc6EIG__strip{border-block-start:var(--rule-solid) solid var(--color-ink);grid-template-columns:minmax(0,1fr);margin-block-start:var(--space-xl);display:grid}@media (min-width:640px){.AboutSection-module-scss-module__Dc6EIG__strip{grid-template-columns:repeat(3,minmax(0,1fr))}}.AboutSection-module-scss-module__Dc6EIG__stat{gap:var(--space-3xs);padding-block:var(--space-md);border-block-end:var(--rule-hair) solid var(--color-rule);flex-direction:column;padding-inline-end:var(--space-md);display:flex}@media (min-width:640px){.AboutSection-module-scss-module__Dc6EIG__stat{border-block-end:none}.AboutSection-module-scss-module__Dc6EIG__stat+.AboutSection-module-scss-module__Dc6EIG__stat{border-inline-start:var(--rule-hair) solid var(--color-rule);padding-inline-start:var(--space-md)}}.AboutSection-module-scss-module__Dc6EIG__value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--color-ink);font-variant-numeric:tabular-nums;font-style:normal}.AboutSection-module-scss-module__Dc6EIG__label{font-size:var(--text-sm);color:var(--color-muted)}
.SkillsSection-module-scss-module__f4iZNq__heading{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--color-ink);margin-block-end:var(--space-xl);font-style:normal}.SkillsSection-module-scss-module__f4iZNq__sheet{border-block-start:var(--rule-solid) solid var(--color-ink)}.SkillsSection-module-scss-module__f4iZNq__row{gap:var(--space-3xs) var(--space-sm);padding-block:var(--space-sm);border-block-end:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"key count""value value";display:grid}@media (min-width:768px){.SkillsSection-module-scss-module__f4iZNq__row{align-items:baseline;gap:var(--space-lg);grid-template-columns:10rem minmax(0,1fr) 2.5rem;grid-template-areas:"key value count"}}.SkillsSection-module-scss-module__f4iZNq__key{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-accent-text);grid-area:key;font-weight:500}.SkillsSection-module-scss-module__f4iZNq__value{min-width:0;font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-ink);overflow-wrap:anywhere;grid-area:value}.SkillsSection-module-scss-module__f4iZNq__count{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted);font-variant-numeric:tabular-nums;grid-area:count;font-weight:500}@media (min-width:768px){.SkillsSection-module-scss-module__f4iZNq__count{text-align:end}}
.ExperienceCard-module-scss-module__PfhDtq__row{gap:var(--space-2xs);padding-block:var(--space-md);border-block-end:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:768px){.ExperienceCard-module-scss-module__PfhDtq__row{gap:var(--space-lg);grid-template-columns:11rem minmax(0,1fr);align-items:baseline}}.ExperienceCard-module-scss-module__PfhDtq__period{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted);font-variant-numeric:tabular-nums;font-weight:500}.ExperienceCard-module-scss-module__PfhDtq__record{gap:var(--space-3xs);flex-direction:column;min-width:0;display:flex}.ExperienceCard-module-scss-module__PfhDtq__company{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--color-ink)}.ExperienceCard-module-scss-module__PfhDtq__role{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent-text)}.ExperienceCard-module-scss-module__PfhDtq__description{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-2);text-wrap:pretty;margin-block-start:var(--space-3xs)}
.ExperienceSection-module-scss-module__5OYoLG__heading{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--color-ink);margin-block-end:var(--space-xl);font-style:normal}.ExperienceSection-module-scss-module__5OYoLG__index{border-block-start:var(--rule-solid) solid var(--color-ink)}
.ProjectCard-module-scss-module__fzbjuq__block{gap:var(--space-sm);padding-block:var(--space-xl);border-block-end:var(--rule-hair) solid var(--color-rule);flex-direction:column;scroll-margin-block-start:var(--scroll-offset);display:flex}.ProjectCard-module-scss-module__fzbjuq__head{justify-content:space-between;align-items:baseline;gap:var(--space-2xs) var(--space-md);flex-wrap:wrap;display:flex}.ProjectCard-module-scss-module__fzbjuq__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--color-ink);min-width:0;font-style:normal}@media (min-width:768px){.ProjectCard-module-scss-module__fzbjuq__title{font-size:var(--text-2xl)}}.ProjectCard-module-scss-module__fzbjuq__type{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted);white-space:nowrap;font-weight:500}.ProjectCard-module-scss-module__fzbjuq__description{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-2);text-wrap:pretty}@media (min-width:768px){.ProjectCard-module-scss-module__fzbjuq__description{font-size:var(--text-base)}}.ProjectCard-module-scss-module__fzbjuq__manifest{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2);overflow:clip}.ProjectCard-module-scss-module__fzbjuq__manifestRow{gap:var(--space-3xs);padding:var(--space-xs) var(--space-sm);grid-template-columns:minmax(0,1fr);display:grid}.ProjectCard-module-scss-module__fzbjuq__manifestRow+.ProjectCard-module-scss-module__fzbjuq__manifestRow{border-block-start:var(--rule-hair) solid var(--color-rule)}@media (min-width:640px){.ProjectCard-module-scss-module__fzbjuq__manifestRow{gap:var(--space-sm);grid-template-columns:5rem minmax(0,1fr);align-items:baseline}}.ProjectCard-module-scss-module__fzbjuq__manifestKey{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted);font-weight:500}.ProjectCard-module-scss-module__fzbjuq__manifestValue{font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-relaxed);color:var(--color-ink);overflow-wrap:anywhere}.ProjectCard-module-scss-module__fzbjuq__highlights{gap:var(--space-2xs);flex-direction:column;display:flex}.ProjectCard-module-scss-module__fzbjuq__highlight{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-2);text-wrap:pretty;padding-inline-start:var(--space-md);position:relative}.ProjectCard-module-scss-module__fzbjuq__highlight:before{content:"";width:var(--space-2xs);height:var(--rule-hair);background:var(--color-accent);position:absolute;inset-block-start:.7em;inset-inline-start:0}.ProjectCard-module-scss-module__fzbjuq__links{gap:var(--space-md);flex-wrap:wrap;display:flex}.ProjectCard-module-scss-module__fzbjuq__link{align-items:center;gap:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent-text);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-rule-2);text-decoration-color:var(--color-rule-2);text-underline-offset:4px;transition:text-decoration-color var(--dur-micro) var(--ease-out);white-space:nowrap;display:inline-flex}@media (pointer:coarse){.ProjectCard-module-scss-module__fzbjuq__link{min-height:44px}}@media (hover:hover) and (pointer:fine){.ProjectCard-module-scss-module__fzbjuq__link:hover{text-decoration-color:currentColor}}.ProjectCard-module-scss-module__fzbjuq__link:focus-visible{outline:var(--rule-solid) solid var(--color-focus);outline-offset:2px;border-radius:2px}
.ProjectsSection-module-scss-module__UaUVxa__heading{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--color-ink);margin-block-end:var(--space-xl);font-style:normal}.ProjectsSection-module-scss-module__UaUVxa__index{border-block-start:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,1fr);margin-block-end:var(--space-2xl);display:grid}@media (min-width:768px){.ProjectsSection-module-scss-module__UaUVxa__index{column-gap:var(--space-2xl);grid-template-columns:repeat(2,minmax(0,1fr))}}.ProjectsSection-module-scss-module__UaUVxa__indexLink{gap:var(--space-2xs);padding-block:var(--space-2xs);border-block-end:var(--rule-hair) solid var(--color-rule);transition:color var(--dur-micro) var(--ease-out);grid-template-columns:2rem minmax(0,1fr) auto;align-items:baseline;display:grid}@media (pointer:coarse){.ProjectsSection-module-scss-module__UaUVxa__indexLink{min-height:44px}}@media (hover:hover) and (pointer:fine){.ProjectsSection-module-scss-module__UaUVxa__indexLink:hover{color:var(--color-accent-text)}.ProjectsSection-module-scss-module__UaUVxa__indexLink:hover .ProjectsSection-module-scss-module__UaUVxa__indexTitle{text-decoration-color:currentColor}}.ProjectsSection-module-scss-module__UaUVxa__indexLink:focus-visible{outline:var(--rule-solid) solid var(--color-focus);outline-offset:2px;outline-offset:-2px;border-radius:2px}.ProjectsSection-module-scss-module__UaUVxa__indexNum{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted);font-variant-numeric:tabular-nums;font-weight:500}.ProjectsSection-module-scss-module__UaUVxa__indexTitle{min-width:0;font-size:var(--text-sm);font-weight:var(--weight-medium);color:inherit;text-underline-offset:4px;transition:text-decoration-color var(--dur-micro) var(--ease-out);overflow-wrap:anywhere;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.ProjectsSection-module-scss-module__UaUVxa__indexType{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted);white-space:nowrap;font-weight:500}.ProjectsSection-module-scss-module__UaUVxa__sequence{border-block-start:var(--rule-solid) solid var(--color-ink)}
.ContactSection-module-scss-module__tOW5ya__heading{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);color:var(--color-ink);margin-block-end:var(--space-xl);font-style:normal}.ContactSection-module-scss-module__tOW5ya__description{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-ink-2);text-wrap:pretty}.ContactSection-module-scss-module__tOW5ya__emailRow{align-items:center;gap:var(--space-md);border-block-end:var(--rule-hair) solid var(--color-rule);flex-wrap:wrap;margin-block-start:var(--space-lg);padding-block-end:var(--space-lg);display:flex}.ContactSection-module-scss-module__tOW5ya__email{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-ink);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:6px;transition:color var(--dur-micro) var(--ease-out);white-space:nowrap}@media (min-width:768px){.ContactSection-module-scss-module__tOW5ya__email{font-size:var(--text-2xl)}}@media (hover:hover) and (pointer:fine){.ContactSection-module-scss-module__tOW5ya__email:hover{color:var(--color-accent-text)}}.ContactSection-module-scss-module__tOW5ya__email:focus-visible{outline:var(--rule-solid) solid var(--color-focus);outline-offset:2px;border-radius:2px}.ContactSection-module-scss-module__tOW5ya__copyBtn{align-items:center;gap:var(--space-3xs);padding:var(--space-3xs) var(--space-2xs);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-ink-2);background:var(--color-paper);transition:color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out);white-space:nowrap;display:inline-flex}@media (pointer:coarse){.ContactSection-module-scss-module__tOW5ya__copyBtn{min-height:44px}}.ContactSection-module-scss-module__tOW5ya__copyBtn:disabled,.ContactSection-module-scss-module__tOW5ya__copyBtn[aria-disabled=true]{opacity:.55;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.ContactSection-module-scss-module__tOW5ya__copyBtn:hover,.ContactSection-module-scss-module__tOW5ya__copyBtn:active,.ContactSection-module-scss-module__tOW5ya__copyBtn:hover svg{transform:none}}@media (hover:hover) and (pointer:fine){.ContactSection-module-scss-module__tOW5ya__copyBtn:hover{color:var(--color-ink);border-color:var(--color-ink-2)}}.ContactSection-module-scss-module__tOW5ya__copyBtn:active{transform:translateY(1px)}.ContactSection-module-scss-module__tOW5ya__copyBtn:focus-visible{outline:var(--rule-solid) solid var(--color-focus);outline-offset:2px}.ContactSection-module-scss-module__tOW5ya__copyBtn[data-state=success]{color:var(--color-accent-text);border-color:var(--color-accent)}.ContactSection-module-scss-module__tOW5ya__links{gap:var(--space-lg);flex-wrap:wrap;margin-block-start:var(--space-md);display:flex}.ContactSection-module-scss-module__tOW5ya__link{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-rule-2);text-decoration-color:var(--color-rule-2);text-underline-offset:4px;transition:color var(--dur-micro) var(--ease-out),text-decoration-color var(--dur-micro) var(--ease-out);white-space:nowrap}@media (pointer:coarse){.ContactSection-module-scss-module__tOW5ya__link{min-height:44px}}@media (hover:hover) and (pointer:fine){.ContactSection-module-scss-module__tOW5ya__link:hover{color:var(--color-accent-text);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}}.ContactSection-module-scss-module__tOW5ya__link:focus-visible{outline:var(--rule-solid) solid var(--color-focus);outline-offset:2px;border-radius:2px}
