:root{--primary-color:#6366f1;--secondary-color:#8b5cf6;--dark-bg:#0f172a;--dark-secondary:#1e293b;--text-light:#e2e8f0;--text-muted:#94a3b8;--accent-gradient:linear-gradient(135deg,#6366f1,#8b5cf6);--sidebar-width:280px;--font-inter:"Inter",sans-serif;--font-poppins:"Poppins",sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-inter);background:var(--dark-bg);color:var(--text-light);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-poppins);font-weight:600}.sidebar{position:fixed;top:0;left:0;height:100vh;width:var(--sidebar-width);background:var(--dark-secondary);padding:2rem 1.5rem;z-index:1000;transition:transform .3s ease;overflow-y:auto;border-right:1px solid hsla(0,0%,100%,.1)}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:var(--dark-secondary)}.sidebar::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:3px}.sidebar.collapsed{transform:translateX(-100%)}.sidebar-header{text-align:center;margin-bottom:2rem}.sidebar-logo{width:120px;height:120px;border-radius:50%;margin:0 auto 1rem;border:4px solid var(--primary-color);padding:4px;background:var(--dark-bg);overflow:hidden}.sidebar-logo img{width:100%;height:100%;border-radius:50%;object-fit:cover}.sidebar-name{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-title{font-size:.9rem;color:var(--text-muted);font-weight:400}.nav-menu{list-style:none;padding:0;margin:2rem 0}.nav-item{margin-bottom:.5rem}.nav-link{display:flex;align-items:center;padding:.875rem 1.25rem;color:var(--text-light);text-decoration:none;border-radius:12px;transition:all .3s ease;font-weight:500;font-size:.95rem;cursor:pointer}.nav-link i{margin-right:1rem;font-size:1.1rem;width:20px}.nav-link.active,.nav-link:hover{background:var(--accent-gradient);color:#fff;transform:translateX(5px)}.sidebar-footer{margin-top:auto;padding-top:2rem;border-top:1px solid hsla(0,0%,100%,.1)}.social-links{gap:1rem;margin-bottom:1.5rem}.social-link,.social-links{display:flex;justify-content:center}.social-link{width:40px;height:40px;align-items:center;background:rgba(99,102,241,.1);color:var(--primary-color);border-radius:10px;text-decoration:none;transition:all .3s ease;font-size:1.2rem}.social-link:hover{transform:translateY(-3px)}.download-cv,.social-link:hover{background:var(--accent-gradient);color:#fff}.download-cv{display:block;text-align:center;padding:.875rem;border-radius:12px;text-decoration:none;font-weight:600;transition:all .3s ease}.download-cv:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(99,102,241,.3);color:#fff}.download-cv i{margin-right:.5rem}.sidebar-toggle{position:fixed;top:1rem;left:1rem;z-index:1001;background:var(--accent-gradient);border:none;width:50px;height:50px;border-radius:12px;color:#fff;font-size:1.5rem;cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 4px 15px rgba(99,102,241,.4);transition:all .3s ease}.sidebar-toggle:hover{transform:scale(1.05)}.main-content{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left .3s ease}.main-content.expanded{margin-left:0}.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:4rem 2rem;position:relative;overflow:hidden}.hero-bg-shapes{position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none}.shape{position:absolute;border-radius:50%;filter:blur(60px);opacity:.15;animation:float 20s ease-in-out infinite}.shape-1{width:400px;height:400px;background:var(--primary-color);top:10%;left:10%;animation-delay:0s}.shape-2{width:300px;height:300px;background:var(--secondary-color);bottom:20%;right:15%;animation-delay:5s}.shape-3{width:250px;height:250px;background:#ec4899;top:60%;left:50%;animation-delay:10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.hero-content{position:relative;z-index:1;text-align:center;max-width:800px}.hero-greeting{font-size:1.2rem;color:var(--text-muted);margin-bottom:1rem;font-weight:500}.hero-name{font-size:clamp(2.5rem,8vw,5rem);font-weight:800;margin-bottom:1rem;line-height:1.1;background:linear-gradient(135deg,#fff 0,var(--primary-color) 50%,var(--secondary-color) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-tagline{font-size:clamp(1.2rem,3vw,1.8rem);color:var(--text-muted);margin-bottom:2rem;font-weight:400}.typing-effect{display:inline-block;border-right:3px solid var(--primary-color);padding-right:5px;animation:blink .7s step-end infinite}@keyframes blink{0%,to{border-color:transparent}50%{border-color:var(--primary-color)}}.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}.btn-primary-custom{padding:1rem 2rem;background:var(--accent-gradient);color:#fff;border:none;border-radius:12px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:all .3s ease;font-size:1rem;cursor:pointer}.btn-primary-custom:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(99,102,241,.4);color:#fff}.btn-outline-custom{padding:1rem 2rem;background:transparent;color:var(--text-light);border:2px solid var(--primary-color);border-radius:12px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:all .3s ease;font-size:1rem;cursor:pointer}.btn-outline-custom:hover{background:var(--accent-gradient);border-color:transparent;color:#fff;transform:translateY(-3px)}.hero-tech-stack{gap:1.5rem;margin-top:3rem;flex-wrap:wrap}.hero-tech-stack,.tech-icon{display:flex;justify-content:center}.tech-icon{width:60px;height:60px;align-items:center;background:hsla(0,0%,100%,.05);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.1);transition:all .3s ease;font-size:2rem}.tech-icon:hover{transform:translateY(-5px);background:var(--accent-gradient);box-shadow:0 10px 25px rgba(99,102,241,.3)}.section{padding:5rem 0;position:relative}.section-header{text-align:center;margin-bottom:4rem}.section-subtitle{font-size:.9rem;color:var(--primary-color);font-weight:600;text-transform:uppercase;letter-spacing:2px;margin-bottom:.5rem}.section-title{font-size:clamp(2rem,5vw,3rem);font-weight:700;margin-bottom:1rem}.section-description{font-size:1.1rem;color:var(--text-muted);max-width:600px;margin:0 auto}.about-card{background:var(--dark-secondary);border-radius:20px;padding:2.5rem;border:1px solid hsla(0,0%,100%,.1);transition:all .3s ease}.about-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px rgba(99,102,241,.2)}.about-image-wrapper{position:relative;border-radius:20px;overflow:hidden;margin-bottom:2rem}.about-image-wrapper:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--accent-gradient);opacity:.1;z-index:1}.about-image-wrapper img{width:100%;height:auto;display:block}.info-list{list-style:none;padding:0}.info-item{display:flex;padding:1rem 0;border-bottom:1px solid hsla(0,0%,100%,.05)}.info-item:last-child{border-bottom:none}.info-label{font-weight:600;color:var(--primary-color);min-width:120px}.info-value{color:var(--text-muted);word-break:break-all}.skill-card{background:var(--dark-secondary);border-radius:16px;padding:2rem;height:100%;border:1px solid hsla(0,0%,100%,.1);transition:all .3s ease}.skill-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px rgba(99,102,241,.2);border-color:var(--primary-color)}.skill-icon{width:60px;height:60px;background:var(--accent-gradient);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin-bottom:1.5rem;color:#fff}.skill-name{font-size:1.2rem;font-weight:600;margin-bottom:1rem}.skill-progress{margin-bottom:.5rem}.progress{height:8px;background:hsla(0,0%,100%,.05);border-radius:10px;overflow:hidden}.progress-bar{background:var(--accent-gradient);transition:width 1s ease;height:100%}.skill-percentage{font-size:.9rem;color:var(--text-muted);text-align:right;margin-top:.5rem}.timeline{position:relative;padding:2rem 0}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent-gradient)}.timeline-item{position:relative;padding-left:3rem;margin-bottom:3rem}.timeline-dot{position:absolute;left:-8px;top:0;width:18px;height:18px;background:var(--primary-color);border-radius:50%;border:3px solid var(--dark-bg)}.timeline-content{background:var(--dark-secondary);padding:2rem;border-radius:16px;border:1px solid hsla(0,0%,100%,.1);transition:all .3s ease}.timeline-content:hover{transform:translateX(10px);box-shadow:0 15px 40px rgba(99,102,241,.2)}.timeline-date{display:inline-block;padding:.5rem 1rem;background:rgba(99,102,241,.1);color:var(--primary-color);border-radius:8px;font-size:.85rem;font-weight:600;margin-bottom:1rem}.timeline-title{font-size:1.4rem;font-weight:700;margin-bottom:.5rem}.timeline-company{font-size:1rem;color:var(--text-muted);margin-bottom:1rem}.timeline-description{color:var(--text-muted);line-height:1.8}.portfolio-filter{display:flex;justify-content:center;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.filter-btn{padding:.75rem 1.5rem;background:transparent;color:var(--text-light);border:2px solid hsla(0,0%,100%,.1);border-radius:10px;cursor:pointer;transition:all .3s ease;font-weight:600}.filter-btn.active,.filter-btn:hover{background:var(--accent-gradient);border-color:transparent;color:#fff}.portfolio-item{margin-bottom:2rem;transition:all .3s ease}.portfolio-card{position:relative;border-radius:20px;overflow:hidden;background:var(--dark-secondary);transition:all .3s ease;height:100%}.portfolio-card:hover{transform:translateY(-10px);box-shadow:0 20px 50px rgba(99,102,241,.3)}.portfolio-image{position:relative;overflow:hidden;max-height:250px}.portfolio-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.portfolio-card:hover .portfolio-image img{transform:scale(1.1)}.ai-tools-list{background:rgba(99,102,241,.05);border-left:3px solid var(--primary-color);padding:1.5rem;border-radius:8px;margin:1.5rem 0}.portfolio-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--accent-gradient);opacity:0;transition:opacity .3s ease;display:flex;align-items:center;justify-content:center}.portfolio-card:hover .portfolio-overlay{opacity:.9}.portfolio-links{display:flex;gap:1rem;opacity:0;transform:translateY(20px);transition:all .3s ease}.portfolio-card:hover .portfolio-links{opacity:1;transform:translateY(0)}.portfolio-link{width:50px;height:50px;background:#fff;color:var(--primary-color);border-radius:10px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:1.3rem;transition:all .3s ease}.portfolio-link:hover{transform:scale(1.1)}.portfolio-info{padding:1.5rem}.portfolio-category{font-size:.85rem;color:var(--primary-color);font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem}.portfolio-title{font-size:1.3rem;font-weight:700;margin-bottom:.5rem}.portfolio-description{font-size:.9rem;color:var(--text-muted)}.contact-info{background:var(--dark-secondary);padding:2rem;border-radius:16px;border:1px solid hsla(0,0%,100%,.1);height:100%}.contact-item{display:flex;align-items:flex-start;margin-bottom:2rem}.contact-item:last-child{margin-bottom:0}.contact-icon{width:50px;height:50px;background:var(--accent-gradient);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff;margin-right:1.5rem;flex-shrink:0}.contact-details h4{font-size:1.1rem;margin-bottom:.5rem}.contact-details p{color:var(--text-muted);margin:0;word-break:break-all}.contact-details a{color:var(--text-muted);text-decoration:none;transition:color .3s ease}.contact-details a:hover{color:var(--primary-color)}.contact-form{background:var(--dark-secondary);padding:2.5rem;border-radius:16px;border:1px solid hsla(0,0%,100%,.1)}.form-group{margin-bottom:1.5rem}.form-label{font-weight:600;margin-bottom:.5rem;color:var(--text-light);display:block}.form-control,.form-select{background:var(--dark-bg);border:1px solid hsla(0,0%,100%,.1);color:var(--text-light);padding:.875rem 1rem;border-radius:10px;transition:all .3s ease;width:100%}.form-control:focus,.form-select:focus{background:var(--dark-bg);border-color:var(--primary-color);color:var(--text-light);box-shadow:0 0 0 3px rgba(99,102,241,.1);outline:none}.form-control::placeholder{color:var(--text-muted)}textarea.form-control{min-height:150px;resize:vertical}.footer{background:var(--dark-secondary);padding:3rem 0 1.5rem;border-top:1px solid hsla(0,0%,100%,.1)}.footer-content{text-align:center}.footer-social{gap:1rem;margin-bottom:2rem}.footer-social,.footer-social a{display:flex;justify-content:center}.footer-social a{width:45px;height:45px;background:rgba(99,102,241,.1);color:var(--primary-color);border-radius:10px;align-items:center;text-decoration:none;font-size:1.2rem;transition:all .3s ease}.footer-social a:hover{background:var(--accent-gradient);color:#fff;transform:translateY(-3px)}.footer-text{color:var(--text-muted);font-size:.95rem}.footer-text a{color:var(--primary-color);text-decoration:none}.scroll-top{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;background:var(--accent-gradient);color:#fff;border:none;border-radius:12px;font-size:1.5rem;cursor:pointer;opacity:0;visibility:hidden;transition:all .3s ease;z-index:999;box-shadow:0 4px 15px rgba(99,102,241,.4)}.scroll-top.show{opacity:1;visibility:visible}.scroll-top:hover{transform:translateY(-5px)}@media (max-width:991px){.sidebar{transform:translateX(-100%)}.sidebar.show{transform:translateX(0)}.sidebar-toggle{display:flex}.main-content{margin-left:0}.timeline:before{left:8px}.timeline-item{padding-left:3rem}}@media (max-width:768px){:root{--sidebar-width:280px}.hero-cta{flex-direction:column}.btn-outline-custom,.btn-primary-custom{width:100%;justify-content:center}.section{padding:3rem 0}.section-header{margin-bottom:2.5rem}}.fade-in{animation:fadeIn .6s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gradient-text{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-muted-custom{color:var(--text-muted)}