@import "https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{color:#1a1a1a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(-45deg,#fff,#fafafa,#f3f4f6,#fff) 0 0/400% 400%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;animation:15s infinite subtleBg}@keyframes subtleBg{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;font-family:inherit}.app-layout{flex-direction:column;min-height:100vh;display:flex}main{flex:1}.navbar-header{z-index:100;-webkit-backdrop-filter:blur(24px)saturate(150%);background:#fff6;border-bottom:.5px solid #00000026;position:sticky;top:0}.navbar-container{justify-content:space-between;align-items:center;max-width:960px;height:56px;margin:0 auto;padding:0 40px;display:flex}.navbar-logo{color:#1a1a1a;font-family:Lora,Georgia,serif;font-size:1.2rem;font-weight:600;text-decoration:none}.navbar-right-group{align-items:center;gap:32px;display:flex}.navbar-nav{align-items:center;gap:28px;display:flex}.nav-link{color:#555;font-size:.9rem;font-weight:400;text-decoration:none;transition:color .15s}.nav-link:hover,.nav-link.active{color:#2563eb}.navbar-actions{align-items:center;gap:12px;display:flex}.btn-resume{cursor:pointer;white-space:nowrap;background-color:#2563eb;border:none;border-radius:6px;padding:8px 18px;font-size:.875rem;font-weight:500;text-decoration:none;transition:background-color .15s;display:inline-block;color:#fff!important}.btn-resume:hover{background-color:#1d4ed8}.mobile-toggle-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.mobile-toggle-btn span{background-color:#1a1a1a;width:22px;height:1.5px;display:block}.mobile-menu{display:none}.hero-section{align-items:center;max-width:960px;min-height:calc(100vh - 56px);margin:0 auto;padding:0 40px;display:flex}.hero-content-wrapper{justify-content:space-between;align-items:center;gap:80px;width:100%;display:flex}.hero-inner{flex:1;max-width:580px}.hero-role-label{letter-spacing:.12em;text-transform:uppercase;color:#2563eb;margin-bottom:20px;font-size:.7rem;font-weight:600;display:inline-block}.hero-title{letter-spacing:-.02em;color:#1a1a1a;margin-bottom:20px;font-family:Lora,Georgia,serif;font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.18}.hero-title-muted{color:#6b7280}.hero-description{color:#4b5563;margin-bottom:32px;font-size:.95rem;line-height:1.75}.hero-cta-group{flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:36px;display:flex}.btn-primary-solid{color:#fff;background-color:#2563eb;border-radius:6px;padding:10px 22px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background-color .15s;display:inline-block}.btn-primary-solid:hover{background-color:#1d4ed8}.btn-text-link{color:#4b5563;font-size:.9rem;font-weight:400;text-decoration:none;transition:color .15s}.btn-text-link:hover{color:#1a1a1a}.hero-stack{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hero-stack-label{color:#9ca3af;margin-right:2px;font-size:.8rem;font-weight:500}.hero-stack-pill{color:#374151;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:100px;padding:3px 10px;font-size:.78rem}.hero-visual{flex:1;max-width:420px;display:none}@media (width>=860px){.hero-visual{display:block}}.profile-card{box-shadow:none;background:0 0;border:none;flex-direction:column;justify-content:space-between;height:300px;padding:20px;display:flex;position:relative;overflow:hidden}.profile-card-lines{pointer-events:none;z-index:1;flex-direction:column;justify-content:space-evenly;display:flex;position:absolute;inset:0}.profile-card-lines div{background:linear-gradient(90deg,#0000 5%,#00000008 15% 85%,#0000 95%);height:1px}.profile-card-top,.profile-card-center,.profile-card-bottom{z-index:2;position:relative}.profile-card-top{justify-content:flex-end;display:flex}.profile-card-center{flex:1;justify-content:center;align-items:center;display:flex}.profile-initials{color:#1a56db;letter-spacing:-.06em;font-family:Lora,Georgia,serif;font-size:7rem;font-weight:500;line-height:1}.profile-pill{letter-spacing:.15em;background:#fff;border-radius:100px;padding:8px 18px;font-family:Inter,sans-serif;font-size:.7rem;font-weight:600}.profile-pill.blue{color:#1a56db;border:1px solid #1a56db33}.profile-pill.outline{color:#6b7280;border:1px solid #00000014}.work-section{background:0 0;padding:80px 0 100px}.work-container{max-width:960px;margin:0 auto;padding:0 40px}.section-label{letter-spacing:.12em;text-transform:uppercase;color:#2563eb;margin-bottom:14px;font-size:.7rem;font-weight:600;display:block}.work-title{color:#1a1a1a;letter-spacing:-.02em;margin-bottom:12px;font-family:Lora,Georgia,serif;font-size:2.5rem;font-weight:700}.work-subtitle{color:#6b7280;max-width:480px;margin-bottom:40px;font-size:.95rem}.projects-grid-2x2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.project-grid-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:10px;padding:24px;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;position:relative}.project-grid-card:hover{border-color:#bfdbfe;transform:translateY(-2px);box-shadow:0 4px 16px #2563eb14}.pgc-top{justify-content:space-between;align-items:center;display:flex}.pgc-badge{letter-spacing:.05em;text-transform:uppercase;border-radius:4px;padding:3px 9px;font-size:.68rem;font-weight:600}.pgc-year{color:#9ca3af;font-variant-numeric:tabular-nums;font-size:.8rem}.pgc-title{color:#1a1a1a;letter-spacing:-.01em;font-family:Lora,Georgia,serif;font-size:1.2rem;font-weight:600;line-height:1.3}.pgc-subtitle{color:#2563eb;font-size:.8rem;font-weight:400}.pgc-desc{color:#6b7280;flex:1;font-size:.875rem;line-height:1.6}.pgc-tags{flex-wrap:wrap;gap:6px;display:flex}.tag-pill{color:#374151;white-space:nowrap;background:0 0;border:1px solid #d1d5db;border-radius:4px;padding:3px 9px;font-size:.75rem;font-weight:400}.pgc-links{border-top:1px solid #f1f5f9;align-items:center;gap:10px;margin-top:4px;padding-top:10px;display:flex}.pgc-icon-link{color:#6b7280;border:1px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.pgc-icon-link:hover{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;justify-content:center;align-items:center;padding:24px;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.modal-box{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:640px;max-height:85vh;animation:.35s cubic-bezier(.2,.8,.2,1) forwards iosPopIn;display:flex;overflow-y:auto;box-shadow:0 20px 60px #0003}@keyframes iosPopIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.modal-header{z-index:1;background:#fff;border-bottom:1px solid #f1f5f9;border-radius:12px 12px 0 0;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px 20px;display:flex;position:sticky;top:0}.modal-badge{letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;border-radius:4px;margin-bottom:10px;padding:3px 9px;font-size:.65rem;font-weight:600;display:inline-block}.modal-title{color:#1a1a1a;letter-spacing:-.02em;margin-bottom:4px;font-family:Lora,Georgia,serif;font-size:1.5rem;font-weight:700}.modal-subtitle{color:#2563eb;font-size:.85rem}.modal-close-btn{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:4px;line-height:0;transition:color .15s,background .15s}.modal-close-btn:hover{color:#1a1a1a;background:#f3f4f6}.modal-body{flex:1;padding:24px 28px}.modal-desc{color:#4b5563;margin-bottom:20px;font-size:.95rem;line-height:1.75}.modal-section-title{letter-spacing:.08em;text-transform:uppercase;color:#9ca3af;margin-bottom:10px;font-size:.75rem;font-weight:600}.modal-bullets{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.modal-bullet{color:#374151;align-items:flex-start;gap:8px;font-size:.9rem;line-height:1.55;display:flex}.modal-bullet:before{content:"•";color:#2563eb;flex-shrink:0}.modal-tags{flex-wrap:wrap;gap:6px;display:flex}.modal-footer{border-top:1px solid #f1f5f9;flex-wrap:wrap;gap:10px;padding:18px 28px 24px;display:flex}.modal-link-btn{color:#374151;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:7px;padding:7px 14px;font-size:.85rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.modal-link-btn:hover{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.about-section{background:0 0;padding:100px 0 120px}.about-container{max-width:960px;margin:0 auto;padding:0 40px}.section-title{color:#1a1a1a;letter-spacing:-.02em;border-bottom:1px solid #e5e7eb;margin-bottom:60px;padding-bottom:20px;font-family:Lora,Georgia,serif;font-size:2.5rem;font-weight:700}.about-content{grid-template-columns:1fr 1fr;align-items:start;gap:60px;display:grid}.about-text-column p{color:#4b5563;margin-bottom:24px;font-size:1rem;line-height:1.8}.about-history{border-top:1px solid #f3f4f6;flex-direction:column;gap:24px;margin-top:40px;padding-top:30px;display:flex}.history-item{align-items:flex-start;gap:20px;display:flex}.history-date{color:#9ca3af;min-width:90px;padding-top:2px;font-size:.8rem;font-weight:500}.history-details{flex-direction:column;display:flex}.history-details strong{color:#1a1a1a;font-size:.95rem;font-weight:600}.history-details span{color:#6b7280;font-size:.85rem}.about-details-column{flex-direction:column;gap:40px;display:flex}.detail-block h3{letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;margin-bottom:20px;font-size:.85rem;font-weight:600}.skills-list,.certs-list{flex-direction:column;gap:16px;display:flex}.skills-list li,.certs-list li{flex-direction:column;gap:2px;display:flex}.skills-list li strong,.certs-list li strong{color:#1a1a1a;font-size:.95rem;font-weight:500}.skills-list li span,.certs-list li span{color:#6b7280;font-size:.85rem;line-height:1.5}.contact-section{background:0 0;padding:80px 0 100px}.contact-container{max-width:960px;margin:0 auto;padding:0 40px}.contact-title{color:#1a1a1a;letter-spacing:-.02em;margin-bottom:12px;font-family:Lora,Georgia,serif;font-size:2.5rem;font-weight:700}.contact-subtitle{color:#6b7280;max-width:440px;margin-bottom:40px;font-size:.95rem;line-height:1.65}.contact-grid{grid-template-columns:1fr 1fr;gap:14px;max-width:700px;margin-bottom:16px;display:grid}.contact-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px 22px;transition:border-color .15s}.contact-card:hover{border-color:#bfdbfe}.contact-card-label{letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;margin-bottom:8px;font-size:.65rem;font-weight:600}.contact-card-value{color:#1a1a1a;word-break:break-word;margin-bottom:4px;font-size:.92rem;font-weight:500;display:block}.contact-card-note{color:#6b7280;font-size:.82rem}.contact-email-cta{background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;max-width:700px;padding:20px 24px;display:flex}.contact-email-cta-text h4{color:#1a1a1a;margin-bottom:4px;font-family:Lora,Georgia,serif;font-size:1.1rem;font-weight:600}.contact-email-cta-text p{color:#6b7280;font-size:.875rem}.footer-section{background:#fff;border-top:1px solid #e8e8e8;padding:22px 0}.footer-container{justify-content:space-between;align-items:center;max-width:960px;margin:0 auto;padding:0 40px;display:flex}.footer-copy{color:#9ca3af;font-size:.85rem}.footer-links{align-items:center;gap:18px;display:flex}.footer-link{color:#2563eb;font-size:.85rem;text-decoration:none;transition:color .15s}.footer-link:hover{color:#1d4ed8}.footer-icon-link{align-items:center;gap:5px;display:inline-flex}@media (width<=768px){.navbar-nav{display:none}.mobile-toggle-btn{display:flex}.mobile-menu.active{z-index:99;background:#fff;border-bottom:1px solid #e8e8e8;padding:16px 24px 20px;display:block;position:absolute;top:56px;left:0;right:0}.mobile-nav{flex-direction:column;gap:14px;display:flex}.mobile-nav-link{color:#1a1a1a;font-size:1rem;text-decoration:none}.mobile-nav-cta{margin-top:8px}.hero-section{padding:56px 24px 60px}.hero-title{font-size:2rem}.work-container,.about-container,.contact-container{padding:0 24px}.work-section,.about-section,.contact-section{padding:56px 0 64px}.projects-grid-2x2{grid-template-columns:1fr}.about-content{grid-template-columns:1fr;gap:40px}.contact-grid{grid-template-columns:1fr}.contact-email-cta{flex-direction:column;align-items:flex-start}.footer-container{text-align:center;flex-direction:column;gap:12px;padding:0 24px}.modal-overlay{padding:16px}.modal-header{padding:20px 20px 16px}.modal-body{padding:20px}.modal-footer{padding:14px 20px 20px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{opacity:0;animation:.8s cubic-bezier(.2,.8,.2,1) forwards fadeInUp}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.preloader-overlay{z-index:9999;background-color:#fff;justify-content:center;align-items:center;transition:opacity .6s ease-in-out,visibility .6s ease-in-out;display:flex;position:fixed;inset:0}.preloader-overlay.fade-out{opacity:0;visibility:hidden}.preloader-content{flex-direction:column;align-items:center;gap:16px;display:flex}.preloader-text{color:#1a1a1a;opacity:0;font-family:Lora,Georgia,serif;font-size:2.5rem;font-weight:600;animation:.8s forwards preloaderTextFade}.preloader-bar{background-color:#0000001a;border-radius:2px;width:140px;height:2px;overflow:hidden}.preloader-progress{background-color:#4f46e5;width:100%;height:100%;animation:1.4s cubic-bezier(.8,0,.2,1) .2s forwards preloaderProgress;transform:translate(-100%)}@keyframes preloaderTextFade{to{opacity:1}}@keyframes preloaderProgress{0%{transform:translate(-100%)}to{transform:translate(0)}}.section-divider{background:linear-gradient(90deg,#0000,#0000004d 50%,#0000);border:0;max-width:800px;height:2px;margin:60px auto}.premium-grid-bg,.premium-grid-bg-glow{z-index:-1;pointer-events:none;background-size:50px 50px;animation:20s linear infinite gridPan;position:fixed;inset:-100px}.premium-grid-bg{background-image:linear-gradient(90deg,#0000000f .7px,#0000 .7px),linear-gradient(#0000000f .7px,#0000 .7px);background-size:50px 50px;-webkit-mask-image:radial-gradient(circle,#000 50%,#0000 100%);mask-image:radial-gradient(circle,#000 50%,#0000 100%)}.premium-grid-bg-glow{-webkit-mask-image:radial-gradient(250px circle at calc(var(--mouse-x,-500px) + 100px) calc(var(--mouse-y,-500px) + 100px), black 0%, transparent 100%);mask-image:radial-gradient(250px circle at calc(var(--mouse-x,-500px) + 100px) calc(var(--mouse-y,-500px) + 100px), black 0%, transparent 100%);-webkit-mask-image:radial-gradient(250px circle at calc(var(--mouse-x,-500px) + 100px) calc(var(--mouse-y,-500px) + 100px), black 0%, transparent 100%);background-image:linear-gradient(90deg,#4f46e580 1px,#0000 1px),linear-gradient(#4f46e580 1px,#0000 1px)}@keyframes gridPan{0%{transform:translateY(0)}to{transform:translateY(-50px)}}
