:root{--primary: #0F172A;--secondary: #64748B;--accent-border: #E2E8F0;--surface: #F8FAFC;--background: #FFFFFF;--on-surface: #111C2D;--on-surface-variant: #45464D;--outline: #76777D;--outline-variant: #C6C6CD;--chip-bg: #F1F5F9;--chip-text: #475569;--divider: #F1F5F9;--hover-border: #CBD5E1;--shadow-soft: rgba(15, 23, 42, .05);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--container-max: 1120px;--gutter: 24px;--margin-mobile: 20px;--section-gap: 120px;--stack-sm: 8px;--stack-md: 16px;--stack-lg: 32px;--rounded-sm: .125rem;--rounded: .25rem;--rounded-md: .375rem;--rounded-lg: .5rem;--rounded-xl: .75rem;--rounded-full: 9999px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:24px;color:var(--on-surface);background-color:var(--background)}a{color:inherit;text-decoration:none}ul{list-style:none}img{max-width:100%;height:auto;display:block}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}.display-lg{font-family:var(--font-sans);font-size:48px;font-weight:700;line-height:56px;letter-spacing:-.02em}.section{padding-top:var(--section-gap)}.section-divider{width:100%;height:1px;background-color:var(--accent-border);margin-bottom:48px}.section-title{font-family:var(--font-sans);font-size:30px;font-weight:600;line-height:38px;letter-spacing:-.01em;color:var(--primary);margin-bottom:40px}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--accent-border);transition:box-shadow .3s ease}.navbar.scrolled{box-shadow:0 1px 8px var(--shadow-soft)}.nav-container{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;height:64px}.nav-logo{font-size:16px;font-weight:700;color:var(--primary);letter-spacing:-.01em}.nav-links{display:flex;align-items:center;gap:32px}.nav-links a{font-size:14px;font-weight:500;color:var(--secondary);transition:color .2s ease-out;line-height:20px}.nav-links a:hover{color:var(--primary)}.nav-resume-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 20px;background:var(--primary);color:#fff;font-size:14px;font-weight:500;border-radius:var(--rounded);transition:opacity .2s ease-out}.nav-resume-btn:hover{opacity:.9}.nav-mobile-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.nav-mobile-toggle span{display:block;width:22px;height:2px;background:var(--primary);border-radius:2px;transition:all .3s ease}.hero{padding-top:140px;padding-bottom:80px}.hero-layout{display:grid;grid-template-columns:1fr auto;align-items:center;gap:64px}.hero-content{max-width:640px}.hero-photo-wrapper{display:flex;align-items:center;justify-content:center;flex-shrink:0}.hero-photo-frame{width:320px;height:380px;border-radius:20px;overflow:hidden;border:1px solid var(--accent-border);box-shadow:0 0 0 6px var(--surface),0 0 0 7px var(--accent-border),0 20px 60px #0f172a1a;position:relative;background:var(--surface)}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;transition:transform .5s ease}.hero-photo-frame:hover .hero-photo{transform:scale(1.03)}.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--secondary);margin-bottom:24px;line-height:18px;background:var(--surface);border:1px solid var(--accent-border);border-radius:var(--rounded);padding:8px 14px;position:relative;overflow:hidden}.hero-badge:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:#22c55e}.hero-badge-dot{width:7px;height:7px;background:#22c55e;border-radius:var(--rounded-full);display:inline-block;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.hero-title{font-family:var(--font-sans);font-size:48px;font-weight:700;line-height:56px;letter-spacing:-.02em;color:var(--primary);margin-bottom:24px;max-width:720px}.hero-title-accent{color:var(--primary)}.hero-description{font-size:18px;font-weight:400;line-height:28px;color:var(--secondary);max-width:560px;margin-bottom:40px}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:14px;font-weight:500;line-height:20px;padding:10px 20px;border-radius:var(--rounded);cursor:pointer;transition:all .2s ease-out;border:none;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{opacity:.9}.btn-secondary{background:transparent;color:var(--primary);border:1px solid var(--accent-border)}.btn-secondary:hover{background:var(--surface)}.about-grid{display:grid;grid-template-columns:280px 1fr;gap:60px;align-items:start}.about-grid .section-title{margin-bottom:0}.about-text{font-size:16px;font-weight:400;line-height:26px;color:var(--secondary)}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.skill-card{border:1px solid var(--accent-border);border-radius:var(--rounded-lg);padding:24px;background:var(--background);transition:border-color .2s ease-out,box-shadow .2s ease-out}.skill-card:hover{border-color:var(--hover-border);box-shadow:0 4px 20px var(--shadow-soft)}.skill-icon{margin-bottom:16px}.skill-card-title{font-size:16px;font-weight:600;line-height:24px;color:var(--primary);margin-bottom:16px}.skill-list{display:flex;flex-direction:column;gap:8px}.skill-list li{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:400;line-height:20px;color:var(--secondary)}.skill-logo{width:16px;height:16px;flex-shrink:0}.project-card{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--accent-border);border-radius:var(--rounded-lg);overflow:hidden;margin-bottom:32px;transition:border-color .2s ease-out,box-shadow .2s ease-out}.project-card:hover{border-color:var(--hover-border);box-shadow:0 4px 20px var(--shadow-soft)}.project-image{display:flex;align-items:center;justify-content:center;min-height:320px}.project-image-dark{background:var(--primary)}.project-image-light{background:var(--surface)}.project-info{padding:32px;display:flex;flex-direction:column;justify-content:center}.project-meta{display:flex;align-items:center;gap:16px;margin-bottom:12px}.project-role{font-family:var(--font-sans);font-size:11px;font-weight:600;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.project-year{font-size:11px;font-weight:500;line-height:16px;letter-spacing:.05em;color:var(--outline)}.project-meta-dot{font-size:14px;font-weight:700;color:var(--outline);line-height:1}.project-title{font-size:24px;font-weight:600;line-height:32px;letter-spacing:-.01em;color:var(--primary);margin-bottom:12px}.project-description{font-size:14px;font-weight:400;line-height:22px;color:var(--secondary);margin-bottom:24px}.project-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.project-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;padding:4px 10px;background:var(--chip-bg);color:var(--chip-text);font-size:12px;font-weight:500;line-height:16px;border-radius:var(--rounded);letter-spacing:.01em}.project-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--primary);transition:gap .2s ease-out}.project-link:hover{gap:10px}.project-card-reverse{direction:ltr}.project-card-reverse .project-info{order:1}.project-card-reverse .project-image{order:2}.certifications-single{display:flex;justify-content:center}.cert-card{border:1px solid var(--accent-border);border-radius:var(--rounded-lg);padding:32px;background:var(--background);transition:all .3s ease-out;cursor:pointer;width:100%;max-width:320px;text-align:center;position:relative;overflow:hidden}.cert-card:hover{border-color:var(--primary);box-shadow:0 8px 30px var(--shadow-soft);transform:translateY(-4px)}.cert-icon{margin-bottom:20px;display:flex;justify-content:center}.cert-title{font-size:18px;font-weight:600;line-height:24px;color:var(--primary);margin-bottom:8px}.cert-org{font-size:14px;font-weight:500;line-height:20px;color:var(--secondary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a66;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .3s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--background);border-radius:var(--rounded-xl);width:100%;max-width:900px;max-height:90vh;overflow-y:auto;position:relative;padding:40px;box-shadow:0 24px 48px #0000001a;animation:slideUp .4s ease-out forwards}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:24px;right:24px;background:var(--surface);border:1px solid var(--accent-border);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--on-surface-variant);transition:all .2s ease;z-index:10}.modal-close:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:rotate(90deg)}.modal-title{font-size:28px;font-weight:700;color:var(--primary);margin-bottom:32px;text-align:center}.cert-modal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}.cert-modal-item{display:flex;flex-direction:column;gap:12px;align-items:center}.cert-modal-item img{width:100%;border-radius:var(--rounded-md);border:1px solid var(--accent-border);box-shadow:0 4px 12px var(--shadow-soft);transition:transform .3s ease}.cert-modal-item img:hover{transform:scale(1.02)}.cert-modal-item p{font-size:15px;font-weight:500;color:var(--on-surface-variant);text-align:center}@media (max-width: 768px){.cert-modal-grid{grid-template-columns:1fr;gap:24px}.modal-content{padding:24px}.modal-title{font-size:22px;margin-bottom:24px}}.section-contact{padding-bottom:0}.contact-box{background:var(--surface);border:1px solid var(--accent-border);border-radius:var(--rounded-lg);padding:64px;text-align:center;max-width:640px;margin:0 auto}.contact-title{font-size:30px;font-weight:700;line-height:38px;letter-spacing:-.01em;color:var(--primary);margin-bottom:12px}.contact-description{font-size:16px;font-weight:400;line-height:24px;color:var(--secondary);margin-bottom:32px;max-width:480px;margin-left:auto;margin-right:auto}.contact-form{text-align:left;max-width:420px;margin:0 auto}.form-group{margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:500;line-height:20px;color:var(--primary);margin-bottom:6px}.form-input,.form-textarea{width:100%;font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:20px;color:var(--on-surface);background:var(--background);border:1px solid var(--accent-border);border-radius:var(--rounded);padding:10px 14px;transition:border-color .2s ease-out,box-shadow .2s ease-out;outline:none}.form-input:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0f172a0d}.form-input::placeholder,.form-textarea::placeholder{color:var(--outline-variant)}.form-textarea{resize:vertical;min-height:100px}.btn-submit{width:100%;justify-content:center;padding:12px 20px;font-size:14px;margin-top:4px}.footer{margin-top:var(--section-gap);border-top:1px solid var(--accent-border);padding:32px 0}.footer-container{display:flex;align-items:center;justify-content:space-between}.footer-logo{font-size:14px;font-weight:700;color:var(--primary)}.footer-links{display:flex;gap:24px}.footer-links a{font-size:14px;font-weight:400;color:var(--secondary);transition:color .2s ease-out}.footer-links a:hover{color:var(--primary)}.footer-copy{font-size:13px;font-weight:400;color:var(--outline)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease-out,transform .6s ease-out}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}@media (max-width: 1024px){.skills-grid{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr;gap:24px}.project-card{grid-template-columns:1fr}.project-image{min-height:220px}.project-card-reverse .project-info{order:1}.project-card-reverse .project-image{order:-1}.hero-layout{grid-template-columns:1fr;gap:40px}.hero-photo-wrapper{order:-1}.hero-photo-frame{width:200px;height:240px}}@media (max-width: 768px){:root{--section-gap: 80px}.container{padding:0 var(--margin-mobile)}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:20px;gap:16px;border-bottom:1px solid var(--accent-border)}.nav-links.open{display:flex}.nav-resume-btn{display:none}.nav-mobile-toggle{display:flex}.hero{padding-top:100px;padding-bottom:48px}.hero-layout{grid-template-columns:1fr;gap:32px;text-align:center}.hero-content{max-width:100%}.hero-badge{display:inline-flex}.hero-photo-wrapper{order:-1;justify-content:center}.hero-photo-frame{width:160px;height:196px;border-radius:14px}.hero-actions{flex-direction:column;align-items:center}.hero-title{font-size:36px;line-height:42px}.hero-description{font-size:16px;line-height:24px}.hero-actions{flex-direction:column;align-items:flex-start}.section-title{font-size:24px;line-height:32px}.skills-grid{grid-template-columns:repeat(2,1fr)}.contact-box{padding:40px 24px}.footer-container{flex-direction:column;gap:16px;text-align:center}}@media (max-width: 480px){.skills-grid{grid-template-columns:1fr}}.case-study-modal{max-width:1000px;padding:48px}.case-study-header{margin-bottom:40px}.case-study-desc{font-size:16px;line-height:28px;color:var(--secondary);margin-bottom:24px}.case-study-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.case-study-gallery .gallery-item{border-radius:var(--rounded-md);overflow:hidden;border:1px solid var(--accent-border);box-shadow:0 4px 12px var(--shadow-soft);background:var(--surface);display:flex;align-items:center;justify-content:center}.case-study-gallery .gallery-item.large{grid-column:1 / -1}.case-study-gallery img{width:100%;height:auto;display:block;transition:transform .3s ease}.case-study-gallery img:hover{transform:scale(1.02)}@media (max-width: 768px){.case-study-modal{padding:24px}.case-study-gallery{grid-template-columns:1fr;gap:16px}.case-study-gallery .gallery-item.large{grid-column:auto}}
