:root{--primary:#8b5cf6;--primary-dark:#7c3aed;--primary-light:#a78bfa;--bg-dark:#0a0a0a;--surface-dark:#111113;--text-primary:#e5e7eb;--text-secondary:#9ca3af;--text-muted:#6b7280;--border-subtle:#ffffff14;--border-hover:#8b5cf659;--card-bg:#ffffff08;--card-bg-hover:#0f0f0fb8;--spacing-xs:8px;--spacing-sm:12px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:40px;--spacing-3xl:60px;--spacing-4xl:80px;--radius-sm:8px;--radius-lg:16px;--radius-xl:18px;--radius-full:999px;--transition-fast:.2s ease;--transition-base:.3s ease;--font-family:"Inter", sans-serif;--line-height-tight:1.2;--line-height-normal:1.6}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--primary-light) var(--card-bg)}body{min-height:100vh;font-family:var(--font-family);color:var(--text-primary);background:radial-gradient(circle at 50% 40%, #8b5cf61f, transparent 60%), linear-gradient(#ffffff04 1px, transparent 1px), linear-gradient(90deg, #ffffff04 1px, transparent 1px), var(--bg-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:cover,64px 64px,64px 64px;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit}::selection{background-color:var(--primary);color:var(--bg-dark)}.container{max-width:1200px;padding:0 var(--spacing-lg);width:100%;margin:0 auto}.navbar{width:100%;padding:var(--spacing-lg) 0;z-index:10;position:relative}.nav-shell{justify-content:space-between;align-items:center;gap:var(--spacing-lg);display:flex}.logo{font-size:20px;font-weight:800}.logo a{color:#d1d5db;transition:var(--transition-base);text-decoration:none}.logo a:hover,.logo a.active{color:var(--primary-light)}.nav-links{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.nav-links a{color:#d1d5db;transition:var(--transition-base);font-weight:500;text-decoration:none}.nav-links a:hover,.nav-links a.active{color:var(--primary-light)}.nav-toggle{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:42px;height:42px;color:var(--text-primary);cursor:pointer;background:#ffffff0a;justify-content:center;align-items:center;display:none}.hero{padding:100px 0 var(--spacing-3xl)}.hero-grid{align-items:center;gap:var(--spacing-xl);grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);display:grid}.photo{justify-content:center;align-items:center;padding:1em;display:flex}.photo img{aspect-ratio:335/408;object-fit:cover;border:3px solid var(--primary);border-radius:1em;width:min(335px,100%);transition:all .3s cubic-bezier(.4,0,.2,1)}.photo img:hover{box-shadow:0 0 50px var(--primary-light);transform:scale(1.04)}.intro{color:var(--text-secondary)}.hero h1{margin:var(--spacing-sm) 0;font-size:clamp(2.4rem,6vw,3.5rem);font-weight:800;line-height:var(--line-height-tight)}.hero h2{color:var(--primary-light);margin-bottom:var(--spacing-lg);font-size:20px;font-weight:500}.bio,.project-summary,.page-intro,.experience-description,.skill-items,.card p{color:var(--text-secondary);line-height:1.7}.bio,.intro{max-width:700px}.location{align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);margin:20px 0;display:inline-flex}.buttons,.project-buttons,.project-links{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.btn{justify-content:center;align-items:center;gap:var(--spacing-xs);text-align:center;cursor:pointer;border:2px solid var(--primary-dark);min-height:48px;color:var(--primary-dark);background:0 0;border-radius:25px;padding:12px 24px;font-size:16px;font-weight:600;text-decoration:none;transition:background-color .25s,color .25s,border-color .25s,transform .25s,box-shadow .25s;display:inline-flex}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.primary:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 8px 20px #8b5cf64d}.btn.outline{border:1px solid var(--border-subtle);color:var(--text-primary)}.btn.outline:hover{border-color:var(--primary);color:var(--primary-light);transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf633}.btn.btn-secondary{border:1px solid var(--primary);color:var(--primary-light)}.btn.btn-secondary:hover{border-color:var(--text-secondary);color:var(--text-primary);background-color:#111;transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf633}.section-title{margin-bottom:var(--spacing-2xl);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:800}.page-title{color:var(--text-primary);font-size:clamp(2.35rem,5vw,3rem);font-weight:800;line-height:var(--line-height-tight);margin-bottom:1rem}.page-intro{max-width:800px;margin-bottom:3rem;font-size:18px}.card,.project-card,.experience-item,.skill-category{background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:var(--transition-base)}.card{margin-top:var(--spacing-3xl);padding:var(--spacing-xl)}.card h2,.experience-title,.skill-category-title{margin-top:0;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:700}.project-card:hover,.experience-item:hover,.skill-category:hover,.feature-card:hover{border-color:var(--border-hover);box-shadow:0 12px 30px #8b5cf626}.project-card{gap:var(--spacing-md);flex-direction:column;min-height:100%;display:flex}.project-card h3{margin-top:0}.project-card p{color:var(--text-secondary);line-height:var(--line-height-normal)}.project-buttons{margin-top:auto}.project-buttons .btn{width:100%}.projects-grid{gap:var(--spacing-xl);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.features-grid,.fm-challenges-grid{gap:var(--spacing-lg);margin-top:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.skills-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.tags,.tech-list,.project-tags{gap:var(--spacing-xs);margin:var(--spacing-md) 0;flex-wrap:wrap;display:flex}.tags span,.tech-list span,.project-tags .tag{background:var(--card-bg);border-radius:var(--radius-full);color:#e6e6ea;transition:var(--transition-fast);align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.tags span:hover,.tech-list span:hover{background:#8b5cf633;transform:translateY(-2px)}.feature-card{background:var(--card-bg);border:1px solid var(--border-hover);border-radius:var(--radius-lg);color:var(--text-secondary);transition:var(--transition-base);padding:20px 24px 20px 48px;line-height:1.7;position:relative}.feature-card:before{content:"✓";color:var(--primary-light);font-size:16px;font-weight:700;position:absolute;top:18px;left:18px}.fm-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:#ffffff0f;transition:transform .35s,box-shadow .35s;overflow:hidden}.fm-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px #00000059}.fm-card-thumbnail{background:var(--surface-dark);position:relative;overflow:hidden}.fm-card-thumbnail img{object-fit:cover;width:100%;height:190px;transition:transform .5s}.fm-card:hover img{transform:scale(1.08)}.fm-card-overlay{justify-content:center;align-items:center;gap:var(--spacing-sm);opacity:0;transition:var(--transition-base);background:linear-gradient(#0003,#000000d9);flex-direction:column;display:flex;position:absolute;inset:0}.fm-card:hover .fm-card-overlay,.fm-card:focus-within .fm-card-overlay{opacity:1}.fm-overlay-btn{border-radius:var(--radius-full);color:#fff;align-items:center;gap:var(--spacing-xs);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;padding:10px 18px;font-size:.9rem;text-decoration:none;transition:background .25s,transform .25s,box-shadow .25s;display:inline-flex}.fm-overlay-btn:hover{background:#7c7cff;transform:scale(1.05);box-shadow:0 4px 12px #7c7cff4d}.fm-btn-source:hover{background:#111}.fm-card-content{padding:1.2rem 1.4rem 1.5rem}.fm-card-content a{text-decoration:none}.fm-card-content a:hover{color:#fff;text-decoration:underline}.fm-card-title{color:#fff;margin-bottom:.6rem;font-size:1.05rem;font-weight:600}.fm-tech-icons{flex-wrap:wrap;gap:8px;font-size:.78rem;display:flex}.fm-tech-icons span{color:#d1d5db;border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:4px 8px}.projects,.projects-page,.experience-page{width:100%;padding:var(--spacing-4xl) 0}.project-page,.project-detail-page{max-width:1200px;padding:120px var(--spacing-lg);z-index:2;margin:auto;position:relative}.project-hero h1{margin-bottom:var(--spacing-sm);color:var(--text-primary);font-size:clamp(2.4rem,6vw,3.5rem);font-weight:800}.project-meta,.experience-org,.experience-subtitle{color:var(--primary-light);margin-bottom:var(--spacing-md);font-size:16px;font-weight:500}.project-summary{max-width:700px}.features,.technologies,.highlights,.fm-challenges-section{margin-top:var(--spacing-4xl)}.features .section-title,.technologies .section-title,.highlights .section-title,.fm-challenges-section .section-title{margin-bottom:var(--spacing-lg);font-size:32px}.experience-section{margin-bottom:3rem}.experience-item{background:var(--card-bg-hover);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-bottom:var(--spacing-lg)}.experience-title{font-size:1.5rem}.interests-list{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));list-style:none;display:grid}.interests-list li{padding:var(--spacing-sm);background:var(--card-bg-hover);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);text-align:center;transition:var(--transition-base)}.interests-list li:hover{border-color:var(--primary);color:var(--primary-light);transform:translateY(-2px)}.highlights ul{margin-top:var(--spacing-md);padding:0;list-style:none}.highlights li{margin-bottom:var(--spacing-sm);color:var(--text-secondary);padding-left:18px;line-height:1.7;position:relative}.highlights li:before{content:"•";color:var(--primary-light);font-size:20px;line-height:1;position:absolute;left:0}.center-btn{margin:var(--spacing-4xl) 0 var(--spacing-2xl);justify-content:center}.error-message{text-align:center;padding:var(--spacing-4xl) 0}.error-message p{color:var(--text-secondary);margin-bottom:var(--spacing-lg);font-size:18px}.site-footer{text-align:center;padding:var(--spacing-2xl) 20px;color:var(--text-muted);font-size:14px}.footer-content{justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);display:flex}.footer-links{gap:var(--spacing-md);flex-wrap:wrap;justify-content:center;align-items:center;font-size:24px;display:flex}.footer-links a{color:#d1d5db;transition:var(--transition-base);text-decoration:none;display:inline-flex}.footer-links a:hover{color:var(--primary-light);transform:translateY(-2px)}.loading-screen{min-height:65vh;padding:var(--spacing-xl);place-items:center;display:grid}.loading-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:min(520px,100%);padding:var(--spacing-xl);background:var(--card-bg)}.skeleton{border-radius:var(--radius-full);background:linear-gradient(90deg,#ffffff0d,#8b5cf638,#ffffff0d) 0 0/220% 100%;min-height:18px;animation:1.25s ease-in-out infinite skeleton-pulse}.skeleton-title{width:65%;min-height:34px;margin-bottom:var(--spacing-lg)}.skeleton-line{width:100%;margin-top:var(--spacing-sm)}.skeleton-line.short{width:72%}@keyframes skeleton-pulse{to{background-position:-220% 0}}a:focus-visible,button:focus-visible{outline-offset:3px;border-radius:var(--radius-sm);outline:3px solid #8b5cf680}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1028px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.hero{padding:72px 0 48px}.hero-grid{grid-template-columns:1fr}.photo{display:none}.hero h2{font-size:18px}}@media (width<=667px){.projects-grid{grid-template-columns:1fr}.project-card .project-buttons{flex-direction:column}.project-card .btn{width:100%}}@media (width<=560px){.container{padding:0 var(--spacing-md)}.navbar{padding:18px 0}.nav-toggle{display:inline-flex}.nav-links{top:calc(100% - 6px);left:var(--spacing-md);right:var(--spacing-md);padding:var(--spacing-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a0a0af5;flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute}.nav-links.open{display:flex}.nav-links a{border-radius:var(--radius-sm);padding:12px}.nav-links a:hover,.nav-links a.active{background:#8b5cf61f}.hero{padding:var(--spacing-3xl) 0 var(--spacing-2xl)}.hero h2{font-size:16px}.bio{font-size:15px}.projects{padding:var(--spacing-2xl) 0}.feature-card,.card,.project-card{transform:none!important}.footer-content{flex-direction:column}.project-page,.project-detail-page{padding:var(--spacing-4xl) var(--spacing-md)}}
