@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Fallback;src:local("Arial"),local("Liberation Sans"),local("Helvetica Neue"),local("Helvetica");size-adjust:96.45%;ascent-override:91.03%;descent-override:21.77%;line-gap-override:0%}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;overflow-x:hidden;background:var(--surface-page);color:var(--text-body);font-family:Archivo Variable,Archivo Fallback,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before,body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}body:before{background:var(--field)}body:after{opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul[class],ol[class]{list-style:none;padding:0;margin:0}img,picture,svg,video{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration-thickness:.08em;text-underline-offset:.18em}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:2px}[id]{scroll-margin-top:calc(var(--header-h) + var(--space-4))}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: no-preference){@keyframes arrive{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@supports (animation-timeline: view()){.reveal{animation:arrive linear both;animation-timeline:view();animation-range:entry 10% entry 55%}.stagger-children>*{animation:arrive linear both;animation-timeline:view();animation-range:entry 5% entry 50%}}@supports not (animation-timeline: view()){.reveal.visible{animation:arrive var(--dur-3) var(--ease-out) both}.stagger-children.visible>*{animation:arrive var(--dur-3) var(--ease-out) both;animation-delay:calc(var(--i, 0) * var(--stagger))}}}.section{padding-block:var(--section-gap)}.section .content{width:min(100% - var(--space-6) * 2,var(--width-content));margin-inline:auto}.section .title{margin-bottom:var(--space-12);font-size:clamp(var(--fs-xl),1.2rem + 1.8vw,var(--fs-2xl));font-weight:600;font-variation-settings:"wdth" 112;line-height:1.08;letter-spacing:-.015em;color:var(--text-strong)}.skip-link{position:absolute;z-index:200;top:var(--space-4);left:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--surface-raised);color:var(--text-strong);border:1px solid var(--line-strong);border-radius:var(--radius-control);font-size:var(--fs-base);font-weight:600;text-decoration:none;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link:focus-visible{width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}@media (min-width: 64rem){.layout{display:grid;grid-template-columns:clamp(16rem,26vw,24rem) 1fr;gap:var(--space-8)}}#main{min-width:0}.section,.header,footer{position:relative;z-index:1}.experience__rail{position:relative;display:flex;flex-direction:column;margin-top:var(--space-6);padding-left:var(--space-6)}.experience__rail-track{position:absolute;top:0;bottom:0;left:calc((var(--space-6) - 2px) / 2);width:2px;background:var(--line-hairline)}.experience__entry{position:relative;display:grid;grid-template-columns:1fr;row-gap:var(--space-4);padding-block:var(--space-10);border-top:1px solid var(--line-hairline)}.experience__entry:first-of-type{border-top:none}@media (min-width: 48rem){.experience__entry{grid-template-columns:10.5rem minmax(0,1fr);column-gap:var(--space-8);row-gap:0}}.experience__entry__node{position:absolute;top:var(--space-10);left:calc(-1 * var(--space-6) + (var(--space-6) - .625rem) / 2);width:.625rem;height:.625rem;background:var(--accent)}.experience__entry__meta{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}@media (min-width: 48rem){.experience__entry__meta{position:sticky;top:calc(var(--header-h) + var(--space-6));align-self:start}}.experience__entry__date{font-size:var(--fs-sm);color:var(--text-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}.experience__entry__marker{display:inline-block;padding:2px var(--space-2);background:var(--surface-tint);color:var(--accent);font-size:var(--fs-sm);font-weight:600;border-radius:var(--radius-control)}.experience__entry__content{display:flex;flex-direction:column;gap:var(--space-2)}.experience__entry__company{font-size:var(--fs-xl);font-weight:600;color:var(--text-strong)}.experience__entry__role{font-size:var(--fs-lg);font-weight:500;color:var(--text-muted)}.experience__entry__description{max-width:66ch;margin-top:var(--space-2);font-size:var(--fs-base);line-height:1.6;color:var(--text-body)}.experience__metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:var(--space-6) var(--space-8);margin-top:var(--space-6)}.experience__metric{display:flex;flex-direction:column;gap:var(--space-1)}.experience__metric__figure{font-size:clamp(var(--fs-xl),1.6rem + 1vw,var(--fs-2xl));font-weight:700;font-variation-settings:"wdth" 118;font-variant-numeric:tabular-nums lining-nums;line-height:1;color:var(--text-strong)}.experience__metric__label{max-width:18ch;font-size:var(--fs-sm);color:var(--text-muted)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.experience{view-timeline:--experience-scroll block}@keyframes experience-rail-fill{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.experience__rail-track:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:top;background:linear-gradient(to bottom,var(--ramp-a),var(--ramp-mid),var(--ramp-b));animation:experience-rail-fill linear both;animation-timeline:--experience-scroll}@keyframes experience-node-reveal{0%{opacity:1}to{opacity:0}}.experience__entry__node:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface-sunken);animation:experience-node-reveal linear both;animation-timeline:view();animation-range:contain 0% contain 55%}}}.header__section{cursor:pointer}.language-switcher{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--line-strong);border-radius:var(--radius-control)}.lang-btn{padding:var(--space-1) var(--space-3);background:transparent;border:none;border-radius:calc(var(--radius-control) - 2px);cursor:pointer;font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);letter-spacing:.05em;transition:color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.lang-btn.active{background:var(--surface-tint);color:var(--accent)}.lang-btn:not(.active):hover{color:var(--text-strong)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--text-body);cursor:pointer}.theme-toggle:hover{color:var(--text-strong)}.theme-toggle__glyphs{position:relative;display:block;width:var(--icon-md);height:var(--icon-md)}.theme-toggle__glyph{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;transform:rotate(-90deg);transition:opacity var(--dur-2) var(--ease-settle),transform var(--dur-2) var(--ease-settle)}.theme-toggle__glyph--active{opacity:1;transform:rotate(0)}.section-cube__tilt{width:var(--cube-size);height:var(--cube-size);transform-style:preserve-3d;transform:rotateX(-16deg)}.section-cube__cube{position:relative;width:100%;height:100%;transform-style:preserve-3d;will-change:transform}.section-cube__face,.section-cube__cap{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;border:1px solid var(--line-strong);border-radius:0;backface-visibility:hidden}.section-cube__face{overflow:hidden;background:var(--surface-raised)}.section-cube__face--1,.section-cube__face--3{background:var(--surface-tint)}.section-cube__face--0{transform:rotateY(0) translateZ(calc(var(--cube-size) / 2))}.section-cube__face--1{transform:rotateY(90deg) translateZ(calc(var(--cube-size) / 2))}.section-cube__face--2{transform:rotateY(180deg) translateZ(calc(var(--cube-size) / 2))}.section-cube__face--3{transform:rotateY(270deg) translateZ(calc(var(--cube-size) / 2))}.section-cube__cap{background:var(--surface-sunken)}.section-cube__cap--top{transform:rotateX(90deg) translateZ(calc(var(--cube-size) / 2))}.section-cube__cap--bottom{transform:rotateX(-90deg) translateZ(calc(var(--cube-size) / 2))}.section-cube__icon{flex-shrink:0;color:var(--accent)}.section-cube--side{display:none}@media (min-width: 64rem){.section-cube--side{display:block}}.section-cube--side .section-cube__stage{--cube-size: min(15rem, 20vw);--cube-perspective: 64rem;position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));display:flex;align-items:center;justify-content:center;overflow:hidden;perspective:var(--cube-perspective)}.section-cube--side .section-cube__face{flex-direction:column;align-items:flex-start;justify-content:center;gap:calc(var(--cube-size) * .06);padding:calc(var(--cube-size) * .12)}.section-cube--side .section-cube__icon{width:calc(var(--cube-size) * .22);height:calc(var(--cube-size) * .22)}.section-cube--side .section-cube__title{font-size:clamp(1rem,var(--cube-size) * .12,1.5rem);font-weight:600;font-variation-settings:"wdth" 112;line-height:1.15;color:var(--text-strong)}.section-cube--side .section-cube__fact{font-family:var(--font-mono);font-size:clamp(.8125rem,var(--cube-size) * .07,.9375rem);line-height:1.4;color:var(--text-muted)}.section-cube--compact{display:inline-flex;flex-shrink:0}@media (min-width: 64rem){.section-cube--compact{display:none}}.section-cube--compact .section-cube__stage{--cube-size: clamp(1.75rem, 6vw, 2.25rem);--cube-perspective: 9.5rem;display:flex;align-items:center;justify-content:center;perspective:var(--cube-perspective)}.section-cube--compact .section-cube__face{align-items:center;justify-content:center}.section-cube--compact .section-cube__icon{width:calc(var(--cube-size) * .5);height:calc(var(--cube-size) * .5)}.header{position:sticky;top:0;width:100%;height:var(--header-h);background:var(--surface-page);border-bottom:1px solid var(--line-hairline);z-index:10}.header .header__content{margin-inline:auto;width:min(100% - var(--space-6) * 2,var(--width-wide));height:100%;display:flex;align-items:center;gap:var(--space-2)}@media (min-width: 34rem){.header .header__content{gap:var(--space-6)}}.header .header__brand{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;min-width:0;margin-inline-end:auto}.header .header__logo{font-size:var(--fs-md);font-weight:600;color:var(--text-strong);letter-spacing:-.01em;flex-shrink:0}.header .header__nav{display:none;align-items:center;gap:var(--space-6)}@media (min-width: 64rem){.header .header__nav{display:flex}}.header .header__nav .header__section a{display:inline-block;font-size:var(--fs-base);color:var(--text-body);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-position:0 100%;background-repeat:no-repeat;padding-bottom:.2em;transition:background-size var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.header .header__nav .header__section a:hover,.header .header__nav .header__section a:focus-visible{color:var(--text-strong);background-size:100% 1.5px}.header>.header__content>.theme-toggle,.header>.header__content>.language-switcher{display:none}@media (min-width: 48rem){.header>.header__content>.theme-toggle,.header>.header__content>.language-switcher{display:inline-flex}}.header .header__cv-btn{display:inline-flex;align-items:center;gap:var(--space-2);flex-shrink:0;padding:var(--space-2) var(--space-4);background:var(--accent);color:var(--on-accent);font-size:var(--fs-sm);font-weight:600;letter-spacing:.02em;border-radius:var(--radius-control);text-decoration:none;transition:background var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}.header .header__cv-btn:hover,.header .header__cv-btn:focus-visible{background:var(--accent-hover);transform:translateY(-1px)}.header .header__cv-btn:active{transform:translateY(0)}.header .header__menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;padding:0;background:transparent;border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--text-body);cursor:pointer}.header .header__menu-toggle:hover{color:var(--text-strong)}@media (min-width: 64rem){.header .header__menu-toggle{display:none}}.header__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-page);z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-6)}.header__overlay__panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-6);width:min(100%,22rem);padding:var(--space-12) var(--space-8);background:var(--surface-raised);border-radius:var(--radius-surface);box-shadow:var(--shadow-overlay)}.header__overlay__nav{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.header__overlay__nav .header__section a{font-size:var(--fs-xl);font-weight:600;color:var(--text-body);letter-spacing:-.01em;padding:var(--space-2) 0;text-decoration:none;display:block;transition:color var(--dur-2) var(--ease-out)}.header__overlay__nav .header__section a:hover,.header__overlay__nav .header__section a:focus-visible{color:var(--text-strong)}.header__overlay__controls{display:flex;align-items:center;gap:var(--space-4)}@media (prefers-reduced-motion: no-preference){.header__overlay__nav .header__section{opacity:0;transform:translateY(16px);animation:overlay-item-in var(--dur-3) var(--ease-out) both}.header__overlay__nav .header__section:nth-child(1){animation-delay:calc(0 * var(--stagger))}.header__overlay__nav .header__section:nth-child(2){animation-delay:calc(1 * var(--stagger))}.header__overlay__nav .header__section:nth-child(3){animation-delay:calc(2 * var(--stagger))}.header__overlay__nav .header__section:nth-child(4){animation-delay:calc(3 * var(--stagger))}.header__overlay__nav .header__section:nth-child(5){animation-delay:calc(4 * var(--stagger))}@keyframes overlay-item-in{to{opacity:1;transform:none}}}.home-section{padding-block:var(--section-gap);display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - var(--header-h));min-height:calc(100svh - var(--header-h))}.home-section>.content{display:flex;flex-direction:column;gap:var(--space-16)}.home__intro{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);min-width:0}.home__intro__top{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.home__intro__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%}.home__greeting{font-size:var(--fs-sm);font-weight:500;color:var(--text-muted)}.home__name{font-size:clamp(var(--fs-2xl),1.2rem + 5.85vw,var(--fs-display));font-weight:700;line-height:.92;letter-spacing:-.02em;color:var(--text-strong);font-variation-settings:"wdth" 112,"wght" 700}.home__name-line{display:block}.home__role{font-size:var(--fs-lg);font-weight:500;color:var(--text-muted)}.home__positioning{max-width:34ch;font-size:var(--fs-base);font-weight:400;font-variation-settings:"wdth" 87;line-height:1.5;color:var(--text-body)}.home__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-6)}.home__socials{display:flex;align-items:center;gap:var(--space-5)}.home__social-link{display:inline-flex;color:var(--text-muted);transition:color var(--dur-2) var(--ease-out)}.home__social-link svg{width:var(--icon-md);height:var(--icon-md)}.home__social-link:hover,.home__social-link:focus-visible{color:var(--text-strong)}.home__cv-button{display:inline-flex;align-items:center;padding:var(--space-3) var(--space-5);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--text-strong);font-size:var(--fs-base);font-weight:600;text-decoration:none;transition:border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.home__cv-button:hover,.home__cv-button:focus-visible{border-color:var(--accent);color:var(--accent)}.home__portrait a{display:inline-block}.home__portrait-frame{display:inline-flex;padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-control);transition:border-color var(--dur-2) var(--ease-out)}.home__portrait-image{display:block;width:80px;height:80px;object-fit:cover;border-radius:var(--radius-plate)}.home__portrait a:hover .home__portrait-frame,.home__portrait a:focus-visible .home__portrait-frame{border-color:var(--accent)}.bento{margin-top:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:1fr}@media (min-width: 48rem){.bento{grid-template-columns:repeat(2,1fr)}}@media (min-width: 64rem){.bento{grid-template-columns:repeat(12,1fr)}}@media (min-width: 64rem){.bento__cell--featured{grid-column:span 7}}@media (min-width: 64rem){.bento__cell--secondary{grid-column:span 5}}@media (min-width: 64rem){.bento__cell--config{grid-column:span 5}}@media (min-width: 64rem){.bento__cell--comparator{grid-column:span 7}}@media (min-width: 64rem){.bento__cell--giphy{grid-column:span 6}}@media (min-width: 64rem){.bento__cell--blog{grid-column:span 6}}.bento__cell{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:0;border:none;margin:0;padding:0;color:inherit;text-align:left;text-decoration:none;font:inherit;cursor:pointer}.bento__cell:not(.bento__cell--spotlight){background:var(--surface-raised)}.bento__cell:not(.bento__cell--spotlight) .bento__title{color:var(--text-strong)}.bento__cell:not(.bento__cell--spotlight) .bento__description{color:var(--text-body)}.bento__cell:not(.bento__cell--spotlight) .bento__tech{color:var(--text-muted)}.bento__cell:not(.bento__cell--spotlight) .bento__action{color:var(--accent)}.bento__cell--spotlight{padding:var(--space-5);gap:var(--space-4);background:linear-gradient(180deg,var(--ramp-b) 0%,var(--ramp-mid) 45%,var(--ramp-a) 100%)}.bento__cell--spotlight .bento__frame{background:transparent}.bento__cell--spotlight .bento__title,.bento__cell--spotlight .bento__action{color:var(--on-media)}.bento__cell--spotlight .bento__description,.bento__cell--spotlight .bento__tech{color:var(--on-media-muted)}.bento__frame{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface-sunken);will-change:transform;transition:transform var(--dur-3) var(--ease-out)}.bento__frame img{display:block;width:100%;height:100%;object-fit:contain;border-radius:0}.bento__cell--featured .bento__frame,.bento__cell--secondary .bento__frame,.bento__cell--config .bento__frame,.bento__cell--comparator .bento__frame{aspect-ratio:4/3}.bento__cell--giphy .bento__frame{aspect-ratio:1963/1116}.bento__cell--blog .bento__frame{aspect-ratio:1421/1104}.bento__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);padding:var(--space-4) var(--space-5) var(--space-5)}.bento__title{font-size:var(--fs-md);font-weight:600}.bento__description{max-width:46ch;font-size:var(--fs-base);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bento__tech{font-family:var(--font-mono);font-size:var(--fs-sm)}.bento__action{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1);font-size:var(--fs-base);font-weight:600}.bento__action svg{flex-shrink:0}.bento__cell:hover .bento__frame,.bento__cell:focus-visible .bento__frame{transform:scale(1.045)}.bento__cell:active{transform:scale(.985);transition:transform var(--dur-1) var(--ease-out)}.project-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--surface-page)}.project-modal{position:relative;width:100%;max-width:42rem;max-height:85vh;overflow-y:auto;background:var(--surface-raised);border-radius:var(--radius-surface);box-shadow:var(--shadow-overlay)}.project-modal__close{position:absolute;top:var(--space-3);right:var(--space-3);z-index:10;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--text-body);cursor:pointer;transition:color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.project-modal__close:hover,.project-modal__close:focus-visible{color:var(--text-strong);border-color:var(--accent)}.project-modal__carousel{position:relative;aspect-ratio:16/10;background:var(--surface-sunken);overflow:hidden}.project-modal__carousel img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity var(--dur-3) var(--ease-out)}.project-modal__carousel img.active{opacity:1}.project-modal__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--text-body);cursor:pointer;transition:color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.project-modal__arrow:hover,.project-modal__arrow:focus-visible{color:var(--text-strong);border-color:var(--accent)}.project-modal__arrow--prev{left:var(--space-3)}.project-modal__arrow--next{right:var(--space-3)}.project-modal__dots{position:absolute;bottom:var(--space-3);left:50%;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:var(--space-2)}.project-modal__dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:var(--text-muted);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}.project-modal__dot.active{background:var(--accent)}.project-modal__info{padding:var(--space-6)}.project-modal__title{font-size:var(--fs-lg);font-weight:600;color:var(--text-strong)}.project-modal__description{margin-top:var(--space-2);font-size:var(--fs-base);line-height:1.6;color:var(--text-body)}.project-modal__technologies{margin-top:var(--space-3);font-size:var(--fs-base);color:var(--text-muted)}.about_me__content{margin-top:var(--space-6);max-width:var(--measure-prose);display:flex;flex-direction:column;gap:var(--space-8)}.about_me__content strong{color:var(--text-strong);font-weight:600}.about_me__manifesto{font-size:clamp(var(--fs-lg),1rem + 1.1vw,var(--fs-xl));font-weight:400;font-variation-settings:"wdth" 87;line-height:1.5;color:var(--text-body)}.about_me__word{display:inline}.contact__grid{display:grid;grid-template-columns:1fr;row-gap:var(--space-10)}@media (min-width: 48rem){.contact__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);column-gap:var(--space-12);row-gap:0;align-items:start}}.contact__cta{display:flex;flex-direction:column;gap:var(--space-4)}.contact__cta__heading{font-size:var(--fs-xl);font-weight:600;font-variation-settings:"wdth" 112;color:var(--text-strong);line-height:1.25;letter-spacing:-.01em;margin:0}.contact__cta__sub{color:var(--text-body);font-size:var(--fs-base);line-height:1.6;margin:0}.contact__info{list-style:none;padding:0;margin:var(--space-2) 0 0;display:flex;flex-direction:column;gap:var(--space-3)}.contact__info li{display:flex;align-items:center;gap:var(--space-3);color:var(--text-muted)}.contact__info a{color:var(--text-body);font-size:var(--fs-base);text-decoration:none;transition:color var(--dur-2) var(--ease-out)}.contact__info a:hover,.contact__info a:focus-visible{color:var(--text-strong)}.contact__info svg{flex-shrink:0}.contact__form{display:flex;flex-direction:column;gap:var(--space-5)}.contact__form__row{display:grid;grid-template-columns:1fr;gap:var(--space-5)}@media (min-width: 34rem){.contact__form__row{grid-template-columns:1fr 1fr}}.contact__field{display:flex;flex-direction:column;gap:var(--space-2)}.contact__field label{color:var(--text-strong);font-size:var(--fs-sm);font-weight:600}.contact__field input,.contact__field textarea{width:100%;box-sizing:border-box;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-control);padding:.75rem .875rem;min-height:44px;color:var(--text-strong);font-size:var(--fs-base);font-family:inherit;transition:border-color var(--dur-2) var(--ease-out);outline:none;resize:none}.contact__field input:focus-visible,.contact__field textarea:focus-visible{border-color:var(--accent)}.contact__field textarea{min-height:auto}.contact__field--error input,.contact__field--error textarea{border-color:var(--text-error)}.contact__field__error{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;color:var(--text-error);font-size:var(--fs-base)}.contact__field__error svg{flex-shrink:0;margin-top:.15em}.contact__feedback{font-size:var(--fs-base);margin:0}.contact__feedback--success{color:var(--text-success)}.contact__feedback--error{color:var(--text-error)}.contact__submit{background:var(--accent);border:none;border-radius:var(--radius-control);padding:var(--space-4) var(--space-8);min-height:44px;color:var(--on-accent);font-size:var(--fs-base);font-weight:600;cursor:pointer;align-self:flex-end;transition:background var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}.contact__submit:hover:not(:disabled),.contact__submit:focus-visible:not(:disabled){background:var(--accent-hover)}.contact__submit:hover:not(:disabled):not(.contact__submit--magnetic),.contact__submit:focus-visible:not(:disabled):not(.contact__submit--magnetic){transform:translateY(-1px)}.contact__submit:active:not(:disabled):not(.contact__submit--magnetic){transform:translateY(0)}.contact__submit:disabled{opacity:.6;cursor:not-allowed}.education__list{position:relative;display:flex;flex-direction:column;margin-top:var(--space-6);padding-left:var(--space-6)}.education__rail{position:absolute;top:0;bottom:0;left:calc((var(--space-6) - 2px) / 2);width:2px;background:var(--line-hairline)}.education__entry{position:relative;padding-block:var(--space-8);border-top:1px solid var(--line-hairline)}.education__entry:first-of-type{border-top:none}.education__entry__node{position:absolute;top:var(--space-8);left:calc(-1 * var(--space-6) + (var(--space-6) - .625rem) / 2);width:.625rem;height:.625rem;background:var(--accent)}.education__entry__body{display:flex;flex-direction:column;gap:var(--space-2)}@media (min-width: 34rem){.education__entry:nth-of-type(2n) .education__entry__body{margin-inline-start:var(--space-12)}}.education__entry__issuer{font-size:var(--fs-xl);font-weight:600;color:var(--text-strong)}.education__entry__name{font-size:var(--fs-lg);color:var(--text-body)}.education__entry__meta{display:flex;flex-wrap:wrap;gap:var(--space-3);font-size:var(--fs-sm);color:var(--text-muted)}.education__entry__verify{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);width:fit-content;color:var(--accent);font-size:var(--fs-base);font-weight:600;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-2) var(--ease-out)}.education__entry__verify:hover,.education__entry__verify:focus-visible{background-size:100% 1.5px}.education__entry__verify svg{flex-shrink:0}.technologies__marquee{margin-top:var(--space-8);overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,black var(--space-10),black calc(100% - var(--space-10)),transparent);mask-image:linear-gradient(to right,transparent,black var(--space-10),black calc(100% - var(--space-10)),transparent)}.technologies__marquee__track{display:flex;width:max-content}.technologies__marquee__group{display:flex;flex-shrink:0;gap:var(--space-10);padding-inline-end:var(--space-10)}.technologies__marquee__track--static{flex-wrap:wrap;justify-content:center;gap:var(--space-6) var(--space-10)}.technologies__marquee__icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--space-10);height:var(--icon-lg);color:var(--text-muted)}.technologies__marquee__icon img,.technologies__marquee__icon svg{width:100%;height:100%}.technologies__core{margin-top:var(--space-10);display:flex;flex-direction:column;gap:var(--space-10)}.technologies__group__label{margin-bottom:var(--space-4);font-size:var(--fs-lg);font-weight:600;color:var(--text-strong)}.technologies__group__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-5)}.technologies__group__item{display:flex;align-items:center;gap:var(--space-3)}.technologies__group__item__label{font-size:var(--fs-base);font-family:var(--font-mono);color:var(--text-body)}.technologies__group__item__icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--space-10);height:var(--space-10);padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--line-hairline);border-radius:0;color:var(--text-body)}.technologies__group__item__icon img,.technologies__group__item__icon svg{width:100%;height:100%}.technologies__extended{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--line-hairline);display:flex;flex-direction:column;gap:var(--space-6)}.technologies__extended__row{display:grid;grid-template-columns:1fr;row-gap:var(--space-2)}@media (min-width: 48rem){.technologies__extended__row{grid-template-columns:9rem minmax(0,1fr);column-gap:var(--space-6)}}.technologies__extended__label{font-size:var(--fs-base);font-weight:600;color:var(--text-strong)}.technologies__extended__items{display:flex;flex-wrap:wrap;column-gap:var(--space-5);row-gap:var(--space-2)}.technologies__extended__item{font-size:var(--fs-base);color:var(--text-body)}.technologies__languages{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--line-hairline)}.technologies__languages__title{margin-bottom:var(--space-4);font-size:var(--fs-lg);font-weight:600;color:var(--text-strong)}.technologies__languages__list{display:flex;flex-direction:column;gap:var(--space-2)}.technologies__language{display:flex;align-items:baseline;gap:var(--space-3)}.technologies__language__name{font-size:var(--fs-base);font-weight:600;color:var(--text-strong)}.technologies__language__level{font-size:var(--fs-base);color:var(--text-body)}.certifications__list{position:relative;display:flex;flex-direction:column;margin-top:var(--space-6);padding-left:var(--space-6)}.certifications__rail{position:absolute;top:0;bottom:0;left:calc((var(--space-6) - 2px) / 2);width:2px;background:var(--line-hairline)}.certifications__entry{position:relative;padding-block:var(--space-8);border-top:1px solid var(--line-hairline)}.certifications__entry:first-of-type{border-top:none}.certifications__entry__node{position:absolute;top:var(--space-8);left:calc(-1 * var(--space-6) + (var(--space-6) - .625rem) / 2);width:.625rem;height:.625rem;background:var(--accent)}.certifications__entry__body{display:flex;flex-direction:column;gap:var(--space-2)}@media (min-width: 34rem){.certifications__entry:nth-of-type(2n) .certifications__entry__body{margin-inline-start:var(--space-12)}}.certifications__entry__issuer{font-size:var(--fs-md);font-weight:600;color:var(--text-strong)}.certifications__entry__name{font-size:var(--fs-base);color:var(--text-body)}.certifications__entry__date{font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums lining-nums}.certifications__entry__verify{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);width:fit-content;color:var(--accent);font-size:var(--fs-base);font-weight:600;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-2) var(--ease-out)}.certifications__entry__verify:hover,.certifications__entry__verify:focus-visible{background-size:100% 1.5px}.certifications__entry__verify svg{flex-shrink:0}:root{color-scheme:dark;--surface-page: #0c0f1a;--surface-raised: #141a2b;--surface-sunken: #070a12;--surface-tint: #231a33;--text-strong: #f2f4f8;--text-body: #c3c9d6;--text-muted: #8e99b0;--accent: #f0b454;--accent-hover: #f8c77a;--on-accent: #0c0f1a;--text-error: #f49b9b;--text-success: #8fd9a8;--line-strong: #6b7590;--line-hairline: #262f45;--focus-ring: #f0b454;--ramp-a: #6e2a8c;--ramp-mid: #9b1b6e;--ramp-b: #f0b454;--field: radial-gradient( ellipse 140% 95% at 12% -12%, rgba(110, 42, 140, .1) 0%, transparent 62% );--grain-opacity: .07;--shadow-overlay: 0 24px 64px rgba(0, 0, 0, .55);--on-media: #f7f8fb;--on-media-muted: rgba(247, 248, 251, .82);--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;--section-gap: clamp(4.5rem, 2rem + 7vw, 9rem);--width-content: 54rem;--width-wide: 75rem;--measure-prose: 68ch;--header-h: 4.5rem;--radius-control: 8px;--radius-plate: 3px;--radius-surface: 14px;--icon-sm: 1rem;--icon-md: 1.25rem;--icon-lg: 1.75rem;--font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-sm: .889rem;--fs-base: 1rem;--fs-md: 1.125rem;--fs-lg: 1.333rem;--fs-xl: 1.777rem;--fs-2xl: 2.369rem;--fs-display: 4.209rem;--dur-1: 0ms;--dur-2: 0ms;--dur-3: 0ms;--dur-4: 0ms;--stagger: 0ms;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-inout: cubic-bezier(.65, 0, .35, 1);--ease-settle: cubic-bezier(.34, 1.28, .64, 1)}:root[data-theme=light]{color-scheme:light;--surface-page: #f4f6fb;--surface-raised: #ffffff;--surface-sunken: #e7ebf4;--surface-tint: #efe6fa;--text-strong: #111726;--text-body: #3a4256;--text-muted: #555e72;--accent: #9b1b6e;--accent-hover: #7d1458;--on-accent: #ffffff;--text-error: #a3121f;--text-success: #12603a;--line-strong: #6f7a91;--line-hairline: #d3dae8;--focus-ring: #9b1b6e;--ramp-a: #3a1866;--ramp-mid: #6a196a;--ramp-b: #9b1b6e;--field: radial-gradient( ellipse 140% 95% at 12% -12%, rgba(155, 27, 110, .05) 0%, transparent 62% );--grain-opacity: .05;--shadow-overlay: 0 24px 64px rgba(17, 23, 38, .18)}@media (prefers-reduced-motion: no-preference){:root{--dur-1: .12s;--dur-2: .24s;--dur-3: .48s;--dur-4: .9s;--stagger: 70ms}html{scroll-behavior:smooth}}.footer-reveal{position:relative}.footer-reveal-spacer{height:var(--footer-h, 0px);background:var(--surface-page)}.footer{background:var(--surface-sunken);border-top:1px solid var(--line-hairline);padding-block:var(--space-16)}@media (min-width: 48rem){.footer{position:sticky;bottom:0}}.footer__content{margin-inline:auto;width:min(100% - var(--space-6) * 2,var(--width-wide))}.footer__grid{display:grid;grid-template-columns:1fr;gap:var(--space-8);padding-bottom:var(--space-12)}@media (min-width: 48rem){.footer__grid{grid-template-columns:1.4fr 1fr 1fr;gap:var(--space-12)}}.footer__logo{display:block;font-size:var(--fs-md);font-weight:600;color:var(--text-strong);letter-spacing:-.01em;margin-bottom:var(--space-3)}.footer__tagline{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.6;margin-bottom:var(--space-5);max-width:220px}.footer__socials{display:flex;flex-direction:column;gap:var(--space-3)}.footer__social-link{display:inline-flex;align-items:center;gap:var(--space-3);width:fit-content;color:var(--text-muted);font-size:var(--fs-base);text-decoration:none;transition:color var(--dur-2) var(--ease-out)}.footer__social-link svg{flex-shrink:0;width:var(--icon-sm);height:var(--icon-sm)}.footer__social-link:hover,.footer__social-link:focus-visible{color:var(--text-strong)}.footer__col-title{display:block;color:var(--text-strong);font-size:var(--fs-base);font-weight:600;margin-bottom:var(--space-5)}.footer__nav{display:flex;flex-direction:column;gap:var(--space-3)}.footer__nav a{display:inline-block;width:fit-content;color:var(--accent);font-size:var(--fs-base);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-position:0 100%;background-repeat:no-repeat;padding-bottom:.2em;transition:background-size var(--dur-2) var(--ease-out)}.footer__nav a:hover,.footer__nav a:focus-visible{background-size:100% 1.5px}.footer__contact-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-4)}.footer__contact-list li{display:flex;align-items:center;gap:var(--space-3);color:var(--text-muted)}.footer__contact-list a{color:var(--text-body);font-size:var(--fs-base);text-decoration:none;transition:color var(--dur-2) var(--ease-out);word-break:break-all}.footer__contact-list a:hover,.footer__contact-list a:focus-visible{color:var(--text-strong)}.footer__contact-list svg{flex-shrink:0}.footer__bottom{border-top:1px solid var(--line-hairline);padding-top:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);text-align:center}@media (min-width: 34rem){.footer__bottom{flex-direction:row;justify-content:space-between;text-align:left}}.footer__bottom span{color:var(--text-muted);font-size:var(--fs-sm);font-family:var(--font-mono)}.footer__bottom .footer__made-with{color:var(--text-muted)}
