@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap);*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0c0c0c;--bg2:#141414;--bg3:#1c1c1c;--line:#2a2a2a;--ink:#efefed;--ink2:#a8a8a4;--ink3:#585854;--green:#4ade80;--green-dim:#4ade801a;--blue:#60a5fa;--blue-dim:#60a5fa1a;--amber:#fbbf24;--amber-dim:#fbbf241a;--sans:"Inter",system-ui,sans-serif;--t:0.3s ease}[data-theme=light]{--bg:#fafaf8;--bg2:#f2f1ee;--bg3:#e8e7e3;--line:#d8d6d0;--ink:#111110;--ink2:#555550;--ink3:#999994;--green:#16a34a;--green-dim:#16a34a14;--blue:#2563eb;--blue-dim:#2563eb14;--amber:#d97706;--amber-dim:#d9770614}html{scroll-behavior:smooth}body{background:#0c0c0c;background:var(--bg);color:#efefed;color:var(--ink);font-family:Inter,system-ui,sans-serif;font-family:var(--sans);font-size:14px;line-height:1.6;overflow-x:hidden;transition:background .3s ease,color .3s ease;transition:background var(--t),color var(--t)}::-webkit-scrollbar{width:1px}::-webkit-scrollbar-thumb{background:#2a2a2a;background:var(--line)}.page{margin:0 auto;max-width:1100px;padding:0 32px}.divider{background:#2a2a2a;background:var(--line);height:1px;margin:80px 0}.sec-head{align-items:baseline;display:flex;gap:12px;margin-bottom:40px}.sec-label{color:#585854;color:var(--ink3);font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase}.sec-title{color:#efefed;color:var(--ink);font-size:clamp(26px,3vw,38px);font-weight:600;letter-spacing:-1px}.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}.reveal.on{opacity:1;transform:translateY(0)}.tag{border:1px solid #2a2a2a;border:1px solid var(--line);border-radius:100px;color:#585854;color:var(--ink3);font-size:11px;padding:2px 9px}.tag.green{background:#4ade801a;background:var(--green-dim);border-color:#4ade804d;color:#4ade80;color:var(--green)}.tag.blue{background:#60a5fa1a;background:var(--blue-dim);border-color:#60a5fa4d;color:#60a5fa;color:var(--blue)}.metric-pill{align-items:center;background:#4ade801a;background:var(--green-dim);border:1px solid #4ade8040;border-radius:100px;color:#4ade80;color:var(--green);display:inline-flex;font-size:11px;font-weight:600;gap:5px;margin-left:6px;padding:1px 8px;vertical-align:middle}.metric-pill.blue{background:#60a5fa1a;background:var(--blue-dim);border-color:#60a5fa40;color:#60a5fa;color:var(--blue)}.metric-pill.amber{background:#fbbf241a;background:var(--amber-dim);border-color:#fbbf2440;color:#fbbf24;color:var(--amber)}@media(max-width:768px){.page{padding:0 20px}.divider{margin:52px 0}.sec-head{margin-bottom:28px}}@media(max-width:480px){.page{padding:0 16px}}nav{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0c0c0cd9;border-bottom:1px solid var(--line);display:flex;height:56px;left:0;padding:0 32px;position:fixed;right:0;top:0;transition:background var(--t),border-color var(--t);z-index:100}[data-theme=light] nav{background:#fafaf8d9}.nav-inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1100px;width:100%}.nav-logo{color:var(--ink);font-size:14px;font-weight:600;letter-spacing:-.3px;text-decoration:none}.nav-logo span{color:var(--green)}.nav-links{display:flex;gap:4px;list-style:none}.nav-links a{border-radius:6px;color:var(--ink2);font-size:13px;padding:5px 12px;text-decoration:none;transition:color .2s,background .2s}.nav-links a:hover{background:var(--bg3);color:var(--ink)}.nav-actions{gap:10px}.nav-actions,.toggle-btn{align-items:center;display:flex}.toggle-btn{background:var(--bg2);border:1px solid var(--line);border-radius:8px;color:var(--ink2);cursor:pointer;flex-shrink:0;height:34px;justify-content:center;transition:border-color var(--t),background var(--t);width:34px}.toggle-btn svg{stroke:currentColor;display:block;transition:stroke var(--t)}.toggle-btn:hover{border-color:var(--green)}.toggle-btn:hover svg{stroke:var(--ink)}@media(max-width:640px){nav{align-items:stretch;flex-direction:column;height:auto;padding:0}.nav-inner{flex-shrink:0;height:52px;padding:0 20px}.nav-links{border-top:1px solid var(--line);display:flex;gap:4px;padding:0 8px}.nav-links li{flex:1 1}.nav-links a{border-radius:6px;color:var(--ink2);display:block;font-size:12px;padding:10px 0;text-align:center}.nav-links a:hover{background:var(--bg3);color:var(--ink)}}.hero{padding-bottom:100px;padding-top:120px}.hero-eyebrow{align-items:center;animation:up .5s ease .05s both;color:var(--ink2);display:flex;font-size:12px;gap:8px;margin-bottom:28px}.dot-green{animation:glow 2.5s ease-in-out infinite;background:var(--green);border-radius:50%;box-shadow:0 0 0 3px var(--green-dim);display:inline-block;flex-shrink:0;height:7px;width:7px}@keyframes glow{0%,to{box-shadow:0 0 0 3px var(--green-dim)}50%{box-shadow:0 0 0 6px var(--green-dim)}}.hero-name{animation:up .6s ease .15s both;color:var(--ink);font-size:clamp(48px,7vw,88px);font-weight:600;letter-spacing:-3px;line-height:.95;margin-bottom:24px}.hero-name span{color:var(--green)}.hero-tagline{animation:up .6s ease .28s both;color:var(--ink);font-size:clamp(16px,1.8vw,20px);font-weight:400;line-height:1.7;margin-bottom:48px;max-width:580px;opacity:.72}.hero-tagline strong{color:var(--ink);font-weight:600;opacity:1}.hero-actions{align-items:center;animation:up .5s ease .4s both;display:flex;gap:12px;margin-bottom:72px}.btn-primary{align-items:center;background:var(--green);border-radius:8px;color:#0c0c0c;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:11px 24px;text-decoration:none;transition:opacity .2s,transform .15s}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-secondary{border:1px solid var(--line);border-radius:8px;color:var(--ink2);font-size:13px;padding:10px 22px;text-decoration:none;transition:border-color .2s,color .2s}.btn-secondary:hover{border-color:var(--ink2);color:var(--ink)}.impact-strip{animation:up .6s ease .5s both;background:var(--bg2);border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}.impact-item{padding:28px 24px;position:relative}.impact-item:not(:last-child):after{background:var(--line);bottom:20%;content:"";position:absolute;right:0;top:20%;width:1px}.impact-num{font-size:36px;font-weight:600;letter-spacing:-1.5px;line-height:1;margin-bottom:4px}.impact-num.green{color:var(--green)}.impact-num.blue{color:var(--blue)}.impact-num.amber{color:var(--amber)}.impact-label,.impact-num.white{color:var(--ink)}.impact-label{font-size:12px;font-weight:500;line-height:1.5;opacity:.8}.impact-sub{color:var(--ink2);font-size:11px;line-height:1.4;margin-top:3px}@keyframes up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.hero{padding-bottom:64px;padding-top:110px}.hero-actions{margin-bottom:48px}.impact-strip{grid-template-columns:repeat(2,1fr)}.impact-item:nth-child(2):after,.impact-item:nth-child(3):after{display:none}.impact-item:nth-child(3),.impact-item:nth-child(4){border-top:1px solid var(--line)}}@media(max-width:480px){.hero{padding-bottom:48px;padding-top:80px}.hero-name{letter-spacing:-2px}.impact-item{padding:20px 16px}.impact-num{font-size:28px}}.exp-group{margin-bottom:48px}.exp-group:last-child{margin-bottom:0}.exp-group-label{border-bottom:1px solid var(--line);color:var(--ink3);font-size:11px;font-weight:600;letter-spacing:1.5px;padding-bottom:12px;text-transform:uppercase}.exp-item{grid-gap:40px;align-items:start;border-top:1px solid var(--line);display:grid;gap:40px;grid-template-columns:220px 1fr;padding:32px 0}.exp-meta{display:flex;flex-direction:column;gap:4px}.exp-role{color:var(--ink);font-size:15px;font-weight:600;letter-spacing:-.3px;line-height:1.3;margin-bottom:4px}.exp-co-name{color:var(--ink2);font-size:13px}.exp-period{color:var(--ink3);font-size:12px;font-weight:500;letter-spacing:.3px}.exp-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.exp-bullets{display:flex;flex-direction:column;gap:10px;list-style:none;padding-top:2px}.exp-bullets li{color:var(--ink);font-size:14px;font-weight:400;line-height:1.7;padding-left:18px;position:relative}.exp-bullets li:before{color:var(--ink3);content:"↳";font-size:12px;left:0;position:absolute;top:2px}.exp-bullets li strong{color:var(--ink);font-weight:500}@media(max-width:768px){.exp-item{gap:14px;grid-template-columns:1fr;padding:24px 0}}@media(max-width:480px){.exp-role{font-size:14px}}.proj-grid{grid-gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;display:grid;gap:1px;grid-template-columns:1fr 1fr;overflow:hidden}.proj-card{background:var(--bg2);display:flex;flex-direction:column;gap:16px;padding:32px;position:relative;transition:background var(--t)}.proj-card:hover{background:var(--bg3)}.proj-card.span2{align-items:center;flex-direction:row;gap:40px;grid-column:1/-1}.proj-card.span2 .proj-desc{max-width:500px}.proj-card.span2 .proj-title{font-size:26px}.proj-preview{border:1px solid var(--line);border-radius:10px;display:block;flex:1 1;flex-shrink:0;max-width:420px;min-width:0;overflow:hidden;position:relative;text-decoration:none;transition:border-color .25s,transform .25s}.proj-preview img{aspect-ratio:8/5;background:var(--bg3);display:block;height:auto;object-fit:cover;object-position:top;transition:transform .4s ease;width:100%}.proj-preview:hover{border-color:var(--green);transform:translateY(-2px)}.proj-preview:hover img{transform:scale(1.02)}.proj-preview:hover .proj-preview-overlay{opacity:1}.proj-preview-overlay{align-items:center;background:#0c0c0c8c;display:flex;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .25s}.proj-preview-overlay span{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff14;border:1px solid #ffffff4d;border-radius:100px;color:#fff;font-size:13px;font-weight:600;padding:8px 18px}.proj-top{align-items:center;display:flex;justify-content:space-between}.proj-num{color:var(--ink3);font-size:11px;font-weight:600;letter-spacing:1px}.proj-links-top{display:flex;gap:10px}.proj-link{border:1px solid var(--line);border-radius:100px;color:var(--ink3);font-size:11px;padding:3px 10px;text-decoration:none;transition:color .2s,border-color .2s}.proj-link:hover{border-color:#4ade8066;color:var(--green)}.proj-title{color:var(--ink);font-size:20px;font-weight:600;letter-spacing:-.5px;line-height:1.2}.proj-highlight{display:flex;flex-wrap:wrap;gap:6px}.highlight-pill{align-items:center;background:var(--bg3);border:1px solid var(--line);border-radius:100px;color:var(--ink2);display:inline-flex;font-size:11px;font-weight:600;gap:5px;padding:3px 10px}.highlight-pill.green{background:var(--green-dim);border:1px solid #4ade8040;color:var(--green)}.proj-desc{color:var(--ink);flex:1 1;font-size:13px;font-weight:400;line-height:1.75;opacity:.82}.proj-desc strong{color:var(--ink);font-weight:600;opacity:1}.proj-stack{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto}.proj-stack span{background:var(--bg3);border:1px solid #ffffff1f;border-radius:100px;color:var(--ink);font-size:11px;font-weight:500;letter-spacing:.1px;padding:3px 10px}@media(max-width:768px){.proj-grid{grid-template-columns:1fr}.proj-card.span2{align-items:flex-start!important;flex-direction:column}.proj-card.span2>div{flex:none!important;width:100%}.proj-card.span2 .proj-title{font-size:22px}.proj-card.span2 .proj-desc,.proj-preview{max-width:100%}.proj-preview{width:100%}}@media(max-width:480px){.proj-card{padding:24px 20px}}.about-grid{grid-gap:60px;display:grid;gap:60px;grid-template-columns:1fr 1fr}.about-text p{color:var(--ink);font-size:15px;font-weight:400;line-height:1.85;margin-bottom:16px;opacity:.88}.about-text p strong{color:var(--ink);font-weight:600;opacity:1}.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.badge{align-items:center;border-radius:100px;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:6px 14px}.badge.green{background:var(--green-dim);border:1px solid #4ade8040;color:var(--green)}.badge.blue{background:var(--blue-dim);border:1px solid #60a5fa40;color:var(--blue)}.badge.amber{background:var(--amber-dim);border:1px solid #fbbf2440;color:var(--amber)}.skills-block{display:flex;flex-direction:column;gap:20px}.skill-row-label{color:var(--ink2);font-size:11px;font-weight:600;letter-spacing:1.5px;margin-bottom:10px;text-transform:uppercase}.skill-tags{display:flex;flex-wrap:wrap;gap:6px}.skill-tag{background:var(--bg3);border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:default;font-size:12px;font-weight:500;padding:5px 13px;transition:border-color .2s,background .2s}.skill-tag:hover{background:var(--green-dim);border-color:var(--green)}@media(max-width:768px){.about-grid{gap:40px;grid-template-columns:1fr}}@media(max-width:480px){.about-text p{font-size:14px}}.contact-section{padding:80px 0 100px}.contact-box{grid-gap:60px;align-items:center;background:var(--bg2);border:1px solid var(--line);border-radius:16px;display:grid;gap:60px;grid-template-columns:1fr 1fr;padding:64px 56px}.contact-left h2{color:var(--ink);font-size:clamp(32px,4vw,52px);font-weight:600;letter-spacing:-2px;line-height:1.05;margin-bottom:16px}.contact-left h2 span{color:var(--green)}.contact-left p{color:var(--ink);font-size:14px;font-weight:400;line-height:1.75;margin-bottom:24px;opacity:.75}.contact-links{display:flex;flex-direction:column;gap:2px}.clink{align-items:center;border:1px solid var(--line);border-radius:10px;color:var(--ink2);display:flex;justify-content:space-between;margin-bottom:8px;padding:16px 20px;text-decoration:none;transition:border-color .2s,color .2s,background .2s}.clink:hover{background:var(--bg3);border-color:var(--green);color:var(--ink)}.clink-label{color:var(--ink3);font-size:11px;margin-bottom:2px}.clink-name{color:inherit;font-size:15px;font-weight:500}.clink-arrow{font-size:16px;opacity:.4;transition:opacity .2s,transform .2s}.clink:hover .clink-arrow{opacity:1;transform:translate(3px,-3px)}@media(max-width:768px){.contact-box{gap:36px;grid-template-columns:1fr;padding:40px 32px}}@media(max-width:480px){.contact-box{padding:32px 20px}.contact-left h2{font-size:36px}}footer{border-top:1px solid var(--line);padding:24px 32px}.footer-inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1100px}.footer-inner span{color:var(--ink3);font-size:12px}@media(max-width:480px){footer{padding:20px 16px}.footer-inner{align-items:flex-start;flex-direction:column;gap:4px}}
/*# sourceMappingURL=main.dc631361.css.map*/