html{scroll-behavior:smooth}::selection{background:#00000014}.dark ::selection{background:#ffffff14}.loader-text{animation:pulse 1s ease-in-out infinite}.loader-bar{animation:loader 1.5s ease-in-out forwards}@keyframes loader{0%{width:0%}to{width:100%}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.noise{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.02;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}.grid-bg{background-size:80px 80px;background-image:linear-gradient(to right,rgb(0 0 0 / .02) 1px,transparent 1px),linear-gradient(to bottom,rgb(0 0 0 / .02) 1px,transparent 1px)}.dark .grid-bg{background-image:linear-gradient(to right,rgb(255 255 255 / .02) 1px,transparent 1px),linear-gradient(to bottom,rgb(255 255 255 / .02) 1px,transparent 1px)}.hero-gradient{background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(120,119,198,.15),transparent)}.dark .hero-gradient{background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(120,119,198,.1),transparent)}.hero-line{opacity:0;transform:translateY(100%);animation:heroReveal 1s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--index) * .12s + 1.5s)}@keyframes heroReveal{to{opacity:1;transform:translateY(0)}}.scroll-line{animation:scrollLine 2s ease-in-out infinite}@keyframes scrollLine{0%{transform:translateY(-100%)}50%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.animate-blink{animation:blink 1s step-end infinite}.intro-word{opacity:.15;transition:opacity .5s cubic-bezier(.16,1,.3,1)}.intro-word.visible{opacity:1}.fade-section{opacity:0;transform:translateY(60px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}.fade-section.visible{opacity:1;transform:translateY(0)}.project-card{opacity:0;transform:translateY(80px);transition:opacity 1.2s cubic-bezier(.16,1,.3,1),transform 1.2s cubic-bezier(.16,1,.3,1)}.project-card.visible{opacity:1;transform:translateY(0)}.skill-progress{width:0;transition:width 1.2s cubic-bezier(.16,1,.3,1)}.skill-progress.animate{width:var(--width)}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:3px}.dark ::-webkit-scrollbar-thumb{background:#3f3f46}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:4px}
