body.dark-mode{--background:#121212;--text:#f0f0f0;--heading:#fff;--accent:#61dafb;--accent-hover:#4fa8c7;--card-bg:#1e1e1e;--section-bg:linear-gradient(180deg,#181a1b,#222325);--nav-bg:#181a1b;--shadow:#0000004d}*{box-sizing:border-box}img{height:auto;max-width:100%}@media (max-width:768px){html{font-size:95%}body{overflow-x:hidden}section{padding:40px 15px}}@media (max-width:480px){html{font-size:90%}section{padding:30px 10px}}:root{--background:#fff;--text:#121212;--heading:#000;--accent:#61dafb;--accent-hover:#4fa8c7;--card-bg:#f5f5f5;--section-bg:linear-gradient(180deg,#f4f4f4,#e0e0e0);--nav-bg:#fff;--shadow:#0000001a}.dark{--background:#121212;--text:#fff;--heading:#fff;--accent:#61dafb;--accent-hover:#4fa8c7;--card-bg:#1e1e1e;--section-bg:linear-gradient(180deg,#181a1b,#222325);--nav-bg:#181a1b;--shadow:#0006}body{background-color:#fff;background-color:var(--background);color:#121212;color:var(--text);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0;transition:background-color .5s ease,color .5s ease}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (pointer:fine){.project-card,a,body,button{cursor:none}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a,button{transition:all .3s ease}.dark-mode-toggle,.sidenav-toggle{background:#61dafb;background:var(--accent);border:none;border-radius:50%;box-shadow:0 2px 10px #0000001a;box-shadow:0 2px 10px var(--shadow);color:#000;cursor:pointer;font-size:1.5rem;padding:12px;position:fixed;transition:background .3s,transform .3s;z-index:1100}.sidenav-toggle{left:20px}.dark-mode-toggle,.sidenav-toggle{color:#fff;color:var(--nav-bg);font-size:1.2rem;height:35px;padding:8px;width:35px}.dark-mode-toggle{align-items:center;background:#61dafb;background:var(--accent);border:none;border-radius:50%;cursor:pointer;display:flex;justify-content:center;position:fixed;right:20px;top:15px;transition:background .3s;z-index:1100}.dark-mode-toggle:hover,.sidenav-toggle:hover{background:#4fa8c7;background:var(--accent-hover);transform:scale(1.1)}.sidenav-toggle.active{transform:rotate(90deg) scale(1.05)}.about,.contact,.hero,.projects,.skills{background:#0000;padding:80px 20px;position:relative;transition:opacity .6s ease,transform .6s ease}.App.transitioning .about,.App.transitioning .contact,.App.transitioning .hero,.App.transitioning .projects,.App.transitioning .skills{opacity:.7}.about:before,.contact:before,.projects:before,.skills:before{display:none}.reveal{opacity:0;transform:translateY(50px) scale(.95);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1);will-change:opacity,transform}.reveal.in-view{opacity:1;transform:translateY(0) scale(1)}.reveal.in-view>:first-child{animation:fadeInUp .6s ease-out .1s backwards}.reveal.in-view>:nth-child(2){animation:fadeInUp .6s ease-out .2s backwards}.reveal.in-view>:nth-child(3){animation:fadeInUp .6s ease-out .3s backwards}.reveal.in-view>:nth-child(4){animation:fadeInUp .6s ease-out .4s backwards}.animate-child{opacity:0;transform:translateY(30px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}.animate-child.visible{opacity:1;transform:translateY(0)}@keyframes floatAnimation{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}body.dark-mode{background-color:#121212;color:#fff}body.light-mode{background-color:#fff;color:#000}#contact{padding-top:60px;position:relative;z-index:1}.sidenav-toggle{align-items:center;background:#61dafb;background:var(--accent);border:none;border-radius:50%;box-shadow:0 2px 5px #0003;color:#f5f5f5;color:var(--card-bg);cursor:pointer;display:block;display:flex;height:40px;justify-content:center;left:15px;position:fixed;top:15px;transition:background .3s,transform .3s;width:40px;z-index:1100}.sidenav-toggle:hover{background:#4fa8c7;background:var(--accent-hover);transform:scale(1.05)}.sidenav-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000059;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:1500}.sidenav-open .sidenav-overlay{display:block}.to-top-btn{align-items:center;background:#61dafb;background:var(--accent);border:none;border-radius:50%;bottom:24px;box-shadow:0 6px 16px #0000001a;box-shadow:0 6px 16px var(--shadow);color:#111;display:flex;height:40px;justify-content:center;position:fixed;right:20px;width:40px;z-index:1200}.to-top-btn:hover{background:#4fa8c7;background:var(--accent-hover)}@media (max-width:768px){.sidenav-toggle{background:#61dafb;background:var(--accent);box-shadow:0 2px 8px #0000004d;font-size:1.2rem;height:45px;left:10px;top:10px;width:45px}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.sidenav-toggle{animation:pulse 1s ease-in-out 3}.App{padding:0}.dark-mode-toggle,.sidenav-toggle{font-size:1rem;height:30px;width:30px}.hero-container{flex-direction:column;padding:20px 10px}.hero h1{font-size:2rem}.hero h2{font-size:1.2rem}.section-title{font-size:1.8rem}}@media (max-width:480px){.hero{padding:60px 15px 30px}.profile-picture{height:180px;width:180px}.contact-methods,.projects-content,.skills-content{grid-template-columns:1fr}.navbar ul{align-items:center;flex-direction:column}.navbar li{margin:5px 0}}.navbar{backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);background:#181a1b99;border-bottom:1px solid #61dafb1a;box-shadow:0 4px 20px #0000001a;padding:15px 0;position:-webkit-sticky;position:sticky;top:0;transition:all .4s ease;z-index:1000}.light .navbar{background:#fff9;border-bottom:1px solid #61dafb26}.navbar.scrolled{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#181a1bd9;border-bottom:1px solid #61dafb33;box-shadow:0 8px 30px #00000040}.light .navbar.scrolled{background:#ffffffd9}.navbar-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 20px}.navbar ul{display:flex;justify-content:center;list-style:none;margin:0;padding:0}.navbar li{margin:0 15px}.navbar a{color:#fff;font-size:1.1rem;position:relative;text-decoration:none;transition:color .3s ease}.light .navbar a{color:#1a1a1a}.navbar a:hover{color:#61dafb}.navbar a:after{background-color:var(--accent);bottom:-5px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:width .3s ease-in-out;width:0}.navbar a:hover:after{width:100%}.logo{align-items:center;display:flex;margin-left:50px}.logo img{height:25px;margin-right:8px;width:auto}.nav-links{margin-right:50px}@media (max-width:768px){.navbar{display:none}}@media (max-width:480px){.navbar{padding:8px 0}}.hero{align-items:center;background:#0000;color:var(--text);display:flex;justify-content:center;min-height:100vh;overflow:visible;padding:120px 20px 180px;position:relative}.hero:before{background:radial-gradient(circle at 20% 80%,#61dafb0d 0,#0000 50%),radial-gradient(circle at 80% 20%,#9061fb0d 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.hero-container{align-items:flex-start;display:flex;gap:60px;justify-content:space-between;max-width:1200px;padding-top:40px;position:relative;width:100%;z-index:1}.hero-text{animation:slideInLeft 1s ease-out;flex:1 1;min-width:400px;text-align:left}.hero h1{-webkit-text-fill-color:#0000;animation:gradientShift 3s ease-in-out infinite;background:linear-gradient(135deg,var(--accent),#9061fb,#ff6b6b);-webkit-background-clip:text;background-clip:text;background-size:200% 200%;color:var(--heading);font-size:3.8rem;font-weight:700}.hero h1,.hero h2{margin-bottom:.5rem}.hero h2{color:var(--accent);font-size:1.9rem;font-weight:500}.hero h3{color:var(--text);font-size:1.3rem;margin-bottom:2rem;opacity:.9}.hero-icons{display:flex;gap:15px}.hero-icons a{color:#000;font-size:1.5rem;transition:color .3s}.hero-icons a:hover{color:#61dafb}.hero-image{align-items:center;display:flex;flex:0 0 auto;justify-content:center}.profile-picture{animation:profileFadeIn 1s ease-out;border:3px solid var(--accent);border-radius:20px;box-shadow:0 10px 40px #61dafb4d;height:350px;object-fit:cover;transition:transform .3s ease,box-shadow .3s ease;width:350px}@keyframes profileFadeIn{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.profile-picture:hover{box-shadow:0 15px 50px #61dafb80;transform:scale(1.05) rotate(2deg)}.download-cv{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#61dafb1a,#9061fb1a);border:2px solid var(--accent);box-shadow:0 0 20px #61dafb33,inset 0 0 20px #61dafb0d;color:var(--accent);display:inline-flex;font-family:Courier New,monospace;font-size:.9rem;font-weight:700;gap:8px;letter-spacing:1px;margin-top:20px;overflow:hidden;padding:14px 28px;position:relative;text-decoration:none;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1)}.download-cv,.download-cv:before{-webkit-clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.download-cv:before{animation:borderGlow 3s linear infinite;background:linear-gradient(45deg,var(--accent),#9061fb,var(--accent));background-size:200% 200%;bottom:-2px;content:"";left:-2px;opacity:0;position:absolute;right:-2px;top:-2px;transition:opacity .3s;z-index:-1}.download-cv:after{content:"⟩";opacity:0;position:absolute;right:15px;transform:translateX(-10px);transition:all .3s}.download-cv:hover{background:linear-gradient(135deg,#61dafb26,#9061fb26);box-shadow:0 0 30px #61dafb66,0 5px 20px #61dafb4d,inset 0 0 30px #61dafb1a;padding-right:35px;transform:translateY(-3px) translateX(3px)}.download-cv:hover:before{opacity:.3}.download-cv:hover:after{opacity:1;transform:translateX(0)}.download-cv:active{transform:translateY(-1px) translateX(1px)}@keyframes borderGlow{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.hero-social{display:flex;gap:20px;margin-top:25px}.hero-social a{align-items:center;border-radius:12px;color:var(--text);display:inline-flex;font-size:1.5rem;height:48px;justify-content:center;overflow:hidden;position:relative;transition:all .3s;width:48px}.hero-social a:after{background:#61dafb1a;border-radius:inherit;content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .3s}.hero-social a:focus-visible,.hero-social a:hover{color:var(--accent);transform:translateY(-3px)}.hero-social a:focus-visible:after,.hero-social a:hover:after{opacity:1}.magnetic-icon{transition:transform .2s ease-out;will-change:transform}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.laptop-corner{animation:fadeInUp 1s ease-out .3s backwards;position:absolute;right:40px;top:80px;width:350px;z-index:5}.availability-badge{align-items:center;animation:slideInRight .8s ease-out .5s backwards;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#1e1e1ebf;border:1px solid #61dafb4d;border-radius:50px;box-shadow:0 8px 32px #0000004d;color:var(--text);display:flex;font-size:.9rem;font-weight:600;gap:10px;padding:12px 24px;position:fixed;right:30px;top:120px;transition:all .3s ease;z-index:999}.dark .availability-badge{background:#1e1e1ebf;color:#fff}.light .availability-badge{background:#ffffffbf;border:1px solid #61dafb66;color:#1a1a1a}.availability-badge:hover{border-color:#61dafb99;box-shadow:0 10px 40px #61dafb66;transform:translateX(-5px)}.status-dot{animation:pulse 2s ease-in-out infinite;background:#4ade80;border-radius:50%;box-shadow:0 0 10px #4ade80;height:10px;width:10px}.badge-glow{background:radial-gradient(circle,#61dafb33 0,#0000 70%);border-radius:50px;height:100%;left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .3s ease;width:100%}.availability-badge:hover .badge-glow{opacity:1}@keyframes slideInRight{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{box-shadow:0 0 10px #4ade80;opacity:1}50%{box-shadow:0 0 20px #4ade80;opacity:.6}}@media (max-width:768px){.hero-container{flex-direction:column;gap:40px;text-align:center}.hero-image{margin-bottom:20px;order:-1}.hero-text{min-width:auto;padding:0 10px;text-align:center}.profile-picture{height:240px;width:240px}.laptop-corner{margin:20px auto;position:relative;right:auto;top:auto;width:300px}.availability-badge{bottom:20px;justify-content:center;left:20px;position:fixed;right:20px;top:auto}}@media (max-width:480px){.hero h1{font-size:2rem}.hero h2{font-size:1.1rem}.hero h3{font-size:.9rem}.laptop-corner{width:250px}}.laptop-container{align-items:center;display:flex;height:400px;justify-content:center;margin:0 auto;perspective:1200px;position:relative;width:400px}.laptop-3d{animation:initialRotate 2s ease-out;height:200px;position:relative;transform-style:preserve-3d;transition:transform .1s ease-out;width:300px}@keyframes initialRotate{0%{opacity:0;transform:perspective(1000px) rotateX(0deg) rotateY(0deg) scale(.5)}to{opacity:1;transform:perspective(1000px) rotateX(-10deg) rotateY(20deg) scale(1)}}.laptop-base{background:linear-gradient(135deg,#2c3e50,#34495e);border-radius:0 0 8px 8px;bottom:0;box-shadow:0 5px 15px #0000004d,inset 0 -2px 5px #0000004d;height:20px;position:absolute;transform:translateZ(-5px);transform-origin:bottom center;width:300px}.laptop-keyboard{display:flex;flex-direction:column;gap:2px;padding:4px 8px}.keyboard-row{display:flex;gap:2px;justify-content:center}.key{animation:keyFadeIn .3s ease-out forwards;background:linear-gradient(135deg,#1a252f,#2c3e50);border:1px solid #1a252f;border-radius:2px;box-shadow:0 1px 2px #00000080;height:12px;opacity:0;width:18px}@keyframes keyFadeIn{to{opacity:1}}.touchpad{background:linear-gradient(135deg,#1a252f,#2c3e50);border:1px solid #61dafb33;border-radius:4px;box-shadow:inset 0 2px 4px #0000004d;height:40px;margin:4px auto 0;width:60px}.laptop-screen{bottom:15px;height:180px;position:absolute;transform:rotateX(-95deg) translateZ(0);transform-origin:bottom center;transform-style:preserve-3d;width:300px}.screen-frame{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border:2px solid #0a0a0a;border-radius:8px 8px 0 0;box-shadow:0 -5px 20px #00000080,inset 0 0 10px #61dafb1a;padding:6px}.screen-content,.screen-frame{height:100%;position:relative;width:100%}.screen-content{background:linear-gradient(135deg,#0a0a0a,#1a1a1a);border-radius:4px;box-shadow:inset 0 0 20px #61dafb1a;overflow:hidden}.screen-glare{background:linear-gradient(135deg,#ffffff1a,#0000 50%,#ffffff0d);border-radius:4px;bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.code-editor{color:#a0a0a0;display:flex;flex-direction:column;font-family:Courier New,monospace;font-size:10px;height:100%;width:100%}.editor-header{align-items:center;background:#1e1e1ecc;border-bottom:1px solid #61dafb33;display:flex;gap:8px;padding:4px 6px}.editor-dots{display:flex;gap:3px}.dot{border-radius:50%;height:6px;width:6px}.dot.red{background:#ff5f56;box-shadow:0 0 4px #ff5f56}.dot.yellow{background:#ffbd2e;box-shadow:0 0 4px #ffbd2e}.dot.green{background:#27c93f;box-shadow:0 0 4px #27c93f}.editor-title{color:var(--accent);font-size:8px;font-weight:600}.editor-body{flex:1 1;padding:8px;position:relative}.code-line{animation:codeFadeIn .5s ease-out forwards;display:flex;gap:8px;margin-bottom:2px;opacity:0}@keyframes codeFadeIn{to{opacity:1}}.line-number{color:#4a4a4a;min-width:12px;text-align:right;-webkit-user-select:none;user-select:none}.code-text{color:var(--accent);text-shadow:0 0 5px #61dafb4d}.cursor-blink{animation:blink 1s step-end infinite;background:var(--accent);bottom:8px;box-shadow:0 0 8px var(--accent);height:12px;left:80px;position:absolute;width:8px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.laptop-shadow{background:radial-gradient(ellipse at center,#0006 0,#0000 70%);bottom:-20px;filter:blur(10px);height:100px;position:absolute;transform:translateZ(-50px) rotateX(90deg);width:300px}@media (max-width:768px){.laptop-container{height:300px;width:300px}.laptop-3d{height:160px}.laptop-3d,.laptop-base{width:240px}.laptop-screen{height:140px;width:240px}.code-editor{font-size:8px}.laptop-shadow{width:240px}}.about{background:#0000;color:var(--text);overflow:hidden;padding:100px 20px;position:relative}.about:before{display:none}.about-container{margin:0 auto;max-width:1200px;position:relative;z-index:1}.section-title{animation:titleSlideIn .8s ease-out .2s forwards;opacity:0}@keyframes titleSlideIn{0%{opacity:0;transform:translateX(-50%) translateY(-30px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.about-content{display:flex;flex-direction:column;gap:40px}.about-text{animation:slideInLeft 1s ease-out;flex:3 1;text-align:left}.welcome{color:var(--accent);font-weight:600;margin-bottom:.5rem}.wave,.welcome{font-size:1.5rem}.wave{animation:wave 2s infinite;display:inline-block;transform-origin:70% 70%}.description{color:var(--text);font-size:1.15rem;line-height:1.8;margin-bottom:2rem;opacity:.9}.focus-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.chip{background:#61dafb14;border:1px solid #61dafb26;border-radius:999px;font-size:.9rem;font-weight:600;overflow:hidden;padding:8px 12px;position:relative;transition:all .3s ease}.chip:before{background:#61dafb33;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.chip:hover{background:#61dafb26;border-color:var(--accent);transform:translateY(-2px)}.chip:hover:before{height:150px;width:150px}.about-details{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:30px}.detail-item{align-items:center;background:var(--card-bg);border:1px solid #61dafb1a;border-radius:12px;box-shadow:0 4px 15px var(--shadow);display:flex;padding:20px;transition:all .3s ease}.detail-item:hover{border-color:var(--accent);box-shadow:0 8px 20px var(--shadow);transform:translateY(-5px)}.detail-icon{font-size:1.5rem;margin-right:15px}.detail-text{font-size:1rem;font-weight:500}.about-stats{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-around;margin-top:40px}.stat-item{background:var(--card-bg);border:1px solid #61dafb1a;border-radius:15px;box-shadow:0 4px 15px var(--shadow);flex:1 1;margin:10px;min-width:140px;overflow:hidden;padding:25px;position:relative;text-align:center;transition:all .4s ease}.stat-item:before{background:linear-gradient(90deg,#0000,#61dafb1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.stat-item:hover:before{left:100%}.stat-item:hover{border-color:var(--accent);box-shadow:0 15px 30px var(--shadow);transform:translateY(-10px) scale(1.05)}.stat-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--accent),#9061fb);-webkit-background-clip:text;background-clip:text;color:var(--accent);font-size:2.8rem;font-weight:700;margin-bottom:5px}.stat-label{color:var(--text);font-size:1rem;font-weight:500;opacity:.8}.about-cta{display:flex;gap:12px;margin-top:18px}.btn{border:1px solid #61dafb26;border-radius:10px;display:inline-block;font-weight:700;overflow:hidden;padding:10px 14px;position:relative;text-decoration:none;transition:all .3s ease}.btn:before{background:#fff3;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.btn:hover:before{height:300px;width:300px}.btn.primary{background:linear-gradient(90deg,var(--accent),#9061fb);color:#fff}.btn.outline{background:#0000;color:var(--accent)}.btn:hover{box-shadow:0 8px 20px #61dafb4d;transform:translateY(-3px)}.btn:active{transform:translateY(-1px)}@keyframes wave{0%{transform:rotate(0deg)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0deg)}to{transform:rotate(0deg)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}@media (min-width:768px){.about-content{flex-direction:row}.about-text{padding-right:40px}}.skills{background:#0000;color:var(--text);padding:80px 20px}.skills-container{margin:0 auto;max-width:1200px}.skills-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.skill-category{animation:fadeIn .8s ease-out forwards;background:var(--card-bg);border-radius:10px;box-shadow:0 5px 15px var(--shadow);opacity:0;padding:25px;transition:transform .3s}.skill-category:first-child{animation-delay:.1s}.skill-category:nth-child(2){animation-delay:.2s}.skill-category:nth-child(3){animation-delay:.3s}.skill-category:nth-child(4){animation-delay:.4s}.skill-category:nth-child(5){animation-delay:.5s}.skill-category:hover{transform:translateY(-5px)}.category-title{color:var(--accent);font-size:1.3rem;margin-bottom:20px;padding-bottom:10px;position:relative;text-align:center}.category-title:after{background:var(--accent);bottom:0;content:"";height:2px;left:30%;position:absolute;width:40%}.skill-list{display:flex;flex-direction:column;gap:15px}.skill-item{margin-bottom:10px}.skill-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.skill-name{font-size:1rem;font-weight:600}.skill-percentage{color:var(--accent);font-size:.9rem;font-weight:700}.skill-bar{background:#61dafb1a;box-shadow:inset 0 2px 4px #0000001a;height:10px}.skill-bar,.skill-progress{border-radius:10px;overflow:hidden;position:relative}.skill-progress{background:linear-gradient(90deg,var(--accent),#9061fb);height:100%;transition:width 1.5s cubic-bezier(.4,0,.2,1);width:0}.skill-progress:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}.skill-progress.animate{width:var(--target-width)}@keyframes shimmer{0%{left:-100%}to{left:200%}}@media (max-width:768px){.skills-content{grid-template-columns:1fr}}.projects{background:#0000;color:var(--text);padding:100px 20px;position:relative}.projects:before{display:none}.projects-container{margin:0 auto;max-width:1200px;position:relative;z-index:1}.section-title{font-size:2.8rem;font-weight:700;margin-bottom:3rem;padding-bottom:15px}.section-title:after{animation:expandWidth 2s ease-in-out infinite;background:linear-gradient(90deg,var(--accent),#9061fb);height:4px;left:30%;width:40%}.projects-content{grid-gap:30px;align-content:stretch;align-items:stretch;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));perspective:1000px}.project-card{animation:fadeInUp .8s ease-out forwards;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:var(--card-bg);border:1px solid #61dafb1a;border-radius:15px;box-shadow:0 8px 25px var(--shadow);cursor:pointer;display:flex;flex-direction:column;opacity:0;overflow:hidden;padding:30px;position:relative;transform-style:preserve-3d;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.project-card .project-title{position:relative;transition:all .3s ease}.project-card:hover .project-title{color:var(--accent);text-shadow:0 0 10px #61dafb4d;transform:translateX(5px)}.project-card .project-description{transform:translateY(0);transition:all .4s ease}.project-card:hover .project-description{transform:translateY(-3px)}.project-card:hover .tech-badge{background:#61dafb26;border-color:var(--accent);transform:translateY(-2px) translateX(0)}.project-card:before{background:linear-gradient(90deg,#0000,#61dafb1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%;z-index:1}.project-card:after{background:#61dafb4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0;z-index:0}.project-card:hover:after{height:300px;width:300px}.project-card:hover:before{left:100%}.project-card:hover{border-color:var(--accent);box-shadow:0 20px 40px #61dafb33,0 0 20px #61dafb1a;transform:translateY(-6px) scale(1.01)}.project-card .slide-image{height:100%;object-fit:cover;width:100%}.project-card.active{border-color:var(--accent);box-shadow:0 20px 40px #61dafb4d;transform:scale(1.05)}.project-card:first-child{animation-delay:.1s}.project-card:nth-child(2){animation-delay:.2s}.project-card:nth-child(3){animation-delay:.3s}.project-card:nth-child(4){animation-delay:.4s}.project-card.active{box-shadow:0 8px 25px var(--shadow);transform:scale(1.02)}.project-card h3{color:var(--accent);font-size:1.5rem;margin-bottom:10px}.project-card p{margin-bottom:14px}.project-card{min-height:540px}.project-title{line-clamp:2;-webkit-line-clamp:2}.project-description,.project-title{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-description{line-clamp:3;-webkit-line-clamp:3}.project-actions{margin-top:auto}.project-link{align-items:center;color:var(--accent);display:inline-flex;font-weight:500;margin-top:20px;text-decoration:none;transition:color .2s}.project-link i{font-size:1.1rem;margin-right:8px}.project-link:hover{color:var(--accent-hover)}.tech-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tech-badge{animation:slideInBadge .4s ease-out forwards;background:#61dafb14;border:1px solid #61dafb1f;border-radius:999px;color:var(--text);font-size:.8rem;font-weight:600;opacity:0;overflow:hidden;padding:6px 8px;position:relative;transform:translateX(-10px);transition:all .3s ease}.tech-badge:before{background:#61dafb4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .4s,height .4s;width:0}.tech-badge:hover{background:#61dafb26;border-color:var(--accent);transform:translateY(-2px) translateX(0)}.tech-badge:hover:before{height:100px;width:100px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes expandWidth{0%,to{width:40%}50%{width:60%}}.request-access-btn{background:linear-gradient(90deg,var(--accent),#9061fb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;overflow:hidden;padding:10px 14px;position:relative;transition:all .3s ease}.request-access-btn:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.request-access-btn:hover:before{height:300px;width:300px}.request-access-btn:hover{box-shadow:0 8px 20px #61dafb66;transform:translateY(-2px)}.request-access-btn:active{transform:translateY(0)}.modal-overlay{background:#00000080;border:none;inset:0;position:fixed;z-index:1000}.request-modal{background:var(--card-bg);border:1px solid #61dafb14;border-radius:12px;box-shadow:0 12px 40px #0006;color:var(--text);left:50%;max-width:520px;padding:24px;position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:1001}.modal-close{background:#0000;border:none;cursor:pointer;font-size:20px;position:absolute;right:12px;top:8px}.mailto-btn{background:linear-gradient(90deg,#4fa8c7,#9061fb);border-radius:8px;color:#fff;display:inline-block;overflow:hidden;padding:10px 14px;position:relative;text-decoration:none;transition:all .3s ease}.mailto-btn:before{background:#fff3;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s;width:0}.mailto-btn:hover:before{height:300px;width:300px}.mailto-btn:hover{box-shadow:0 6px 15px #4fa8c766;transform:translateY(-2px)}.modal-note{color:var(--text);font-size:.9rem;margin-top:8px;opacity:.8}.slideshow{border-radius:12px;margin:20px 0;overflow:hidden;position:relative;width:100%}.slide-image{border-radius:8px;box-shadow:0 4px 12px var(--shadow);height:260px;object-fit:cover;object-position:center;width:100%}.slideshow button{background:#61dafb;border:none;border-radius:5px;color:#181a1b;cursor:pointer;font-size:1.2rem;margin:0 10px;padding:10px 15px;transition:background .3s}.slideshow button:hover{background:#4fa8c7}.slide-btn{align-items:center;background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;opacity:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .3s,background .3s;width:40px;z-index:2}.prev-btn{left:10px}.next-btn{right:10px}.slideshow:hover .slide-btn{opacity:1}.slide-btn:hover{background:var(--accent)}.slide-indicators{bottom:15px;display:flex;gap:8px;justify-content:center;left:0;position:absolute;right:0}.slide-dot{background:#ffffff80;border-radius:50%;cursor:pointer;height:10px;transition:background .3s;width:10px}.slide-dot.active{background:var(--accent)}@media (max-width:768px){.slide-image{height:200px}}@media (max-width:480px){.slide-image{height:180px}}.contact{background:#0000;color:var(--text);padding:80px 20px}.contact-container{margin:0 auto;max-width:1200px}.section-title{color:var(--accent);display:inline-block;font-size:2.5rem;left:50%;margin-bottom:2rem;padding-bottom:10px;position:relative;text-align:center;transform:translateX(-50%)}.section-title:after{animation:expand 2s ease-in-out infinite;background:var(--accent);border-radius:2px;bottom:0;content:"";height:3px;left:25%;position:absolute;width:50%}@keyframes expand{0%,to{width:50%}50%{width:70%}}.contact-content{grid-gap:40px;align-items:start;display:grid;gap:40px;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);margin-top:40px}.contact-info{text-align:left}.contact-text{margin:0 0 40px;max-width:700px}.contact-text p{font-size:1.1rem;line-height:1.6}.contact-methods{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(3,1fr)}.contact-card{align-items:center;animation:fadeIn .8s ease-out forwards;background:var(--card-bg);border:1px solid #61dafb1a;border-radius:10px;box-shadow:0 5px 15px var(--shadow);color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:10px;opacity:0;overflow:hidden;padding:25px 15px;position:relative;text-align:center;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease}.contact-card:before{background:#61dafb1a;border-radius:50%;content:"";height:0;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.contact-card:hover:before{height:400px;width:400px}.contact-card:hover{border-color:var(--accent);box-shadow:0 15px 35px #61dafb33,0 0 20px #61dafb1a;transform:translateY(-10px) scale(1.03)}.contact-card:hover .contact-icon{color:var(--accent);transform:scale(1.1)}.contact-card:first-child{animation-delay:.1s}.contact-card:nth-child(2){animation-delay:.2s}.contact-card:nth-child(3){animation-delay:.3s}.contact-card:nth-child(4){animation-delay:.4s}.contact-card:nth-child(5){animation-delay:.5s}.contact-card:nth-child(6){animation-delay:.6s}.contact-icon{color:var(--heading);font-size:2.5rem;margin-bottom:15px;transition:color .3s,transform .3s}.contact-card h3{font-size:1.2rem;margin:10px 0}.contact-value{color:var(--accent);display:block;font-weight:600;line-height:1.4;transition:color .2s;width:100%;word-break:break-word}.contact-card:focus-visible .contact-value,.contact-card:hover .contact-value{color:var(--accent-hover)}.contact-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.contact-form{animation:fadeIn .8s ease-out forwards;animation-delay:.2s;background:var(--card-bg);border:1px solid #61dafb14;border-radius:12px;box-shadow:0 5px 18px var(--shadow);opacity:0;padding:30px}.contact-form .form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.form-group label{color:var(--heading);font-weight:600}.form-group input,.form-group textarea{background:#181a1b59;border:1px solid #61dafb33;border-radius:8px;color:var(--text);font-size:1rem;padding:12px 14px;transition:border-color .3s,box-shadow .3s,background .3s}.light .form-group input,.light .form-group textarea{background:#ffffffd9;color:#1a1a1a}.form-group input:focus,.form-group textarea:focus{background:#181a1b80;border-color:var(--accent);box-shadow:0 0 0 3px #61dafb26;outline:none}.light .form-group input:focus,.light .form-group textarea:focus{background:#fffffff2}.submit-button{background:var(--accent);border:none;border-radius:8px;color:#181a1b;cursor:pointer;font-size:1.05rem;font-weight:600;padding:14px 22px;transition:transform .2s ease,box-shadow .2s ease,background .2s;width:100%}.submit-button:hover{box-shadow:0 12px 25px #61dafb33;transform:translateY(-2px)}.submit-button:active{transform:translateY(0)}.form-status{color:var(--accent);font-size:.95rem;line-height:1.5;margin-top:15px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.contact-content,.contact-form .form-row,.contact-methods{grid-template-columns:1fr}.contact-form{padding:25px 20px}}@media (max-width:1024px){.contact-methods{grid-template-columns:repeat(2,1fr)}}.footer{background:#181a1b;border-top:1px solid #333;color:#fff;font-size:.9rem;padding:20px 0;text-align:center}.light .footer{background:#f5f5f5;border-top:1px solid #ddd;color:#1a1a1a}.footer span{color:#61dafb}.sidenav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#181a1b99;box-shadow:2px 0 10px #0003;display:flex;flex-direction:column;height:100%;left:0;padding:0;position:fixed;top:0;transform:translateX(-110%);transition:transform .35s cubic-bezier(.22,1,.36,1);width:250px;z-index:2000}.light .sidenav{background:#ffffffd9}.sidenav-open .sidenav{transform:translateX(0)}.sidenav-content{display:flex;flex-direction:column;height:100%;padding:20px 0}.sidenav-header{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;margin-bottom:20px;padding:0 20px 20px}.sidenav-logo{height:35px;margin-right:10px;width:auto}.sidenav-header span{color:#61dafb;color:var(--accent,#61dafb);font-size:1.5rem;font-weight:700}.close-sidenav{background:#0000;border:none;color:#fff;color:var(--text,#fff);cursor:pointer;font-size:1.5rem;position:absolute;right:15px;top:15px;z-index:1}.sidenav ul{flex-grow:1;list-style:none;margin:0;padding:0}.sidenav li{margin:0}.sidenav a{border-left:3px solid #0000;color:#fff;color:var(--text,#fff);display:block;font-size:1.1rem;padding:15px 20px;text-decoration:none;transition:background .3s,color .3s}.light .sidenav a{color:#1a1a1a}.sidenav a:hover{background:#61dafb1a;border-left:3px solid #61dafb;border-left:3px solid var(--accent,#61dafb);color:#61dafb;color:var(--accent,#61dafb);transform:translateX(5px)}@media (max-width:768px){.sidenav{max-width:300px;width:85%}.sidenav a{font-size:1.2rem;padding:20px}.sidenav li{margin:5px 0}}.cursor-follower{border:2px solid var(--accent);border-radius:50%;height:30px;pointer-events:none;position:fixed;transform:translate(-50%,-50%);transition:width .3s,height .3s,background-color .3s,border-color .3s;width:30px;z-index:9999}.cursor-follower.hovering{background-color:#61dafb33;border-color:#0000;height:50px;width:50px}.particles-canvas{height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}
/*# sourceMappingURL=main.79c48145.css.map*/