:root{--color-bg:#050508;--color-bg-elevated:#ffffff0a;--color-bg-glass:#0c081480;--color-accent:#c770f0;--color-accent-hover:#e2a5ff;--color-accent-dim:#a44dd3;--color-accent-glow:#c770f04d;--color-text:#fdfdff;--color-text-muted:#fdfdffa6;--color-border:#ffffff14;--color-border-accent:#c770f040;--grid-line-color:#ffffff0a;--grid-size:44px;--font-primary:"Varela Round", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, monospace;--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;--radius-sm:.5rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-xl:2rem;--radius-full:999rem;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--duration-fast:.2s;--duration-normal:.4s;--duration-slow:.6s;--max-width:80vw;--nav-height:4.25rem;--cursor-visibility:block;--glass-bg:#0a0a1259;--glass-bg-hover:#0e0a1a7a;--glass-bg-subtle:#ffffff09;--glass-border:1px solid #ffffff1f;--glass-shadow:0 12px 36px 0 #00000061, inset 0 1px 1px #ffffff1f;--glass-blur:blur(16px) saturate(180%);--glass-blur-hover:blur(24px) saturate(200%);--glass-shadow-hover:0 24px 64px -12px #0009, 0 0 36px -8px #c770f059, inset 0 1px 1px #ffffff38}::selection{background-color:var(--color-accent);color:#fff}::selection{background-color:var(--color-accent);color:#fff}::-webkit-scrollbar{display:none}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scrollbar-width:none;background-color:var(--color-bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:20px}@media (width<=1600px){html{font-size:18px}}@media (width<=1200px){html{font-size:16px}}@media (width<=1024px){html{font-size:15px}}@media (width>=2560px){html{font-size:24px}}html::-webkit-scrollbar{display:none}body{font-family:var(--font-primary);color:var(--color-text);background-color:var(--color-bg);background-image:linear-gradient(to right, var(--grid-line-color) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line-color) 1px, transparent 1px);background-size:var(--grid-size) var(--grid-size);letter-spacing:.02em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-position:0 0;line-height:1.6}.bg-grid-pattern{background-color:var(--color-bg);background-image:linear-gradient(to right, var(--grid-line-color) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line-color) 1px, transparent 1px);background-size:var(--grid-size) var(--grid-size), var(--grid-size) var(--grid-size);background-position:0 0}#root{width:100%;position:relative;overflow-x:clip}body:before{content:"";z-index:-2;pointer-events:none;background:var(--color-bg);position:fixed;inset:0}body:after{display:none}@keyframes ambient-drift{0%{transform:translate(0)scale(1)}33%{transform:translate(1.875rem,-1.25rem)scale(1.05)}66%{transform:translate(-1.25rem,.9375rem)scale(.98)}to{transform:translate(.625rem,-.625rem)scale(1.02)}}@media (prefers-reduced-motion:reduce){body:after{animation:none}}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);letter-spacing:0;color:var(--color-text);font-weight:400;line-height:1.2}h1{font-size:clamp(2.5rem,5vw + 1rem,4.5rem)}h2{font-size:clamp(1.6rem,3vw + .5rem,2.5rem)}h3{font-size:clamp(1.15rem,2vw + .25rem,1.6rem)}p{color:var(--color-text-muted);max-width:65ch;font-size:1.05rem;line-height:1.75}a{color:var(--color-accent);transition:all var(--duration-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--color-accent-hover);text-shadow:0 0 14px #c770f073}strong{color:var(--color-accent);font-weight:400}img,video{max-width:100%;height:auto;display:block}ul,ol{list-style:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}.accent{color:var(--color-accent);transition:all var(--duration-fast) var(--ease-out)}a.accent:hover,a:hover .accent{color:var(--color-accent-hover);text-shadow:0 0 14px #c770f073}.container{width:80vw;max-width:80vw;margin-inline:auto;padding-inline:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.section-divider{width:100%;max-width:50rem;height:1px;margin:var(--space-16) auto;background:radial-gradient(#c770f066 0%,#c770f01a 50%,#0000 80%);animation:3s ease-in-out infinite divider-glow;box-shadow:0 0 20px #c770f026}@keyframes divider-glow{0%,to{opacity:.7;box-shadow:0 0 20px #c770f026}50%{opacity:1;box-shadow:0 0 35px #c770f04d,0 0 60px #c770f01a}}#preloader,.preloader{z-index:99999;background-color:var(--color-bg);transition:opacity var(--duration-slow) var(--ease-out);background-image:url("data:image/svg+xml,%3c!--%20By%20Sam%20Herbert%20(@sherb),%20for%20everyone.%20More%20@%20http://goo.gl/7AJzbL%20--%3e%3csvg%20width='180'%20height='180'%20viewBox='0%200%2044%2044'%20xmlns='http://www.w3.org/2000/svg'%20stroke='%23d38bfc'%3e%3cg%20fill='none'%20fill-rule='evenodd'%20stroke-width='2'%3e%3ccircle%20cx='22'%20cy='22'%20r='1'%3e%3canimate%20attributeName='r'%20begin='0s'%20dur='1.5s'%20values='1;%2020'%20calcMode='spline'%20keyTimes='0;%201'%20keySplines='0.165,%200.84,%200.44,%201'%20repeatCount='indefinite'%20/%3e%3canimate%20attributeName='stroke-opacity'%20begin='0s'%20dur='1.5s'%20values='1;%200'%20calcMode='spline'%20keyTimes='0;%201'%20keySplines='0.3,%200.61,%200.355,%201'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3ccircle%20cx='22'%20cy='22'%20r='1'%3e%3canimate%20attributeName='r'%20begin='-0.9s'%20dur='1.5s'%20values='1;%2020'%20calcMode='spline'%20keyTimes='0;%201'%20keySplines='0.165,%200.84,%200.44,%201'%20repeatCount='indefinite'%20/%3e%3canimate%20attributeName='stroke-opacity'%20begin='-0.9s'%20dur='1.5s'%20values='1;%200'%20calcMode='spline'%20keyTimes='0;%201'%20keySplines='0.3,%200.61,%200.355,%201'%20repeatCount='indefinite'%20/%3e%3c/circle%3e%3c/g%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;position:fixed;inset:0}#preloader-none{opacity:0;pointer-events:none;transition:opacity var(--duration-slow) var(--ease-out)}#no-scroll{height:100vh;overflow:hidden}.scroll-progress{border-radius:inherit;border:2px solid var(--color-accent);pointer-events:none;z-index:99999;clip-path:inset(0 100% 0 0);position:absolute;inset:0}::selection{background:var(--color-accent);color:var(--color-bg)}:focus-visible{outline:.125rem solid var(--color-accent);outline-offset:.1875rem;border-radius:var(--radius-sm)}.gradient-text{-webkit-text-fill-color:transparent;background-color:#4c1d95;background-image:radial-gradient(circle,#e4a5ff 0%,#e4a5ff00 25%),radial-gradient(circle,#c770f0 0%,#c770f000 35%),radial-gradient(circle,#a040cc 0%,#a040cc00 45%),linear-gradient(135deg,#4c1d95 0%,#a040cc 50%,#4c1d95 100%);background-position:0 0,100% 0,0 100%,50%;background-size:200% 200%,200% 200%,200% 200%,300% 300%;-webkit-background-clip:text;background-clip:text;animation:12s cubic-bezier(.45,.05,.55,.95) infinite random-fluid}@keyframes random-fluid{0%{background-position:0 0,100% 0,0 100%,50%}25%{background-position:100% 100%,0%,100% 0,100% 100%}50%{background-position:50% 0,100% 100%,50% 100%,0 0}75%{background-position:0 100%,50% 0,100%,100% 0}to{background-position:0 0,100% 0,0 100%,50%}}@media (prefers-reduced-motion:reduce){.gradient-text{background-position:50%,50%,50%,50%;animation:none}}.shimmer-text{background:linear-gradient(110deg, var(--color-text) 0%, var(--color-text) 42%, #c770f0bf 50%, var(--color-text) 58%, var(--color-text) 100%);-webkit-text-fill-color:transparent;background-size:250%;-webkit-background-clip:text;background-clip:text;animation:4s linear infinite text-shimmer}@keyframes text-shimmer{0%{background-position:100%}to{background-position:-100%}}@media (prefers-reduced-motion:reduce){.shimmer-text{background-position:0%;animation:none}.section-divider{opacity:1;animation:none}}html,body,a,button,input,select,textarea,[role=button],.project-card,.skill-icon,.social__icon,.btn,.navbar a,.hero__age-badge,.github-calendar,.github-calendar *{cursor:none!important}.navbar{top:var(--space-4);z-index:1200;isolation:isolate;-webkit-backdrop-filter:blur(16px)saturate(180%);border-radius:var(--radius-full);width:fit-content;height:auto;padding:var(--space-2);transition:background .5s var(--ease-out), border-color .5s var(--ease-out), box-shadow .5s var(--ease-out), backdrop-filter .5s var(--ease-out), -webkit-backdrop-filter .5s var(--ease-out);background:#0a0a1259;border:1px solid #ffffff1f;align-items:center;margin-inline:auto;display:flex;position:fixed;left:0;right:0;box-shadow:0 8px 32px -4px #00000080,inset 0 1px 1px #ffffff1a}.navbar.scrolled{-webkit-backdrop-filter:blur(24px)saturate(200%);background:#0c0a1873;border-color:#ffffff2e;box-shadow:0 12px 40px -6px #000000a6,inset 0 1px 1px #ffffff26}.navbar__inner{justify-content:space-between;align-items:center;width:auto;display:flex}.navbar__brand{font-family:var(--font-primary);color:#f0f0f5;align-items:center;gap:var(--space-1);white-space:nowrap;cursor:pointer;opacity:0;max-width:0;margin-right:0;padding-left:0;font-size:1.15rem;text-decoration:none;transition:max-width .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1),padding .4s cubic-bezier(.4,0,.2,1),margin-right .4s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.navbar__brand.show{opacity:1;max-width:12.5rem;padding-left:var(--space-3);margin-right:0}.navbar__brand:after{content:"";width:1px;height:1.125rem;margin-left:var(--space-3);margin-right:var(--space-1);border-radius:var(--radius-full);background:#ffffff1f;display:block}.navbar__brand .accent{transition:transform .4s cubic-bezier(.4,0,.2,1);transform:translate(-.9375rem)}.navbar__brand.show .accent{transform:translate(0)}.navbar__brand:hover.show{opacity:.85}.navbar__brand-icon{color:inherit;flex-shrink:0;margin-bottom:.15em;margin-left:.4em;margin-right:.2em;font-size:.75em;display:inline-flex}.navbar__links{align-items:center;gap:var(--space-1);display:flex}.navbar__link{padding:var(--space-2) var(--space-4);font-size:.92rem;font-family:var(--font-primary);color:#fff9;border-radius:var(--radius-full);transition:color var(--duration-normal) var(--ease-out), text-shadow var(--duration-normal) var(--ease-out);cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;font-weight:500;text-decoration:none;display:flex;position:relative}.navbar__link:hover{color:#fff}.navbar__link.active{color:#fff;text-shadow:0 0 12px #c770f04d}.navbar__link-content{z-index:1;align-items:center;gap:var(--space-2);display:flex;position:relative}.navbar__active-bg{border-radius:var(--radius-full);background:#ffffff0d;border:1px solid #ffffff14;position:absolute;inset:0;box-shadow:0 0 12px #c770f026,inset 0 0 8px #c770f00d}.navbar__hover-bg{border-radius:var(--radius-full);background:#ffffff08;position:absolute;inset:0}.navbar__link-icon{flex-shrink:0;font-size:1.1em}.navbar__cta{padding:var(--space-2) var(--space-2);font-size:.88rem;font-family:var(--font-primary);color:#fff;border-radius:var(--radius-full);transition:all .3s var(--ease-out);background:#ffffff0d;border:1px solid #ffffff1f;align-items:center;text-decoration:none;display:flex}.navbar__cta:hover{background:#ffffff24;border-color:#ffffff47}@media (width<=1100px){.navbar{top:var(--space-3);padding:.375rem}.navbar__link{padding:var(--space-2) var(--space-3);font-size:.88rem}}@media (width<=992px){.navbar{top:var(--space-2)}.navbar__link{padding:var(--space-2) .625rem;font-size:.85rem}}.hero-pin{z-index:0;height:100dvh;position:sticky;top:0}.content-flow{z-index:1;background-color:var(--color-bg);background-image:linear-gradient(to right, var(--grid-line-color) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line-color) 1px, transparent 1px);background-size:var(--grid-size) var(--grid-size), var(--grid-size) var(--grid-size);background-position:0 0;position:relative}.content-flow:before{content:"";background:linear-gradient(to bottom, transparent, var(--color-bg));pointer-events:none;z-index:2;height:9.375rem;position:absolute;top:-9.375rem;left:0;right:0}.section{min-height:100dvh;padding-top:calc(var(--nav-height) + var(--space-8));padding-bottom:var(--space-12);scroll-margin-top:var(--nav-height);text-align:center;flex-direction:column;display:flex;position:relative}.section>.container{margin-block:auto}.section__header{margin-top:.5rem;margin-bottom:var(--space-12);text-align:center}.section__header h2{margin-top:.5rem;margin-bottom:var(--space-3);background:linear-gradient(110deg, var(--color-text) 0%, #c770f0e6 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.section__header p{margin-top:.5rem;margin-inline:auto}.hero{height:100dvh;padding-top:var(--nav-height);justify-content:center;align-items:center;padding-inline:0;display:flex;position:relative;overflow:hidden}.hero:before{display:none}.hero>*{z-index:1;will-change:transform, opacity, filter;position:relative}.hero__grid{gap:var(--space-16);grid-template-columns:1.2fr .8fr;align-items:center;width:100%;max-width:100%;margin-inline:auto;padding-inline:0;display:grid}.hero__content{align-items:flex-start;gap:var(--space-4);text-align:left;flex-direction:column;display:flex}.hero__greeting{font-size:clamp(1.6rem,3vw,2.2rem)}.hero__name{font-size:clamp(2.4rem,5vw + .5rem,4.2rem);line-height:1.1}.hero__typewriter{font-family:var(--font-primary);color:var(--color-accent);min-height:2.8rem;margin-top:var(--space-2);font-size:clamp(1.15rem,2.5vw,1.6rem)}.hero__typewriter .Typewriter__wrapper{font-size:inherit;color:inherit;font-family:inherit}.hero__typewriter .Typewriter__cursor{font-size:inherit;color:var(--color-accent-dim)}.hero__image{justify-content:center;align-items:center;display:flex}.hero__image img{filter:drop-shadow(0 0 60px #c770f01a);width:100%;max-width:27.5rem;height:auto}.hero__wave{transform-origin:70% 70%;margin-left:var(--space-2);animation:1.7s infinite wave-animation;display:inline-block}@keyframes wave-animation{0%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%,to{transform:rotate(0)}}.hero__orb{pointer-events:none;z-index:0;will-change:transform;border-radius:50%;position:absolute}.hero__orb--primary{filter:blur(72px);background:radial-gradient(circle,#c770f024 0%,#c770f00f 40%,#0000 72%);width:clamp(28rem,42vw,54rem);height:clamp(28rem,42vw,54rem);animation:22s ease-in-out infinite alternate orb-drift-primary;top:-10%;right:-8%}.hero__orb--secondary{filter:blur(56px);background:radial-gradient(circle,#d671ff1c 0%,#8c3cc80d 50%,#0000 75%);width:clamp(18rem,26vw,34rem);height:clamp(18rem,26vw,34rem);animation:28s ease-in-out infinite alternate orb-drift-secondary;bottom:5%;left:-6%}.hero__orb--accent{filter:blur(40px);background:radial-gradient(circle,#ff8ce617 0%,#0000 70%);width:clamp(10rem,16vw,20rem);height:clamp(10rem,16vw,20rem);animation:18s ease-in-out infinite alternate orb-drift-accent;top:30%;left:38%}@keyframes orb-drift-primary{0%{transform:translate(0)scale(1)}33%{transform:translate(-3rem,2.5rem)scale(1.06)}66%{transform:translate(2rem,-1.5rem)scale(.96)}to{transform:translate(-1rem,3rem)scale(1.03)}}@keyframes orb-drift-secondary{0%{transform:translate(0)scale(1)}40%{transform:translate(2.5rem,-2rem)scale(1.08)}75%{transform:translate(-1.5rem,1rem)scale(.94)}to{transform:translate(1.5rem,-3rem)scale(1.04)}}@keyframes orb-drift-accent{0%{transform:translate(0)}50%{transform:translate(-2rem,1.5rem)}to{transform:translate(1.5rem,-2rem)}}.hero__age-badge{border-radius:var(--radius-full);-webkit-backdrop-filter:blur(16px)saturate(160%);font-family:var(--font-mono);color:#dcbeffe6;letter-spacing:.05em;-webkit-user-select:none;user-select:none;cursor:none;background:#0806108c;border:1px solid #c770f047;justify-content:center;align-items:center;gap:0;min-width:11rem;padding:.4em 1.1em;font-size:.7rem;line-height:1.4;transition:border-color .3s,box-shadow .3s;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #c770f00f,0 2px 16px #00000080}.hero__age-badge:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(#0000 0%,#c770f00a 48%,#c770f014 50%,#c770f00a 52%,#0000 100%) 0 0/100% 400%;animation:3s linear infinite badge-scan;position:absolute;inset:0}@keyframes badge-scan{0%{background-position:0 0}to{background-position:0 100%}}.hero__age-badge:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(90deg,#c770f080,#0000 60%);height:1px;position:absolute;top:0;left:0;right:0}.hero__age-badge:hover{border-color:#c770f073;box-shadow:inset 0 0 0 1px #c770f01a,0 4px 20px #0000008c}.hero__age-badge__content{z-index:1;text-align:center;grid-template-rows:1fr;place-items:center;width:100%;height:1.4em;display:grid;position:relative;overflow:hidden}.hero__age-badge .age-decimal,.hero__age-badge .age-detailed{white-space:nowrap;grid-area:1/1;transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .28s}.hero__age-badge .age-decimal{opacity:1;transform:translateY(0)}.hero__age-badge .age-detailed{opacity:0;transform:translateY(100%)}.hero__age-badge:hover .age-decimal{opacity:0;transform:translateY(-100%)}.hero__age-badge:hover .age-detailed{opacity:1;transform:translateY(0)}.hero__age-badge--birthday{border-color:#ffa0f066 #ffa0f066 #ffa0f066 #ffa0f0cc;box-shadow:0 2px 16px #00000080,0 0 12px -4px #ffa0f033}.hero__age-badge--birthday:hover{border-color:#ffa0f099;box-shadow:0 4px 20px #0000008c,0 0 16px -4px #ffa0f04d}.hero__age-badge__cake{z-index:1;margin-right:4px;font-size:1.1em;animation:1.5s ease-in-out infinite cake-party-wiggle;display:inline-block;position:relative}@keyframes cake-party-wiggle{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(-12deg)scale(1.1)}50%{transform:rotate(0)scale(1)}75%{transform:rotate(12deg)scale(1.1)}}.hero__scroll-indicator{z-index:2;will-change:opacity;pointer-events:none;flex-direction:column;align-items:center;gap:.35rem;display:flex;position:absolute;bottom:2.4rem;left:50%;transform:translate(-50%)}.hero__scroll-indicator__label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#fdfdff59;font-size:.5rem}.hero__scroll-line{transform-origin:top;background:linear-gradient(#c770f0b3,#0000);width:1px;height:1.6rem;animation:2s cubic-bezier(.22,1,.36,1) 1.8s both scroll-line-draw}.hero__scroll-dot{background:var(--color-accent);border-radius:50%;width:3px;height:3px;animation:1.8s ease-in-out 2.4s infinite scroll-dot-bounce;box-shadow:0 0 6px #c770f0b3}@keyframes scroll-line-draw{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes scroll-dot-bounce{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.5;transform:translateY(6px)}}.hero__avatar-wrap{display:inline-block;position:relative}.hero__avatar-wrap.ripple-fire:after{content:"";border:2px solid #c770f08c;border-radius:50%;animation:1s cubic-bezier(.22,1,.36,1) forwards avatar-ripple-once;position:absolute;inset:-8%}@keyframes avatar-ripple-once{0%{opacity:.7;transform:scale(.85)}to{opacity:0;transform:scale(1.45)}}.hero__avatar-wrap:hover:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(circle,#c770f01f 0%,#0000 70%);border-radius:50%;animation:2.4s ease-in-out infinite avatar-breathe;position:absolute;inset:-12%}@keyframes avatar-breathe{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.hero__greeting-wrap{display:inline-block;position:relative;overflow:visible}.hero__greeting-comet{display:inline-block;position:relative}.hero__greeting-comet:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#c770f080);width:2em;height:1px;position:absolute;top:50%;left:-2.5em;transform:translateY(-50%)}.hero__particles{z-index:0;pointer-events:none;opacity:1;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.hero__orb{animation:none!important}.hero__scroll-line{opacity:1;transform:scaleY(1);animation:none!important}.hero__scroll-dot,.hero__age-badge__dot{animation:none!important}.hero__particles{display:none}.hero__avatar-wrap.ripple-fire:after{animation:none!important}}.intro{padding-block:calc(var(--nav-height) + var(--space-8)) var(--space-24);display:block}.intro>.container{margin-block:0}.intro__grid{gap:var(--space-16);grid-template-columns:1.2fr .8fr;place-items:center start;display:grid}.intro__text{align-items:flex-start;gap:var(--space-6);text-align:left;flex-direction:column;width:100%;display:flex}.intro__body{color:var(--color-text-muted);text-align:left;max-width:60ch;font-size:1.05rem;line-height:1.85}.intro__avatar{justify-content:center;align-items:center;width:100%;max-width:18.5rem;margin-inline:auto;display:flex}.intro__avatar div{width:100%}.intro__avatar img{border-radius:var(--radius-lg);filter:drop-shadow(0 0 40px #c770f01f);width:100%;transition:filter var(--duration-normal) var(--ease-out)}.intro__avatar img:hover{filter:drop-shadow(0 0 50px #c770f038)}.about-intro{margin-bottom:var(--space-16)}.about-intro__grid{gap:var(--space-16);grid-template-columns:1.2fr .8fr;align-items:center;display:grid}.about-intro__text{gap:var(--space-6);text-align:left;flex-direction:column;display:flex}.about-intro__text h2{margin-bottom:var(--space-4);text-align:left}.about-intro__image{justify-content:center;align-items:center;width:100%;max-width:22.5rem;margin-inline:auto;display:flex}.about-intro__image img{border-radius:var(--radius-lg);filter:drop-shadow(0 0 40px #c770f01f);width:100%;transition:filter var(--duration-normal) var(--ease-out)}.about-intro__image img:hover{filter:drop-shadow(0 0 60px #c770f040)}.about-skills{margin-top:var(--space-16)}.skills-divider{width:100%;max-width:37.5rem;height:1px;margin:var(--space-16) auto;background:linear-gradient(90deg,#0000 0%,#c770f033 20%,#c770f066 50%,#c770f033 80%,#0000 100%)}.skills__grid{justify-content:center;gap:var(--space-4);flex-wrap:wrap;max-width:46.875rem;margin-inline:auto;display:flex}.skills__grid>*{width:calc((100% - (var(--space-4) * 2)) / 3);min-width:6.25rem}.skill-icon{justify-content:center;align-items:center;gap:var(--space-2);width:100%;height:100%;padding:var(--space-5) var(--space-3);color:var(--color-text);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);isolation:isolate;box-shadow:var(--glass-shadow);transition:all var(--duration-normal) var(--ease-out);cursor:default;flex-direction:column;font-size:2.6rem;display:flex;position:relative;overflow:hidden}.skill-icon:hover{background:var(--glass-bg-hover);box-shadow:var(--glass-shadow-hover);-webkit-backdrop-filter:var(--glass-blur-hover);border-color:#c770f059;transform:translateY(-6px)scale(1.02)}.skill-icon:before{content:"";z-index:1;pointer-events:none;border-radius:inherit;background:linear-gradient(120deg,#0000 0%,#c770f008 40%,#ffffff0a 50%,#c770f008 60%,#0000 100%);width:100%;height:100%;transition:left .6s cubic-bezier(.22,1,.36,1);position:absolute;top:0;left:-100%}.skill-icon:hover:before{left:100%}.skill-icon:hover svg{color:var(--color-accent);filter:none;transition:color .3s var(--ease-out)}.skill-icon__name{font-size:.72rem;font-family:var(--font-primary);color:var(--color-text-muted);text-align:center;letter-spacing:.02em}.github-section{width:100%}.github-calendar{width:fit-content;max-width:100%;margin-inline:auto;margin-top:var(--space-8);z-index:5;background:var(--glass-bg);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius-xl);isolation:isolate;-webkit-backdrop-filter:var(--glass-blur);padding:clamp(1rem,3vw,2rem);display:block;position:relative;overflow-x:auto}.github-calendar>*{width:max-content;margin:0 auto;display:block;max-width:none!important}.github-calendar svg{padding-bottom:.5rem;display:block;max-width:none!important;overflow:visible!important}.github-calendar svg rect{transform-box:fill-box;transform-origin:50%;transition:transform .2s cubic-bezier(.34,1.56,.64,1),filter .2s}.github-calendar svg rect:hover{filter:brightness(1.35)saturate(1.1);transform:scale(1.25)}html:has(.github-calendar svg:hover){--cursor-outer-visibility:none!important}.react-activity-calendar__tooltip,.react-activity-calendar__tooltip[data-color-scheme]{background:var(--glass-bg)!important;-webkit-backdrop-filter:var(--glass-blur)!important;backdrop-filter:var(--glass-blur)!important;color:var(--color-text)!important;border:var(--glass-border)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--glass-shadow)!important;font-family:var(--font-primary)!important;z-index:1000!important;pointer-events:none!important;padding:.75rem 1rem!important;font-size:.8125rem!important}.react-activity-calendar__tooltip-arrow{display:none!important}.react-activity-calendar__tooltip:after,.react-activity-calendar__tooltip[data-color-scheme]:after{content:""!important;background:var(--glass-bg)!important;width:.875rem!important;height:.875rem!important;-webkit-backdrop-filter:var(--glass-blur)!important;backdrop-filter:var(--glass-blur)!important;border-right:var(--glass-border)!important;border-bottom:var(--glass-border)!important;clip-path:polygon(100% 0,100% 100%,0 100%)!important;z-index:-1!important;filter:drop-shadow(0 .25rem .375rem #0000004d)!important;border-bottom-right-radius:.25rem!important;position:absolute!important;top:100%!important;left:50%!important;transform:translate(-50%,-50%)rotate(45deg)!important}.social{text-align:center;padding-block:var(--space-20)}.social__links{justify-content:center;gap:var(--space-5);margin-top:var(--space-10);flex-wrap:wrap;align-items:center;display:flex}.social__icon{width:3.375rem;height:3.375rem;color:var(--color-text);-webkit-backdrop-filter:blur(12px)saturate(160%);border:var(--glass-border);transition:all var(--duration-normal) var(--ease-out);background:#ffffff0a;border-radius:50%;justify-content:center;align-items:center;font-size:1.3rem;display:inline-flex;position:relative;overflow:visible;box-shadow:0 4px 12px #00000040,inset 0 1px 1px #ffffff1a}.social__icon:hover{color:var(--color-accent);background:#ffffff14;border-color:#c770f059;transform:translateY(-4px)scale(1.05);box-shadow:0 8px 24px #0006,inset 0 1px 1px #ffffff1a}.social__icon:after{content:"";border:2px solid var(--color-accent);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:0;transform:scale(1)}.social__icon:hover:after{animation:.6s cubic-bezier(.22,1,.36,1) forwards social-pulse}@keyframes social-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.resume-section{padding-top:calc(var(--nav-height) + var(--space-8));padding-bottom:var(--space-12);scroll-margin-top:var(--nav-height);text-align:center;flex-direction:column;min-height:100dvh;display:flex;position:relative}.resume-section>.container{margin-block:auto}.resume-viewer{padding-block:var(--space-6);flex-grow:1;justify-content:center;display:flex}.resume-viewer canvas{border-radius:var(--radius-md)}.resume-viewer .react-pdf__Page{border-radius:var(--radius-md);box-shadow:0 0 40px var(--color-accent-glow);border:1px solid var(--color-border-accent);overflow:hidden}.resume-actions{padding-block:var(--space-6);justify-content:center;display:flex}.resume-loader{justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;width:100%;min-height:25rem;display:flex}.loader{perspective:1000px;width:5rem;height:5rem;color:var(--color-text);border-radius:50%;position:relative;transform:rotate(45deg)}.loader:before,.loader:after{content:"";border-radius:50%;animation:1s linear infinite spin;display:block;position:absolute;inset:0;transform:rotateX(70deg)}.loader:after{color:var(--color-accent);animation-delay:.4s;transform:rotateY(70deg)}@keyframes spin{0%,to{box-shadow:.2em 0}12%{box-shadow:.2em .2em}25%{box-shadow:0 .2em}37%{box-shadow:-.2em .2em}50%{box-shadow:-.2em 0}62%{box-shadow:-.2em -.2em}75%{box-shadow:0 -.2em}87%{box-shadow:.2em -.2em}}.btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-8);font-family:var(--font-primary);color:var(--color-text);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-full);transition:all .4s var(--ease-out);cursor:pointer;background:#ffffff0d;font-size:.92rem;text-decoration:none;display:inline-flex;box-shadow:0 8px 24px -6px #0000004d,inset 0 1px 1px #ffffff0f}.btn:hover{color:var(--color-text);background:#c770f026;border-color:#c770f073;transform:translateY(-2px);box-shadow:0 12px 32px -8px #c770f059,inset 0 1px 1px #ffffff1a}.footer{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-top:var(--glass-border);padding-block:var(--space-5);z-index:100;position:relative}.footer__inner{align-items:center;gap:var(--space-3);grid-template-columns:1fr 1fr 1fr;display:grid}.footer__text{min-width:8.75rem}.footer__text h3{color:#ffffffd9;letter-spacing:.02em;margin:0;font-size:.85rem;font-weight:500}.footer__text a{color:inherit;transition:all var(--duration-fast) var(--ease-out);text-decoration:none}.footer__text a:hover{color:var(--color-accent);text-shadow:0 0 10px #c770f066}.footer__text--left{text-align:left}.footer__text--center{text-align:center}.footer__socials{min-width:7.5rem}.footer__socials .social__links{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-top:0;display:flex}.footer__socials .social__icon{width:1.875rem;height:1.875rem;font-size:.85rem}@media (width<=1200px){.hero__grid{gap:var(--space-10);text-align:center;grid-template-columns:1fr;justify-items:center}.hero__content{text-align:center;align-items:center}.intro__grid{gap:var(--space-10);text-align:center;grid-template-columns:1fr;justify-items:center}.intro__text{text-align:center;align-items:center}.intro__body{text-align:center;margin-inline:auto}.about-intro__grid{gap:var(--space-10);text-align:center;grid-template-columns:1fr}.about-intro__text{text-align:center;align-items:center}.about-intro__text h2,.about-card p,.about-card .quote-text{text-align:center}.about-card .quote-footer{text-align:center;padding-left:0}.about-card ul{align-items:center}}@media (width<=992px){.footer__inner{gap:var(--space-4);text-align:center;grid-template-columns:1fr}.footer__text--left,.footer__text--center{text-align:center}.footer__socials .social__links{justify-content:center}}.projects__grid{gap:var(--space-8);margin-top:var(--space-8);grid-template-columns:repeat(auto-fill,minmax(21.25rem,1fr));justify-items:center;display:grid}.horizontal-scroll-container{width:100%;overflow:hidden}.horizontal-track{gap:var(--space-8);width:max-content;padding-right:50vw;padding-left:var(--space-5);flex-wrap:nowrap;align-items:stretch;display:flex}.project-card{background:var(--glass-bg);width:23.75rem;-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);isolation:isolate;box-shadow:var(--glass-shadow);will-change:transform;flex-direction:column;flex:0 0 23.75rem;align-self:stretch;transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s cubic-bezier(.16,1,.3,1),border-color .45s,background .45s,-webkit-backdrop-filter .45s,backdrop-filter .45s;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";pointer-events:none;opacity:0;z-index:1;background:linear-gradient(135deg,#c770f008 0%,#0000 50%);transition:opacity .45s;position:absolute;inset:0}.project-card:not(.horizontal-track *):hover:before,.project-card.is-hovered:before{opacity:1}.project-card:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(105deg,#0000 0%,#ffffff04 40%,#ffffff08 50%,#ffffff04 60%,#0000 100%);width:50%;height:100%;transition:none;position:absolute;top:0;left:-100%}.project-card:not(.horizontal-track *):hover:after,.project-card.is-hovered:after{animation:.8s cubic-bezier(.22,1,.36,1) forwards card-shimmer}@keyframes card-shimmer{0%{left:-100%}to{left:200%}}.project-card:not(.horizontal-track *):hover,.project-card.is-hovered{-webkit-backdrop-filter:var(--glass-blur-hover);background:linear-gradient(135deg,#140e228c 0%,#0c0916a6 100%);border-color:#c770f059;transform:translateY(-6px);box-shadow:0 20px 48px -12px #000000bf,0 0 32px -8px #c770f038,inset 0 1px 1px #fff3}.project-card__glow{pointer-events:none;z-index:1;opacity:0;transition:opacity .4s var(--ease-out);position:absolute;inset:0}.project-card:not(.horizontal-track *):hover .project-card__glow,.project-card.is-hovered .project-card__glow{opacity:1}.project-card__image{z-index:3;aspect-ratio:16/9;margin:var(--space-4);border-radius:var(--radius-sm);position:relative;overflow:hidden}.project-card__image img{object-fit:cover;width:100%;height:100%;transition:transform .8s cubic-bezier(.22,1,.36,1)}.project-card:not(.horizontal-track *):hover .project-card__image img,.project-card.is-hovered .project-card__image img{transform:scale(1.03)}.project-card__body{z-index:3;padding:var(--space-2) var(--space-5) var(--space-5);text-align:center;flex-direction:column;flex:1;display:flex;position:relative}.project-card__title{font-family:var(--font-primary);color:var(--color-text);margin-bottom:var(--space-2);font-size:1.15rem}.project-card__description{color:var(--color-text-muted);text-align:center;flex:1;font-size:.9rem;line-height:1.7}.project-card__actions{justify-content:center;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex}.project-card__link{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:.85rem;font-family:var(--font-primary);color:var(--color-text);-webkit-backdrop-filter:blur(8px);border-radius:var(--radius-full);transition:all var(--duration-normal) var(--ease-out);background:#ffffff08;border:1px solid #ffffff14;text-decoration:none;display:inline-flex}.project-card__link:hover{color:var(--color-text);-webkit-backdrop-filter:var(--glass-blur);background:#c770f008;border-color:#c770f040;transform:translateY(-.125rem);box-shadow:0 .5rem 1.5rem #0006,0 0 .9375rem #c770f014,inset 0 .0625rem .0625rem #ffffff0d}.about-card{color:var(--color-text);background:0 0;border:none}.about-card blockquote{border:none;margin:0;padding:0}.about-card p{text-align:left;max-width:none;line-height:1.85}.about-card ul{margin-top:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.about-card .about-activity{padding-left:var(--space-1);color:var(--color-text-muted);font-size:1rem;line-height:1.9;display:block}.about-card .about-activity svg{vertical-align:middle;color:var(--color-accent);margin-right:var(--space-2);display:inline-block;position:relative;top:-.0625rem}.about-card .quote-footer{margin-top:var(--space-2);text-align:center;color:var(--color-accent-dim);padding-left:0;font-size:.88rem;font-style:italic}.about-card .quote-text{color:#9b7eaccc;text-align:center;margin-top:var(--space-4);font-style:italic}.project-card{pointer-events:auto!important}@media (prefers-reduced-motion:reduce){.blur-reveal,.blur-reveal-img,.word{filter:none!important;opacity:1!important;transform:none!important}}.scroll-prompt-glass{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);-webkit-backdrop-filter:blur(.75rem);border-radius:var(--radius-full);pointer-events:none;z-index:10;background:#ffffff14;border:1px solid #ffffff26;display:flex;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);box-shadow:0 .625rem 2.5rem #0000004d,inset 0 0 0 1px #ffffff1a}.scroll-prompt-glass span{background:linear-gradient(135deg,#fff 20%,#c770f0 100%);-webkit-text-fill-color:transparent;font-family:var(--font-primary);letter-spacing:.03125rem;-webkit-background-clip:text;font-size:.85rem;font-weight:500}.scroll-mouse{border:2px solid #c770f0cc;border-radius:.6rem;justify-content:center;width:1.125rem;height:1.75rem;display:flex;position:relative;box-shadow:0 0 10px #c770f033}.scroll-wheel{background:#c770f0;border-radius:.125rem;width:.25rem;height:.375rem;margin-top:.25rem;animation:1.5s cubic-bezier(.6,-.28,.735,.045) infinite alternate scrollWheel;box-shadow:0 0 8px #c770f0}@keyframes scrollWheel{0%{opacity:1;transform:translateY(0)scaleY(1)}to{opacity:0;transform:translateY(.5rem)scaleY(1.5)}}
