:root{--motion-enabled: 1;--motion-duration-fast: .1s;--motion-duration: .19s;--motion-duration-slow: .36s;--motion-delay-step: 40ms;--motion-distance: 12px;--motion-hover-lift-sm: -1px;--motion-hover-lift: -2px;--motion-hover-lift-lg: -3px;--motion-hover-scale: 1.01;--motion-page-exit: .2s;--motion-theme-shift: .42s;--motion-accent-shift: .38s;--transition-duration: .14s !important;--motion-origin-x: 50vw;--motion-origin-y: 50vh;--motion-next-color: var(--accent-color);--motion-theme-accent: var(--accent-color);--motion-theme-primary: var(--primary-color);--motion-theme-background: var(--background-color);--motion-easing: cubic-bezier(.22, 1, .36, 1);--motion-easing-soft: cubic-bezier(.16, 1, .3, 1)}@keyframes siteGradientDrift{0%{transform:translate3d(-2%,-1%,0) scale(1.06)}50%{transform:translate3d(1.5%,2%,0) scale(1.09)}to{transform:translate3d(3%,-2%,0) scale(1.07)}}@keyframes highlight{0%{background-color:#3498db33}to{background-color:#3498db1a}}body .navbar__link,body .navbar__theme-button,body .navbar__icon-button,body .nav-accent-bubble,body .home-card,body .home-stat,body .home-social__link,body .hero-chip,body .repo-card,body .repo-card__link,body .projects-section-link,body .projects-gists__item,body .jump-nav a,body .filter-btn,body .site-paginator__button,body .image-box{transition-duration:var(--motion-duration);transition-timing-function:var(--motion-easing)}@media(hover:hover)and (prefers-reduced-motion:no-preference){html:not([data-hover-effects=off]) body .hero-chip:hover,html:not([data-hover-effects=off]) body .home-card:hover,html:not([data-hover-effects=off]) body .home-stat:hover,html:not([data-hover-effects=off]) body .repo-card:hover,html:not([data-hover-effects=off]) body .projects-section-link:hover,html:not([data-hover-effects=off]) body .projects-gists__item:hover,html:not([data-hover-effects=off]) body .image-box:hover{transform:translateY(var(--motion-hover-lift)) scale(var(--motion-hover-scale))}}@keyframes gradientAnimation{0%{background-position:0% 50%}25%{background-position:50% 0%}50%{background-position:100% 50%}75%{background-position:50% 100%}to{background-position:0% 50%}}@keyframes fadeIn{0%{opacity:0;transform:translateY(32px) scale(.96);filter:blur(2px)}60%{opacity:.8;transform:translateY(-4px) scale(1.01);filter:blur(.5px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes glassPopIn{0%{opacity:0;transform:scale(.85) translateY(40px) rotateX(20deg);filter:blur(12px) saturate(.8);backdrop-filter:blur(0px) saturate(1.5);box-shadow:var(--shadow-2xl),inset 0 1px #fff3}25%{opacity:.4;transform:scale(.98) translateY(20px) rotateX(8deg);filter:blur(6px) saturate(1.1);backdrop-filter:blur(4px) saturate(1.8);box-shadow:var(--shadow-xl),inset 0 1px #ffffff4d}60%{opacity:.85;transform:scale(1.12) translateY(-16px) rotateX(-3deg);filter:blur(2px) saturate(1.3);backdrop-filter:blur(16px) saturate(2);box-shadow:var(--shadow-lg),inset 0 1px #fff6,0 0 20px #ffffff1a}80%{opacity:.95;transform:scale(.96) translateY(6px) rotateX(1deg);filter:blur(1px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.8);box-shadow:var(--shadow-md),inset 0 1px #ffffff59,0 0 15px #ffffff14}to{opacity:1;transform:scale(1) translateY(0) rotateX(0);filter:blur(0) saturate(1);backdrop-filter:blur(24px) saturate(1.6);box-shadow:var(--shadow-sm),inset 0 1px #ffffff4d,0 0 10px #ffffff0d}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 2px 8px #ff408166,0 0 #ff4081b3}25%{transform:scale(1.03);box-shadow:0 4px 12px #ff408180,0 0 0 4px #ff40814d}50%{transform:scale(1.08);box-shadow:0 6px 16px #ff408199,0 0 0 8px #ff408133}75%{transform:scale(1.03);box-shadow:0 4px 12px #ff408180,0 0 0 4px #ff40814d}}@view-transition{navigation:none}@keyframes pageContentReveal{0%{opacity:.72}to{opacity:1}}@media(prefers-reduced-motion:no-preference){html[data-motion=on] body>main{animation:pageContentReveal .14s ease-out both}}@keyframes pageExitSettle{0%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}to{opacity:.72;transform:translateY(-6px) scale(.992);filter:blur(1.4px)}}@keyframes pageExitWash{0%{opacity:.86;transform:translate3d(0,18px,0) scaleY(.92)}42%{opacity:.94}to{opacity:1;transform:translateZ(0) scaleY(1.02)}}@keyframes themeTexturePan{0%{background-position:0 0,0 0,0% 0%,100% 0%,0% 100%,100% 100%,0% 50%}to{background-position:42px 28px,-34px 22px,12% 8%,86% 12%,14% 88%,88% 82%,100% 50%}}@keyframes themeScanlinePan{0%{background-position:0 0,0 0,0% 0%,100% 0%,0% 100%,100% 100%,0% 50%}to{background-position:0 48px,48px 0,0% 0%,100% 0%,0% 100%,100% 100%,0% 50%}}@keyframes themeNeonSweep{0%{background-position:0 0,0 0,50% 120%,0% 0%,100% 0%,0% 100%,100% 100%,0% 50%;filter:saturate(1.05)}50%{background-position:28px 44px,44px 28px,50% 90%,10% 8%,88% 12%,12% 88%,88% 82%,100% 50%;filter:saturate(1.42)}to{background-position:56px 88px,88px 56px,50% 120%,18% 12%,82% 6%,16% 84%,86% 78%,0% 50%;filter:saturate(1.1)}}@keyframes pageEnterSettle{0%{opacity:0;transform:translateY(14px) scale(.992);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes routeHeroStartup{0%{opacity:0;transform:translateY(34px) scale(.965);filter:blur(10px) saturate(.9)}54%{opacity:.92;transform:translateY(-6px) scale(1.012);filter:blur(1.5px) saturate(1.14)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) saturate(1)}}@keyframes routeSectionStartup{0%{opacity:0;transform:translateY(26px) scale(.975);filter:blur(8px)}68%{opacity:.94;transform:translateY(-3px) scale(1.006);filter:blur(1px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes pageEnterWash{0%{opacity:.8;transform:translateY(0) scaleY(1)}to{opacity:0;transform:translateY(-12px) scaleY(.96)}}@keyframes pageOverlayDismiss{0%{opacity:1;transform:translateZ(0) scaleY(1.02)}to{opacity:0;transform:translate3d(0,-8px,0) scaleY(.98)}}@keyframes themeSurfaceShift{0%{opacity:.68;transform:translate3d(-12%,0,0) skew(-8deg) scaleX(.8);filter:blur(14px) saturate(1.2)}34%{opacity:.94;transform:translateZ(0) skew(-2deg) scaleX(1.08);filter:blur(5px) saturate(1.45)}62%{opacity:.72;transform:translate3d(8%,0,0) skew(3deg) scaleX(1);filter:blur(2px) saturate(1.25)}to{opacity:0;transform:translate3d(18%,0,0) skew(6deg) scaleX(1.16);filter:blur(0) saturate(1)}}@keyframes themePagePulse{0%{transform:scale(1);filter:saturate(1)}42%{transform:scale(1.006);filter:saturate(1.25)}to{transform:scale(1);filter:saturate(1)}}@keyframes accentColorWash{0%{opacity:0;clip-path:circle(0 at var(--motion-origin-x) var(--motion-origin-y));filter:blur(16px) saturate(1.2)}34%{opacity:.46;clip-path:circle(34vmax at var(--motion-origin-x) var(--motion-origin-y));filter:blur(9px) saturate(1.35)}to{opacity:0;clip-path:circle(82vmax at var(--motion-origin-x) var(--motion-origin-y));filter:blur(0) saturate(1)}}@keyframes accentControlSettle{0%{transform:scale(1)}42%{transform:scale(1.045)}to{transform:scale(1)}}.site-motion-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;transform-origin:center;will-change:opacity,transform,filter,clip-path}.page-motion-overlay{opacity:.92;background:radial-gradient(circle at 50% 110%,color-mix(in srgb,var(--accent-color) 46%,transparent) 0%,transparent 38%),linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--background-color) 72%,transparent) 32%,var(--background-color) 100%);animation:pageExitWash var(--motion-page-exit) var(--motion-easing-soft) both}html.page-is-entering .page-motion-overlay{animation:pageEnterWash .52s var(--motion-easing-soft) both}html.page-is-entering .page-motion-overlay.is-dismissing,.page-motion-overlay.is-dismissing{animation:pageOverlayDismiss .26s var(--motion-easing-soft) both}.theme-motion-overlay{opacity:.72;background:linear-gradient(110deg,transparent 0%,color-mix(in srgb,var(--motion-theme-primary) 26%,transparent) 16%,color-mix(in srgb,var(--motion-theme-accent) 54%,transparent) 42%,color-mix(in srgb,var(--motion-theme-background) 78%,transparent) 70%,transparent 100%);animation:themeSurfaceShift var(--motion-theme-shift) var(--motion-easing-soft) both;mix-blend-mode:plus-lighter}.theme-motion-overlay.to-light{background:linear-gradient(110deg,#fff0,color-mix(in srgb,var(--motion-theme-accent) 32%,white 42%) 34%,#ffffffb8 58%,#fff0);mix-blend-mode:normal}.theme-motion-overlay.to-dark{background:linear-gradient(110deg,#03071200,color-mix(in srgb,var(--motion-theme-accent) 34%,#020617 54%) 38%,#020617d1 62%,#03071200);mix-blend-mode:screen}.accent-motion-overlay{opacity:0;background:radial-gradient(circle at var(--motion-origin-x) var(--motion-origin-y),color-mix(in srgb,var(--motion-next-color) 34%,transparent) 0%,color-mix(in srgb,var(--motion-next-color) 18%,transparent) 22%,transparent 58%);animation:accentColorWash var(--motion-accent-shift) var(--motion-easing-soft) both}@media(prefers-reduced-motion:no-preference){html.page-is-leaving body>:not(.site-motion-overlay){animation:pageExitSettle var(--motion-page-exit) var(--motion-easing) both;transform-origin:50% 0}html.page-is-entering body>:not(.site-motion-overlay){animation:pageEnterSettle .52s var(--motion-easing-soft) both;transform-origin:50% 0}html.page-is-entering .site-hero-card{animation:routeHeroStartup .92s var(--motion-easing-soft) both;transform-origin:50% 28%;will-change:opacity,transform,filter}html.page-is-entering .site-section-card{animation:routeSectionStartup .78s var(--motion-easing-soft) both;transform-origin:50% 24%;will-change:opacity,transform,filter}html.page-is-entering .site-section:nth-of-type(2) .site-section-card{animation-delay:70ms}html.page-is-entering .site-section:nth-of-type(3) .site-section-card{animation-delay:.12s}html.theme-is-changing body:before,html.theme-is-changing body:after{animation-name:themePagePulse;animation-duration:var(--motion-theme-shift);animation-timing-function:var(--motion-easing-soft);animation-fill-mode:both}html.accent-is-changing body .nav-accent-bubble,html.accent-is-changing body [data-accent-random],html.accent-is-changing body [data-accent-reset]{animation:accentControlSettle .36s var(--motion-easing-soft) both}}@keyframes spin{0%{transform:rotate(0) scale(1)}25%{transform:rotate(90deg) scale(1.05)}50%{transform:rotate(180deg) scale(1)}75%{transform:rotate(270deg) scale(1.05)}to{transform:rotate(360deg) scale(1)}}@keyframes loading{0%,80%,to{transform:scale(0) rotate(0);opacity:.3;filter:blur(2px)}20%{transform:scale(.8) rotate(90deg);opacity:.8;filter:blur(1px)}40%{transform:scale(1.2) rotate(180deg);opacity:1;filter:blur(0px)}60%{transform:scale(.9) rotate(270deg);opacity:.9;filter:blur(.5px)}}@keyframes blink{0%,49%{opacity:1;transform:scale(1)}50%,99%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.animate-optimized{will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden}@media(prefers-reduced-motion:reduce){body:before,body:after{animation:none!important}.site-motion-overlay{display:none!important}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes glassPopIn{0%{opacity:0}to{opacity:1}}}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}html[data-motion=off] body:before,html[data-motion=off] body:after{animation:none!important;will-change:auto!important}html[data-motion=off] .site-motion-overlay{display:none!important}html[data-motion=off]{--motion-hover-lift-sm: 0px;--motion-hover-lift: 0px;--motion-hover-lift-lg: 0px;--motion-hover-scale: 1;--theme-hover-transform: none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html:before,html:after{content:"";position:fixed;left:-240px;right:-240px;top:-240px;height:calc(100% + 480px);z-index:2;pointer-events:none;background-repeat:repeat}html:before{--tp-drift: var(--tp-near-drift, 0px);background-image:var(--tp-near, none);background-size:var(--tp-near-size, 240px 240px);animation:var(--tp-near-anim, none)}html:after{--tp-drift: var(--tp-far-drift, 0px);background-image:var(--tp-far, none);background-size:var(--tp-far-size, 240px 240px);animation:var(--tp-far-anim, none)}@keyframes themeParticleFall{to{transform:translate3d(var(--tp-drift, 0px),240px,0)}}@keyframes themeParticleRise{to{transform:translate3d(var(--tp-drift, 0px),-240px,0)}}.water-interaction-ripple{position:fixed;z-index:950;width:30px;height:30px;border:2px solid color-mix(in srgb,var(--accent-color) 78%,white);border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,white 45%,transparent),inset 0 0 12px color-mix(in srgb,var(--primary-color) 35%,transparent),0 0 18px color-mix(in srgb,var(--accent-color) 32%,transparent);opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.2);animation:waterInteractionRipple .88s cubic-bezier(.16,1,.3,1) both}.water-interaction-ripple:after{content:"";position:absolute;inset:22%;border:1px solid color-mix(in srgb,white 72%,transparent);border-radius:inherit}@keyframes waterInteractionRipple{0%{opacity:.9;transform:translate(-50%,-50%) scale(.2)}58%{opacity:.55}to{opacity:0;transform:translate(-50%,-50%) scale(5.8)}}html[data-motion=off]:before,html[data-motion=off]:after{background-image:none!important;animation:none!important}html[data-motion=off] .water-interaction-ripple{display:none!important}@media(prefers-reduced-motion:reduce){html:before,html:after{background-image:none!important;animation:none!important}}
