:root{--color-bg:#050508;--color-bg-elevated:#ffffff0a;--color-bg-glass:#0c081480;--color-accent:#c770f0;--color-accent-dim:#a44dd3;--color-accent-glow:#c770f04d;--color-text:#fdfdff;--color-text-muted:#fdfdffa6;--color-border:#ffffff14;--color-border-accent:#c770f040;--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:8px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-full:9999px;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--duration-fast:.2s;--duration-normal:.4s;--duration-slow:.6s;--max-width:1200px;--nav-height:68px;--cursor-visibility:block;--glass-bg:#100c1859;--glass-bg-hover:#ffffff0f;--glass-blur:blur(24px) saturate(160%);--glass-border:1px solid #ffffff1a;--glass-shadow:0 16px 40px -8px #0006, inset 0 1px 1px #ffffff14;--glass-shadow-hover:0 24px 56px -12px #00000080, 0 0 32px -8px #c770f04d, inset 0 1px 1px #ffffff26}*,: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}html::-webkit-scrollbar{display:none}body{font-family:var(--font-primary);color:var(--color-text);background-color:var(--color-bg);letter-spacing:.02em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:-2;pointer-events:none;background:radial-gradient(80% 50% at 20% 20%,#6428a01f,#0000 60%),radial-gradient(60% 40% at 80% 70%,#a03cdc14,#0000 50%),radial-gradient(50% 60%,#50148c0d,#0000 60%);position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;will-change:transform;background:radial-gradient(400px at 15% 30%,#c770f00f,#0000),radial-gradient(350px at 85% 65%,#783cc80d,#0000);animation:20s ease-in-out infinite alternate ambient-drift;position:fixed;inset:0}@keyframes ambient-drift{0%{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.05)}66%{transform:translate(-20px,15px)scale(.98)}to{transform:translate(10px,-10px)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:color var(--duration-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--color-text)}strong{color:var(--color-accent);font-weight:400}img,video,svg{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)}.container{width:100%;max-width:var(--max-width);padding-inline:var(--space-8);margin-inline:auto}.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{background:radial-gradient(#c770f080 0%,#c770f026 50%,#0000 100%);width:100%;max-width:600px;height:2px;margin:0 auto;box-shadow:0 0 20px #c770f026}#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:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}.gradient-text{background:linear-gradient(110deg,#fce7ff 0%,#c770f0 25%,#7e22ce 50%,#c770f0 75%,#fce7ff 100%) 0 0/200%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:8s ease-in-out infinite alternate smoky-shift}@keyframes smoky-shift{0%{background-position:0%}to{background-position:100%}}@media (prefers-reduced-motion:reduce){.gradient-text{background-position:0%;animation:none}}html,body,a,button,input,select,textarea,[role=button],.project-card,.skill-icon,.social__icon,.btn,.navbar a,.github-calendar,.github-calendar *{cursor:none!important}.navbar{top:var(--space-4);z-index:1200;height:auto;-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-full);padding:var(--space-2);transition:background .5s var(--ease-out), border-color .5s var(--ease-out), box-shadow .5s var(--ease-out);background:linear-gradient(135deg,#100c1866 0%,#c770f008 100%);align-items:center;display:flex;position:fixed;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 16px 40px -8px #0006,inset 0 1px 1px #ffffff14}.navbar.scrolled{background:linear-gradient(135deg,#100c18a6 0%,#c770f014 100%);border-color:#ffffff26;box-shadow:0 24px 48px -12px #0009,inset 0 1px 1px #ffffff1a}.navbar__inner{justify-content:space-between;align-items:center;width:auto;display:flex}.navbar__brand{font-family:var(--font-primary);color:var(--color-accent);align-items:center;gap:var(--space-1);white-space:nowrap;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:200px;padding-left:var(--space-3);margin-right:0}.navbar__brand:after{content:"";width:1px;height:18px;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(-15px)}.navbar__brand.show .accent{transform:translate(0)}.navbar__brand:hover.show{color:var(--color-accent);opacity:.85}.navbar__brand-icon{margin-bottom:.15em;margin-left:.4em;margin-right:.2em;font-size:.7em}.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:var(--color-text-muted);border-radius:var(--radius-full);transition:color 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,.navbar__link.active{color:var(--color-text)}.navbar__link-content{z-index:1;align-items:center;gap:var(--space-2);display:flex;position:relative}.navbar__active-bg{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--radius-full);z-index:0;background:#ffffff0f;border:1px solid #ffffff1a;position:absolute;inset:0;box-shadow:inset 0 1px 1px #ffffff0d}.navbar__link-icon{font-size:1.1em}.navbar__cta{padding:var(--space-2) var(--space-2);font-size:.88rem;font-family:var(--font-primary);color:var(--color-text);border:1px solid var(--color-border-accent);border-radius:var(--radius-full);transition:all .4s var(--ease-out);background:#c770f026;align-items:center;text-decoration:none;display:flex}.navbar__cta:hover{color:var(--color-text);box-shadow:0 8px 24px -6px var(--color-accent-glow);background:#c770f040;border-color:#c770f066;transform:translateY(-2px)}.hero-pin{z-index:0;height:100dvh;position:sticky;top:0}.content-flow{z-index:1;background:var(--color-bg);position:relative}.content-flow:before{content:"";background:linear-gradient(to bottom, transparent, var(--color-bg));pointer-events:none;z-index:2;height:150px;position:absolute;top:-150px;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{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#c770f014 0%,#6428a00a 40%,#0000 70%);border-radius:50%;width:700px;height:700px;animation:6s ease-in-out infinite alternate hero-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes hero-pulse{0%{opacity:.5;transform:translate(-50%,-50%)scale(1)}to{opacity:1;transform:translate(-50%,-50%)scale(1.2)}}.hero>*{z-index:1;will-change:transform, opacity, filter;position:relative}.hero__grid{gap:var(--space-16);width:100%;max-width:var(--max-width);padding-inline:var(--space-8);grid-template-columns:1.2fr .8fr;align-items:center;margin-inline:auto;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:440px;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)}}.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:360px;margin-inline:auto;display:flex}.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:360px;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:600px;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:750px;margin-inline:auto;display:flex}.skills__grid>*{width:calc((100% - (var(--space-4) * 2)) / 3);min-width:100px}.skill-icon{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-3);color:var(--color-text);-webkit-backdrop-filter:blur(8px);border:var(--glass-border);border-radius:var(--radius-lg);transition:all var(--duration-normal) var(--ease-out);cursor:default;background:#ffffff05;flex-direction:column;font-size:2.6rem;display:flex;box-shadow:0 4px 20px #0003,inset 0 1px 1px #ffffff08}.skill-icon:hover{box-shadow:var(--glass-shadow-hover);background:#c770f014;border-color:#c770f066;transform:translateY(-6px)scale(1.02)}.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:100%;max-width:1200px;padding:var(--space-8);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);-webkit-backdrop-filter:var(--glass-blur);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:8px;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{background:var(--glass-bg)!important;color:var(--color-text)!important;border:var(--glass-border)!important;border-radius:var(--radius-lg)!important;-webkit-backdrop-filter:var(--glass-blur)!important;box-shadow:var(--glass-shadow)!important;font-family:var(--font-primary)!important;z-index:1000!important;pointer-events:none!important;padding:12px 16px!important;font-size:13px!important}.react-activity-calendar__tooltip-arrow{display:none!important}.react-activity-calendar__tooltip:after{content:"";background:var(--glass-bg);width:14px;height:14px;-webkit-backdrop-filter:var(--glass-blur);border-right:var(--glass-border);border-bottom:var(--glass-border);clip-path:polygon(100% 0,100% 100%,0 100%);z-index:-1;filter:drop-shadow(0 4px 6px #0000004d);border-bottom-right-radius:4px;position:absolute;top:100%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.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:54px;height:54px;color:var(--color-text);-webkit-backdrop-filter:blur(8px);border:var(--glass-border);transition:all var(--duration-normal) var(--ease-out);background:#ffffff08;border-radius:50%;justify-content:center;align-items:center;font-size:1.3rem;display:inline-flex;box-shadow:0 4px 12px #00000040,inset 0 1px 1px #ffffff08}.social__icon:hover{color:var(--color-accent);background:#c770f026;border-color:#c770f073;transform:translateY(-4px)scale(1.1);box-shadow:0 8px 24px #c770f040,inset 0 1px 1px #ffffff0f}.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:400px;display:flex}.loader{perspective:1000px;width:80px;height:80px;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:blur(16px)saturate(140%);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:140px}.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:120px}.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:30px;height:30px;font-size:.85rem}@media (prefers-reduced-motion:reduce){.hero:before{animation:none}}.projects__grid{gap:var(--space-8);margin-top:var(--space-8);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));justify-items:center;display:grid}.horizontal-scroll-container{width:100%;overflow:hidden}.horizontal-track{gap:var(--space-8);flex-wrap:nowrap;align-items:stretch;width:max-content;padding-left:20px;padding-right:50vw;display:flex}.project-card{width:380px;-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);isolation:isolate;box-shadow:var(--glass-shadow);transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .5s var(--ease-out), background .5s var(--ease-out);background:linear-gradient(#ffffff0d 0%,#ffffff03 100%);flex-direction:column;flex:0 0 380px;align-self:stretch;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";pointer-events:none;opacity:0;transition:opacity .5s var(--ease-out);z-index:1;background:linear-gradient(135deg,#c770f00f 0%,#ffffff05 20%,#0000 50% 80%,#c770f005 100%);position:absolute;inset:0}.project-card:hover:before,.project-card.is-hovered:before{opacity:1}.project-card:hover,.project-card.is-hovered{-webkit-backdrop-filter:blur(40px)saturate(180%);background:linear-gradient(#c770f008 0%,#ffffff03 100%);border-color:#c770f033;transform:translateY(-8px)scale(1.015);box-shadow:0 24px 56px -12px #000000b3,0 0 30px -10px #c770f014,inset 0 1px 1px #ffffff14}.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 var(--duration-slow) var(--ease-out)}.project-card: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:blur(16px)saturate(140%);background:#c770f008;border-color:#c770f040;transform:translateY(-2px);box-shadow:0 8px 24px #0006,0 0 15px #c770f014,inset 0 1px 1px #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:-1px}.about-card .quote-footer{margin-top:var(--space-6);padding-left:var(--space-8);color:var(--color-accent-dim);font-size:.88rem;font-style:italic}.about-card .quote-text{color:#9b7eaccc;text-align:left;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-4);padding:var(--space-3) var(--space-6);-webkit-backdrop-filter:blur(12px);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 10px 40px #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:.5px;-webkit-background-clip:text;font-size:1rem;font-weight:500}.scroll-mouse{border:2px solid #c770f0cc;border-radius:12px;justify-content:center;width:22px;height:34px;display:flex;position:relative;box-shadow:0 0 10px #c770f033}.scroll-wheel{background:#c770f0;border-radius:2px;width:4px;height:8px;margin-top:4px;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(12px)scaleY(1.5)}}
