@import "https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700;800&family=Inter:wght@400;500;600&display=swap";:root{--bg:#fff;--bg-soft:#f5f6f8;--bg-hero:#d9dbdd;--bg-navy:#182634;--border:#e4e7eb;--border-soft:#ebedf0;--ink:#1c2530;--text:#454f5b;--text-dim:#6b7480;--text-faint:#98a0aa;--blue:#3993d0;--blue-dark:#2977ac;--blue-darker:#1f5c86;--blue-pale:#eaf4fb;--blue-pale-2:#dcedf9;--font-display:"Poppins", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;--font-sans:"Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;--max-width:1160px;--radius:4px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html,body{max-width:100%;overflow:hidden visible}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin:0;font-weight:700}p{margin:0}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;display:block}::selection{background:var(--blue);color:#fff}:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.wrap{max-width:var(--max-width);margin:0 auto;padding:0 24px}@media (width<=420px){.wrap{padding:0 16px}}.section{padding:96px 0}.section:nth-of-type(2n){background:var(--bg-soft)}.eyebrow{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);align-items:center;gap:10px;margin-bottom:14px;font-size:12.5px;font-weight:700;display:flex}.eyebrow:before{content:"";background:var(--blue);width:22px;height:2px}.section-title{margin-bottom:16px;padding-bottom:18px;font-size:clamp(26px,4vw,36px);position:relative}.section-title:after{content:"";background:var(--blue);border-radius:2px;width:46px;height:4px;position:absolute;bottom:0;left:0}.section-lede{color:var(--text-dim);max-width:640px;margin-bottom:56px;font-size:16px}.status{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--blue-darker);border:1px solid var(--blue-pale-2);background:var(--blue-pale);border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 11px;font-size:12px;font-weight:600;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;position:relative}.status-dot:after{content:"";opacity:0;border:1px solid;border-radius:50%;animation:2.4s ease-out infinite pulse-ring;position:absolute;inset:-5px}.status--amber .status-dot,.status--teal .status-dot{background:var(--blue);color:var(--blue)}.status--red .status-dot{color:#d9534f;background:#d9534f}@keyframes pulse-ring{0%{opacity:.55;transform:scale(.6)}to{opacity:0;transform:scale(1.9)}}.nav{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-soft);background:#fffffff5;width:100%;position:fixed;top:0;left:0;right:0;box-shadow:0 1px #141e2805}body{padding-top:76px}.nav-inner{justify-content:space-between;align-items:center;gap:16px;height:76px;display:flex}.nav-mark{font-family:var(--font-display);min-width:0;color:var(--ink);flex-shrink:1;align-items:center;gap:9px;font-size:17px;font-weight:700;display:flex}.nav-mark-dot{background:var(--blue);border-radius:50%;flex-shrink:0;width:9px;height:9px}.nav-mark-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-mark-short{display:none}.nav-links{flex-shrink:0;align-items:center;gap:30px;display:flex}.nav-links a{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);white-space:nowrap;font-size:13px;font-weight:600;transition:color .15s}.nav-links a:hover{color:var(--blue)}.nav-cta{background:var(--blue);border-radius:var(--radius);padding:10px 18px;transition:background .15s,transform .15s;color:#fff!important}.nav-cta:hover{background:var(--blue-dark);transform:translateY(-1px);color:#fff!important}.nav-toggle{border:1px solid var(--border);border-radius:var(--radius);background:0 0;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:34px;height:34px;padding:0;display:none}.nav-toggle span{background:var(--ink);width:16px;height:2px;transition:transform .2s,opacity .2s;display:block}.nav-toggle.is-open span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}@media (width<=720px){.nav-mark-full{display:none}.nav-mark-short{display:inline}.nav-toggle{display:flex}.nav-links{border-top:1px solid var(--border-soft);opacity:0;visibility:hidden;background:#fff;flex-direction:column;align-items:stretch;gap:0;height:calc(100dvh - 76px);min-height:50dvh;margin:0;padding:8px 24px 32px;transition:opacity .18s,transform .18s,visibility .18s;position:fixed;top:76px;left:0;right:0;overflow-y:auto;transform:translateY(-8px)}.nav-links.is-open{opacity:1;visibility:visible;transform:translateY(0)}.nav-links a{border-bottom:1px solid var(--border-soft);padding:14px 0;font-size:15px}.nav-cta{text-align:center;margin-top:16px}}.scroll-top-btn{z-index:40;background:var(--blue);color:#fff;opacity:0;visibility:hidden;pointer-events:none;border:none;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;transition:opacity .22s,transform .22s,visibility .22s,background .15s;display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(12px);box-shadow:0 6px 18px #3993d066}.scroll-top-btn.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.scroll-top-btn:hover{background:var(--blue-dark)}@media (width<=420px){.scroll-top-btn{bottom:16px;left:16px}}.hero{background:var(--bg-hero);padding:0;position:relative;overflow:hidden}.hero-inner{grid-template-columns:1.05fr .95fr;align-items:center;gap:24px;min-height:640px;display:grid}.hero-content{z-index:2;padding:64px 0;position:relative}.hero-top{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:30px;display:flex}.hero-kicker{font-family:var(--font-display);color:var(--text-dim);letter-spacing:.02em;font-size:13px;font-weight:600}.hero-name{color:var(--ink);margin-bottom:18px;font-size:clamp(36px,5.4vw,56px);font-weight:800;line-height:1.08;animation:.7s both rise}.hero-role-line{font-family:var(--font-display);color:var(--blue-darker);align-items:center;height:1.4em;margin-bottom:22px;font-size:clamp(17px,2.2vw,21px);font-weight:600;animation:.7s .1s both rise;display:flex}.hero-role-line .cursor{background:var(--blue);width:2px;height:.9em;margin-left:3px;animation:1s step-end infinite blink;display:inline-block}.hero-tagline{color:var(--text);max-width:500px;margin-bottom:36px;font-size:clamp(15.5px,1.8vw,17px);animation:.7s .18s both rise}.hero-actions{flex-wrap:wrap;gap:14px;margin-bottom:52px;animation:.7s .24s both rise;display:flex}.btn{font-family:var(--font-display);letter-spacing:.02em;border-radius:var(--radius);border:1px solid #0000;align-items:center;gap:8px;padding:14px 26px;font-size:13.5px;font-weight:600;transition:transform .15s,background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 20px #3993d059}.btn-primary:hover{background:var(--blue-dark);transform:translateY(-1px)}.btn-ghost{border-color:var(--ink);color:var(--ink);background:0 0}.btn-ghost:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px)}.hero-photo{z-index:1;justify-content:center;align-self:flex-end;align-items:flex-end;height:100%;display:flex;position:relative}.hero-photo img{object-fit:contain;filter:drop-shadow(0 24px 30px #141e282e);width:auto;max-height:640px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@media (width<=900px){.hero-inner{grid-template-columns:1fr;min-height:0}.hero-content{text-align:center;padding:56px 0 24px}.hero-top{justify-content:center}.hero-tagline{margin-left:auto;margin-right:auto}.hero-actions{justify-content:center}.hero-photo{order:-1;padding-top:24px}.hero-photo img{max-height:380px}}.highlights{z-index:2;background:var(--bg-navy);border-radius:var(--radius) var(--radius) 0 0;grid-template-columns:repeat(4,1fr);display:grid;position:relative;overflow:hidden}.highlight-item{font-family:var(--font-sans);color:#c6ceda;border-left:1px solid #ffffff14;padding:26px 24px;font-size:13.5px;line-height:1.6}.highlight-item:first-child{border-left:none}@media (width<=860px){.highlights{grid-template-columns:1fr 1fr}.highlight-item:nth-child(3){border-left:none}}@media (width<=560px){.highlights{grid-template-columns:1fr}.highlight-item{border-top:1px solid #ffffff14;border-left:none!important}.highlight-item:first-child{border-top:none}}.about-grid{grid-template-columns:.85fr 1.15fr;align-items:center;gap:56px;display:grid}.about-photo{justify-content:center;display:flex;position:relative}.about-photo img{filter:drop-shadow(0 20px 26px #141e2824);width:auto;max-height:480px}.about-text{color:var(--text);margin-bottom:32px;font-size:16px;line-height:1.8}.about-text strong{color:var(--ink);font-weight:600}.about-actions{margin-bottom:40px}.about-facts{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:24px 32px;padding-top:28px;display:grid}.fact{margin-bottom:0}.fact-label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:6px;font-size:11.5px;font-weight:600}.fact-value{color:var(--ink);font-size:15px}@media (width<=860px){.about-grid{text-align:center;grid-template-columns:1fr;gap:40px}.about-actions{justify-content:center;display:flex}.about-facts{text-align:left;grid-template-columns:1fr 1fr}}@media (width<=480px){.about-facts{grid-template-columns:1fr}}.timeline{position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:8px;bottom:8px;left:7px}.timeline-item{margin-bottom:48px;padding-left:40px;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-node{border:3px solid var(--border);background:#fff;border-radius:50%;width:15px;height:15px;position:absolute;top:6px;left:0}.timeline-item.is-current .timeline-node{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-pale)}.timeline-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;margin-bottom:4px;display:flex}.timeline-company{font-family:var(--font-display);color:var(--ink);font-size:19px;font-weight:700}.timeline-period{font-family:var(--font-sans);color:var(--text-faint);white-space:nowrap;font-size:12.5px;font-weight:500}.timeline-role{font-family:var(--font-display);color:var(--blue);margin-bottom:8px;font-size:13px;font-weight:600}.timeline-summary{color:var(--text-dim);max-width:680px;margin-bottom:16px;font-size:15px}.timeline-bullets{margin-bottom:16px}.timeline-bullets li{color:var(--text-dim);margin-bottom:8px;padding-left:18px;font-size:14.5px;line-height:1.7;position:relative}.timeline-bullets li:before{content:"›";color:var(--blue);font-weight:700;position:absolute;left:0}.tag-row{flex-wrap:wrap;gap:8px;display:flex}.tag{font-family:var(--font-display);letter-spacing:.03em;color:var(--blue-darker);background:var(--blue-pale);border:1px solid var(--blue-pale-2);border-radius:999px;padding:5px 11px;font-size:11px;font-weight:500}.project-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.project-card{border:1px solid var(--border);background:#fff;border-radius:8px;padding:28px;transition:border-color .18s,box-shadow .18s,transform .18s;box-shadow:0 2px 10px #141e280a}.project-card:hover{border-color:var(--blue-pale-2);transform:translateY(-3px);box-shadow:0 14px 30px #141e281a}.project-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.project-name{font-family:var(--font-display);color:var(--ink);font-size:17.5px;font-weight:700}.project-link{font-family:var(--font-display);color:var(--blue);border:1px solid var(--blue-pale-2);background:var(--blue-pale);white-space:nowrap;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600;transition:background .15s}.project-link:hover{background:var(--blue-pale-2)}.project-tagline{font-family:var(--font-display);color:var(--blue);margin-bottom:14px;font-size:12.5px;font-weight:600}.project-desc{margin-bottom:18px}.project-desc li{color:var(--text-dim);margin-bottom:6px;padding-left:16px;font-size:14px;line-height:1.7;position:relative}.project-desc li:before{content:"—";color:var(--text-faint);position:absolute;left:0}.project-status{color:var(--text-dim);font-size:15px}.project-status--error{color:#c0392b}@media (width<=780px){.project-grid{grid-template-columns:1fr}}.skills-grid{background:var(--border);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.skill-group{background:#fff;padding:28px 26px}.skill-group-label{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:16px;font-size:12px;font-weight:700}.skill-list li{color:var(--text);border-bottom:1px dashed var(--border-soft);padding:6px 0;font-size:14.5px}.skill-list li:last-child{border-bottom:none}@media (width<=860px){.skills-grid{grid-template-columns:1fr 1fr}}@media (width<=560px){.skills-grid{grid-template-columns:1fr}}.contact-section{padding-bottom:96px}.contact-inner{grid-template-columns:1.1fr 1fr;align-items:start;gap:64px;display:grid}.contact-heading{margin-bottom:20px;font-size:clamp(28px,4.6vw,40px);line-height:1.18}.contact-sub{color:var(--text-dim);max-width:480px;margin-bottom:32px;font-size:16px}.contact-links{border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;gap:2px;padding:4px 20px;display:flex}.contact-row{border-bottom:1px solid var(--border-soft);font-family:var(--font-sans);justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;font-size:14px;transition:padding-left .15s,color .15s;display:flex}.contact-links a.contact-row:last-child,.contact-row:last-child{border-bottom:none}.contact-row span:first-child{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;font-size:11.5px;font-weight:600}.contact-row span:last-child{overflow-wrap:anywhere;text-align:right;min-width:0;color:var(--ink);font-weight:500}@media (width<=420px){.contact-row{flex-wrap:wrap}.contact-row span:last-child{text-align:left;flex-basis:100%}}a.contact-row:hover{color:var(--blue);padding-left:6px}a.contact-row:hover span:last-child{color:var(--blue)}.edu-card{background:var(--blue-pale);border:1px solid var(--blue-pale-2);border-radius:8px;margin-top:20px;padding:26px}.edu-label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:12px;font-size:11.5px;font-weight:700}.edu-degree{font-family:var(--font-display);color:var(--ink);margin-bottom:6px;font-size:18px;font-weight:700}.edu-detail{color:var(--text-dim);margin-bottom:4px;font-size:14.5px}@media (width<=860px){.contact-inner{grid-template-columns:1fr;gap:40px}}.footer{background:var(--blue);padding:0}.footer-bar{grid-template-columns:repeat(4,1fr);display:grid}.footer-item{color:#fff;border-left:1px solid #ffffff29;align-items:center;gap:14px;padding:26px 24px;display:flex}.footer-item:first-child{border-left:none}.footer-icon{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.footer-icon svg{stroke:#fff;fill:none;width:26px;height:26px}.footer-label{font-family:var(--font-display);margin-bottom:3px;font-size:13px;font-weight:700}.footer-value{font-family:var(--font-sans);color:#ffffffe6;overflow-wrap:anywhere;font-size:13.5px}.footer-copy{background:var(--blue-darker);padding:14px 0}.footer-inner{font-family:var(--font-sans);color:#ffffffbf;justify-content:space-between;align-items:center;font-size:12px;display:flex}@media (width<=860px){.footer-bar{grid-template-columns:1fr 1fr}.footer-item:nth-child(3){border-left:none}.footer-item:first-child,.footer-item:nth-child(2){border-bottom:1px solid #ffffff29}}@media (width<=560px){.footer-bar{grid-template-columns:1fr}.footer-item{border-bottom:1px solid #ffffff29;border-left:none!important}.footer-item:last-child{border-bottom:none}.footer-inner{text-align:center;flex-direction:column;gap:6px}}
