:root{--font-body:var(--font-sora);--black:#0b0f0e;--white:#f7f8f5;--background-color:#f0efee;--background2-color:#eceae5;--text-color:#1c1c1c;--muted-text-color:#6e6e6e;--accent-color:#8575d8;--surface-color:#ccc6db;--nav-background-color:#e0ded9;--nav-background-color2:#d2d0cb;--footer-background-color:#e0ded9;--footer-background-color2:#d2d0cb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--black:#050706;--white:#f4f5f0;--background-color:#1a1a1a;--background2-color:#1d1d1d;--text-color:#fff;--muted-text-color:#bebebe;--accent-color:#7db9ff;--surface-color:#6f5d90;--nav-background-color:#4b3a65;--nav-background-color2:#43345a;--footer-background-color:#4b3a65;--footer-background-color2:#43345a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@keyframes preloaderCodeIn{0%{opacity:0;transform:translateY(12px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes preloaderFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes preloaderLoading{0%{transform:translate(-110%)}to{transform:translate(240%)}}@keyframes preloaderScan{0%{transform:translateY(-180px)}to{transform:translateY(100vh)}}@keyframes heroScrollFloat{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(8px)}}@keyframes heroBadgeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes skillsIconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}video{max-width:100%}button,input,textarea,select{font:inherit}html,body{height:100%}html{scrollbar-width:thin;scrollbar-color:var(--accent-color) #0000;scroll-behavior:smooth}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--accent-color), black 10%);background-clip:padding-box;border:2px solid #0000;border-radius:100px;transition:background-color .4s}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--accent-color), black 25%)}body{font-family:var(--font-body);flex-direction:column;display:flex}main{flex:1}html.theme-changing,html.theme-changing body,html.theme-changing main,html.theme-changing header,html.theme-changing footer,html.theme-changing section,html.theme-changing .topbar,html.theme-changing .main-header,html.theme-changing .mobile-nav-drawer,html.theme-changing .footer-top,html.theme-changing .footer-bottom,html.theme-changing .hero,html.theme-changing .projects,html.theme-changing .about,html.theme-changing .skills,html.theme-changing .contact,html.theme-changing .project-card,html.theme-changing .about-image,html.theme-changing .about-points div,html.theme-changing .skills-card,html.theme-changing .skills-icon,html.theme-changing .contact-info,html.theme-changing .contact-form,html.theme-changing .footer-socials a,html.theme-changing .tech-badge,html.theme-changing input,html.theme-changing textarea{transition:background .6s,background-color .6s,border-color .6s,box-shadow .6s!important}html.theme-changing h1,html.theme-changing h2,html.theme-changing h3,html.theme-changing h4,html.theme-changing h5,html.theme-changing h6,html.theme-changing p,html.theme-changing a,html.theme-changing span:not(.sun):not(.moon),html.theme-changing strong,html.theme-changing small,html.theme-changing li,html.theme-changing cite,html.theme-changing blockquote,html.theme-changing button,html.theme-changing input,html.theme-changing textarea,html.theme-changing label,html.theme-changing i,html.theme-changing .section-title span,html.theme-changing .hero-tagline,html.theme-changing .project-meta span,html.theme-changing .about-btn,html.theme-changing .contact-detail i,html.theme-changing .contact-label,html.theme-changing .contact-form-tag,html.theme-changing .footer-links a,html.theme-changing .credits a{transition:color .6s,background-color .6s,border-color .6s,box-shadow .6s!important}html.theme-changing :before,html.theme-changing :after{transition:background .6s,background-color .6s,border-color .6s,box-shadow .6s,opacity .6s!important}html.theme-changing input::placeholder,html.theme-changing textarea::placeholder,html.theme-changing i{transition:color .6s!important}body.preloader-active{touch-action:none;height:100dvh;overflow:hidden;background-color:var(--background-color)!important}body.preloader-active,body.preloader-active.index-page,body.preloader-active.index-page .main{background-color:var(--background-color)!important}@media (max-width:1024px){html,body{touch-action:pan-y;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:hidden;scroll-behavior:smooth!important}body:not(.preloader-active).index-page,body:not(.preloader-active).index-page .main{background-color:var(--nav-background-color)}body:not(.preloader-active):not(.mobile-nav-active),body:not(.preloader-active):not(.mobile-nav-active) main,body:not(.preloader-active):not(.mobile-nav-active) section{touch-action:pan-y}main section[id]{scroll-margin-top:75px}#hero{scroll-margin-top:0}#contact{scroll-margin-top:75px}[data-aos]{opacity:1!important;transition:none!important;transform:none!important}}body,button,input,textarea,select{font-family:var(--font-body)}a{color:inherit}h1,h2,h3,h4,h5,h6,p{margin-top:0}#preloader{z-index:99999;background:var(--background-color);justify-content:center;align-items:center;width:100vw;height:100dvh;transition:opacity .8s,visibility .8s;display:flex;position:fixed;inset:0}#preloader.hide{opacity:0;visibility:hidden}#preloader:before{content:"";opacity:.35;pointer-events:none;background-color:#0000;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:38px 38px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}#preloader:after{content:"";background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--accent-color), transparent 50%), transparent);opacity:.15;pointer-events:none;height:160px;animation:2.4s linear infinite preloaderScan;position:absolute;inset:0}#preloader .preloader-inner{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);text-align:center;color:var(--text-color);transform:translateY(-10px)}#preloader .preloader-code{color:var(--accent-color);letter-spacing:.15em;justify-content:center;align-items:center;gap:.75rem;margin-bottom:.5rem;font-size:2.4rem;font-weight:800;display:flex}#preloader .preloader-code span{opacity:0;animation:.7s forwards preloaderCodeIn}#preloader .preloader-code span:nth-child(2){animation-delay:.15s}#preloader .preloader-code span:nth-child(3){animation-delay:.3s}#preloader h1{color:var(--text-color);letter-spacing:-.05em;opacity:0;margin:0;font-size:clamp(2.2rem,4vw,4rem);font-weight:700;animation:.55s .2s forwards preloaderFadeUp}#preloader p{color:var(--muted-text-color);letter-spacing:.28em;text-transform:uppercase;opacity:0;margin:.6rem 0 1.8rem;font-size:.95rem;font-weight:600;animation:.55s .32s forwards preloaderFadeUp}#preloader .preloader-line{background:color-mix(in srgb, var(--text-color), transparent 88%);opacity:0;border-radius:999px;width:260px;height:3px;margin:0 auto 1rem;animation:.55s .42s forwards preloaderFadeUp;overflow:hidden}#preloader .preloader-line span{border-radius:inherit;background:linear-gradient(90deg, transparent, var(--accent-color), transparent);width:45%;height:100%;animation:1.15s ease-in-out infinite preloaderLoading;display:block}#preloader small{color:var(--muted-text-color);letter-spacing:.12em;opacity:0;font-size:.8rem;animation:.55s .52s forwards preloaderFadeUp;display:block}@media (max-width:1024px){#preloader{background-color:var(--background-color)!important}#preloader:before{display:none}}.section-title{text-align:center}.section-title span{color:var(--accent-color);letter-spacing:.3em;text-transform:uppercase;margin-bottom:1rem;font-size:1rem;font-weight:600;display:inline-block}.section-title h2{color:var(--text-color);font-size:50px;font-weight:400}@media (max-width:1024px){.section-title{text-align:center;max-width:340px;margin:0 auto}.section-title span{letter-spacing:.28em;margin-bottom:.75rem;font-size:.7rem}.section-title h2{letter-spacing:-.02em;margin:0;font-size:2.1rem;line-height:1.2}}.header{z-index:9999;width:100%;transition:all .4s;position:fixed;top:0;left:0}.header .container{height:100%}.header.header-shrink .topbar{height:0}.header.header-shrink .main-header{background-color:color-mix(in srgb, var(--nav-background-color), transparent 5%);-webkit-backdrop-filter:blur(18px)saturate(170%)}.header.header-shrink:hover .topbar{height:40px}.header.header-shrink:hover .main-header{background-color:var(--nav-background-color);-webkit-backdrop-filter:none}.header .topbar{background-color:var(--nav-background-color2);height:40px;transition:height .4s;overflow:hidden}.header .topbar a{color:var(--text-color);align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .4s;display:inline-flex}.header .topbar i{transition:all .4s}.header .topbar-contact{gap:1rem}.header .topbar-contact a:hover{color:var(--accent-color)}.header .topbar-contact i:hover{transform:scale(1.2)}.header .topbar-socials{gap:1rem}.header .topbar-socials a{font-size:1.05rem}.header .topbar-socials a:hover{color:var(--accent-color);transform:scale(1.2)}.header .main-header{background-color:var(--nav-background-color);transition:all .4s}.header .header-inner{grid-template-columns:180px 1fr 180px;align-items:center;min-height:90px;display:grid;position:relative}.header .logo{justify-self:start;width:fit-content;display:inline-block}.header .logo img{width:auto;max-height:75px;transition:all .4s;display:block}.header .logo:hover img{transform:scale(1.1)}.header .navmenu{justify-self:center;padding:0}.header .navmenu ul{justify-content:center;align-items:center;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.header .navmenu li{position:relative}.header .navmenu a{color:var(--text-color);white-space:nowrap;will-change:transform;justify-content:center;align-items:center;padding:1.35rem .9rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:color .4s,transform .25s;display:inline-flex;position:relative}.header .navmenu a:after{content:"";background:linear-gradient(90deg, var(--surface-color), var(--accent-color), var(--surface-color));opacity:1;background-position:0%;background-size:220% 100%;border-radius:999px;width:0;height:2px;transition:width .4s;position:absolute;bottom:.95rem;left:50%;transform:translate(-50%)}.header .navmenu a:hover,.header .navmenu a.active,.header .navmenu a:focus{color:var(--accent-color)}.header .navmenu a:hover:after,.header .navmenu a.active:after{width:35px;animation:1.2s linear infinite underlineFlow}.header .theme-switch{background-color:var(--accent-color);cursor:pointer;border:0;border-radius:999px;justify-self:end;width:64px;height:26px;position:relative;overflow:hidden}.header .switch-bg{position:absolute;inset:0}.header .sun,.header .moon{border-radius:50%;width:21px;height:21px;transition:left .6s,opacity .6s,background-color .6s,box-shadow .6s;position:absolute;top:50%;left:72%;transform:translate(-50%,-50%)}.header .sun{opacity:1;background:radial-gradient(circle,#ffb347 20%,#fc3 90%);box-shadow:0 0 16px #ffb347}.header .moon{opacity:0;background-color:#eee;box-shadow:inset -6px 0 #b8b8b8}.main{padding-top:120px}.index-page .main{padding-top:0}html[data-theme=dark] .header .sun{opacity:0;left:28%}html[data-theme=dark] .header .moon{opacity:1;left:28%}.mobile-burger,.mobile-nav-drawer{display:none}@keyframes underlineFlow{0%{background-position:0%}to{background-position:220%}}@media (max-width:1024px){.header,.header.header-shrink,.header.header-shrink:hover{z-index:9997;width:100%;height:88px;position:fixed;top:0;left:0}.header .topbar,.header.header-shrink .topbar,.header.header-shrink:hover .topbar{height:0;display:none}.header .main-header,.header.header-shrink .main-header,.header.header-shrink:hover .main-header{background-color:var(--nav-background-color);height:88px;box-shadow:none;-webkit-backdrop-filter:none}.header .header-inner,.header.header-shrink .header-inner,.header.header-shrink:hover .header-inner{grid-template-columns:48px 1fr 64px;align-items:center;min-height:88px;padding:8px 16px 6px;display:grid;position:relative}.header .logo,.header.header-shrink .logo,.header.header-shrink:hover .logo{place-self:center}.header .logo img,.header.header-shrink .logo img,.header.header-shrink:hover .logo img{width:auto;max-height:75px;transform:none!important}.header .navmenu,.header.header-shrink .navmenu,.header.header-shrink:hover .navmenu{display:none}.header .theme-switch,.header.header-shrink .theme-switch,.header.header-shrink:hover .theme-switch{place-self:center end;width:50px;height:26px;margin:0}.main{padding-top:88px}.index-page .main{padding-top:0}.mobile-burger{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:space-between;place-self:center start;width:24px;height:18px;padding:0;display:inline-flex}.mobile-burger span{background-color:var(--text-color);border-radius:999px;width:100%;height:2px}body:after{content:"";z-index:9998;background-color:color-mix(in srgb, var(--black), transparent 70%);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s,visibility .4s;position:fixed;inset:0}body.mobile-nav-active{touch-action:none;height:100dvh;overflow:hidden}body.mobile-nav-active:after{opacity:1;visibility:visible;pointer-events:auto;width:100%;height:auto!important;min-height:0!important;inset:0 0 -220px!important}.mobile-nav-drawer{z-index:10050;width:52vw;min-width:230px;max-width:300px;padding:22px 0 max(18px,env(safe-area-inset-bottom));background-color:var(--nav-background-color);opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;margin:0;transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .35s,visibility .35s;display:flex;position:fixed;top:0;left:0;transform:translate(-105%);box-shadow:18px 0 45px #00000038;height:100dvh!important;min-height:100dvh!important;overflow:visible!important}.mobile-nav-drawer:after{content:"";background-color:var(--nav-background-color);pointer-events:none;height:240px;position:absolute;bottom:-220px;left:0;right:0}.mobile-nav-drawer ul{margin:0;padding:0;list-style:none}.mobile-nav-drawer li{width:100%}.mobile-nav-drawer a{border-bottom:1px solid color-mix(in srgb, var(--text-color), transparent 85%);width:100%;color:var(--text-color);font-family:var(--font-body);justify-content:space-between;align-items:center;padding:12px 20px;font-size:.9rem;font-weight:600;line-height:1.4;text-decoration:none;display:flex}.mobile-nav-drawer a:hover,.mobile-nav-drawer a.active{color:var(--accent-color)}body.mobile-nav-active .mobile-nav-drawer{opacity:1;visibility:visible;pointer-events:auto;transform:translate(0)}.mobile-nav-close{width:fit-content;color:var(--text-color);background:0 0;border:0;margin:0 0 12px 20px;padding:0;font-size:1.5rem;transition:color .3s}.mobile-nav-close:hover{color:var(--accent-color)}.mobile-nav-title{color:var(--text-color);letter-spacing:.22rem;text-transform:uppercase;padding:0 20px 10px;font-size:.68rem;font-weight:700}.mobile-nav-divider{background-color:color-mix(in srgb, var(--text-color), transparent 85%);height:1px;margin:0}.mobile-nav-contact{color:var(--text-color);flex-direction:column;align-items:center;gap:8px;margin-top:auto;padding:12px 18px 0;font-size:.74rem;display:flex}.mobile-nav-contact a{border-bottom:1px solid color-mix(in srgb, var(--text-color), transparent 85%);text-align:center;justify-content:center;gap:.5rem;padding:.5rem 0;font-size:.74rem}.mobile-nav-contact span{align-items:center;gap:.5rem;display:inline-flex}.mobile-nav-socials{gap:.8rem;padding-top:.3rem;display:flex}.mobile-nav-socials a{width:auto;color:var(--text-color);border-bottom:0;padding:0;font-size:1rem}}.footer{background:var(--footer-background-color)}.footer .footer-top{background:var(--footer-background-color);padding:3rem 0}.footer .footer-content{grid-template-columns:1.6fr .55fr .55fr .45fr;align-items:start;gap:4rem;display:grid}.footer .footer-brand{align-items:flex-start;gap:1.5rem;margin-bottom:1rem;display:flex}.footer .footer-logo{flex-shrink:0}.footer .footer-logo img{object-fit:contain;width:85px;height:85px;transition:all .4s}.footer .footer-logo:hover img{transform:scale(1.08)}.footer .footer-links{position:relative;left:70px}.footer .footer-links h4,.footer .footer-socials h4{color:var(--text-color);margin:0 0 1rem;padding-bottom:.75rem;font-size:1rem;font-weight:700;display:inline-block;position:relative}.footer .footer-links h4:after,.footer .footer-socials h4:after{content:"";background:var(--accent-color);border-radius:10px;width:40px;height:2px;position:absolute;bottom:0;left:0}.footer .footer-brand h4{color:var(--text-color);margin:0 0 1rem;font-size:1rem;font-weight:700}.footer .footer-brand p{max-width:560px;color:var(--muted-text-color);margin:0;font-size:.95rem;line-height:1.7}.footer .footer-links ul{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.footer .footer-links a{color:var(--muted-text-color);font-size:.92rem;text-decoration:none;transition:all .4s}.footer .footer-links a:hover{color:var(--accent-color)}.footer .footer-socials{text-align:center;justify-self:end}.footer .footer-socials div{flex-direction:column;align-items:center;gap:.9rem;display:flex}.footer .footer-socials a{background:color-mix(in srgb, var(--accent-color), transparent 80%);width:42px;height:42px;color:var(--text-color);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;text-decoration:none;transition:all .4s;display:flex}.footer .footer-socials a:hover{background:var(--accent-color);box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);transform:scale(1.1)}.footer .footer-bottom{background:var(--footer-background-color2);text-align:center;padding:1.2rem 0}.footer .footer-bottom p{color:var(--text-color);margin:0;font-size:.85rem}.footer .credits{margin-top:.35rem}.footer .credits span{color:var(--muted-text-color)}.footer .credits a{color:var(--accent-color);font-weight:600;text-decoration:none}@media (max-width:1024px){.footer .footer-top{padding:2rem 0 1.8rem}.footer .footer-content{flex-direction:column;gap:2rem;display:flex}.footer .footer-brand{text-align:left;align-items:center;gap:1rem;display:flex}.footer .footer-logo img{width:80px;height:80px}.footer .footer-logo:hover img{transform:none}.footer .footer-brand h4{margin-bottom:.5rem;font-size:.9rem;line-height:1.25}.footer .footer-brand p{max-width:none;font-size:.72rem;line-height:1.55}.footer .footer-links{position:static;left:auto}.footer .footer-content{grid-template-columns:1fr 1fr 1fr;align-items:start;gap:.8rem;display:grid}.footer .footer-brand{grid-column:1/-1}.footer .footer-links,.footer .footer-socials{text-align:center;justify-self:center}.footer .footer-links h4,.footer .footer-socials h4{margin-bottom:.75rem;padding-bottom:.55rem;font-size:.78rem}.footer .footer-links h4:after,.footer .footer-socials h4:after{width:32px;left:50%;transform:translate(-50%)}.footer .footer-links ul{gap:.6rem}.footer .footer-links a{font-size:.68rem}.footer .footer-socials div{gap:.6rem}.footer .footer-socials a{width:34px;height:34px;font-size:.82rem}.footer .footer-socials a:hover{box-shadow:none;background:color-mix(in srgb, var(--accent-color), transparent 80%);transform:none}.footer .footer-bottom{padding:1rem 0}.footer .footer-bottom p{font-size:.72rem;line-height:1.6}.footer .credits{margin-top:.3rem}}.hero{isolation:isolate;align-items:center;width:100%;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero .hero-video{object-fit:cover;z-index:-3;width:100%;height:100%;position:absolute;inset:0}.hero .hero-video::-webkit-media-controls{display:none!important}.hero .hero-video::-webkit-media-controls-start-playback-button{-webkit-appearance:none;display:none!important}.hero .hero-overlay{z-index:-2;background:radial-gradient(circle at 72% 45%,#845cff2e,#0000 100%),linear-gradient(90deg,#050812d1,#12141ca6,#050812c7);position:absolute;inset:0}.hero:after{content:"";z-index:-1;background:#00000038;position:absolute;inset:0}.hero .hero-content{grid-template-columns:1fr .95fr;align-items:center;gap:8rem;display:grid}.hero .hero-text{max-width:800px}.hero .hero-tagline{letter-spacing:.2em;text-transform:uppercase;color:var(--accent-color);margin-bottom:1rem;font-size:.8rem;font-weight:600;display:inline-block}.hero .hero-text h1{letter-spacing:-.075em;color:var(--white);margin:0 0 1.2rem;font-size:5rem;font-weight:600;line-height:.94}.hero .hero-text p{max-width:700px;color:var(--white);font-size:1rem}.hero .hero-buttons{flex-wrap:wrap;gap:1rem;display:flex}.hero .hero-buttons .btn{text-transform:uppercase;letter-spacing:1.5px;border-radius:15px;justify-content:center;align-items:center;min-height:50px;padding:0 1rem;font-size:.9rem;font-weight:600;transition:all .4s;display:inline-flex}.hero .hero-buttons .btn-primary{background-color:var(--accent-color);color:var(--text-color);border:none}.hero .hero-buttons .btn-secondary{background-color:var(--nav-background-color);color:var(--text-color);border:none}.hero .hero-buttons .btn:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);transform:translateY(-5px)}.hero .hero-visual{justify-content:center;align-items:center;display:flex;transform:translate(50px)}.hero .profile-wrapper{aspect-ratio:1;width:clamp(300px,32vw,430px);position:relative}.hero .profile-wrapper:before{content:"";background-color:var(--accent-color);opacity:.78;z-index:-1;border-radius:50%;position:absolute;inset:10px;transform:translate(60px)}.hero .profile-wrapper>img{object-fit:cover;border:8px solid #0000;border-radius:50%;width:110%;height:110%;transition:all .4s;display:block}.hero .profile-wrapper img:hover{transform:scale(1.03)}.hero .profile-wrapper .tech-badge{background:color-mix(in srgb, var(--accent-color), transparent 40%);border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;display:flex;position:absolute}.hero .tech-badge img{object-fit:contain;width:35px;height:35px;transition:all .4s}.hero .tech-badge img:hover{transform:scale(1.15)}.hero .badge-html{animation:3s ease-in-out infinite heroBadgeFloat;top:2%;right:20%}.hero .badge-css{animation:3s ease-in-out .25s infinite heroBadgeFloat;top:20%;left:2%}.hero .badge-js{animation:3s ease-in-out .5s infinite heroBadgeFloat;top:40%;right:-15%}.hero .badge-react{animation:3s ease-in-out .75s infinite heroBadgeFloat;bottom:25%;left:-2%}.hero .badge-nodejs{animation:3s ease-in-out 1s infinite heroBadgeFloat;bottom:5%;right:-2%}.hero .badge-postgresql{animation:3s ease-in-out 1.25s infinite heroBadgeFloat;bottom:-8%;left:40%}.hero .scroll-down-indicator{z-index:5;color:var(--white);opacity:1;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;font-size:.95rem;font-weight:400;transition:opacity .5s;animation:1.6s ease-in-out infinite heroScrollFloat;display:flex;position:absolute;bottom:4rem;left:50%}.hero .scroll-down-indicator.scroll-hidden{opacity:0}.hero .scroll-down-indicator:after{content:"";width:15px;height:15px;color:var(--white);border-bottom:1.5px solid;border-right:1.5px solid;transform:rotate(45deg)}@media (max-width:1024px){.hero{align-items:center;min-height:100svh;padding:7rem 0 3rem}.hero .hero-video{object-fit:cover;width:100%;height:100%}.hero .hero-overlay{background:radial-gradient(circle at 50% 35%,#845cff38,#0000 65%),linear-gradient(#050812e0,#0c0a1ac7,#050812eb)}.hero:after{background:#00000047}.hero .hero-content{text-align:center;flex-direction:column;gap:2.8rem;display:flex}.hero .hero-text{order:1;max-width:100%}.hero .hero-tagline{letter-spacing:.18em;margin-bottom:.9rem;font-size:.65rem}.hero .hero-text h1{letter-spacing:-.075em;margin-bottom:1rem;font-size:clamp(2.6rem,13vw,4rem);line-height:.95}.hero .hero-text p{max-width:330px;margin:0 auto 1.4rem;font-size:.9rem;line-height:1.7}.hero .hero-buttons{justify-content:center;gap:.8rem}.hero .hero-buttons .btn{letter-spacing:1.2px;border-radius:12px;min-height:45px;padding:0 1rem;font-size:.72rem}.hero .hero-buttons .btn:hover{box-shadow:none;transform:none}.hero .hero-visual{order:2;transform:none}.hero .profile-wrapper{width:min(68vw,280px);margin:0 auto}.hero .profile-wrapper:before{inset:8px;transform:translate(28px)}.hero .profile-wrapper>img{border-width:5px;width:105%;height:105%}.hero .profile-wrapper img:hover{transform:none}.hero .profile-wrapper .tech-badge{width:42px;height:42px}.hero .tech-badge img{width:25px;height:25px}.hero .tech-badge img:hover{transform:none}.hero .badge-js{right:-8%}.hero .badge-react{left:-6%}.hero .badge-nodejs{right:-3%}.hero .badge-postgresql{bottom:-6%}.hero .scroll-down-indicator{display:none}}.projects{background:var(--background-color);padding-top:40px;padding-bottom:60px}.projects .projects-grid{grid-template-columns:1.15fr .85fr;gap:1.4rem;padding-top:50px;display:grid}.projects .project-card{background:var(--surface-color);min-height:100%;box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);border-radius:15px;text-decoration:none;transition:all .4s;display:block;position:relative;overflow:hidden}.projects .project-card:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 60%);transform:translateY(-10px)}.projects .project-card-wrapper,.projects .project-card-wrapper .project-card{height:100%}.projects .featured-project{flex-direction:column;grid-row:span 2;display:flex}.projects .featured-project .project-content{margin-top:auto}.projects .featured-project-wrapper{grid-row:span 2}.projects .featured-project-wrapper .project-card{height:100%}.projects .project-image{height:260px;transition:all .4s;overflow:hidden}.projects .featured-project .project-image{height:930px}.projects .project-video{object-fit:cover;width:100%;height:100%;transition:all .4s;display:block}.projects .project-card:hover .project-video{transform:scale(1.05)}.projects .project-content{padding:1.8rem}.projects .project-content span{color:var(--accent-color);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.8rem;font-size:.78rem;font-weight:800;display:inline-block}.projects .project-content h3{color:var(--text-color);margin:0 0 .8rem;font-size:1.45rem;font-weight:800}.projects .featured-project h3{font-size:2rem}.projects .project-content p{color:var(--muted-text-color);margin:0;font-size:.98rem;line-height:1.7}.projects .project-meta{flex-wrap:wrap;gap:.55rem;margin-top:1.4rem;display:flex}.projects .project-meta span{border:1px solid var(--text-color);color:var(--text-color);border-radius:999px;padding:.45rem .7rem;font-size:.76rem;font-weight:600}@media (max-width:1024px){.projects{padding-top:25px;padding-bottom:35px}.projects .projects-grid{grid-template-columns:1fr;gap:1.4rem;padding-top:2.2rem}.projects .featured-project-wrapper,.projects .featured-project{grid-row:auto}.projects .project-card-wrapper,.projects .project-card-wrapper .project-card{height:auto}.projects .project-card{border-radius:15px;min-height:auto}.projects .project-card:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);transform:none}.projects .project-card:hover .project-video{transform:none}.projects .project-image,.projects .featured-project .project-image{height:260px}.projects .project-video{transform:none}.projects .project-content{text-align:center;padding:.8rem 1.5rem}.projects .project-content span{letter-spacing:.12em;margin-bottom:.7rem;font-size:.68rem}.projects .project-content h3,.projects .featured-project h3{margin-bottom:.8rem;font-size:1.45rem;line-height:1.25}.projects .project-content p{max-width:330px;margin:0 auto;font-size:.9rem;line-height:1.7}.projects .project-meta{justify-content:center;gap:.65rem;margin-top:1.3rem}.projects .project-meta span{letter-spacing:.7px;padding:.42rem .62rem;font-size:.62rem}}.about{background:var(--background2-color);padding-top:40px;padding-bottom:60px}.about .about-content{grid-template-columns:.95fr 1.05fr;align-items:center;gap:4rem;padding-top:50px;display:grid}.about .about-image-wrapper{border-radius:15px;height:600px}.about .about-image{height:100%;box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);border-radius:15px;transition:box-shadow .4s;position:relative;overflow:hidden}.about .about-image:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 60%)}.about .about-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.about .about-image:hover img{transform:scale(1.06)}.about .about-text{max-width:680px}.about .about-label{color:var(--accent-color);letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem;font-size:.85rem;font-weight:600;display:inline-block}.about .about-text h3{color:var(--text-color);margin:0 0 1.4rem;font-size:2.7rem;font-weight:600;line-height:1.1}.about .about-text p{color:var(--muted-text-color);margin:0 0 1.2rem;font-size:1rem;line-height:1.8}.about .about-points{grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0;display:grid}.about .about-points div{background:var(--surface-color);box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);border-radius:15px;padding:1rem;transition:all .4s}.about .about-points div:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 60%);transform:translateY(-5px)}.about .about-points strong{color:var(--text-color);margin-bottom:.25rem;font-size:1rem;font-weight:600;display:block}.about .about-points span{color:var(--muted-text-color);font-size:.85rem;font-weight:400}.about .about-btn{background:var(--accent-color);min-height:48px;color:var(--text-color);text-transform:uppercase;letter-spacing:.9px;border-radius:15px;justify-content:center;align-items:center;padding:0 1.5rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .4s;display:inline-flex}.about .about-btn:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);transform:translateY(-5px)}@media (max-width:1024px){.about{padding-top:25px;padding-bottom:35px}.about .about-content{text-align:center;flex-direction:column;gap:2.2rem;padding-top:2.2rem;display:flex}.about .about-text{order:1;max-width:100%}.about .about-label{letter-spacing:.18em;margin-bottom:.8rem;font-size:.68rem}.about .about-text h3{letter-spacing:-.05em;margin-bottom:1rem;font-size:clamp(2rem,9vw,2.7rem);line-height:1.08}.about .about-text p{max-width:350px;margin:0 auto 1rem;font-size:.88rem;line-height:1.7}.about .about-points{grid-template-columns:repeat(3,1fr);gap:.65rem;margin:1.5rem 0}.about .about-points div{border-radius:15px;padding:.85rem .45rem}.about .about-points div:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);transform:none!important}.about .about-points strong{font-size:.72rem}.about .about-points span{font-size:.62rem;line-height:1.35}.about .about-image-wrapper{display:none}.about .about-btn{border-radius:15px;min-height:46px;padding:0 1.3rem;font-size:.72rem}.about .about-btn:hover{box-shadow:none;transform:none}}.skills{background:var(--background-color);padding-top:40px;padding-bottom:60px}.skills .skills-grid{grid-template-columns:repeat(3,1fr);gap:1.6rem;padding-top:50px;display:grid}.skills .skills-card{background:var(--surface-color);box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);border-radius:15px;padding:1.5rem 1.6rem .5rem;transition:all .4s;position:relative;overflow:hidden}.skills .skills-card:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 60%);transform:translateY(-10px)}.skills .skills-card-wrapper,.skills .skills-card-wrapper .skills-card{height:100%}.skills .skills-icon{background:color-mix(in srgb, var(--accent-color), transparent 80%);border-radius:50%;justify-content:center;align-items:center;width:65px;height:65px;margin-bottom:1.5rem;display:flex;position:relative}.skills .skills-icon img{object-fit:contain;transform-origin:50%;width:38px;height:38px;animation:2.5s ease-in-out infinite skillsIconPulse}.skills .skills-card h3{color:var(--text-color);margin:0 0 1rem;font-size:1.45rem;font-weight:600;position:relative}.skills .skills-card p{color:var(--muted-text-color);font-size:.98rem;line-height:1.75;position:relative}.skills .skills-number{color:var(--accent-color);letter-spacing:-.08em;opacity:.5;font-size:5rem;font-weight:600;line-height:1;position:absolute;top:1.4rem;right:1.7rem}@media (max-width:1024px){.skills{padding-top:25px;padding-bottom:35px}.skills .skills-grid{grid-template-columns:repeat(2,1fr);gap:1rem;padding-top:2.2rem}.skills .skills-card-wrapper{height:auto}.skills .skills-card{border-radius:15px;height:100%;min-height:200px;padding:1.45rem 1rem .5rem}.skills .skills-card:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);transform:none}.skills .skills-number{opacity:.45;font-size:3.2rem;top:.9rem;right:1rem}.skills .skills-icon{width:48px;height:48px;margin-bottom:1.1rem}.skills .skills-icon img{width:30px;height:30px}.skills .skills-card h3{margin-bottom:.7rem;font-size:1rem;line-height:1.25}.skills .skills-card p{font-size:.76rem;line-height:1.65}}.contact{background:var(--background2-color);padding-top:40px;padding-bottom:60px}.contact .contact-content{grid-template-columns:.9fr 1.1fr;gap:2rem;padding-top:50px;display:grid}.contact .contact-info,.contact .contact-form{background:var(--surface-color);box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);border-radius:15px}.contact .contact-info{flex-direction:column;justify-content:center;padding:2.5rem;display:flex}.contact .contact-label{color:var(--accent-color);letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem;font-size:.85rem;font-weight:600;display:inline-block}.contact .contact-info h3{color:var(--text-color);margin:0 0 1.2rem;font-size:2.4rem;font-weight:600;line-height:1.1}.contact .contact-info p{color:var(--muted-text-color);margin:0;font-size:1rem;line-height:1.8}.contact .contact-details{gap:1.4rem;margin-top:2.5rem;display:grid}.contact .contact-detail{align-items:flex-start;gap:1rem;display:flex}.contact .contact-detail i{background:color-mix(in srgb, var(--accent-color), transparent 90%);width:45px;height:45px;color:var(--accent-color);border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:all .4s;display:flex}.contact .contact-detail i:hover{transform:scale(1.07)}.contact .contact-detail span{color:var(--accent-color);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.25rem;font-size:.78rem;font-weight:700;display:block}.contact .contact-detail a,.contact .contact-detail p{color:var(--text-color);font-size:.98rem;text-decoration:none}.contact .contact-message{opacity:0;max-height:0;color:var(--text-color);border-radius:15px;margin-top:0;padding:0 1.2rem;font-size:.95rem;line-height:1.6;transition:all .4s;overflow:hidden}.contact .contact-message.show{opacity:1;max-height:140px;padding:1rem 1.2rem}.contact .contact-message.error{color:#d93000;background:#fde3d8}.contact .contact-message.sending{color:#b86b2d;background:#f3eee8}.contact .contact-message.success{color:#0c9b34;background:#e2f3df}.contact .contact-form{padding:2.5rem}.contact .contact-form-tag{color:var(--accent-color);letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem;font-size:.85rem;font-weight:600;display:inline-block}.contact .contact-form h3{color:var(--text-color);margin-bottom:.75rem;font-size:2rem;font-weight:600}.contact .contact-form p{color:var(--muted-text-color);margin-bottom:2rem;line-height:1.7}.contact .contact-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.contact .contact-form input,.contact .contact-form textarea{background-color:color-mix(in srgb, var(--surface-color), black 10%);width:100%;color:var(--text-color);font-family:var(--font-body);border:2px solid #0000;border-radius:15px;outline:none;margin-bottom:1rem;padding:1rem 1.1rem;font-size:.95rem;transition:all .4s}.contact .contact-form input:hover,.contact .contact-form textarea:hover{border-color:var(--accent-color)}.contact .contact-form textarea{resize:vertical;min-height:190px}.contact .contact-form input::placeholder,.contact .contact-form textarea::placeholder{color:var(--muted-text-color)}.contact .contact-form input:focus,.contact .contact-form textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 5px color-mix(in srgb, var(--accent-color), transparent 75%);outline:none}.contact .contact-form button{background:var(--accent-color);min-width:180px;min-height:50px;color:var(--text-color);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border:0;border-radius:15px;margin:0 auto;font-size:.85rem;font-weight:700;transition:all .4s;display:block}.contact .contact-form button:hover{box-shadow:0 15px 40px color-mix(in srgb, var(--accent-color), transparent 80%);transform:translateY(-5px)}@media (max-width:1024px){.contact{padding-top:25px;padding-bottom:35px}.contact .contact-content{flex-direction:column;gap:1.2rem;padding-top:2.2rem;display:flex}.contact .contact-form{text-align:center;border-radius:15px;order:1;padding:1.5rem 1.2rem}.contact .contact-info{text-align:center;border-radius:15px;order:2;padding:1.5rem 1.2rem}.contact .contact-form-tag,.contact .contact-label{letter-spacing:.18em;margin-bottom:.75rem;font-size:.68rem}.contact .contact-form h3,.contact .contact-info h3{font-size:1.65rem;line-height:1.15}.contact .contact-form p,.contact .contact-info p{font-size:.85rem;line-height:1.65}.contact .contact-row{grid-template-columns:1fr;gap:0}.contact .contact-form input,.contact .contact-form textarea{text-align:center;border-radius:15px;margin-bottom:.85rem;padding:.9rem 1rem;font-size:.82rem}.contact .contact-form input::placeholder,.contact .contact-form textarea::placeholder{text-align:center}.contact .contact-form input:hover,.contact .contact-form textarea:hover{border-color:#0000}.contact .contact-form textarea{min-height:160px}.contact .contact-form button{border-radius:15px;min-width:100%;min-height:48px;font-size:.72rem}.contact .contact-form button:hover{box-shadow:none;transform:none}.contact .contact-details{gap:1rem;margin-top:1.5rem}.contact .contact-detail{justify-content:center;align-items:center;gap:.8rem}.contact .contact-detail i{flex-shrink:0;width:38px;height:38px;font-size:1rem}.contact .contact-detail span{font-size:.65rem}.contact .contact-detail a,.contact .contact-detail p{font-size:.82rem}.contact .contact-message.show{margin-top:1rem;padding:.85rem 1rem;font-size:.9rem}}
html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
