@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&family=DM+Mono:wght@300;400&display=swap";:root{--bg:#1a2233;--bg-2:#1f2a3e;--surface:#ffffff17;--surface-2:#ffffff24;--surface-3:#fff3;--surface-inset:#0000001f;--border:#ffffff29;--border-h:#ffffff4d;--border-sub:#ffffff17;--accent:#4dc4e8;--accent-2:#38acd0;--accent-3:#1e88b0;--accent-dim:#4dc4e8b3;--accent-tint:#4dc4e821;--accent-glow:#4dc4e833;--steel:#a8c0d4;--steel-tint:#a8c0d41a;--text:#f0f6fa;--text-2:#aec4d6;--text-3:#6a8898;--text-inv:#0e1624;--font-display:"Plus Jakarta Sans", sans-serif;--font-body:"DM Sans", sans-serif;--font-mono:"DM Mono", monospace;--shadow-sm:0 2px 12px #00081838;--shadow-md:0 8px 32px #00081852, 0 2px 8px #0008182e;--shadow-lg:0 20px 60px #00081866, 0 4px 16px #0008183d;--shadow-glow:0 0 40px #4dc4e82e;--shadow-glow-h:0 0 60px #4dc4e842;--blur:blur(20px) saturate(1.5);--blur-light:blur(12px) saturate(1.3);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;max-width:100%}body{background-color:var(--bg);color:var(--text);font-family:var(--font-body);background-image:radial-gradient(70% 55% at 15% 0,#3c8cc84d 0%,#0000 60%),radial-gradient(50% 45% at 88% 20%,#286ea53d 0%,#0000 55%),radial-gradient(60% 50% at 5% 80%,#23629438 0%,#0000 55%),radial-gradient(55% 45% at 85% 90%,#3776ac2e 0%,#0000 55%);background-attachment:scroll;max-width:100%;min-height:100vh;font-weight:300;line-height:1.65}a{color:inherit;text-decoration:none}.glass{background:var(--surface);-webkit-backdrop-filter:var(--blur);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:16px}.glass-strong{background:var(--surface-2);-webkit-backdrop-filter:var(--blur);border:1px solid var(--border-h);box-shadow:var(--shadow-lg);border-radius:16px}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes floatSlow{0%,to{transform:translateY(0)rotate(0)}33%{transform:translateY(-5px)rotate(1deg)}66%{transform:translateY(-10px)rotate(-.5deg)}}@keyframes pulseGlow{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.85;transform:scale(1.08)}}@keyframes nameShimmer{0%{transform:translate(-120%)}to{transform:translate(350%)}}.animate-up{opacity:1;animation:fadeUp .65s var(--ease-out-quart) forwards}.animate-up:first-child{animation-delay:40ms}.animate-up:nth-child(2){animation-delay:.12s}.animate-up:nth-child(3){animation-delay:.2s}.animate-up:nth-child(4){animation-delay:.28s}.animate-up:nth-child(5){animation-delay:.36s}.animate-up:nth-child(6){animation-delay:.44s}.page-wrapper{max-width:960px;margin:0 auto;padding:0 32px;overflow-x:clip}.navbar{z-index:100;-webkit-backdrop-filter:var(--blur);border-bottom:1px solid var(--border);background:#1a2233d1;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;max-width:960px;height:58px;margin:0 auto;padding:0 32px;display:flex}.navbar-logo{font-family:var(--font-mono);letter-spacing:.12em;color:var(--accent);text-transform:uppercase;font-size:12px}.navbar-logo span{color:var(--text-3)}.navbar-links{gap:4px;display:flex}.navbar-links a,.navbar-links button{font-family:var(--font-body);color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:100px;padding:6px 14px;font-size:13px;font-weight:400;transition:color .2s,border-color .2s,background .2s,box-shadow .2s}.navbar-links a:hover,.navbar-links a.active,.navbar-links button:hover{color:var(--accent);border-color:var(--border-h);background:var(--surface-2);box-shadow:var(--shadow-sm)}.footer{border-top:1px solid var(--border-sub);-webkit-backdrop-filter:var(--blur-light);background:#1a2233b3;margin-top:120px}.footer-inner{justify-content:space-between;align-items:center;max-width:960px;margin:0 auto;padding:28px 32px;display:flex}.footer-copy{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.06em;font-size:11px}.footer-links{gap:20px;display:flex}.footer-links a{color:var(--text-3);font-size:13px;transition:color .2s}.footer-links a:hover{color:var(--accent)}.section-tag{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);background:var(--accent-tint);border:1px solid #4dc4e838;border-radius:100px;align-items:center;gap:8px;margin-bottom:32px;padding:5px 14px 5px 10px;font-size:10px;display:inline-flex}.section-tag:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px;display:block}.hero{padding:96px 0 108px;position:relative}.hero-layout{grid-template-columns:1fr 260px;align-items:center;gap:0 24px;display:grid}.hero-content{z-index:2;min-width:0;padding-bottom:8px;position:relative}.hero-eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);background:var(--accent-tint);border:1px solid #4dc4e838;border-radius:100px;align-items:center;gap:10px;margin-bottom:24px;padding:5px 14px 5px 12px;font-size:10px;display:inline-flex}.hero-eyebrow:before{content:"";background:var(--accent);opacity:.7;flex-shrink:0;width:16px;height:1px;display:inline-block}.hero-name{font-family:var(--font-display);letter-spacing:-3.5px;margin-bottom:32px;padding-top:.06em;padding-bottom:.14em;font-size:clamp(60px,9.5vw,108px);font-weight:700;line-height:.95;position:relative;overflow:visible}.hero-name-glow{filter:blur(32px);pointer-events:none;z-index:0;background:radial-gradient(#4dc4e838 0%,#0000 70%);border-radius:50%;width:60%;height:60%;position:absolute;top:30%;left:0}.hero-name>span{z-index:1;position:relative}.hero-name .first{background:linear-gradient(160deg,#fff 0%,#e0eef6 45%,#b8d4e4 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:block}.hero-name .last{background:linear-gradient(120deg, var(--accent-3) 0%, var(--accent) 40%, #a8e8f8 60%, var(--accent-3) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-left:clamp(48px,7vw,96px);display:block;position:relative}.hero-name .last:after{content:"";background:linear-gradient(105deg,#0000 30%,#ffffff2e 50%,#0000 70%);pointer-events:none;-webkit-background-clip:text;background-clip:text;animation:3.5s ease-in-out infinite nameShimmer;position:absolute;inset:0;transform:translate(-120%)}.hero-tagline{color:var(--text-2);max-width:460px;margin-bottom:40px;font-size:15px;font-weight:300;line-height:1.85}.hero-tagline strong{color:var(--text);font-weight:400}.hero-contact{flex-wrap:wrap;gap:8px;display:flex}.hero-contact a{color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--blur-light);transition:color .2s, border-color .2s, background .2s, box-shadow .2s, transform .2s var(--ease-spring);border-radius:100px;padding:9px 18px;font-size:13px;font-weight:400}.hero-contact a:hover{color:var(--accent);background:var(--surface-3);box-shadow:var(--shadow-md), var(--shadow-glow);border-color:#4dc4e852;transform:translateY(-2px)}.hero-portrait-wrap{justify-content:center;align-items:center;padding:16px;animation:8s ease-in-out infinite floatSlow;display:flex;position:relative}.hero-portrait-wrap:before{content:"";filter:blur(24px);pointer-events:none;z-index:0;background:radial-gradient(#4dc4e838 0%,#0000 68%);border-radius:50%;animation:5s ease-in-out infinite pulseGlow;position:absolute;inset:0}.portrait-orbit,.portrait-glow-blob,.portrait-dot{display:none}.hero-portrait{z-index:2;aspect-ratio:4/5;width:240px;transition:box-shadow .55s var(--ease-smooth), transform .45s var(--ease-out-quart), border-color .3s;border:1px solid #ffffff38;border-radius:26px;flex-shrink:0;position:relative;overflow:hidden;box-shadow:0 24px 64px #0008188c,0 6px 20px #00081859,0 0 40px #4dc4e829}.hero-portrait:hover{border-color:#4dc4e861;transform:translateY(-8px);box-shadow:0 32px 80px #00081899,0 8px 24px #00081866,0 0 70px #4dc4e84d}.hero-portrait img{object-fit:cover;object-position:center top;filter:grayscale(10%)contrast(1.04)brightness(.94);width:100%;height:100%;transition:transform .55s var(--ease-out-quart), filter .45s var(--ease-smooth);display:block}.hero-portrait:hover img{filter:grayscale(0%)contrast(1.05)brightness(.98);transform:scale(1.04)}.hero-portrait:after{content:"";pointer-events:none;z-index:3;background:linear-gradient(160deg,#4dc4e812 0%,#0000 45%,#0000001f 100%);position:absolute;inset:0}.about{border-top:1px solid var(--border-sub);padding:80px 0}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:60px;display:grid}.about-text p{color:var(--text-2);margin-bottom:14px;font-size:14.5px;line-height:1.9}.about-text p:last-child{margin-bottom:0}.about-text strong{color:var(--text);font-weight:400}.skills-panel{flex-direction:column;gap:22px;display:flex}.skill-group-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-2);margin-bottom:8px;font-size:9px}.skill-tags{flex-wrap:wrap;gap:6px;display:flex}.skill-tag{color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);-webkit-backdrop-filter:var(--blur-light);box-shadow:var(--shadow-sm);transition:color .18s, border-color .18s, background .18s, transform .18s var(--ease-spring);border-radius:100px;padding:4px 12px;font-size:12px;font-weight:400}.skill-tag:hover{color:var(--accent);background:var(--surface-3);border-color:#4dc4e852;transform:translateY(-1px)}.education{border-top:1px solid var(--border-sub);padding:80px 0}.edu-card{background:var(--surface);-webkit-backdrop-filter:var(--blur);border:1px solid var(--border);box-shadow:var(--shadow-md);transition:border-color .3s, box-shadow .45s var(--ease-smooth), transform .3s var(--ease-out-quart);border-radius:20px;grid-template-columns:1fr auto;align-items:start;gap:6px 40px;padding:36px 40px;display:grid}.edu-card:hover{border-color:var(--border-h);box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-2px)}.edu-school-img-wrap{border:1px solid var(--border);background:#fff;border-radius:10px;justify-content:center;align-items:center;width:fit-content;margin-bottom:12px;padding:10px 18px;display:inline-flex}.edu-school-img{object-fit:contain;width:auto;height:40px;display:block}.edu-degree{font-family:var(--font-display);color:var(--text);letter-spacing:-.3px;margin-bottom:4px;font-size:22px;font-weight:600}.edu-school{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;font-size:10px}.edu-details{color:var(--text-2);font-size:13px;line-height:1.8}.edu-date{font-family:var(--font-mono);color:var(--text-3);text-align:right;white-space:nowrap;font-size:11px}.edu-date-mobile{font-family:var(--font-mono);color:var(--text-3);margin:8px 0;font-size:11px;display:none}.edu-badge{color:var(--accent);background:var(--accent-tint);border:1px solid #4dc4e83d;border-radius:100px;margin-top:10px;padding:4px 12px;font-size:11px;font-weight:500;display:inline-block}.experience{border-top:1px solid var(--border-sub);padding:80px 0}.exp-list{flex-direction:column;gap:14px;display:flex}.exp-logo{border:1px solid var(--border);background:var(--surface-2);width:50px;height:50px;box-shadow:var(--shadow-sm);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.exp-logo img{object-fit:cover;width:100%;height:100%;display:block}.exp-item{background:var(--surface);-webkit-backdrop-filter:var(--blur);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:border-color .3s, box-shadow .45s var(--ease-smooth), transform .3s var(--ease-out-quart);border-radius:20px;overflow:hidden}.exp-item:hover{border-color:var(--border-h);box-shadow:var(--shadow-md), var(--shadow-glow);transform:translateY(-2px)}.exp-header{grid-template-columns:auto 1fr auto;align-items:start;gap:4px 16px;padding:26px 30px;display:grid}.exp-company{font-family:var(--font-display);letter-spacing:-.2px;color:var(--text);font-size:20px;font-weight:600}.exp-role{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);margin-top:4px;font-size:10px}.exp-meta{text-align:right;font-family:var(--font-mono);color:var(--text-3);font-size:11px;line-height:1.7}.exp-body{border-top:1px solid var(--border-sub);padding:0 30px 26px}.exp-body ul{flex-direction:column;gap:10px;padding-top:20px;list-style:none;display:flex}.exp-body li{color:var(--text-2);padding-left:18px;font-size:13.5px;font-weight:300;line-height:1.75;position:relative}.exp-body li:before{content:"·";color:var(--accent-dim);font-size:20px;line-height:1.2;position:absolute;left:0}.projects{border-top:1px solid var(--border-sub);padding:80px 0}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.project-card{background:var(--surface);-webkit-backdrop-filter:var(--blur);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:border-color .3s, box-shadow .45s var(--ease-smooth), transform .3s var(--ease-spring);border-radius:20px;flex-direction:column;gap:12px;padding:28px;display:flex}.project-card:hover{border-color:var(--border-h);box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-4px)}.project-card-top{justify-content:space-between;align-items:flex-start;display:flex}.project-title{font-family:var(--font-display);letter-spacing:-.2px;color:var(--text);font-size:18px;font-weight:600}.project-year{font-family:var(--font-mono);color:var(--text-3);font-size:10px}.project-stack{flex-wrap:wrap;gap:5px;display:flex}.stack-tag{color:var(--accent-dim);background:var(--accent-tint);border:1px solid #4dc4e82e;border-radius:100px;padding:3px 10px;font-size:11px;font-weight:400}.project-desc{color:var(--text-2);flex:1;font-size:13px;line-height:1.75}.project-link{color:var(--accent);background:var(--accent-tint);transition:background .2s, border-color .2s, box-shadow .35s var(--ease-smooth), transform .2s var(--ease-spring);border:1px solid #4dc4e838;border-radius:100px;align-self:flex-start;align-items:center;padding:6px 16px;font-size:12px;font-weight:400;display:inline-flex}.project-link .arrow{margin-left:4px;font-family:monospace;font-size:10px;display:inline-block;transform:rotate(-45deg)}.project-link:hover{background:#4dc4e826;border-color:#4dc4e866;transform:translateY(-1px);box-shadow:0 4px 16px #4dc4e826}.contact{border-top:1px solid var(--border-sub);padding:80px 0 100px}.contact-inner{grid-template-columns:1fr 1.4fr;align-items:start;gap:64px;display:grid}.contact-title{font-family:var(--font-display);letter-spacing:-.5px;color:var(--text);margin-bottom:16px;font-size:clamp(26px,4vw,40px);font-weight:700;line-height:1.1}.contact-sub{color:var(--text-2);font-size:14px;font-weight:300;line-height:1.85}.contact-form{background:var(--surface-2);-webkit-backdrop-filter:var(--blur);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:24px;flex-direction:column;gap:18px;padding:32px;display:flex}.contact-field{flex-direction:column;gap:6px;display:flex}.contact-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-2);font-size:9px}.contact-input{background:var(--surface-inset);border:1px solid var(--border);color:var(--text);font-family:var(--font-body);width:100%;transition:border-color .2s, background .2s, box-shadow .3s var(--ease-smooth);border-radius:12px;outline:none;padding:11px 16px;font-size:14px;font-weight:300}.contact-input::placeholder{color:var(--text-3)}.contact-input:focus{background:#0003;border-color:#4dc4e866;box-shadow:0 0 0 3px #4dc4e817}.contact-textarea{resize:vertical;border-radius:12px;min-height:130px;line-height:1.7}.contact-submit{font-family:var(--font-body);letter-spacing:.02em;color:var(--text-inv);background:var(--accent);cursor:pointer;transition:box-shadow .35s var(--ease-smooth), transform .2s var(--ease-spring), background .2s;border:none;border-radius:100px;align-self:flex-start;align-items:center;gap:8px;padding:12px 28px;font-size:13px;font-weight:500;display:flex;box-shadow:0 4px 20px #4dc4e847}.contact-submit:hover{background:#80cce8;transform:translateY(-2px)scale(1.02);box-shadow:0 8px 32px #4dc4e85c}.contact-submit:active{transform:translateY(0)scale(.99)}@media (width<=700px){.page-wrapper{padding:0 20px}.navbar-inner{flex-wrap:wrap;gap:6px;height:auto;min-height:52px;padding:8px 20px}.navbar-logo{font-size:11px}.navbar-links{flex-wrap:wrap;gap:2px}.navbar-links a,.navbar-links button{padding:5px 10px;font-size:11px}.footer-inner{flex-direction:column;gap:12px;padding:24px 20px}.hero{padding:48px 0 64px}.hero-layout{flex-direction:column;align-items:flex-start;display:flex;overflow:clip}.hero-content{display:contents}.hero-eyebrow{order:1;margin-bottom:16px}.hero-name{order:2;margin-bottom:0}.hero-tagline{text-align:center;order:4;max-width:100%;margin-bottom:28px}.hero-contact{order:5;justify-content:center;width:100%}.hero-portrait-wrap{order:3;width:100%;margin:24px 0 28px;padding:16px;animation:6s ease-in-out infinite float}.hero-portrait{border-radius:18px;width:180px}.hero-portrait:hover{transform:none}.hero-name{letter-spacing:-1.5px;text-align:center;width:100%;max-width:100%;font-size:clamp(48px,13vw,68px)}.hero-name .first,.hero-name .last{margin-left:0;display:inline}.hero-name .last:before{content:" "}.about-grid{grid-template-columns:1fr;gap:32px}.edu-card{grid-template-columns:1fr;padding:24px}.edu-date{display:none}.edu-date-mobile{display:block}.exp-header{grid-template-columns:auto 1fr}.exp-meta{text-align:left;grid-column:1/-1}.projects-grid{grid-template-columns:1fr}.contact-inner{grid-template-columns:1fr;gap:32px}.contact-form{border-radius:20px;padding:24px}.contact-submit{justify-content:center;width:100%}}
