*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Roboto,sans-serif;color:#1a1a1a}.root{margin:0}.section-heading{font-size:clamp(1.4rem,3vw,1.8rem);font-weight:700;color:#531dab;text-align:center;margin:0 0 3rem}.section-heading:after{content:"";display:block;width:48px;height:3px;background:#531dab;margin:.6rem auto 0;border-radius:2px}.navbar-container{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid #e8d5ff;box-shadow:0 1px 12px #531dab12;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:0 2rem;height:64px}.navTitle{display:flex;flex-direction:row;align-items:center;gap:.75rem;flex-shrink:0}.portfolio-title{font-size:1.05rem;font-weight:700;color:#531dab;margin:0;white-space:nowrap}.language-menu{display:flex;align-items:center}.navLink{display:flex;flex-direction:row;align-items:center;flex:1;justify-content:flex-end}.page-container{min-height:calc(100vh - 264px)}.page-header{background:linear-gradient(135deg,#1a0533,#531dab);padding:48px 8vw;display:flex;align-items:center;gap:1rem}.page-title{font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:800;color:#fff;margin:0;letter-spacing:-.02em}.projects-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;background:#fff3;color:#fff;border-radius:100px;font-size:.85rem;font-weight:700}.filter-row{max-width:1200px;margin:0 auto;padding:28px 8vw 0;display:flex;gap:.5rem;flex-wrap:wrap}.filter-chip{padding:.35rem 1rem;border-radius:100px;font-size:.82rem;font-weight:500;cursor:pointer;border:1.5px solid #d3adf7;background:transparent;color:#531dab;transition:all .18s ease;font-family:inherit}.filter-chip.active,.filter-chip:hover{background:#531dab;color:#fff;border-color:#531dab}.projects-grid{max-width:1200px;margin:0 auto;padding:32px 8vw 60px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.project-card-skeleton{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 16px #531dab12}.projects-error{grid-column:1 / -1;text-align:center;color:#888;padding:3rem 0}.project-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 16px #531dab12;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #531dab26}.project-card-header{padding:1.1rem 1.25rem;display:flex;align-items:center;gap:.6rem}.project-lang-symbol{font-family:Courier New,monospace;font-size:.78rem;font-weight:800;padding:.2rem .5rem;border-radius:4px;letter-spacing:.04em;flex-shrink:0}.project-lang-name{font-size:.82rem;font-weight:600;opacity:.88;flex:1}.project-stars{font-size:.78rem;font-weight:600;opacity:.75;flex-shrink:0}.project-card-body{padding:1rem 1.25rem 1.25rem;flex:1;display:flex;flex-direction:column}.project-card-title{font-size:1rem;font-weight:700;color:#1a1a1a;margin:0 0 .5rem;line-height:1.3}.project-card-desc{font-size:.875rem;color:#666;line-height:1.6;margin:0 0 .75rem;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.project-tag{font-size:.7rem;font-weight:500;padding:.2rem .6rem;border-radius:100px;background:#f3e8ff;color:#531dab}.project-card-actions{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid #f0e6ff;gap:.5rem}.project-updated{font-size:.72rem;color:#aaa;flex-shrink:0}.project-action-links{display:flex;gap:.5rem;flex-shrink:0}.project-action-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:600;color:#531dab;text-decoration:none;padding:.35rem .8rem;border-radius:6px;background:#f3e8ff;transition:background .18s ease,color .18s ease;white-space:nowrap}.project-action-link:hover,.project-action-link.live{background:#531dab;color:#fff}.project-action-link.live:hover{background:#3d0e8f;color:#fff}.contact-content{max-width:700px;margin:0 auto;padding:48px 8vw}.contact-intro{text-align:center;color:#555;font-size:1rem;line-height:1.75;margin:0 0 2.5rem}.resume-content{max-width:900px;margin:0 auto;padding:40px 8vw 60px;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.resume-img{max-width:100%;border-radius:8px;box-shadow:0 4px 24px #531dab1a}.download-btn{display:inline-block;padding:.75rem 2rem;background:#531dab;color:#fff;border-radius:6px;font-weight:600;font-size:.95rem;text-decoration:none;transition:background .2s ease}.download-btn:hover{background:#3d0e8f;color:#fff}.skills-section{padding:56px 8vw;background:#f7f5ff}.skills-category{max-width:1000px;margin:0 auto 2.5rem}.skills-category:last-child{margin-bottom:0}.skills-category-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#531dab;margin:0 0 1.25rem;padding-bottom:.5rem;border-bottom:1.5px solid #e8d5ff}.skills-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:1rem}.skill-icon-item{display:flex;flex-direction:column;align-items:center;gap:.45rem;transition:transform .18s ease}.skill-icon-item:hover{transform:translateY(-3px)}.skill-icon-wrapper{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;box-shadow:0 2px 8px #531dab1a}.skill-icon-img{width:30px;height:30px;object-fit:contain}.skill-icon-fallback{font-size:.65rem;font-weight:800;color:#531dab;font-family:Courier New,monospace;letter-spacing:.03em}.skill-icon-name{font-size:.7rem;font-weight:500;color:#444;text-align:center;line-height:1.3;max-width:76px}.footer{background:linear-gradient(135deg,#1a0533,#531dab);padding:48px 8vw;text-align:center}.footer-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem}.footer-name{font-size:1.15rem;font-weight:700;color:#fff;margin:0}.footer-subtitle{font-size:.85rem;color:#ffffff8c;margin:0 0 1rem}.footer-links{display:flex;gap:1.75rem;margin-bottom:1.25rem}.footer-link{font-size:1.75rem;color:#ffffffa6;transition:color .2s ease,transform .2s ease;display:flex;align-items:center;line-height:1}.footer-link:hover{color:#d3adf7;transform:translateY(-3px)}.footer-copy{font-size:.75rem;color:#ffffff59;margin:0}@media(max-width:860px){.navbar-container{height:auto;padding:.75rem 1.25rem;flex-wrap:wrap;gap:.25rem}.navLink{justify-content:center;width:100%}.page-header{padding:36px 6vw}.contact-content,.resume-content{padding:36px 6vw 48px}.projects-grid{padding:24px 6vw 48px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.filter-row{padding:20px 6vw 0}.skills-section{padding:48px 6vw}}@media(max-width:480px){.portfolio-title{font-size:.95rem}.projects-grid{grid-template-columns:1fr}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.anim-fade-up{opacity:0;animation:fadeInUp .65s ease forwards}.anim-delay-1{animation-delay:.12s}.anim-delay-2{animation-delay:.24s}.anim-delay-3{animation-delay:.38s}.anim-delay-4{animation-delay:.52s}.hero-section{border-top:2px solid #531dab;background:linear-gradient(135deg,#1a0533,#3d0e8f,#531dab);min-height:calc(100vh - 66px);display:flex;align-items:center;padding:80px 8vw}.hero-inner{max-width:1100px;margin:0 auto;width:100%;display:flex;align-items:center;justify-content:space-between;gap:4rem}.hero-text{flex:1}.hero-greeting{font-size:.9rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#c084fc;margin:0 0 .75rem}.hero-name{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;color:#fff;line-height:1.1;letter-spacing:-.02em;margin:0 0 .5rem}.hero-role{font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:400;color:#a78bfa;margin:0 0 1.5rem}.hero-tagline{font-size:1rem;color:#ffffffb8;line-height:1.8;max-width:480px;margin:0 0 2.5rem}.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap}.hero-btn{display:inline-block;padding:.75rem 1.75rem;border-radius:6px;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s ease;cursor:pointer}.hero-btn-solid{background:#fff;color:#531dab}.hero-btn-solid:hover{background:#f0e6ff;color:#3d0e8f}.hero-btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.45)}.hero-btn-outline:hover{border-color:#fff;background:#ffffff14;color:#fff}.hero-photo{flex-shrink:0}.hero-photo-ring{width:280px;height:280px;border-radius:50%;padding:4px;background:linear-gradient(135deg,#c084fc,#7c3aed,#a855f7);box-shadow:0 0 80px #a855f759}.hero-photo-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center top;display:block;border:4px solid #1a0533}.journey-section{padding:80px 8vw;background:#f7f5ff}.journey-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.journey-card{background:#fff;border-radius:12px;padding:2rem;border-left:4px solid #531dab;box-shadow:0 2px 16px #531dab12;transition:transform .2s ease,box-shadow .2s ease}.journey-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #531dab24}.journey-period{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7c3aed;background:#f3e8ff;padding:.25rem .8rem;border-radius:100px;margin-bottom:.85rem}.journey-role{font-size:1.15rem;font-weight:700;color:#1a1a1a;margin:0 0 .65rem}.journey-desc{font-size:.9rem;color:#555;line-height:1.7;margin:0}.about-skills-section{padding:70px 8vw;background:#fff}.skills-chips{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;max-width:760px;margin:0 auto}.skill-chip{padding:.45rem 1.1rem;border-radius:100px;background:#f9f0ff;border:1.5px solid #d3adf7;color:#531dab;font-size:.9rem;font-weight:500;transition:all .18s ease;cursor:default;-webkit-user-select:none;user-select:none}.skill-chip:hover{background:#531dab;color:#fff;border-color:#531dab}.featured-section{padding:80px 8vw;background:#fff}.featured-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.featured-cta{max-width:1100px;margin:2.5rem auto 0;display:flex;justify-content:center}.about-quote-section{padding:80px 8vw;background:linear-gradient(135deg,#1a0533,#531dab);text-align:center}.about-quote-section blockquote{max-width:680px;margin:0 auto}.about-quote-section blockquote p{font-size:clamp(1rem,2.5vw,1.35rem);font-style:italic;color:#ffffffe0;line-height:1.85;margin:0}@media(max-width:860px){.hero-section{padding:60px 6vw;min-height:auto}.hero-inner{flex-direction:column-reverse;text-align:center;gap:2.5rem}.hero-tagline{margin-left:auto;margin-right:auto}.hero-ctas{justify-content:center}.hero-photo-ring{width:200px;height:200px}.journey-grid{grid-template-columns:1fr;max-width:540px;margin:0 auto}.journey-section,.about-skills-section,.featured-section,.about-quote-section{padding:60px 6vw}.featured-grid{grid-template-columns:1fr;max-width:540px;margin:0 auto}}@media(max-width:480px){.hero-photo-ring{width:150px;height:150px}.hero-section{padding:48px 5vw}}
