@charset "UTF-8";:root{--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-accent-purple: #8B5CF6;--color-accent-cyan: #06B6D4;--color-text-main: #111827;--color-text-secondary: #4B5563;--color-bg-white: #FFFFFF;--color-bg-light: #F9FAFB;--color-bg-secondary: #F3F4F6;--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--container-width: 1200px;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--spacing-xl: 4rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.contact-page{padding-top:120px;padding-bottom:4rem;min-height:100vh}.contact-page h1{font-size:2.5rem;font-weight:800;margin-bottom:3rem;color:var(--color-text-main)}.contact-layout{display:flex;gap:4rem;align-items:flex-start}.timeline-section{flex:2}.timeline-section h2{font-size:1.5rem;font-weight:700;margin-bottom:2rem;color:var(--color-text-main)}.education-grid{display:flex;flex-direction:column;gap:2rem;position:relative;padding-left:3rem;border-left:2px solid #E5E7EB}.timeline-row{position:relative}.timeline-icon{position:absolute;left:-4.3rem;top:1.5rem;width:2.6rem;height:2.6rem;background:#fff;border:2px solid var(--color-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2;color:var(--color-primary);transition:all .2s ease;box-shadow:0 2px 4px #0000000d}.timeline-icon svg{stroke-width:2px}.education-card{background:#fff;border:1px solid #E5E7EB;border-radius:1rem;padding:1.5rem;position:relative;transition:all .2s ease;border-left:4px solid var(--color-primary);box-shadow:0 1px 3px #0000000d}.education-card:before{display:none}.education-card:hover{transform:translateY(-3px);box-shadow:0 10px 15px -3px #0000001a}.timeline-row:hover .timeline-icon{background:var(--color-primary);color:#fff;transform:scale(1.1);box-shadow:0 0 0 4px #2563eb33}.education-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.education-header .education-degree{font-size:1.25rem;font-weight:700;color:var(--color-text-main);margin-bottom:1rem}.education-details{display:flex;justify-content:space-between;gap:2rem;margin-bottom:1.5rem;flex-wrap:wrap}.education-details .detail-group{display:flex;flex-direction:column;gap:.5rem}.education-details .detail-row{display:flex;align-items:center;gap:.75rem;color:var(--color-text-main);font-weight:500;font-size:.95rem}.education-details .detail-row svg{color:var(--color-primary);opacity:.8;flex-shrink:0}.education-details .detail-row.text-muted{color:var(--color-text-secondary)}.status-badge{display:flex;align-items:center;gap:.5rem;height:fit-content;padding:.4rem 1rem;border-radius:99px;font-size:.85rem;font-weight:600}.status-badge.status-success{background-color:#d1fae5;color:#059669}.status-badge.status-ongoing{background-color:#dbeafe;color:#1d4ed8}.education-desc{color:var(--color-text-secondary);line-height:1.6;font-size:.95rem}.contact-card-section{flex:1;position:sticky;top:120px}.contact-card{background:#fff;border:1px solid #E5E7EB;border-radius:1.5rem;padding:2rem;box-shadow:0 4px 6px -1px #0000000d}.contact-card h2{font-size:1.5rem;font-weight:700;margin-bottom:1rem}.contact-card p{color:var(--color-text-secondary);margin-bottom:2rem;line-height:1.6}.contact-links{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.contact-link{display:flex;align-items:center;gap:1rem;text-decoration:none;color:var(--color-text-main);font-weight:500;padding:.75rem;border-radius:.75rem;transition:background-color .2s}.contact-link:hover{background-color:#f3f4f6;color:var(--color-primary)}.btn-cv-card{display:flex;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:1rem;background-color:var(--color-primary);color:#fff;font-weight:600;border-radius:.75rem;text-decoration:none;transition:background-color .2s;box-shadow:0 4px 14px #2563eb63}.btn-cv-card:hover{background-color:var(--color-primary-hover)}@media(max-width:900px){.contact-layout{flex-direction:column;gap:3rem}.contact-card-section{width:100%;position:static}.timeline-section{padding-left:1rem}.education-grid{padding-left:2.5rem}.timeline-icon{width:2.2rem;height:2.2rem;left:-3.6rem}.timeline-icon svg{width:18px;height:18px}}@media(max-width:480px){.contact-page{padding-top:100px}.contact-page h1{font-size:2rem}.timeline-section{padding-left:.5rem}.education-grid{border-left-width:2px;padding-left:1.5rem;margin-left:1.5rem}.timeline-icon{left:-2.6rem;width:2rem;height:2rem}.education-card{padding:1rem}.education-header{flex-direction:column;gap:.5rem;align-items:flex-start}.education-header .status-badge{align-self:flex-start}.education-details{flex-direction:column;gap:1rem}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{font-family:var(--font-sans);overflow-x:hidden;color:var(--color-text-main);background-color:var(--color-bg-white);background-image:radial-gradient(circle at 10% 20%,rgba(37,99,235,.05) 0%,transparent 20%),radial-gradient(circle at 90% 80%,rgba(139,92,246,.05) 0%,transparent 20%);background-attachment:fixed;line-height:1.5;-webkit-font-smoothing:antialiased}.reveal-animation{opacity:0;transform:translateY(30px);transition:all .6s cubic-bezier(.16,1,.3,1);filter:blur(4px)}.reveal-animation.visible{opacity:1;transform:translateY(0);filter:blur(0)}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-400{transition-delay:.4s}.delay-500{transition-delay:.5s}@keyframes pulse-glow{0%{box-shadow:0 0 #2563eb66}70%{box-shadow:0 0 0 10px #2563eb00}to{box-shadow:0 0 #2563eb00}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}button{cursor:pointer;border:none;font-family:inherit}a{text-decoration:none;color:inherit}.container{max-width:var(--container-width);margin:0 auto;padding:0 var(--spacing-md)}.navbar{position:fixed;height:80px;width:100%;top:0;left:0;background-color:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:99999;border-bottom:1px solid rgba(0,0,0,.05)}.navbar-container{height:100%;display:flex;justify-content:space-between;align-items:center}.navbar-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;cursor:pointer;transition:opacity .2s}.navbar-logo:hover{opacity:.8}.navbar-logo img{border-radius:8px}.navbar-logo .logo-text{font-family:var(--font-heading);font-weight:700;font-size:1.25rem;color:var(--color-text-main)}.navbar-desktop-menu{display:flex;align-items:center;gap:3rem}.navbar-links{display:flex;align-items:center;gap:2rem;list-style:none}.navbar-links a{text-decoration:none;color:var(--color-text-secondary);font-weight:500;transition:color .2s;font-size:.95rem}.navbar-links a:hover{color:var(--color-primary)}.btn-cv{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--color-primary);color:#fff;border-radius:9999px;text-decoration:none;font-size:.9rem;font-weight:500;transition:transform .2s,background-color .2s;box-shadow:0 4px 14px #2563eb63}.btn-cv:hover{transform:translateY(-2px);background-color:var(--color-primary-hover);box-shadow:0 6px 20px #2563eb3b}.navbar-mobile-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--color-text-main);z-index:1001}.navbar-mobile-menu{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:300px;background:#fffffffa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:-5px 0 25px #0000001a;display:flex;flex-direction:column;padding:6rem 2rem;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:100000}.navbar-mobile-menu.open{transform:translate(0)}.navbar-mobile-menu .navbar-mobile-links{list-style:none;display:flex;flex-direction:column;gap:2rem}.navbar-mobile-menu .navbar-mobile-links a{text-decoration:none;color:var(--color-text-main);font-size:1.1rem;font-weight:600}.navbar-mobile-menu .navbar-mobile-links a.btn-cv-mobile{display:flex;align-items:center;justify-content:center;gap:.5rem;background-color:var(--color-primary);color:#fff;padding:.75rem 1rem;border-radius:9999px;font-weight:600;margin-top:1rem;box-shadow:0 4px 14px #2563eb63}@media(max-width:768px){.navbar-desktop-menu{display:none}.navbar-mobile-toggle{display:block}}.navbar-mobile-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0003;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:99999}.navbar-mobile-close{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;cursor:pointer;color:var(--color-text-main);padding:.5rem;border-radius:50%;transition:background-color .2s}.navbar-mobile-close:hover{background-color:#0000000d}.btn-primary{background-color:var(--color-text-main);color:var(--color-bg-white);padding:.75rem 1.5rem;border-radius:9999px;font-weight:600;transition:all .2s;box-shadow:var(--shadow-sm)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);background-color:#000}.hero{text-align:center;padding-top:8rem;padding-bottom:8rem}.hero-title{font-size:3rem;font-weight:800;line-height:1.2;color:var(--color-text-main);margin-bottom:var(--spacing-lg);letter-spacing:-.03em}.hero-title .name{display:block;font-size:4rem;margin-bottom:.5rem;color:var(--color-text-main)}.hero-title .role{display:block;font-size:2.5rem;background:linear-gradient(135deg,var(--color-text-main) 30%,var(--color-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.25rem;color:var(--color-text-secondary);max-width:600px;margin:0 auto var(--spacing-xl)}.hero-actions{display:flex;justify-content:center;gap:var(--spacing-md)}.btn{padding:.875rem 2rem;border-radius:9999px;font-weight:600;font-size:1rem;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:0 4px 14px #2563eb63}.btn-primary:hover{background-color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 6px 20px #2563eb3b}.btn-secondary{background-color:transparent;color:var(--color-text-main);border:1px solid #E5E7EB}.btn-secondary:hover,.btn-hero-secondary:hover{border-color:var(--color-text-main);background-color:transparent;transform:translateY(-2px)}.about{display:flex;padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl);border-top:1px solid #F3F4F6}.about-label{width:33%;flex-shrink:0}.about-label h2{font-size:1.5rem;font-weight:700;color:var(--color-text-main)}.about-content{flex-grow:1}.about-content .about-bio{color:var(--color-text-secondary);line-height:1.75;font-size:1.1rem;margin-bottom:var(--spacing-lg)}.about-content .about-interests h3{font-size:1.1rem;font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-text-main)}.about-content .about-interests ul{list-style:none;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.about-content .about-interests ul li{background-color:var(--color-bg-secondary);padding:.5rem 1rem;border-radius:9999px;font-size:.95rem;color:var(--color-text-main);font-weight:500;border:1px solid transparent;transition:all .2s}.about-content .about-interests ul li .interest-icon{color:var(--color-primary);margin-top:.1rem}.about-content .about-interests ul li:hover{background-color:#fff;border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}@media(max-width:768px){.about{flex-direction:column;gap:var(--spacing-lg)}.about-label{width:100%}}.skills{display:flex;padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl);border-top:1px solid #F3F4F6}.skills-label{width:33%;flex-shrink:0}.skills-label h2{font-size:1.5rem;font-weight:700;color:var(--color-text-main)}.skills-content{flex-grow:1}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.skill-category{padding:1.5rem;border-radius:1.5rem;border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px -5px #0000000d;transition:transform .3s ease,box-shadow .3s ease}.skill-category:hover{transform:translateY(-5px);box-shadow:0 20px 40px -5px #0000001a}.skill-category h3{font-size:1.25rem;font-weight:800;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid rgba(0,0,0,.05)}.skill-category.category-development{background:linear-gradient(145deg,#fff,#e0f2fe)}.skill-category.category-development h3{color:#0284c7}.skill-category.category-backend{background:linear-gradient(145deg,#fff,#f3e8ff)}.skill-category.category-backend h3{color:#9333ea}.skill-category.category-embedded{background:linear-gradient(145deg,#fff,#ffedd5)}.skill-category.category-embedded h3{color:#ea580c}.skill-category.category-system{background:linear-gradient(145deg,#fff,#fee2e2)}.skill-category.category-system h3{color:#dc2626}.skill-category.category-network{background:linear-gradient(145deg,#fff,#dcfce7)}.skill-category.category-network h3{color:#16a34a}.skill-category.category-automation{background:linear-gradient(145deg,#fff,#cffafe)}.skill-category.category-automation h3{color:#0891b2}.skill-category.category-tools{background:linear-gradient(145deg,#fff,#f1f5f9)}.skill-category.category-tools h3{color:#475569}.skill-list{display:flex;flex-direction:column;gap:.75rem}.skill-item{display:flex;align-items:center;padding:.25rem 0}.skill-name{font-weight:500;font-size:1rem;color:var(--color-text-main)}.learning-section{background:#fff;border-radius:1rem;padding:1.5rem;border:1px dashed var(--color-primary);display:flex;flex-direction:column;gap:1rem;position:relative;overflow:hidden}.learning-section:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent 40%,rgba(37,99,235,.05) 50%,transparent 60%);opacity:.5;animation:spin-slow 10s linear infinite;display:none}.learning-section .learning-header{display:flex;align-items:center;gap:.75rem}.learning-section .learning-header h3{font-size:1rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin:0}.learning-section .learning-icon{color:var(--color-primary);animation:spin-slow 3s linear infinite}.learning-section .learning-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.learning-section .learning-tag{display:inline-block;padding:.5rem 1.25rem;background:#fff;color:var(--color-text-main);border:1px solid var(--color-primary);border-radius:9999px;font-weight:600;font-size:.95rem;position:relative;animation:pulse-glow 2s infinite}@media(max-width:768px){.skills{flex-direction:column;gap:var(--spacing-lg)}.skills-label{width:100%}.skills-grid{grid-template-columns:1fr}}.projects-page{padding-top:120px;padding-bottom:4rem;min-height:100vh}.projects-header{margin-bottom:3rem}.projects-header h1{font-size:2.5rem;font-weight:800;margin-bottom:1rem;color:var(--color-text-main)}.projects-header .projects-subtitle{color:var(--color-text-secondary);font-size:1.1rem;max-width:800px}.projects-filters{display:flex;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.projects-filters .filter-btn{padding:.5rem 1.25rem;border-radius:99px;background:#f3f4f6;color:var(--color-text-secondary);font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:all .2s ease}.projects-filters .filter-btn:hover{background:#e5e7eb;color:var(--color-text-main)}.projects-filters .filter-btn.active{background:var(--color-primary);color:#fff;box-shadow:0 4px 6px -1px #2563eb33}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem}@media(max-width:900px){.projects-grid{grid-template-columns:1fr}}.project-card{background:#fff;border-radius:1.5rem;overflow:hidden;border:1px solid #E5E7EB;transition:all .3s ease;display:flex;flex-direction:column;height:100%}.project-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px -5px #0000001a}.project-card .project-image-container{width:100%;height:250px;overflow:hidden}.project-card .project-image-container img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.project-card:hover .project-image-container img{transform:scale(1.05)}.project-card .project-content{padding:2rem;display:flex;flex-direction:column;flex:1}.project-card .project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.project-card .project-title{font-size:1.5rem;font-weight:700;margin-bottom:0;color:var(--color-text-main);line-height:1.3}.project-card .project-status{font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:99px;white-space:nowrap;border:1px solid transparent;flex-shrink:0}.project-card .project-status.status-year-1{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.project-card .project-status.status-year-2{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}.project-card .project-status.status-year-3{background:#f3e8ff;color:#6b21a8;border-color:#e9d5ff}.project-card .project-status.status-ongoing{background:#fef3c7;color:#92400e;border-color:#fde68a}.project-card .project-status.status-upcoming{background:#f1f5f9;color:#475569;border-color:#e2e8f0;border-style:dashed}.project-card .project-status.status-default{background:#f3f4f6;color:var(--color-text-secondary);border-color:#e5e7eb}.project-card .project-description{color:var(--color-text-secondary);line-height:1.6;margin-bottom:1.5rem}.project-card .project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-card .project-tags .tag{background:#e0f2fe;color:#0284c7;font-size:.8rem;padding:.25rem .75rem;border-radius:99px;font-weight:600}.project-card .project-features{margin-bottom:2rem;list-style:none;padding:0}.project-card .project-features li{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;font-size:.95rem;color:#4b5563}.project-card .project-features li:before{content:"•";color:var(--color-primary);font-weight:700}.project-card .project-actions{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.project-card .project-actions .btn-action{display:flex;justify-content:center;align-items:center;padding:.75rem;border-radius:.5rem;font-weight:600;text-decoration:none;transition:all .2s;font-size:.95rem}.project-card .project-actions .btn-action:only-child{grid-column:span 2}.project-card .project-actions .btn-action.btn-code{background:#f3f4f6;color:var(--color-text-main)}.project-card .project-actions .btn-action.btn-code:hover{background:#e5e7eb}.project-card .project-actions .btn-action.btn-demo{background:var(--color-primary);color:#fff;box-shadow:0 4px 6px -1px #2563eb33}.project-card .project-actions .btn-action.btn-demo:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.project-card .project-actions .btn-action.btn-download{background:#059669;color:#fff;box-shadow:0 4px 6px -1px #05966933;grid-column:span 2}.project-card .project-actions .btn-action.btn-download:hover{background:#047857;transform:translateY(-1px)}
