@layer tokens{:root{--fontSans:"Onest Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--fontMono:"JetBrains Mono", ui-monospace, "SF Mono", menlo, monospace;--textDisplay:clamp(32px, calc(32.31px + 1.0256vw), 52px);--textXl:clamp(28px, calc(24.31px + 1.0256vw), 44px);--textLg:clamp(24px, calc(22.15px + .5128vw), 32px);--textMd:clamp(21px, calc(20.62px + .3846vw), 28px);--textSm:20px;--textBody:16px;--textCaption:15px;--textLabel:12px;--textMicro:11px;--weightLight:300;--weightMedium:500;--leadingDisplay:1.2;--leadingSnug:1.35;--leadingBody:1.5;--trackingDisplay:-.015em;--trackingLabel:.06em;--trackingEyebrow:.18em;--space1:4px;--space2:8px;--space3:12px;--space4:16px;--space5:24px;--space6:32px;--space7:44px;--space8:64px;--space9:96px;--radiusSm:10px;--radiusMd:14px;--radiusLg:16px;--radiusPill:999px;--containerWidth:1250px;--containerPadding:15px;--sizeControl:44px;--headerRowHeight:64px;--headerPaddingY:24px;--headerPaddingYStuck:12px;--headerHeight:calc(var(--headerRowHeight) + var(--headerPaddingY) * 2);--headerHeightStuck:calc(var(--headerRowHeightStuck) + var(--headerPaddingYStuck) * 2);--logoSize:64px;--switcherWidth:92px;--switcherHeight:48px;--easeOut:cubic-bezier(.16, 1, .3, 1);--durationQuick:.12s;--durationSwitch:.2s;--durationFast:.25s;--durationHeader:.2s;--durationMenu:.3s;--durationBurger:.6s;--easeBurger:cubic-bezier(.4, 0, .2, 1);--durationHover:.3s;--durationBase:.4s;--durationSlow:.75s}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--colorBg:#141319;--colorCard:#1b1a22;--colorCardMuted:#201f29;--colorInk:#ececec;--colorInkMuted:#9593a6;--colorLine:#ffffff17;--colorAccent:#8b7cff;--colorAccentAlt:#4ed8de;--colorOnAccent:#0e0d12;--shadowHeader:-4px -4px 12px #ffffff0d, 4px 4px 12px #0000008c;--colorSwitcherTrack:#191820;--colorSwitcherThumb:#fff;--colorSwitcherIcon:#191820;--shadowSwitcher:-4px -4px 12px #ffffff0d, 4px 4px 12px #000;--shadowControl:0 6px 16px #00000057;--shadowControlHover:0 8px 20px #00000070;--shadowCard:0 1px 0 #ffffff0d inset, 0 10px 22px #0000006b;--shadowCardHover:0 1px 0 #ffffff12 inset, 0 16px 30px #0000008c;--glow:radial-gradient(62% 58% at 50% 45%, #8b7cff52, transparent 72%)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--colorBg:#f1f1f6;--colorCard:#fbfbfe;--colorCardMuted:#f5f5fa;--colorInk:#171620;--colorInkMuted:#5f5d70;--colorLine:#1716201a;--colorAccent:#6a57e8;--colorAccentAlt:#128f98;--colorOnAccent:#fff;--shadowHeader:-8px -8px 12px #fffc, 8px 8px 12px #0000000d;--colorSwitcherTrack:#ececec;--colorSwitcherThumb:#fff;--colorSwitcherIcon:#191820;--shadowSwitcher:-8px -8px 12px #fffc, 8px 8px 12px #0000000d;--shadowControl:0 6px 16px #1f1d381a;--shadowControlHover:0 8px 20px #1f1d3824;--shadowCard:0 1px 0 #ffffffe6 inset, 0 8px 18px #1f1d3814;--shadowCardHover:0 1px 0 #ffffffe6 inset, 0 14px 28px #1f1d3821;--glow:radial-gradient(62% 58% at 50% 45%, #6a57e833, transparent 72%)}}@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overscroll-behavior-y:none;scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:calc(var(--headerHeight) + var(--space5));overflow-anchor:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0}ul[class],ol[class]{padding:0;list-style:none}img,picture,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer base{body{min-height:100svh;color:var(--colorInk);font-family:var(--fontSans);font-weight:var(--weightLight);font-size:var(--textBody);line-height:var(--leadingBody);font-synthesis-weight:none;background-color:var(--colorBg);-webkit-font-smoothing:antialiased;margin:0}:root[data-theme-switching] :not([data-theme-transition]){transition:none!important}:focus-visible{outline:2px solid var(--colorAccent);outline-offset:3px;border-radius:6px}::selection{color:var(--colorOnAccent);background-color:var(--colorAccent)}}@layer components;@layer utilities{.visuallyHidden{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.reveal{transition:opacity var(--durationSlow) var(--easeOut), transform var(--durationSlow) var(--easeOut);transition-delay:var(--revealDelay,0s)}html.js .reveal:not(.revealVisible){opacity:0;transform:translateY(22px)}@media (prefers-reduced-motion:reduce){html.js .reveal:not(.revealVisible){opacity:1;transform:none}}}@font-face{font-weight:300 800;font-family:Onest Variable;font-style:normal;src:url(/fonts/onest-latin-wght-normal.woff2)format("woff2-variations");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-weight:400;font-family:JetBrains Mono;font-style:normal;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-weight:500;font-family:JetBrains Mono;font-style:normal;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.Accent-module__accent__-DJR{color:var(--colorAccent)}.Button-module__button__L07M{gap:var(--space3);height:var(--sizeControl);color:var(--colorInk);font-weight:var(--weightMedium);font-size:var(--textBody);background-color:var(--colorCard);border:1px solid var(--colorLine);border-radius:var(--radiusLg);box-shadow:var(--shadowControl);transition:border-color var(--durationFast) ease, box-shadow var(--durationFast) ease;justify-content:center;align-items:center;padding-inline:28px;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.Button-module__button__L07M:after{top:var(--rippleY,50%);left:var(--rippleX,50%);background-color:var(--colorAccent);opacity:0;content:"";pointer-events:none;border-radius:50%;width:.5px;height:.5px;position:absolute}@media (hover:hover){.Button-module__button__L07M:hover{border-color:var(--colorAccent);box-shadow:var(--shadowControlHover)}}@media (prefers-reduced-motion:no-preference){.Button-module__ripple__NJjS:after{animation:.8s ease-in Button-module__ripple__NJjS}}@keyframes Button-module__ripple__NJjS{0%{opacity:0;transform:scale(0)}75%{opacity:.7;transform:scale(450)}to{opacity:0;transform:scale(620)}}.Card-module__card__NB-Y{z-index:0;background-color:var(--colorCard);border:1px solid var(--colorLine);border-radius:var(--radiusLg);box-shadow:var(--shadowCard);position:relative}.Card-module__hoverable__pB8T{transition:box-shadow var(--durationHover) ease-in-out, border-color var(--durationHover) ease-in-out}@media (hover:hover){.Card-module__hoverable__pB8T:hover{z-index:1;border-color:color-mix(in srgb, var(--colorAccent) 40%, var(--colorLine));box-shadow:var(--shadowCardHover)}}.Container-module__container__ZlpL{width:100%;max-width:var(--containerWidth);padding-inline:var(--containerPadding);margin-inline:auto}.Lightbox-module__overlay__7NBC{z-index:100;animation:Lightbox-module__fade-in__gzdO var(--durationFast) ease-out;place-items:center;display:grid;position:fixed;inset:0}.Lightbox-module__backdrop__eFaO{cursor:default;background-color:#0a090ec7;position:absolute;inset:0}.Lightbox-module__toolbar__S2uv{top:var(--space5);right:var(--space5);z-index:1;gap:var(--space3);display:flex;position:absolute}.Lightbox-module__toolbarButton__Cbtt{color:#fff;border-radius:var(--radiusPill);width:42px;height:42px;transition:background-color var(--durationHover) ease-in-out, border-color var(--durationHover) ease-in-out;background-color:#ffffff1a;border:1px solid #ffffff29;place-items:center;display:grid}.Lightbox-module__toolbarButton__Cbtt svg{width:19px;height:19px}@media (hover:hover){.Lightbox-module__toolbarButton__Cbtt:hover{background-color:#ffffff2e;border-color:#ffffff4d}}.Lightbox-module__frame__SPfr{background-color:var(--colorCard);border-radius:var(--radiusLg);max-width:90vw;max-height:85vh;box-shadow:var(--shadowCardHover);justify-content:flex-start;align-items:flex-start;display:flex;position:relative;overflow:hidden}.Lightbox-module__image__t8v-{flex:none;width:auto;max-width:90vw;height:auto;max-height:85vh;display:block}@keyframes Lightbox-module__fade-in__gzdO{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.Lightbox-module__overlay__7NBC{animation:none}}.Section-module__section__8jT-{padding-block:var(--space9)}.Section-module__header__OEF-{margin-bottom:var(--space7)}.Section-module__eyebrow__gTsi{gap:var(--space3);margin-bottom:var(--space4);color:var(--colorAccent);font-size:var(--textLabel);font-family:var(--fontMono);letter-spacing:var(--trackingEyebrow);text-transform:uppercase;align-items:center;display:flex}.Section-module__eyebrow__gTsi:before{content:"";background-color:currentColor;width:22px;height:1px}.Section-module__title__9nAI{font-weight:var(--weightLight);font-size:var(--textXl);line-height:var(--leadingDisplay);letter-spacing:var(--trackingDisplay);text-wrap:balance}.Section-module__description__NeXD{max-width:58ch;margin-top:var(--space4);color:var(--colorInkMuted)}@media (max-width:768px){.Section-module__section__8jT-{padding-block:var(--space6)}.Section-module__header__OEF-{margin-bottom:var(--space5)}}.TechList-module__list__qnPn{gap:var(--space3);flex-wrap:wrap;margin:0;display:flex}.TechList-module__item__-S7n{z-index:0;-webkit-user-select:none;user-select:none;width:var(--sizeControl);height:var(--sizeControl);color:var(--colorInk);font-weight:var(--weightMedium);font-size:var(--textMicro);font-family:var(--fontMono);background-color:var(--colorCard);border:1.5px solid color-mix(in srgb, var(--techColor,transparent) 40%, var(--colorLine));border-radius:var(--radiusPill);box-shadow:var(--shadowCard);transition:border-color var(--durationQuick) ease-in-out, box-shadow var(--durationQuick) ease-in-out;place-items:center;display:grid;position:relative}@media (hover:hover){.TechList-module__item__-S7n:hover{z-index:2;border-color:color-mix(in srgb, var(--techColor,var(--colorAccent)) 80%, var(--colorLine));box-shadow:var(--shadowCardHover)}.TechList-module__item__-S7n:hover .TechList-module__tip__cyQJ{opacity:1;translate:-50%}}.TechList-module__icon__L5Lv{width:22px;height:22px}.TechList-module__tip__cyQJ{bottom:calc(100% + var(--space2));color:var(--colorInk);font-weight:var(--weightMedium);font-size:var(--textLabel);font-family:var(--fontSans);letter-spacing:normal;white-space:nowrap;background-color:var(--colorCardMuted);border:1px solid var(--colorLine);border-radius:var(--radiusSm);box-shadow:var(--shadowControl);opacity:0;transition:opacity var(--durationQuick) ease-out, translate var(--durationQuick) ease-out;pointer-events:none;padding:5px 10px;position:absolute;left:50%;translate:-50% 4px}@media (prefers-reduced-motion:reduce){.TechList-module__tip__cyQJ{translate:-50%}}.ExperienceCard-module__card__-hdz{height:100%;padding:var(--space5);border:none;flex-direction:column;gap:11px;display:flex}.ExperienceCard-module__head__JUxw{gap:var(--space3) var(--space4);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.ExperienceCard-module__date__R6G1{color:var(--colorInkMuted);font-size:var(--textLabel);font-family:var(--fontMono);letter-spacing:var(--trackingLabel);text-transform:uppercase;flex:none}.ExperienceCard-module__title__ceuy{font-weight:var(--weightLight);font-size:var(--textMd);line-height:var(--leadingDisplay);letter-spacing:var(--trackingDisplay)}.ExperienceCard-module__link__kenz{transition:color var(--durationHover) ease-in-out;text-decoration:none}.ExperienceCard-module__position__Bksl{color:var(--colorAccent);font-weight:var(--weightMedium);font-size:var(--textBody)}.ExperienceCard-module__summary__--Qa{color:var(--colorInkMuted);font-size:var(--textCaption);flex:1}@media (hover:hover){.ExperienceCard-module__link__kenz:hover{color:var(--colorAccent)}}.Experience-module__grid__l6FS{gap:var(--space5);grid-template-columns:repeat(2,1fr);display:grid}.Experience-module__item__ifzx{display:flex}.Experience-module__item__ifzx>*{width:100%}@media (max-width:860px){.Experience-module__grid__l6FS{grid-template-columns:1fr}}.SocialLinks-module__list__T410{gap:var(--space4);flex-wrap:wrap;display:flex}.SocialLinks-module__link__feic{width:54px;height:54px;color:var(--colorInk);background-color:var(--colorCardMuted);border:1px solid var(--colorLine);border-radius:var(--radiusPill);transition:color var(--durationHover) ease-in-out, border-color var(--durationHover) ease-in-out;place-items:center;display:grid}.SocialLinks-module__link__feic svg{width:23px;height:23px}@media (hover:hover){.SocialLinks-module__link__feic:hover{color:var(--colorAccent);border-color:var(--colorAccent)}}.Footer-module__footer__enfs{padding-bottom:var(--space8)}.Footer-module__inner__FXdi{gap:var(--space7);padding:var(--space8) var(--space7);grid-template-columns:1.15fr .85fr;display:grid}.Footer-module__main__mls2{flex-direction:column;justify-content:space-between;display:flex}.Footer-module__title__5vrB{margin-bottom:var(--space4);font-weight:var(--weightLight);font-size:var(--textXl);line-height:var(--leadingDisplay);letter-spacing:var(--trackingDisplay);text-wrap:balance}.Footer-module__text__vxqI{max-width:46ch;color:var(--colorInk)}.Footer-module__side__r191{gap:var(--space4);flex-direction:column;justify-content:space-between;align-items:flex-end;display:flex}.Footer-module__copyright__QQGN{color:var(--colorInkMuted);font-size:var(--textCaption)}@media (max-width:860px){.Footer-module__footer__enfs{padding-bottom:var(--space6)}.Footer-module__inner__FXdi{gap:var(--space6);padding:var(--space6);grid-template-columns:1fr}.Footer-module__side__r191{align-items:flex-start}}.BurgerButton-module__burger__8nhF{background-color:var(--colorCard);border:1px solid var(--colorAccent);border-radius:4px;place-items:center;width:36px;height:36px;display:none}.BurgerButton-module__icon__iLYN{width:70%;height:70%}.BurgerButton-module__line__MrMW{fill:none;stroke:var(--colorAccent);stroke-width:6px;stroke-linecap:round;transition:stroke-dasharray var(--durationBurger) var(--easeBurger), stroke-dashoffset var(--durationBurger) var(--easeBurger)}.BurgerButton-module__lineTop__hk2c{stroke-dasharray:60 207}.BurgerButton-module__lineMiddle__ZnWP{stroke-dasharray:60 60}.BurgerButton-module__lineBottom__Bjyo{stroke-dasharray:60 207}.BurgerButton-module__open__8q9T .BurgerButton-module__lineTop__hk2c{stroke-dasharray:90 207;stroke-dashoffset:-134px}.BurgerButton-module__open__8q9T .BurgerButton-module__lineMiddle__ZnWP{stroke-dasharray:1 60;stroke-dashoffset:-30px}.BurgerButton-module__open__8q9T .BurgerButton-module__lineBottom__Bjyo{stroke-dasharray:90 207;stroke-dashoffset:-134px}@media (max-width:980px){.BurgerButton-module__burger__8nhF{display:grid}}.MobileMenu-module__menu__pcNM{z-index:55;background-color:var(--colorBg);transition:display var(--durationMenu) allow-discrete;display:none;position:fixed;inset:0}.MobileMenu-module__inner__crGv{height:100%;max-height:100%;padding-block:calc(var(--headerRowHeight) + var(--space6)) var(--space8);opacity:0;transition:opacity var(--durationMenu) var(--easeOut);place-items:center;display:grid;overflow:hidden auto}.MobileMenu-module__open__D-GV .MobileMenu-module__inner__crGv{opacity:1}@starting-style{.MobileMenu-module__open__D-GV .MobileMenu-module__inner__crGv{opacity:0}}.MobileMenu-module__list__exSJ{gap:var(--space6);justify-items:center;width:100%;display:grid}.MobileMenu-module__link__NXEw{padding-block:var(--space2);font-weight:var(--weightLight);font-size:var(--textLg);text-align:center;transition:color var(--durationFast) ease;text-decoration:none;display:block}@media (hover:hover){.MobileMenu-module__link__NXEw:hover{color:var(--colorAccent)}}@media (max-width:980px){.MobileMenu-module__open__D-GV{display:block}}@media (prefers-reduced-motion:reduce){.MobileMenu-module__menu__pcNM,.MobileMenu-module__inner__crGv{transition:none}}.NavLinks-module__nav__2neY{align-self:stretch;display:flex}.NavLinks-module__list__X963,.NavLinks-module__list__X963>li{display:flex}.NavLinks-module__list__X963>li:not(:last-child){margin-right:40px}.NavLinks-module__link__NRu1{color:var(--colorInk);font-weight:var(--weightLight);font-size:var(--textBody);transition:color var(--durationFast) ease;align-items:center;padding:0;text-decoration:none;display:flex}@media (hover:hover){.NavLinks-module__link__NRu1:hover{color:var(--colorAccent)}}@media (max-width:980px){.NavLinks-module__nav__2neY{display:none}}.ThemeSwitcher-module__switcher__j2qu{width:var(--switcherWidth);height:var(--switcherHeight);background-color:var(--colorSwitcherTrack);border-radius:var(--radiusPill);box-shadow:0 0 0 1px transparent, var(--shadowSwitcher);transition:width var(--durationFast) ease, height var(--durationFast) ease, box-shadow var(--durationSwitch) ease;border:0;flex:none;position:relative}@media (hover:hover){.ThemeSwitcher-module__switcher__j2qu:hover{box-shadow:0 0 0 1px var(--colorAccent), var(--shadowSwitcher)}}.ThemeSwitcher-module__thumb__Q1Wk{width:calc(var(--switcherHeight) - 6px);height:calc(var(--switcherHeight) - 6px);background-color:var(--colorSwitcherThumb);transition:width var(--durationFast) ease, height var(--durationFast) ease, transform var(--durationFast) ease;border-radius:50%;position:absolute;top:3px;left:3px}.ThemeSwitcher-module__thumbLight__yEsr{transform:translateX(calc(var(--switcherWidth) - var(--switcherHeight)))}.ThemeSwitcher-module__switcher__j2qu svg{top:calc((var(--switcherHeight) - 16px) / 2);width:16px;height:16px;color:var(--colorInk);transition:top var(--durationFast) ease, left var(--durationFast) ease, right var(--durationFast) ease, color var(--durationSwitch) ease;position:absolute}.ThemeSwitcher-module__moon__x0Dn{left:calc((var(--switcherHeight) - 16px) / 2)}.ThemeSwitcher-module__sun__eH3h{right:calc((var(--switcherHeight) - 16px) / 2)}.ThemeSwitcher-module__switcher__j2qu .ThemeSwitcher-module__iconOnThumb__fqH9{color:var(--colorSwitcherIcon)}.Header-module__header__wTqS{z-index:60;padding-block:var(--headerPaddingY);background-color:var(--colorBg);transition:box-shadow var(--durationHeader) ease;position:sticky;top:0;box-shadow:0 1px #0000}.Header-module__stuck__7NPM{box-shadow:var(--shadowHeader)}.Header-module__inner__dIQI{height:var(--headerRowHeight);grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;display:grid}.Header-module__logo__xbM8{justify-self:start;align-items:center;text-decoration:none;display:inline-flex}.Header-module__logoMark__4yYC{width:var(--logoSize);height:var(--logoSize);color:var(--colorInk);transition:width var(--durationFast) ease, height var(--durationFast) ease, color var(--durationFast) ease}@media (hover:hover){.Header-module__logo__xbM8:hover .Header-module__logoMark__4yYC{color:var(--colorAccent)}}.Header-module__switcherSlot__EaVW{justify-self:end}@media (max-width:980px){.Header-module__inner__dIQI{display:flex}.Header-module__switcherSlot__EaVW{margin-left:auto}}.Header-module__menuOpen__n3O9{box-shadow:none}.Header-module__menuOpen__n3O9 .Header-module__logo__xbM8,.Header-module__menuOpen__n3O9 .Header-module__switcherSlot__EaVW{visibility:hidden;opacity:0}.Header-module__logo__xbM8,.Header-module__switcherSlot__EaVW{transition:opacity var(--durationMenu) var(--easeOut), visibility 0s}.HeroDeck-module__field__-PBF{--deckCycle:7s;--deckSalmon:#f2a78cd1;--deckWire:#b086cc;--deckKey:#6a3689;--deckBand:#3d0f9e;--deckBandAlpha:.36;--deckKeyLit:#d8b4ff;aspect-ratio:1/.86;position:relative}:root[data-theme=light] .HeroDeck-module__field__-PBF{--deckBand:var(--colorAccent);--deckBandAlpha:.14}.HeroDeck-module__scene__Yd2q{width:100%;height:100%;display:block;overflow:visible}.HeroDeck-module__bandRight__tFN7{fill:url(#heroDeckBandRight)}.HeroDeck-module__bandLeft__WBs4{fill:url(#heroDeckBandLeft)}.HeroDeck-module__bandStop__1N7f{stop-color:var(--deckBand);stop-opacity:var(--deckBandAlpha)}.HeroDeck-module__bandDrop__KB42{stop-color:var(--deckBand);stop-opacity:calc(var(--deckBandAlpha) * .5)}.HeroDeck-module__bandFade__yPJ4{stop-color:var(--deckBand);stop-opacity:0}.HeroDeck-module__mark__RA5x{fill:color-mix(in srgb, var(--colorAccent) 34%, transparent);font-family:var(--fontSans);letter-spacing:-.02em;text-anchor:middle;dominant-baseline:central;font-weight:500}.HeroDeck-module__icon__shwa{fill:none;stroke:color-mix(in srgb, var(--colorAccent) 52%, transparent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.HeroDeck-module__floor__XkjT{transform-origin:50%}.HeroDeck-module__deck__Ofi1{fill:url(#heroDeckBase);stroke:#2c1458;stroke-width:5px;opacity:.95}.HeroDeck-module__deckCast__-H8X{fill:#10054d}.HeroDeck-module__deckPlate__gNF1{fill:#b592d9}.HeroDeck-module__keyboardGroup__aTWC{opacity:.77}.HeroDeck-module__keyboard__SI0X{fill:#3d065f}.HeroDeck-module__keyCast__VO2b{fill:#8a58a5}.HeroDeck-module__lidShade__hGua{fill:url(#heroDeckLidShade)}.HeroDeck-module__notchTop__1Zq5{fill:#140a2c}.HeroDeck-module__lens__i6-G{fill:#2f2352}.HeroDeck-module__lensGlint__gr5O{fill:#bed2ff8c}.HeroDeck-module__hinge__iufF{fill:url(#heroDeckHinge)}.HeroDeck-module__hingeLit__Kx-M{fill:#b291ff42}.HeroDeck-module__key__ieTa{fill:var(--deckKey);cursor:pointer}.HeroDeck-module__lid__IN7L{fill:url(#heroDeckLid);opacity:.94}.HeroDeck-module__screen__46sv{fill:url(#heroDeckScreen);stroke:#4b1487;stroke-width:2px;opacity:.82}.HeroDeck-module__shine__MZa2{transform-origin:50%}.HeroDeck-module__bits__dzFR{fill:#86e8dd;font-family:var(--fontMono);letter-spacing:.1em;opacity:.6;font-size:12px}.HeroDeck-module__flowBlock__Ir07{fill:var(--deckSalmon)}.HeroDeck-module__flowLine__b2y7{fill:var(--deckWire)}.HeroDeck-module__flowArrow__1qAX{fill:none;stroke:var(--deckWire);stroke-width:2.2px}.HeroDeck-module__arrowHead__oIVS{fill:var(--deckWire)}.HeroDeck-module__rhombusLabel__Zq13{fill:#fff0e8;font-family:var(--fontMono);text-anchor:middle;dominant-baseline:central;font-size:15px}.HeroDeck-module__glass__--EW{fill:url(#heroDeckGlass);stroke:#ffffff2e;stroke-width:1px}.HeroDeck-module__bar__d9fE{transform-box:fill-box;transform-origin:0}.HeroDeck-module__warm__gbsv{fill:#f5d97b}.HeroDeck-module__cool__vkFQ{fill:#7fd8e8}.HeroDeck-module__pink__Xdwk{fill:#e879f9}.HeroDeck-module__ink__XODi{fill:#ffffff8c}.HeroDeck-module__rail__JeRx{fill:url(#heroDeckGlass);stroke:#ffffff29;stroke-width:1px}.HeroDeck-module__railCast__moiZ{fill:#2b0f91a3}.HeroDeck-module__strip__Satp{transition:transform .46s var(--easeOut)}@media (prefers-reduced-motion:reduce){.HeroDeck-module__strip__Satp{transition:none}}.HeroDeck-module__notch__hqEP{fill:#23114a}.HeroDeck-module__pad__2JTI{fill:#ffffff0d;stroke:#ffffff12;stroke-width:1px}.HeroDeck-module__railButton__361R{cursor:pointer}.HeroDeck-module__railHit__S5Hf{fill:#0000}.HeroDeck-module__railArrow__qSCu{pointer-events:none;fill:#ffffff9e;transition:fill .2s}.HeroDeck-module__railButton__361R:hover .HeroDeck-module__railArrow__qSCu{fill:#fff}.HeroDeck-module__chipDisc__GPb9{fill:#ffffff1a;stroke:#ffffff29;stroke-width:1px}.HeroDeck-module__markReact__sCd8{fill:none;stroke:#61dafb;stroke-width:1.4px}.HeroDeck-module__markReact__sCd8 circle{fill:#61dafb;stroke:none}.HeroDeck-module__markLine__VnQz{fill:none;stroke:#8ed1fc;stroke-width:1.4px}.HeroDeck-module__markVite__ztyQ{fill:#f0c040}.HeroDeck-module__markLabel__eZl1{fill:#fff;font-family:var(--fontMono);text-anchor:middle;dominant-baseline:central;font-size:9px}.HeroDeck-module__markLabelDark__kg-i{fill:#2a1245}@media (prefers-reduced-motion:no-preference){.HeroDeck-module__bandRight__tFN7{animation:6s linear infinite HeroDeck-module__deck-sweep-right__k4bS}.HeroDeck-module__bandLeft__WBs4{animation:6s linear infinite HeroDeck-module__deck-sweep-left__Ye-v}[data-in] .HeroDeck-module__sign__y1Xx{animation:HeroDeck-module__deck-enter__0vrR 1.5s var(--easeOut) backwards;animation-delay:calc(var(--step) * 70ms)}.HeroDeck-module__signIdle__7Tw5{animation:17s ease-in-out infinite HeroDeck-module__deck-sign__MxtR;animation-delay:calc(var(--step) * -1.7s)}.HeroDeck-module__floor__XkjT,.HeroDeck-module__shine__MZa2{animation:5s ease-in-out infinite HeroDeck-module__deck-breathe__nfo4}.HeroDeck-module__key__ieTa{animation:9s ease-out infinite HeroDeck-module__deck-press__3r3j;animation-delay:var(--delay,0s)}.HeroDeck-module__flowBlock__Ir07,.HeroDeck-module__flowLine__b2y7,.HeroDeck-module__flowArrow__1qAX{animation:HeroDeck-module__deck-wake__Sti5 var(--deckCycle) ease-out infinite backwards;animation-delay:calc(var(--step) * .55s)}.HeroDeck-module__bits__dzFR{animation:3.2s step-end infinite HeroDeck-module__deck-bits__tRXq;animation-delay:calc(var(--step) * -.45s)}.HeroDeck-module__bar__d9fE{animation:HeroDeck-module__deck-type__pqr8 var(--deckCycle) ease-out infinite backwards;animation-delay:calc(.4s + var(--step) * .14s)}.HeroDeck-module__drift__2bjC{animation:8s ease-in-out infinite HeroDeck-module__deck-drift__rMLr}.HeroDeck-module__driftSlow__uzbB{animation:10.5s ease-in-out infinite reverse HeroDeck-module__deck-drift__rMLr}@keyframes HeroDeck-module__deck-sweep-right__k4bS{0%{opacity:0;transform:translateX(calc(var(--slide) * -1))}22%{opacity:.62;transform:translateX(calc(var(--slide) * -.56))}48%{opacity:1;transform:translateX(calc(var(--slide) * -.04))}70%{opacity:.44;transform:translateX(calc(var(--slide) * .4))}86%{opacity:.13;transform:translateX(calc(var(--slide) * .72))}to{opacity:0;transform:translateX(var(--slide))}}@keyframes HeroDeck-module__deck-sweep-left__Ye-v{0%{opacity:0;transform:translateX(var(--slide))}22%{opacity:.62;transform:translateX(calc(var(--slide) * .56))}48%{opacity:1;transform:translateX(calc(var(--slide) * .04))}70%{opacity:.44;transform:translateX(calc(var(--slide) * -.4))}86%{opacity:.13;transform:translateX(calc(var(--slide) * -.72))}to{opacity:0;transform:translateX(calc(var(--slide) * -1))}}@keyframes HeroDeck-module__deck-enter__0vrR{0%{opacity:0;transform:translate(var(--dx,0), var(--dy,0))}to{opacity:1;transform:translate(0)}}@keyframes HeroDeck-module__deck-sign__MxtR{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes HeroDeck-module__deck-breathe__nfo4{0%,to{opacity:.78}50%{opacity:1}}@keyframes HeroDeck-module__deck-press__3r3j{0%,to{fill:var(--deckKey)}1%{fill:var(--deckKeyLit)}7%{fill:var(--deckKey)}}@keyframes HeroDeck-module__deck-wake__Sti5{0%{opacity:.3}6%{opacity:1}48%{opacity:1}72%,to{opacity:.6}}@keyframes HeroDeck-module__deck-bits__tRXq{0%,to{opacity:.32}25%{opacity:.78}50%{opacity:.48}75%{opacity:.92}}@keyframes HeroDeck-module__deck-type__pqr8{0%{opacity:0;transform:scaleX(0)}4%{opacity:1}14%{transform:scaleX(1)}84%{opacity:1;transform:scaleX(1)}94%,to{opacity:0;transform:scaleX(1)}}@keyframes HeroDeck-module__deck-drift__rMLr{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.HeroDeck-module__hit__weDL{animation:.46s ease-out HeroDeck-module__deck-hit__rdHZ}@keyframes HeroDeck-module__deck-hit__rdHZ{0%{fill:#fff}22%{fill:var(--deckKeyLit)}to{fill:var(--deckKey)}}}@media (max-width:980px){.HeroDeck-module__field__-PBF{width:100%;max-width:520px;margin-inline:auto}}.TypedHeadline-module__headline__YuEn{min-height:5em;margin-bottom:var(--space5);font-weight:var(--weightLight);font-size:var(--textDisplay);line-height:var(--leadingDisplay);letter-spacing:var(--trackingDisplay)}.TypedHeadline-module__settled__bgYs{display:block}.TypedHeadline-module__typed__NMA3,html.js .TypedHeadline-module__settled__bgYs{display:none}html.js .TypedHeadline-module__typed__NMA3{display:block}@media (prefers-reduced-motion:reduce){html.js .TypedHeadline-module__settled__bgYs{display:block}html.js .TypedHeadline-module__typed__NMA3{display:none}}.TypedHeadline-module__line__uqQB{display:block}.TypedHeadline-module__caret__EFF-{vertical-align:-.14em;background-color:var(--colorAccent);width:2px;height:1em;margin-left:3px;animation:1.05s step-end infinite TypedHeadline-module__blink__Ppj1;display:inline-block}@keyframes TypedHeadline-module__blink__Ppj1{0%,49%{opacity:1}50%,to{opacity:0}}@media (max-width:560px){.TypedHeadline-module__headline__YuEn{min-height:6em}}.Hero-module__hero__txrD{padding-block:var(--space8) var(--space9);position:relative}.Hero-module__inner__0OPd{gap:var(--space7);grid-template-columns:.92fr 1.08fr;align-items:center;display:grid}.Hero-module__actions__YFdb{gap:var(--space4);flex-wrap:wrap;align-items:center;display:flex}@media (max-width:980px){.Hero-module__inner__0OPd{gap:var(--space6);grid-template-columns:1fr}}@media (max-width:768px){.Hero-module__hero__txrD{padding-block:var(--space6) var(--space7)}}.ProjectPreview-module__preview__MANQ{aspect-ratio:4/2.9;background-color:var(--colorCardMuted);border-bottom:1px solid var(--colorLine);position:relative;overflow:hidden}.ProjectPreview-module__trigger__p6Ih{cursor:pointer;width:100%;height:100%;transition:transform .6s var(--easeOut);background:0 0;border:0;display:block;position:absolute;inset:0}.ProjectPreview-module__screenshot__SJYg{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.ProjectCard-module__card__NwZv{height:100%;transition:box-shadow var(--durationHover) ease-in-out;flex-direction:column;display:flex;overflow:hidden}.ProjectCard-module__body__ZdXX{padding:var(--space5);flex-direction:column;flex:1;gap:11px;display:flex}.ProjectCard-module__title__6dWt{font-weight:var(--weightLight);font-size:var(--textMd);line-height:var(--leadingDisplay);letter-spacing:var(--trackingDisplay)}.ProjectCard-module__link__lTcy{background-image:linear-gradient(var(--colorAccent), var(--colorAccent));transition:background-size var(--durationHover) ease-in-out, color var(--durationHover) ease-in-out;background-position:0 100%;background-repeat:no-repeat;background-size:0 1.5px;text-decoration:none}.ProjectCard-module__description__4A6Z{color:var(--colorInkMuted);font-size:var(--textCaption);flex:1}@media (hover:hover){.ProjectCard-module__card__NwZv:hover{z-index:1;box-shadow:var(--shadowCardHover)}.ProjectCard-module__card__NwZv:hover [data-preview-stage]{transform:scale(1.04)}.ProjectCard-module__link__lTcy:hover{color:var(--colorAccent);background-size:100% 1.5px}}.Portfolio-module__grid__INJa{gap:var(--space5);grid-template-columns:repeat(3,1fr);display:grid}.Portfolio-module__item__aeib{display:flex}.Portfolio-module__item__aeib>*{width:100%}@media (max-width:980px){.Portfolio-module__grid__INJa{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.Portfolio-module__grid__INJa{grid-template-columns:1fr}}.SkillCard-module__skill__jttI{z-index:0;font-size:var(--textBody);background-color:var(--colorCard);border:1px solid var(--colorLine);border-radius:var(--radiusMd);box-shadow:var(--shadowCard);transition:border-color var(--durationHover) ease-in-out, color var(--durationHover) ease-in-out;padding:14px 18px;position:relative}.SkillCard-module__soft__ZfVK{color:var(--colorInkMuted);align-items:flex-start;gap:13px;display:flex}.SkillCard-module__soft__ZfVK:before{background-color:var(--colorAccent);content:"";border-radius:50%;flex:none;width:8px;height:8px;margin-top:8px}@media (hover:hover){.SkillCard-module__skill__jttI:hover{z-index:1;color:var(--colorAccent);border-color:color-mix(in srgb, var(--colorAccent) 45%, var(--colorLine))}.SkillCard-module__soft__ZfVK:hover{color:var(--colorInk)}}.Skills-module__grid__UVsq{gap:var(--space7);grid-template-columns:1fr 1fr;display:grid}.Skills-module__title__a5EF{margin-bottom:var(--space5);font-weight:var(--weightLight);font-size:var(--textLg);line-height:var(--leadingDisplay);letter-spacing:var(--trackingDisplay)}.Skills-module__list__xsyS{gap:var(--space3);flex-wrap:wrap;display:flex}.Skills-module__listSoft__32fu{gap:var(--space3);display:grid}@media (max-width:860px){.Skills-module__grid__UVsq{gap:var(--space6);grid-template-columns:1fr}}
