@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f8f9fb;--bg2: #f1f3f7;--surface: #ffffff;--ink: #0d1117;--ink2: #1c2333;--ink3: #5a6478;--ink4: #94a0b4;--ink5: #cbd2e0;--accent: #1d6be8;--accent2: #0f4bbf;--accent-bg: #eef3fd;--green: #0f7c5e;--green-bg: #e8f5f0;--border: rgba(13,17,23,.08);--border2: rgba(13,17,23,.05);--radius: 12px;--ff-sans: "Plus Jakarta Sans", system-ui, sans-serif;--ff-serif: "Instrument Serif", Georgia, serif;--ff-mono: "JetBrains Mono", monospace;--ease: cubic-bezier(.22, 1, .36, 1);--shadow-sm: 0 1px 3px rgba(13,17,23,.06), 0 1px 2px rgba(13,17,23,.04);--shadow: 0 4px 16px rgba(13,17,23,.08), 0 1px 4px rgba(13,17,23,.04);--shadow-lg: 0 12px 40px rgba(13,17,23,.1), 0 2px 8px rgba(13,17,23,.06)}html{scroll-behavior:smooth;font-size:16px;scroll-padding-top:76px}body{background:var(--bg);color:var(--ink);font-family:var(--ff-sans);font-weight:400;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:2px}::selection{background:var(--accent);color:#fff}nav{position:fixed;top:0;left:0;right:0;z-index:900;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:68px;background:#f8f9fbd9;-webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8);border-bottom:1px solid var(--border)}.nav-logo{text-decoration:none;display:flex;align-items:center}.nav-logo-img{height:34px;width:auto;display:block;transition:opacity .2s}.nav-logo:hover .nav-logo-img{opacity:.7}.nav-links{display:flex;gap:.25rem;list-style:none}.nav-links a{font-family:var(--ff-sans);font-size:.82rem;font-weight:500;text-decoration:none;color:var(--ink3);padding:.45rem .85rem;border-radius:6px;transition:background .15s,color .15s;letter-spacing:.01em}.nav-links a:hover{background:var(--bg2);color:var(--ink)}.nav-right{display:flex;align-items:center;gap:.75rem}.theme-toggle{background:none;border:1px solid var(--border);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink3);font-size:.85rem;transition:border-color .2s,background .2s,color .2s}.theme-toggle:hover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.nav-cta{font-family:var(--ff-sans);font-size:.82rem;font-weight:600;letter-spacing:.01em;padding:.5rem 1.25rem;background:var(--ink);color:#fff;text-decoration:none;border-radius:8px;transition:background .2s,transform .15s}.nav-cta:hover{background:var(--accent);transform:translateY(-1px)}.section-wrap{max-width:1280px;margin:0 auto;padding:6rem 3rem}.sec-divider{border:none;border-top:1px solid var(--border)}.sec-header{margin-bottom:3.5rem}.sec-label{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff-mono);font-size:.65rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}.sec-label:before{content:"";width:20px;height:1.5px;background:var(--accent)}.sec-title{font-family:var(--ff-serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:400;letter-spacing:-.02em;line-height:1.1;color:var(--ink)}.sec-title em{font-style:italic;color:var(--accent)}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff-sans);font-size:.88rem;font-weight:600;padding:.75rem 1.75rem;background:var(--ink);color:#fff;border-radius:8px;text-decoration:none;border:none;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s}.btn-primary:hover{background:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px #1d6be840}.btn-ghost{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff-sans);font-size:.88rem;font-weight:500;padding:.75rem 1.5rem;background:transparent;color:var(--ink2);border:1.5px solid var(--border);border-radius:8px;text-decoration:none;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}#hero{min-height:100vh;padding:6rem 3rem 4rem;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:5rem;max-width:1280px;margin:0 auto}.hero-left{position:relative}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--green-bg);color:var(--green);border:1px solid rgba(15,124,94,.2);font-family:var(--ff-mono);font-size:.68rem;font-weight:500;letter-spacing:.06em;padding:.35rem .85rem;border-radius:100px;margin-bottom:2rem;opacity:0;animation:slideIn .5s .1s var(--ease) forwards}.hero-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2s infinite}.hero-h1{font-family:var(--ff-serif);font-size:clamp(3rem,5.5vw,5.5rem);font-weight:400;line-height:1.05;letter-spacing:-.02em;color:var(--ink);margin-bottom:1.5rem;opacity:0;animation:slideIn .5s .2s var(--ease) forwards}.accent-name{color:var(--accent);font-style:italic}.hero-desc{font-size:1.05rem;color:var(--ink3);line-height:1.8;max-width:500px;margin-bottom:2.5rem;font-weight:400;opacity:0;animation:slideIn .5s .3s var(--ease) forwards}.hero-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;opacity:0;animation:slideIn .5s .4s var(--ease) forwards}.hero-profile-photo{width:68px;height:68px;border-radius:50%;object-fit:cover;object-position:center top;border:2px solid white;box-shadow:0 0 0 2px var(--accent),var(--shadow);margin-left:auto;flex-shrink:0}.hero-right{opacity:0;animation:slideIn .5s .35s var(--ease) forwards}.hero-card-stack{display:flex;flex-direction:column;gap:1rem}.hc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:box-shadow .2s,transform .2s}.hc:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.hc-accent{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),#6aa0f5)}.hc-label{font-family:var(--ff-mono);font-size:.62rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink4);margin-bottom:.35rem}.hc-value{font-size:1rem;font-weight:700;color:var(--ink);line-height:1.2}.hc-sub{font-size:.8rem;color:var(--ink3);margin-top:.2rem}.hc-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}#about{background:var(--surface)}.about-layout{display:grid;grid-template-columns:1fr 380px;gap:5rem;align-items:start}.about-text p{font-size:1rem;color:var(--ink3);line-height:1.85;margin-bottom:1.2rem}.about-text p strong{color:var(--ink);font-weight:600}.about-quote{border-left:3px solid var(--accent);padding:1rem 1.5rem;background:var(--accent-bg);border-radius:0 8px 8px 0;font-family:var(--ff-serif);font-size:1.1rem;font-style:italic;color:var(--ink2);margin:1.75rem 0;line-height:1.6}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}.stat-box{background:var(--bg);border:1px solid var(--border2);border-radius:var(--radius);padding:1.25rem;text-align:center;transition:box-shadow .2s}.stat-box:hover{box-shadow:var(--shadow-sm)}.stat-num{font-family:var(--ff-serif);font-size:2rem;font-weight:400;color:var(--accent);line-height:1;margin-bottom:.3rem}.stat-label{font-size:.75rem;color:var(--ink3);font-weight:500;letter-spacing:.02em}.edu-stack{display:flex;flex-direction:column;gap:.75rem}.edu-card{background:var(--bg);border:1px solid var(--border2);border-radius:var(--radius);padding:1.25rem 1.4rem;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.edu-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border2);transition:background .2s}.edu-card:hover:before{background:var(--accent)}.edu-card:hover{border-color:#1d6be833;box-shadow:var(--shadow-sm)}.edu-card.top{background:var(--accent-bg);border-color:#1d6be833}.edu-card.top:before{background:var(--accent)}.edu-year{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.1em;color:var(--accent);margin-bottom:.3rem;text-transform:uppercase}.edu-deg{font-size:.9rem;font-weight:700;color:var(--ink);line-height:1.3}.edu-school{font-size:.78rem;color:var(--ink3);margin-top:.2rem}#skills{background:var(--bg)}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:box-shadow .2s,border-color .2s}.skill-card:hover{box-shadow:var(--shadow);border-color:#1d6be833}.sk-cat{font-family:var(--ff-mono);font-size:.62rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border2)}.tag-wrap{display:flex;flex-wrap:wrap;gap:.45rem}.tag{font-family:var(--ff-mono);font-size:.68rem;font-weight:400;padding:.3rem .7rem;background:var(--bg);border:1px solid var(--border);color:var(--ink2);border-radius:6px;transition:all .15s}.tag:hover{background:var(--ink);color:var(--ink5);border-color:var(--ink)}#experience{background:var(--surface)}.exp-layout{display:grid;grid-template-columns:240px 1fr;gap:3rem}.exp-nav{display:flex;flex-direction:column;gap:.25rem;position:sticky;top:90px;align-self:start}.exp-btn{text-align:left;background:none;border:none;cursor:pointer;padding:.85rem 1rem;border-radius:8px;transition:background .15s,color .15s;border-left:2px solid transparent}.exp-btn-co{font-size:.88rem;font-weight:600;color:var(--ink3);display:block;transition:color .15s}.exp-btn-period{font-family:var(--ff-mono);font-size:.62rem;color:var(--ink4);margin-top:.15rem;display:block}.exp-btn:hover,.exp-btn.on{background:var(--accent-bg);border-left-color:var(--accent)}.exp-btn.on .exp-btn-co{color:var(--accent)}.exp-pane{display:none}.exp-pane.on{display:block;animation:fadeIn .25s var(--ease)}.ep-title{font-family:var(--ff-serif);font-size:1.8rem;font-weight:400;color:var(--ink);line-height:1.1;margin-bottom:.35rem}.ep-co{font-family:var(--ff-mono);font-size:.82rem;font-weight:600;color:var(--accent);letter-spacing:.04em;margin-bottom:.2rem;text-transform:uppercase}.ep-loc{font-size:.85rem;color:var(--ink3);margin-bottom:1.75rem}.ep-list{list-style:none;margin-bottom:1.75rem}.ep-list li{display:flex;gap:.85rem;font-size:.93rem;color:var(--ink3);line-height:1.65;margin-bottom:.75rem;align-items:baseline}.ep-list li:before{content:"→";color:var(--accent);flex-shrink:0;font-size:.78rem}.ep-stack{display:flex;flex-wrap:wrap;gap:.4rem}.ep-tag{font-family:var(--ff-mono);font-size:.62rem;padding:.2rem .6rem;background:var(--accent-bg);color:var(--accent);border:1px solid rgba(29,107,232,.2);border-radius:4px}#projects{background:var(--bg)}.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.proj-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s,border-color .25s;position:relative;overflow:hidden}.proj-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),transparent);opacity:0;transition:opacity .25s}.proj-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:#1d6be833}.proj-card:hover:before{opacity:1}.proj-num{font-family:var(--ff-mono);font-size:.6rem;color:var(--ink4);letter-spacing:.15em;margin-bottom:1rem}.proj-title{font-size:1rem;font-weight:700;color:var(--ink);line-height:1.3;margin-bottom:.75rem}.proj-desc{font-size:.85rem;color:var(--ink3);line-height:1.75;margin-bottom:1.5rem;flex:1}.proj-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto}.proj-tag{font-family:var(--ff-mono);font-size:.6rem;padding:.2rem .55rem;background:var(--bg);color:var(--ink3);border:1px solid var(--border);border-radius:4px}#contact{background:var(--ink2)}#contact .sec-label{color:#6aa0f5}#contact .sec-label:before{background:#6aa0f5}#contact .sec-title{color:#f1f5f9}#contact .sec-title em{color:#6aa0f5}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.contact-intro{font-size:1rem;color:#8a99b4;line-height:1.8;max-width:400px;margin-bottom:2.5rem}.contact-email-link{display:inline-block;font-family:var(--ff-serif);font-size:clamp(1.3rem,2.5vw,1.9rem);font-style:italic;color:#f1f5f9;text-decoration:none;margin-bottom:2.5rem;border-bottom:1.5px solid rgba(106,160,245,.4);padding-bottom:4px;transition:color .2s,border-color .2s}.contact-email-link:hover{color:#6aa0f5;border-color:#6aa0f5}.contact-socials{display:flex;flex-direction:column;gap:.75rem}.social-link{display:flex;align-items:center;gap:1rem;text-decoration:none;padding:1rem 1.25rem;border:1px solid rgba(241,245,249,.08);border-radius:var(--radius);transition:background .2s,border-color .2s}.social-link:hover{background:#f1f5f90f;border-color:#6aa0f54d}.social-icon{width:36px;height:36px;border-radius:8px;background:#f1f5f914;display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0;color:#6aa0f5}.social-name{font-size:.88rem;font-weight:600;color:#f1f5f9;display:block}.social-handle{font-family:var(--ff-mono);font-size:.72rem;color:#8a99b4;margin-top:.1rem;display:block}.contact-availability{background:#f1f5f90d;border:1px solid rgba(241,245,249,.1);border-radius:var(--radius);padding:1.75rem;margin-bottom:2rem}.avail-label{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#6aa0f5;margin-bottom:.85rem}.avail-title{font-size:1.05rem;font-weight:700;color:#f1f5f9;margin-bottom:.4rem}.avail-sub{font-size:.85rem;color:#8a99b4;line-height:1.6}.avail-badge{display:inline-flex;align-items:center;gap:.4rem;background:#0f7c5e33;color:#34d399;font-family:var(--ff-mono);font-size:.65rem;font-weight:500;padding:.3rem .75rem;border-radius:100px;border:1px solid rgba(52,211,153,.25);margin-top:.85rem}.avail-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:#34d399;animation:pulse 2s infinite}footer{background:var(--ink);padding:1.5rem 3rem;border-top:1px solid rgba(241,245,249,.05);display:flex;justify-content:space-between;align-items:center}.ft-copy,.ft-stack{font-family:var(--ff-mono);font-size:.65rem;color:#94a0b480;letter-spacing:.08em}@keyframes slideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.reveal{opacity:0;transform:translateY(20px);transition:opacity .55s var(--ease),transform .55s var(--ease)}.reveal.in{opacity:1;transform:translateY(0)}body.dark{--bg: #0d1117;--bg2: #161b22;--surface: #161b22;--ink: #f0f6fc;--ink2: #323971;--ink3: #8b949e;--ink4: #495364;--ink5: #0d1117;--accent: #58a6ff;--accent2: #388bfd;--accent-bg: #1c2d40;--green: #3fb950;--green-bg: #0d2116;--border: rgba(240,246,252,.1);--border2: rgba(240,246,252,.06);--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow: 0 4px 16px rgba(0,0,0,.4);--shadow-lg: 0 12px 40px rgba(0,0,0,.5)}body.dark .nav-logo-img{filter:invert(1)}body.dark nav{background:#0d1117e6}body.dark .nav-cta{background:var(--accent);color:#0d1117}body.dark .nav-cta:hover{background:#388bfd;color:#0d1117}body.dark .btn-primary{background:var(--accent);color:#0d1117}body.dark .btn-primary:hover{background:#388bfd;color:#0d1117}body.dark #about,body.dark #experience{background:#0d1117}body.dark .hc{background:#161b22}body.dark .contact-availability{background:#f0f6fc08}@media (max-width: 1024px){#hero{grid-template-columns:1fr;padding-top:7rem;gap:3rem}.about-layout,.contact-grid{grid-template-columns:1fr;gap:3rem}.skills-grid,.proj-grid{grid-template-columns:1fr 1fr}.exp-layout{grid-template-columns:1fr}.exp-nav{position:static;flex-direction:row;flex-wrap:wrap}.exp-btn{border-left:none;border-bottom:2px solid transparent;border-radius:0}.exp-btn:hover,.exp-btn.on{border-bottom-color:var(--accent);border-left-color:transparent}}@media (max-width: 768px){nav{padding:0 1.5rem}.nav-links{display:none}.section-wrap{padding:4rem 1.5rem}#hero{padding:5.5rem 1.5rem 3rem}.hc-row,.skills-grid,.proj-grid{grid-template-columns:1fr}footer{padding:1.25rem 1.5rem;flex-direction:column;gap:.5rem;text-align:center}}
