.language-toggle{min-width:var(--tap-target);height:var(--tap-target);padding:0 var(--space-2);border-radius:var(--radius-full);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.04em;transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background-color:#0000;border:none;place-items:center;display:inline-grid}.language-toggle:hover{color:var(--color-primary-text);background-color:var(--color-primary-soft)}.language-toggle:focus-visible{border-radius:var(--radius-full)}.theme-toggle{width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-full);color:var(--color-text);transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background-color:#0000;border:none;place-items:center;padding:0;display:inline-grid}.theme-toggle:hover{color:var(--color-primary-text);background-color:var(--color-primary-soft)}.theme-toggle:active{transform:scale(.95)}.theme-toggle:focus-visible{border-radius:var(--radius-full)}.skip-link{top:var(--space-2);left:var(--space-4);z-index:calc(var(--z-header) + 1);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background-color:var(--color-primary);color:var(--color-on-primary);font-weight:var(--weight-semibold);pointer-events:auto;transition:transform var(--duration-fast) var(--ease-out);text-decoration:none;position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{color:var(--color-on-primary);transform:translateY(0)}.site-header{z-index:var(--z-header);height:var(--header-height);padding:var(--space-3) var(--space-4) 0;pointer-events:none;justify-content:center;display:flex;position:sticky;top:0}.site-header__bar{align-items:center;gap:var(--space-2);width:100%;max-width:var(--container-max);height:var(--header-bar-height);padding-inline:var(--space-4) var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-full);background-color:color-mix(in srgb, var(--color-surface) 85%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);pointer-events:auto;transition:background-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);display:flex;position:relative}.site-header--raised .site-header__bar{box-shadow:var(--shadow-md)}.site-header__logo{min-height:var(--tap-target);font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-text);align-items:center;text-decoration:none;display:inline-flex}.site-header__logo:hover{color:var(--color-text)}.site-header__dot{color:var(--color-primary)}.site-header__divider{width:1px;height:1.5rem;margin-inline:var(--space-2);background-color:var(--color-border);display:none}.site-header__nav{display:none}.site-header__list{gap:var(--space-1);padding:0;list-style:none;display:flex}.site-header__link{min-height:var(--tap-target);padding-inline:var(--space-3);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);align-items:center;text-decoration:none;display:inline-flex;position:relative}.site-header__link:hover{color:var(--color-text)}.site-header__link:after{content:"";right:var(--space-3);bottom:.6rem;left:var(--space-3);border-radius:var(--radius-full);background-color:var(--color-primary);transform-origin:100%;height:2px;transition:transform var(--duration-slow) var(--ease-out);position:absolute;transform:scaleX(0)}.site-header__link[aria-current=true]{color:var(--color-primary-text)}.site-header__link:hover:after,.site-header__link[aria-current=true]:after{transform-origin:0;transform:scaleX(1)}.site-header__actions{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.site-header__icon-button{width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-full);color:var(--color-text);transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background-color:#0000;border:none;place-items:center;padding:0;display:inline-grid}.site-header__icon-button:hover{color:var(--color-primary-text);background-color:var(--color-primary-soft)}.site-header__icon-button:focus-visible{border-radius:var(--radius-full)}.site-header__cv-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-target);margin-left:var(--space-1);padding-inline:var(--space-4);border-radius:var(--radius-full);background-color:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out);text-decoration:none;display:none}.site-header__cv-button:hover{background-color:var(--color-primary-hover);color:var(--color-on-primary)}.site-header__cv-button:focus-visible{border-radius:var(--radius-full)}.site-header__cv-button svg{flex-shrink:0}.mobile-menu{top:calc(100% + var(--space-2));right:var(--space-4);left:var(--space-4);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-lg);pointer-events:auto;animation:mobile-menu-in var(--duration-base) var(--ease-out);position:absolute}.mobile-menu__list{gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.mobile-menu__link{min-height:var(--tap-target);padding-inline:var(--space-4);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-medium);align-items:center;text-decoration:none;display:flex}.mobile-menu__link:hover,.mobile-menu__link[aria-current=true]{color:var(--color-primary-text);background-color:var(--color-primary-soft)}.mobile-menu__cv{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-target);margin-top:var(--space-3);border-radius:var(--radius-full);background-color:var(--color-primary);color:var(--color-on-primary);font-weight:var(--weight-semibold);text-decoration:none;display:flex}.mobile-menu__cv:hover{background-color:var(--color-primary-hover);color:var(--color-on-primary)}.mobile-menu__backdrop{z-index:-1;background-color:var(--color-scrim);pointer-events:auto;position:fixed;inset:0}body.menu-open{overflow:hidden}@keyframes mobile-menu-in{0%{opacity:0;transform:translateY(calc(-1 * var(--space-2)))}}@media (width>=1024px){.site-header__bar{width:auto;padding-inline:var(--space-6) var(--space-2)}.site-header__divider,.site-header__nav{display:block}.site-header__actions{margin-left:0}.site-header__cv-button{display:inline-flex}.site-header__menu-button,.mobile-menu,.mobile-menu__backdrop{display:none}}@media (width>=1024px) and (width<=1279px){.site-header__cv-button{width:var(--tap-target);padding:0}.site-header__cv-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.site-footer{margin-top:var(--space-16);border-top:1px solid var(--color-border)}.site-footer__inner{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-6);max-width:var(--container-max);padding:var(--space-8) var(--container-padding);font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;margin-inline:auto;display:flex}.site-footer__made{align-items:center;gap:var(--space-1);display:inline-flex}.site-footer__heart{color:var(--color-primary);fill:currentColor}.site-footer__coffee{color:var(--color-text)}@media (width<=767px){.site-footer__inner{text-align:center;flex-direction:column}}.hero{min-height:calc(100vh - var(--header-height));min-height:calc(100svh - var(--header-height));padding-block:var(--space-12) var(--space-24);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.hero__badge{align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:inline-flex}.hero__dot{border-radius:var(--radius-full);background-color:var(--color-primary);width:.5rem;height:.5rem;position:relative}.hero__dot:after{content:"";border-radius:inherit;background-color:inherit;animation:hero-pulse 2s var(--ease-out) infinite;position:absolute;inset:0}@keyframes hero-pulse{to{opacity:0;transform:scale(2.5)}}.hero__name{font-size:var(--text-5xl);max-width:18ch}.hero__role{margin-top:var(--space-4);font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-primary)}.hero__lead{max-width:40ch;margin-top:var(--space-4);font-size:var(--text-lg);color:var(--color-text-muted)}.hero__actions{justify-content:center;gap:var(--space-3);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.hero__button{align-items:center;gap:var(--space-2);min-height:var(--tap-target);padding-inline:var(--space-6);border-radius:var(--radius-full);font-weight:var(--weight-semibold);box-shadow:var(--shadow-sm);transition:background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex}.hero__button:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.hero__button:focus-visible{border-radius:var(--radius-full)}.hero__button--primary{background-color:var(--color-primary);color:var(--color-on-primary)}.hero__button--primary:hover{background-color:var(--color-primary-hover);color:var(--color-on-primary)}.hero__button--secondary{background-color:var(--color-surface);color:var(--color-text)}.hero__button--secondary:hover{color:var(--color-text)}.hero__button svg{flex-shrink:0}.hero__scroll{bottom:var(--space-12);width:var(--tap-target);height:var(--tap-target);margin-left:calc(var(--tap-target) / -2);border-radius:var(--radius-full);color:var(--color-text-muted);animation:hero-bounce 1.8s var(--ease-in-out) infinite;transition:color var(--duration-fast) var(--ease-out);place-items:center;display:grid;position:absolute;left:50%}.hero__scroll:hover{color:var(--color-primary)}.hero__scroll:focus-visible{border-radius:var(--radius-full)}@keyframes hero-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(var(--space-2))}}@media (width>=768px){.hero__role{font-size:var(--text-2xl)}}.about{gap:var(--space-12);align-items:center;display:grid}.about__text{gap:var(--space-4);font-size:var(--text-lg);color:var(--color-text-muted);flex-direction:column;display:flex}.about__cards{gap:var(--space-4);display:grid}.about__card{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-sm)}.about__stats{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.about__stat{gap:var(--space-1);flex-direction:column;display:flex}.about__stat-value{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--color-primary);order:-1}.about__stat-label{font-size:var(--text-sm);color:var(--color-text-muted)}.about__info{gap:var(--space-6) var(--space-12);flex-wrap:wrap;display:flex}.about__info-block{gap:var(--space-2);flex-direction:column;display:flex}.about__info-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.about__social{gap:var(--space-2);padding:0;list-style:none;display:flex}.about__social-link{width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-full);background-color:var(--color-surface-2);color:var(--brand);transition:color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);place-items:center;display:grid}.about__social-link:hover{color:var(--brand);transform:translateY(-2px)}[data-theme=dark] .about__social-link{color:var(--color-text-muted)}[data-theme=dark] .about__social-link:hover{color:var(--brand-dark,var(--brand))}.about__social-link:focus-visible{border-radius:var(--radius-full)}.about__info-value{align-items:center;gap:var(--space-2);min-height:var(--tap-target);font-weight:var(--weight-semibold);color:var(--color-text);display:inline-flex}.about__info-value svg{color:var(--color-primary);flex-shrink:0}@media (width>=1024px){.about{gap:var(--space-16);grid-template-columns:1.15fr 1fr}}.experience__list{gap:var(--space-3);padding:0;list-style:none;display:grid}.experience__item{border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-base) var(--ease-out)}.experience__item:hover,.experience__item--open{box-shadow:var(--shadow-md)}.experience__heading{font:inherit;letter-spacing:normal}.experience__toggle{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);text-align:left;background:0 0;border:none;display:flex}.experience__logo{border-radius:var(--radius-md);background-color:var(--color-primary-soft);width:3rem;height:3rem;color:var(--color-primary-text);font-family:var(--font-heading);font-weight:var(--weight-bold);flex-shrink:0;place-items:center;display:grid;overflow:hidden}.experience__logo--image{padding:var(--space-1);border:1px solid var(--color-border);background-color:var(--color-logo-tile)}.experience__logo img{object-fit:contain;width:100%;height:100%}.experience__summary{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.experience__role{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--color-text)}.experience__meta{font-size:var(--text-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.experience__dates{white-space:nowrap}.experience__company{font-weight:var(--weight-semibold);color:var(--color-primary-text)}.experience__chevron{color:var(--color-text-muted);transition:transform var(--duration-base) var(--ease-out);flex-shrink:0}.experience__item--open .experience__chevron{transform:rotate(180deg)}.experience__panel{transition:grid-template-rows var(--duration-slow) var(--ease-out);grid-template-rows:0fr;display:grid}.experience__item--open .experience__panel{grid-template-rows:1fr}.experience__panel-inner{overflow:hidden}.experience__highlights{gap:var(--space-2);padding:0 var(--space-6) 0 calc(var(--space-6) + 3rem + var(--space-4) + 1.1rem);color:var(--color-text-muted);margin:0;display:grid}.experience__tech{gap:var(--space-2);padding:var(--space-4) var(--space-6) var(--space-6) calc(var(--space-6) + 3rem + var(--space-4));flex-wrap:wrap;list-style:none;display:flex}.experience__tech-item{justify-content:center;align-items:center;gap:var(--space-2);min-height:2rem;padding:0 var(--space-4);border-radius:var(--radius-full);background-color:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1;display:inline-flex}.experience__tech-item svg{color:var(--brand,currentColor);transition:color var(--duration-fast) var(--ease-out)}[data-theme=dark] .experience__tech-item svg{color:var(--color-text-muted)}[data-theme=dark] .experience__tech-item:hover svg{color:var(--brand-dark,var(--brand))}@media (width<=767px){.experience__toggle{gap:var(--space-3);padding:var(--space-4)}.experience__logo{width:2.5rem;height:2.5rem;font-size:var(--text-sm)}.experience__highlights{padding:0 var(--space-4) 0 calc(var(--space-4) + 1.1rem)}.experience__tech{padding:var(--space-4)}}.education__grid{gap:var(--space-3);grid-template-columns:1fr;padding:0;list-style:none;display:grid}.education__card{gap:var(--space-1);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.education__top{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.education__logo{border-radius:var(--radius-md);object-fit:cover;width:2.5rem;height:2.5rem}.education__years{font-size:var(--text-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.education__title{font-size:var(--text-lg)}.education__institution{padding-top:var(--space-2);font-weight:var(--weight-semibold);color:var(--color-primary-text);margin-top:auto}@media (width>=768px){.education__grid{grid-template-columns:repeat(2,1fr)}.education__card--featured{grid-column:span 2}}@media (width>=1024px){.education__grid{grid-template-columns:repeat(3,1fr)}}.skills__groups{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));display:grid}.skills__group{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-sm)}.skills__group-title{margin-bottom:var(--space-4);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.skills__list{gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.skills__chip{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.25rem;padding:0 var(--space-4);border-radius:var(--radius-full);background-color:var(--color-surface-2);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);border:1px solid #0000;line-height:1;display:inline-flex}.skills__chip svg{color:var(--brand,currentColor);transition:color var(--duration-fast) var(--ease-out);flex-shrink:0}[data-theme=dark] .skills__chip svg{color:var(--color-text-muted)}[data-theme=dark] .skills__chip:hover svg{color:var(--brand-dark,var(--brand))}.skills__chip--highlight{border-color:var(--color-primary);background-color:var(--color-primary-soft);color:var(--color-primary-text);font-weight:var(--weight-semibold)}[data-theme=dark] .skills__chip--highlight svg{color:var(--color-primary-text)}.contact__card{gap:var(--space-6);padding:var(--space-12) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-md);display:grid}.contact__copy,.contact__link{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.12em;line-height:var(--leading-tight);text-transform:uppercase}.contact__title{font-family:var(--font-heading);font-size:var(--text-4xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.contact__email{justify-content:space-between;align-items:center;gap:0 var(--space-6);margin-top:var(--space-6);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.contact__email a{min-height:var(--tap-target);font-family:var(--font-heading);font-size:clamp(1.25rem,.9rem + 1.6vw,2rem);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--color-text);overflow-wrap:anywhere;align-items:center;text-decoration:none;display:inline-flex}.contact__email a:hover{color:var(--color-text);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}.contact__copy{min-height:var(--tap-target);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;padding:0}.contact__links{gap:0 var(--space-6);margin-top:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.contact__link{align-items:center;gap:var(--space-2);min-height:var(--tap-target);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex}.contact__copy:hover,.contact__link:hover{color:var(--color-text);text-underline-offset:.35em;text-decoration:underline}.contact__link svg{flex-shrink:0}.contact__top-arrow{animation:contact-arrow-up 1.6s var(--ease-in-out) infinite}@keyframes contact-arrow-up{0%,to{transform:translateY(0)}50%{transform:translateY(calc(-1 * var(--space-1)))}}@media (width>=768px){.contact__card{padding:var(--space-12)}.contact__top-item{margin-left:auto}}.contact__card :focus-visible{border-radius:var(--radius-sm)}.not-found{padding:var(--space-12) var(--container-padding) var(--space-16);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.not-found__code{font-family:var(--font-heading);font-size:clamp(6rem,4rem + 10vw,11rem);font-weight:var(--weight-bold);letter-spacing:-.05em;color:#0000;-webkit-text-stroke:2px var(--color-primary);line-height:.9}.not-found__title{margin-top:var(--space-4);font-size:var(--text-3xl)}.not-found__text{margin-top:var(--space-3);font-size:var(--text-lg);color:var(--color-text-muted)}.not-found__links{gap:var(--space-3);width:min(100%,40rem);margin-top:var(--space-8);grid-template-columns:repeat(2,1fr);display:grid}.not-found__link{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:3.25rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);font-weight:var(--weight-semibold);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-base) var(--ease-out), transform var(--duration-fast) var(--ease-out);text-decoration:none;display:flex}.not-found__link:hover{color:var(--color-text);box-shadow:var(--shadow-md);transform:translateY(-2px)}.not-found__link svg{color:var(--color-primary);flex-shrink:0}@media (width>=768px){.not-found__links{grid-template-columns:repeat(4,1fr)}}.resume-page{z-index:var(--z-base);min-height:100dvh;padding:var(--space-4) var(--space-3) var(--space-12);background-color:var(--resume-bg);color:var(--resume-ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;position:relative}.resume-toolbar{justify-content:flex-end;align-items:center;gap:var(--space-2) var(--space-4);width:min(100%,210mm);margin:0 auto var(--space-4);flex-wrap:wrap;display:flex}.resume-toolbar__actions{gap:var(--space-2) var(--space-6);flex-wrap:wrap;display:flex}.resume-toolbar__link{align-items:center;gap:var(--space-2);min-height:var(--tap-target);color:var(--resume-ink);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.12em;text-transform:uppercase;background:0 0;border:none;padding:0;text-decoration:none;display:inline-flex}.resume-toolbar__link:hover{color:var(--resume-ink);text-underline-offset:.35em;text-decoration:underline}.resume-sheet{width:min(100%,210mm);padding:var(--space-6) var(--space-4);background-color:var(--resume-paper);box-shadow:var(--shadow-lg);font-size:var(--text-sm);margin:0 auto;line-height:1.45}.resume-sheet p{max-width:none}.resume-sheet>.resume-section{max-width:none;margin-inline:0;padding:0}.resume-sheet a{color:inherit;text-underline-offset:.15em}.resume-sheet a:hover{color:var(--resume-accent)}.resume-header{justify-content:space-between;gap:var(--space-3) var(--space-8);padding-bottom:var(--space-3);border-bottom:2px solid var(--resume-ink);flex-wrap:wrap;display:flex}.resume-name{font-size:clamp(1.75rem,1.2rem + 2.5vw,2.25rem);line-height:1.1}.resume-role{margin-top:var(--space-1);font-family:var(--font-heading);font-size:var(--text-base);font-weight:var(--weight-medium)}.resume-contact{font-size:var(--text-xs);flex-direction:column;font-style:normal;display:flex}@media screen{.resume-contact a,.resume-footer a{align-items:center;min-height:1.5rem;display:inline-flex}}.resume-summary{margin-top:var(--space-3)}.resume-section{margin-top:var(--space-4)}.resume-heading{margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--resume-line);color:var(--resume-accent);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase}.resume-row{justify-content:space-between;align-items:baseline;gap:0 var(--space-4);flex-wrap:wrap;display:flex}.resume-job+.resume-job{margin-top:var(--space-3)}.resume-company{font-size:var(--text-base)}.resume-position{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-bold)}.resume-period,.resume-muted{color:var(--resume-muted)}.resume-period{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.resume-role-block{margin-top:var(--space-2);padding-left:var(--space-3)}.resume-bullets{margin-top:var(--space-1);padding-left:var(--space-4)}.resume-bullets li::marker{color:var(--resume-accent)}.resume-skills{gap:var(--space-1);display:grid}.resume-skill dt{font-weight:var(--weight-bold)}.resume-courses{margin-top:var(--space-1)}.resume-footer{justify-content:center;gap:var(--space-1) var(--space-4);margin-top:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--resume-line);font-size:var(--text-xs);flex-wrap:wrap;display:flex}@media (width>=768px){.resume-page{padding:var(--space-8) var(--space-6) var(--space-16)}.resume-sheet{min-height:297mm;padding:15mm 16mm 13mm;font-size:9.7pt}.resume-contact{text-align:right;align-items:flex-end}.resume-skill{gap:var(--space-4);grid-template-columns:8.5rem 1fr;display:grid}}@media print{@page{size:A4;margin:0}body:before,body:after{display:none}html,body{background-color:var(--resume-paper)}.resume-page{background:0 0;padding:0}.resume-toolbar{display:none}.resume-sheet{width:210mm;min-height:0;box-shadow:none;padding:12mm 15mm 10mm;font-size:9.2pt;line-height:1.32}.resume-section{margin-top:var(--space-3)}.resume-job+.resume-job,.resume-role-block{margin-top:var(--space-1)}.resume-skills{gap:0}.resume-footer{margin-top:var(--space-3);padding-top:var(--space-2)}.resume-contact{text-align:right;align-items:flex-end}.resume-skill{gap:var(--space-4);grid-template-columns:8.5rem 1fr;display:grid}.resume-sheet a{text-decoration:none}}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/space-grotesk-latin.woff2)format("woff2");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-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/fonts/dm-sans-latin.woff2)format("woff2");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-family:DM Sans;font-style:italic;font-weight:100 1000;font-display:swap;src:url(/fonts/dm-sans-italic-latin.woff2)format("woff2");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}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fafafc;--color-surface:#fff;--color-surface-2:#f1f1f6;--color-text:#16161d;--color-text-muted:#56566b;--color-border:#e4e4ec;--color-primary:#5a52e0;--color-primary-hover:#4a42cc;--color-on-primary:#fff;--color-primary-soft:#5a52e01a;--color-primary-text:#5a52e0;--color-primary-text-hover:#4a42cc;--color-focus:#5a52e0;--color-scrim:#16161d59;--color-glow-1:#5a52e029;--color-glow-2:#6c63ff21;--color-brand:#6c63ff;--color-logo-tile:#fff;--color-cta-bg:#5a52e0;--color-on-cta:#fff;--color-cta-pill:#4c46be;--color-cta-pill-hover:#443ea8;--resume-bg:#e9e9ee;--resume-paper:#fff;--resume-ink:#16161d;--resume-muted:#56566b;--resume-line:#dcdce6;--resume-accent:#5a52e0;--shadow-color:240 20% 20%;--shadow-sm:0 1px 2px hsl(var(--shadow-color) / .06), 0 2px 6px hsl(var(--shadow-color) / .06);--shadow-md:0 2px 4px hsl(var(--shadow-color) / .05), 0 8px 24px -4px hsl(var(--shadow-color) / .12);--shadow-lg:0 4px 8px hsl(var(--shadow-color) / .05), 0 20px 40px -8px hsl(var(--shadow-color) / .18);--font-heading:"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:clamp(2.25rem, 1.6rem + 3vw, 3.5rem);--text-5xl:clamp(2.5rem, 1.6rem + 4.5vw, 4.5rem);--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-normal:1.6;--tracking-tight:-.02em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--container-max:80rem;--container-padding:var(--space-6);--measure:65ch;--tap-target:2.75rem;--header-bar-height:3.5rem;--header-height:4.25rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-full:9999px;--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s;--duration-theme:.5s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--z-base:0;--z-header:100;--z-overlay:1000}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0f0f14;--color-surface:#18181f;--color-surface-2:#21212b;--color-text:#ececf3;--color-text-muted:#a1a1b5;--color-border:#2c2c38;--color-primary:#5a52e0;--color-primary-hover:#4a42cc;--color-on-primary:#fff;--color-primary-soft:#5a52e038;--color-primary-text:#ececf3;--color-primary-text-hover:#fff;--color-focus:#6c63ff;--color-scrim:#0000008c;--color-glow-1:#5a52e033;--color-glow-2:#6c63ff1f;--shadow-color:240 30% 2%;--shadow-sm:0 1px 2px hsl(var(--shadow-color) / .4), 0 2px 6px hsl(var(--shadow-color) / .3);--shadow-md:0 2px 4px hsl(var(--shadow-color) / .35), 0 8px 24px -4px hsl(var(--shadow-color) / .5);--shadow-lg:0 4px 8px hsl(var(--shadow-color) / .35), 0 20px 40px -8px hsl(var(--shadow-color) / .6)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-height) + var(--space-4))}body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;transition:background-color var(--duration-base) var(--ease-in-out), color var(--duration-base) var(--ease-in-out)}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle at 25% 30%, var(--color-glow-1), transparent 35%), radial-gradient(circle at 75% 70%, var(--color-glow-2), transparent 40%);filter:blur(60px);animation:background-drift 30s var(--ease-in-out) infinite alternate;position:fixed;inset:-25%}body:after{content:"";z-index:-1;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}@keyframes background-drift{to{transform:translate(6%,-4%)rotate(8deg)}}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}p{max-width:var(--measure);text-wrap:pretty;overflow-wrap:break-word}img,svg,video{max-width:100%;display:block}img{height:auto}a{color:var(--color-primary-text);text-underline-offset:.2em;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--color-primary-text-hover)}button{font:inherit;color:inherit;cursor:pointer}::selection{background-color:var(--color-primary);color:var(--color-on-primary)}::view-transition-old(root){animation-duration:var(--duration-theme);animation-timing-function:var(--ease-in-out)}::view-transition-new(root){animation-duration:var(--duration-theme);animation-timing-function:var(--ease-in-out)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}[tabindex="-1"]:focus{outline:none}#root{flex-direction:column;min-height:100dvh;display:flex}main{flex:1}main>section{max-width:var(--container-max);padding:var(--space-16) var(--container-padding);margin-inline:auto}section[id]{scroll-margin-top:calc(var(--header-height) + var(--space-4))}.section-title{margin-bottom:var(--space-8);font-size:var(--text-3xl)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@supports (animation-timeline:view()){.reveal{animation:linear both reveal;animation-timeline:view();animation-range:entry cover 35%}}@keyframes reveal{0%{opacity:0;transform:translateY(4rem)scale(.88)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{animation:none!important}}
