:root{--bg-primary: #0a0a0a;--bg-secondary: #111111;--bg-card: #161616;--text-primary: #f0f0f0;--text-secondary: #a0a0a0;--text-muted: #525252;--border: #252525;--accent: #ffffff;--tag-bg: #1e1e1e;--tag-text: #b0b0b0;--nav-bg: rgba(10, 10, 10, .92);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4);--shadow-md: 0 4px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 48px rgba(0, 0, 0, .6);--trans: all .25s ease;--radius: 8px;--font: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--max-w: 1100px}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f6f6f6;--bg-card: #efefef;--text-primary: #0a0a0a;--text-secondary: #505050;--text-muted: #909090;--border: #e0e0e0;--accent: #0a0a0a;--tag-bg: #e6e6e6;--tag-text: #3a3a3a;--nav-bg: rgba(255, 255, 255, .92);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 4px 24px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 48px rgba(0, 0, 0, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.7;transition:background-color .3s ease,color .3s ease;-webkit-font-smoothing:antialiased}ul{list-style:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,h4{line-height:1.2;font-weight:700}.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}.section{padding:100px 0}.section-alt{background-color:var(--bg-secondary)}.section-title{position:relative;display:inline-block;margin-bottom:56px;font-size:clamp(1.75rem,4vw,2.4rem);font-weight:800;letter-spacing:-.03em}.section-title:after{content:"";position:absolute;left:0;bottom:-12px;width:32px;height:3px;background-color:var(--accent);border-radius:2px}.fade-in{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.fade-in.visible{opacity:1;transform:translateY(0)}.navbar{position:fixed;top:0;left:0;right:0;z-index:200;background-color:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);transition:var(--trans)}.nav-container{display:flex;align-items:center;justify-content:space-between;height:64px}.nav-logo{flex-shrink:0;color:var(--text-primary);font-size:1rem;font-weight:800;letter-spacing:3px}.nav-links{display:flex;align-items:center;gap:28px}.nav-links a{color:var(--text-secondary);font-size:.8125rem;font-weight:500;letter-spacing:.02em;transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--text-primary)}.nav-actions{display:flex;align-items:center;gap:10px}.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border:1px solid var(--border);border-radius:50%;background:none;color:var(--text-secondary);font-size:1.05rem;cursor:pointer;transition:var(--trans)}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;border:none;background:none;cursor:pointer;padding:4px}.hamburger span{display:block;width:22px;height:2px;background-color:var(--text-primary);border-radius:2px;transition:var(--trans);transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:120px 0 100px;background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);background-size:28px 28px}.hero-content{max-width:720px}.hero-label{margin-bottom:20px;color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.hero-name{margin-bottom:24px;font-size:clamp(4rem,11vw,8rem);font-weight:800;line-height:.92;letter-spacing:-.04em}.hero-name span{color:var(--text-secondary)}.hero-sub{max-width:560px;margin-bottom:12px;color:var(--text-secondary);font-size:clamp(.95rem,1.5vw,1.1rem);line-height:1.7}.hero-location{display:flex;align-items:center;gap:6px;margin-bottom:44px;color:var(--text-muted);font-size:.85rem}.hero-location svg{width:14px;height:14px;flex-shrink:0}.hero-links{display:flex;flex-wrap:wrap;gap:10px}.hero-link{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);color:var(--text-secondary);font-size:.8125rem;font-weight:500;transition:var(--trans)}.hero-link svg{width:15px;height:15px;flex-shrink:0}.hero-link:hover{border-color:var(--accent);background-color:var(--tag-bg);color:var(--accent)}.hero-scroll{position:absolute;bottom:36px;left:50%;transform:translate(-50%);color:var(--text-muted);animation:bounce 2.2s ease-in-out infinite;transition:color .2s}.hero-scroll:hover{color:var(--text-primary)}.hero-scroll svg{width:22px;height:22px}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(8px)}}.about-grid{display:grid;grid-template-columns:1fr 280px;gap:72px;align-items:start}.about-text{display:flex;flex-direction:column;gap:18px}.about-text p{color:var(--text-secondary);font-size:1.05rem;line-height:1.82}.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat{display:flex;flex-direction:column;padding:20px 16px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);transition:var(--trans)}.stat:hover{border-color:var(--text-muted)}.stat-number{color:var(--text-primary);font-size:1.9rem;font-weight:800;letter-spacing:-.03em;line-height:1}.stat-label{margin-top:8px;color:var(--text-muted);font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.skill-category{padding:28px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);transition:var(--trans)}.skill-category:hover{border-color:var(--text-muted)}.skill-cat-title{margin-bottom:18px;color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-block;padding:4px 11px;border:1px solid var(--border);border-radius:4px;background-color:var(--tag-bg);color:var(--tag-text);font-size:.78rem;font-weight:500;cursor:default;transition:var(--trans)}.tag:hover{border-color:var(--text-secondary);color:var(--text-primary)}.timeline{position:relative;padding-left:40px}.timeline:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:var(--border)}.timeline-item{position:relative;margin-bottom:48px}.timeline-item:last-child{margin-bottom:0}.timeline-dot{position:absolute;top:28px;left:-37px;z-index:1;width:9px;height:9px;border:2px solid var(--bg-primary);border-radius:50%;background-color:var(--accent);box-shadow:0 0 0 2px var(--border)}.timeline-card{padding:28px 28px 24px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);transition:var(--trans)}.timeline-card:hover{border-color:var(--text-muted);box-shadow:var(--shadow-md)}.job-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.job-meta{display:flex;align-items:center;gap:14px}.job-copy{display:flex;flex-direction:column;justify-content:center}.entity-avatar{width:52px;height:52px;padding:6px;border:1px solid var(--border);border-radius:50%;background-color:var(--tag-bg);object-fit:cover;object-position:center;filter:grayscale(1) contrast(.95);transition:filter .3s ease}.timeline-card:hover .entity-avatar,.edu-card:hover .entity-avatar{filter:grayscale(0) contrast(1)}.entity-avatar--education{flex-shrink:0}.job-company{margin-bottom:4px;font-size:1.15rem;font-weight:700}.job-company a:hover{text-decoration:underline;text-underline-offset:3px}.job-role{color:var(--text-secondary);font-size:.875rem;font-weight:500}.job-company-meta{display:flex;align-items:center;gap:6px;margin-top:5px;flex-wrap:wrap}.job-company-about,.job-company-sep{color:var(--text-muted);font-size:.75rem}.job-company-link{color:var(--text-muted);font-size:.75rem;text-decoration:none;transition:color .2s}.job-company-link:hover{color:var(--text-primary);text-decoration:underline;text-underline-offset:2px}.job-date{flex-shrink:0;padding:4px 12px;border:1px solid var(--border);border-radius:20px;color:var(--text-muted);font-size:.78rem;font-weight:500;white-space:nowrap}.job-bullets{display:flex;flex-direction:column;gap:10px}.job-bullets li{position:relative;padding-left:18px;color:var(--text-secondary);font-size:.875rem;line-height:1.7}.job-bullets li:before{content:"–";position:absolute;left:0;color:var(--text-muted);font-weight:300}.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.edu-card{display:flex;align-items:flex-start;gap:20px;padding:28px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);transition:var(--trans)}.edu-card:hover{border-color:var(--text-muted)}.edu-degree{margin-bottom:6px;font-size:1rem;font-weight:700}.edu-school{margin-bottom:12px;color:var(--text-secondary);font-size:.9rem}.edu-meta{display:flex;gap:16px;color:var(--text-muted);font-size:.78rem;font-weight:500}.achievements-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.achievement-card{padding:28px 20px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);text-align:center;transition:var(--trans)}.achievement-card:hover{border-color:var(--text-muted);transform:translateY(-4px);box-shadow:var(--shadow-md)}.achievement-num{margin-bottom:14px;color:var(--text-primary);font-size:2.2rem;font-weight:800;letter-spacing:-.03em;line-height:1}.achievement-card h3{margin-bottom:10px;font-size:.95rem;font-weight:700}.achievement-card p{color:var(--text-secondary);font-size:.82rem;line-height:1.65}.cert-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.cert-group-title{margin-bottom:20px;color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.cert-list{display:flex;flex-direction:column;gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--border)}.cert-item{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;background-color:var(--bg-card);transition:var(--trans)}.cert-item:hover{background-color:var(--tag-bg)}.cert-dot{flex-shrink:0;width:7px;height:7px;margin-top:7px;border-radius:50%;background-color:var(--text-muted)}.cert-name{margin-bottom:4px;font-size:.9rem;font-weight:600}.cert-meta{color:var(--text-muted);font-size:.78rem;font-weight:400}.projects-group-label{margin-bottom:16px;color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.projects-group-label+.projects-grid{margin-bottom:40px}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.project-card{border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);overflow:hidden;cursor:pointer;transition:var(--trans)}.project-card:hover{border-color:var(--text-muted);transform:translateY(-3px);box-shadow:0 8px 32px #0000002e}.project-banner{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden}.project-banner img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4);transition:filter .35s ease,transform .35s ease}.project-card:hover .project-banner img{filter:grayscale(0);transform:scale(1.03)}.project-banner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;opacity:0;transition:opacity .3s ease}.project-card:hover .project-banner-overlay{opacity:1}.project-banner-overlay span{padding:8px 20px;border:1px solid rgba(255,255,255,.7);border-radius:20px;color:#fff;font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.project-info{padding:20px 22px 22px}.project-title{margin-bottom:4px;font-size:1.05rem;font-weight:700}.project-domain{margin-bottom:14px;color:var(--text-muted);font-size:.78rem}.project-tags{display:flex;flex-wrap:wrap;gap:6px}.tag--more{background-color:transparent;border:1px solid var(--border);color:var(--text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeInBackdrop .2s ease}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}.modal{position:relative;width:100%;max-width:780px;max-height:90vh;overflow-y:auto;border:1px solid var(--border);border-radius:calc(var(--radius) * 1.5);background-color:var(--bg-card);animation:slideUpModal .25s ease;scrollbar-width:thin}@keyframes slideUpModal{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.modal-header{position:relative}.modal-banner{display:block;width:100%;aspect-ratio:512 / 288;object-fit:cover}.modal-close{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:#0000008c;color:#fff;cursor:pointer;transition:background .2s}.modal-close:hover{background:#000c}.modal-close svg{width:16px;height:16px}.modal-body{padding:28px 32px 36px}.modal-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.modal-title{margin-bottom:4px;font-size:1.45rem;font-weight:800}.modal-domain{color:var(--text-muted);font-size:.82rem}.modal-website-link{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:8px 16px;border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);font-size:.8rem;font-weight:500;text-decoration:none;white-space:nowrap;transition:var(--trans)}.modal-website-link:hover{border-color:var(--text-muted);color:var(--text-primary)}.modal-website-link svg{width:14px;height:14px}.modal-meta-row{display:flex;flex-wrap:wrap;gap:12px;padding:16px 0;margin-bottom:4px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.modal-meta-item{display:flex;flex-direction:column;gap:3px;flex:1;min-width:120px}.modal-meta-label{color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.modal-meta-value{color:var(--text-secondary);font-size:.85rem}.modal-section{margin-top:24px}.modal-section-title{margin-bottom:10px;color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.modal-summary{color:var(--text-secondary);font-size:.925rem;line-height:1.75}.modal-list{display:flex;flex-direction:column;gap:7px;padding-left:0;list-style:none}.modal-list li{position:relative;padding-left:16px;color:var(--text-secondary);font-size:.875rem;line-height:1.65}.modal-list li:before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background-color:var(--text-muted)}.modal-list--outcomes li{color:var(--text-primary);font-weight:500}.modal-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}.footer{padding:100px 0 60px;border-top:1px solid var(--border)}.contact-intro{margin-top:-32px;margin-bottom:40px;color:var(--text-secondary);font-size:1rem}.contact-links{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:72px}.contact-item{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);color:var(--text-secondary);font-size:.8125rem;font-weight:500;transition:var(--trans)}.contact-item svg{width:16px;height:16px;flex-shrink:0}.contact-item:hover{border-color:var(--accent);color:var(--accent)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:32px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.78rem}.scroll-top{position:fixed;right:28px;bottom:28px;z-index:100;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--border);border-radius:50%;background-color:var(--bg-card);color:var(--text-secondary);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease,border-color .2s,color .2s}.scroll-top.visible{opacity:1;pointer-events:all;transform:translateY(0)}.scroll-top:hover{border-color:var(--accent);color:var(--accent)}.scroll-top svg{width:16px;height:16px}@media (max-width: 900px){.achievements-grid,.projects-grid{grid-template-columns:1fr 1fr}}@media (max-width: 768px){:root{font-size:15px}.section{padding:72px 0}.nav-links{display:none;position:fixed;inset:64px 0 auto 0;flex-direction:column;align-items:flex-start;gap:20px;z-index:199;padding:20px 24px 28px;border-bottom:1px solid var(--border);background-color:var(--bg-primary)}.nav-links.open{display:flex}.nav-links a{font-size:.9375rem}.hamburger{display:flex}.hero-name{letter-spacing:-.03em}.hero-scroll{display:none}.about-grid{grid-template-columns:1fr;gap:40px}.skills-grid,.edu-grid,.cert-grid,.projects-grid{grid-template-columns:1fr}.job-header{flex-direction:column;align-items:flex-start;gap:10px}.job-meta{gap:12px}.entity-avatar{width:44px;height:44px;padding:5px}.footer-bottom{flex-direction:column;align-items:flex-start}}@media (max-width: 560px){.achievements-grid{grid-template-columns:1fr}.about-stats{grid-template-columns:1fr 1fr}.scroll-top{right:20px;bottom:20px}.modal{max-height:95vh}.modal-body{padding:20px 18px 28px}.modal-title-row{flex-direction:column;align-items:flex-start}.modal-cols{grid-template-columns:1fr}}
