@import "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;0,14..32,900;1,14..32,400&family=Space+Mono:wght@400;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#07101f;--card-bg:#0d1b30;--card-hover:#112038;--border:#94a3b814;--border-h:#38bdf838;--acc:#38bdf8;--acc-dim:#38bdf814;--light:#e2e8f0;--text:#cbd5e1;--secondary:#b7c4d6;--muted:#a3b2c7;--green:#4ade80;--amber:#fbbf24;--purple:#818cf8}html,body{background:#07101f}html{scroll-behavior:smooth}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#38bdf82e;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#38bdf852}.portfolio{height:100vh;color:var(--text);background:radial-gradient(#94a3b809 1px,#0000 1px) 0 0/26px 26px;font-family:Inter,sans-serif;line-height:1.6;display:flex;position:relative;overflow:hidden}.portfolio:before{content:"";background:radial-gradient(640px circle at var(--mx,-9999px) var(--my,-9999px), #38bdf811, transparent 52%);pointer-events:none;z-index:1;position:fixed;inset:0}.amb-tr{pointer-events:none;z-index:0;background:radial-gradient(#818cf80b 0%,#0000 65%);width:52vw;height:52vh;position:fixed;top:-18%;right:-8%}.amb-bl{pointer-events:none;z-index:0;background:radial-gradient(#38bdf80a 0%,#0000 65%);width:46vw;height:46vh;position:fixed;bottom:-22%;left:-8%}.sidebar{z-index:2;background:#07101fb8;border-right:1px solid #38bdf81a;flex-direction:column;flex-shrink:0;justify-content:space-between;width:460px;height:100vh;padding:96px 48px 80px 130px;display:flex;position:relative}.lang-toggle{align-items:center;gap:6px;display:flex;position:absolute;top:36px;right:36px}.lang-btn{letter-spacing:.1em;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px 2px;font-family:Space Mono,monospace;font-size:.68rem;font-weight:700;transition:color .2s}.lang-btn.on{color:var(--acc)}.lang-btn:hover:not(.on){color:var(--secondary)}.lang-sep{color:#94a3b833;-webkit-user-select:none;user-select:none;font-size:.8rem}.p-name{letter-spacing:-.035em;background:linear-gradient(140deg,#e2e8f0 0% 42%,#7dd3fc 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:14px;font-size:3.3rem;font-weight:900;line-height:1.06}.p-role{color:var(--acc);letter-spacing:.01em;margin-bottom:18px;font-size:1.1rem;font-weight:500}.p-tagline{color:var(--muted);max-width:280px;font-size:.95rem;line-height:1.85}.status-badge{color:var(--green);letter-spacing:.02em;background:#4ade800d;border:1px solid #4ade8033;border-radius:20px;align-items:center;gap:9px;width:fit-content;margin-top:22px;padding:7px 14px;font-size:.75rem;font-weight:500;display:inline-flex}.pulse-ring{flex-shrink:0;width:8px;height:8px;position:relative}.pulse-ring:before,.pulse-ring:after{content:"";background:var(--green);border-radius:50%;position:absolute;inset:0}.pulse-ring:before{opacity:.55;animation:1.8s cubic-bezier(0,0,.2,1) infinite ping}@keyframes ping{0%{opacity:.55;transform:scale(1)}75%,to{opacity:0;transform:scale(2.2)}}nav{flex-direction:column;gap:2px;margin-top:52px;display:flex}.nav-item{cursor:pointer;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:16px;padding:9px 10px 9px 0;font-size:.72rem;font-weight:700;transition:color .2s;display:flex}.nav-item:hover{color:var(--secondary)}.nav-item.active{color:var(--light)}.nav-line{background:currentColor;flex-shrink:0;width:24px;height:1px;transition:width .25s;display:block}.nav-item.active .nav-line{background:var(--acc);width:56px}.nav-item:hover:not(.active) .nav-line{width:40px}.socials{align-items:center;gap:20px;display:flex}.social-link{color:var(--muted);align-items:center;transition:color .2s,transform .2s;display:flex}.social-link:hover{color:var(--acc);transform:translateY(-3px)}.p-main{z-index:2;background:#07101fa6;flex:1;height:100vh;padding:96px 160px 128px 110px;position:relative;overflow-y:auto}.p-section{opacity:1;margin-bottom:80px;transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);transform:none}.p-section.revealed{opacity:1;transform:translateY(0)}.p-section:first-child{transition-delay:50ms}.p-section:nth-child(2){transition-delay:.1s}.p-section:nth-child(3){transition-delay:.15s}.p-section:nth-child(4){transition-delay:.2s}.p-section:nth-child(5){transition-delay:.25s}.section-label{letter-spacing:.18em;text-transform:uppercase;color:var(--secondary);align-items:center;gap:14px;margin-bottom:36px;font-size:.7rem;font-weight:700;display:flex}.section-label:before{content:"";background:var(--acc);border-radius:50%;flex-shrink:0;width:4px;height:4px;box-shadow:0 0 6px #38bdf899}.section-label:after{content:"";background:#94a3b817;flex:1;height:1px}.about-p{color:var(--secondary);margin-bottom:20px;font-size:1.08rem;line-height:1.9}.about-p:last-child{margin-bottom:0}.about-p strong{color:var(--text);font-weight:600}.about-hi{color:var(--acc);font-weight:500}.exp-list{flex-direction:column;gap:2px;display:flex}.exp-item{cursor:default;border:1px solid #0000;border-radius:10px;grid-template-columns:44px 1fr;align-items:start;gap:0 16px;padding:22px 18px;transition:background .2s,border-color .2s,opacity .2s;display:grid}.exp-item:hover{border-color:var(--border);background:#38bdf808}.exp-logo{padding-top:2px}.exp-period{color:var(--muted);letter-spacing:.04em;white-space:normal;padding-top:5px;font-family:Space Mono,monospace;font-size:.64rem;line-height:1.5}.exp-role{color:var(--text);font-size:1.02rem;font-weight:600;transition:color .2s}.exp-item:hover .exp-role{color:var(--acc)}.exp-org{color:var(--muted);margin:4px 0 10px;font-size:.85rem}.exp-desc{color:var(--muted);font-size:.92rem;line-height:1.82}.resume-link{color:var(--text);cursor:pointer;align-items:center;gap:8px;margin:20px 18px 0;font-size:.88rem;font-weight:700;text-decoration:none;transition:color .2s,gap .2s;display:inline-flex}.resume-link:hover{color:var(--acc);gap:14px}.proj-list{flex-direction:column;gap:16px;display:flex}.proj-card{background:var(--card-bg);border:1px solid var(--border);cursor:default;border-radius:14px;transition:border-color .25s,background .25s,transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,opacity .2s;position:relative;overflow:hidden}.proj-card.featured{background:linear-gradient(145deg,#0e1b30 0%,#0b1626 100%);border-color:#38bdf821}.proj-card:before{content:"";opacity:0;z-index:2;background:linear-gradient(90deg,#0000,#38bdf873,#0000);height:1px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.proj-card:hover{background:var(--card-hover);border-color:#38bdf833;transform:translateY(-4px);box-shadow:0 28px 56px #020816a6,0 0 0 1px #38bdf812}.proj-card.featured:hover{border-color:#38bdf847}.proj-card:hover:before{opacity:1}.proj-image-wrap{background:#050c17;width:100%;height:220px;position:relative;overflow:hidden}.proj-image-wrap:after{content:"";pointer-events:none;z-index:1;background:linear-gradient(#0000,#00000026);height:30%;position:absolute;bottom:0;left:0;right:0}.proj-image{object-fit:cover;width:100%;height:100%;transition:transform .6s;display:block}.proj-card:hover .proj-image{transform:scale(1.04)}.proj-content{padding:24px 28px}.proj-sub{letter-spacing:.12em;text-transform:uppercase;color:var(--acc);opacity:.8;margin-bottom:10px;font-family:Space Mono,monospace;font-size:.62rem}.proj-title{color:var(--light);letter-spacing:-.015em;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;font-size:1.18rem;font-weight:700;transition:color .2s;display:flex}.proj-card:hover .proj-title{color:var(--acc)}.proj-desc{color:var(--muted);margin-bottom:16px;font-size:.95rem;line-height:1.75}.badge-progress{letter-spacing:.1em;text-transform:uppercase;color:var(--amber);background:#fbbf240f;border:1px solid #fbbf242e;border-radius:20px;padding:4px 10px;font-family:Space Mono,monospace;font-size:.58rem;font-weight:700}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{color:var(--acc);letter-spacing:.03em;white-space:normal;background:#38bdf80f;border:1px solid #38bdf81f;border-radius:20px;align-items:center;gap:6px;padding:5px 11px;font-family:Space Mono,monospace;font-size:.61rem;transition:background .2s,border-color .2s;display:inline-flex}.proj-card:hover .tag{background:#38bdf81a;border-color:#38bdf833}.tag-icon{object-fit:contain;flex-shrink:0;width:12px;height:12px}.proj-links{gap:24px;margin-top:22px;display:flex}.proj-link{color:var(--text);align-items:center;gap:7px;font-size:.86rem;font-weight:600;transition:color .2s,gap .2s;display:inline-flex}.proj-link:hover{color:var(--acc);gap:11px}.proj-link svg{flex-shrink:0;width:16px;height:16px}.skill-categories{flex-direction:column;gap:30px;display:flex}.skill-cat-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin-bottom:12px;font-family:Space Mono,monospace;font-size:.62rem;font-weight:700;display:flex}.skill-cat-label:after{content:"";background:#94a3b812;flex:1;height:1px}.skills-grid{flex-wrap:wrap;gap:9px;display:flex}.skill{color:var(--secondary);border:1px solid var(--border);cursor:default;background:#ffffff05;border-radius:8px;align-items:center;padding:8px 16px;font-size:.88rem;transition:background .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s;display:inline-flex}.skill:hover{color:var(--light);background:#38bdf814;border-color:#38bdf838;transform:translateY(-2px);box-shadow:0 4px 16px #38bdf817}.contact-box{border:1px solid var(--border);text-align:center;background:linear-gradient(145deg, var(--card-bg) 0%, #09131f 100%);border-radius:16px;margin-top:80px;padding:52px 44px;position:relative;overflow:hidden}.contact-box:before{content:"";pointer-events:none;background:radial-gradient(#38bdf812 0%,#0000 70%);width:420px;height:260px;position:absolute;top:-80px;left:50%;transform:translate(-50%)}.contact-box:after{content:"";pointer-events:none;background:radial-gradient(circle,#818cf80b 0%,#0000 70%);width:240px;height:240px;position:absolute;bottom:-60px;right:-40px}.contact-title{color:var(--light);letter-spacing:-.025em;z-index:1;margin-bottom:12px;font-size:1.55rem;font-weight:800;position:relative}.contact-sub{color:var(--muted);z-index:1;max-width:380px;margin-bottom:30px;margin-left:auto;margin-right:auto;font-size:.88rem;line-height:1.75;position:relative}.contact-btn{color:var(--acc);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;z-index:1;background:#38bdf80f;border:1px solid #38bdf859;border-radius:8px;align-items:center;gap:8px;padding:14px 34px;font-family:Inter,sans-serif;font-size:.78rem;font-weight:700;text-decoration:none;transition:background .25s,border-color .25s,transform .25s,box-shadow .25s;display:inline-flex;position:relative}.contact-btn:hover{background:#38bdf821;border-color:#38bdf88c;transform:translateY(-2px);box-shadow:0 8px 28px #38bdf821}@media (width<=1180px){.sidebar{width:360px;padding:72px 36px 56px 56px}.p-main{padding:72px 64px 96px 56px}.p-name{font-size:2.6rem}.proj-image-wrap{height:220px}}@media (width<=880px){.portfolio{flex-direction:column;height:auto;min-height:100vh;overflow:visible}.sidebar{background:#07101f8c;border-bottom:1px solid #38bdf814;border-right:none;flex-direction:column;justify-content:flex-start;gap:22px;width:100%;height:auto;padding:56px 28px 24px}.p-main{background:#07101f80;width:100%;height:auto;padding:40px 28px 72px;overflow-y:visible}.lang-toggle{top:20px;right:24px}.p-name{margin-bottom:8px;font-size:2.1rem}.p-tagline{max-width:460px}nav{margin-top:24px}.socials{margin-top:4px}.p-section{margin-bottom:72px}.proj-image-wrap{height:200px}.proj-content{padding:22px}.exp-item{grid-template-columns:40px 1fr;grid-template-areas:"logo period""content content";row-gap:10px;padding:16px 12px}.exp-logo{grid-area:logo}.exp-period{grid-area:period;padding-top:8px}.exp-item>div:nth-child(3){grid-area:content}.contact-box{margin-top:64px;padding:36px 24px}.amb-tr,.amb-bl{display:none}}@media (width<=480px){.sidebar{padding:48px 20px 28px}.p-name{font-size:1.85rem}.p-role{font-size:1rem}.p-tagline{font-size:.9rem}.status-badge{padding:6px 12px;font-size:.7rem}nav{margin-top:26px}.nav-item{gap:12px;font-size:.66rem}.p-main{padding:32px 16px 64px}.section-label{margin-bottom:26px;font-size:.66rem}.about-p{font-size:1rem}.p-section{margin-bottom:56px}.exp-role{font-size:.96rem}.exp-org{font-size:.82rem}.exp-desc{font-size:.88rem}.proj-image-wrap{height:170px}.proj-content{padding:18px 16px}.proj-title{font-size:1.06rem}.proj-desc{font-size:.9rem}.proj-links{gap:18px}.contact-box{padding:28px 16px}.contact-title{font-size:1.25rem}.contact-btn{padding:12px 24px;font-size:.74rem}.skills-grid{gap:7px}.skill{padding:7px 13px;font-size:.83rem}}.p-main{min-width:0}.sidebar-resume{color:var(--text);align-items:center;gap:8px;margin-top:20px;font-size:.9rem;font-weight:600;display:inline-flex}.sidebar-resume:hover{color:var(--acc)}.org-badge{border:1px solid var(--border-h);background:var(--card-bg);width:42px;height:42px;color:var(--acc);border-radius:8px;place-items:center;font-family:Space Mono,monospace;font-size:.65rem;font-weight:700;display:grid}.org-badge.abb{color:#c4b5fd}.exp-item{grid-template-areas:"logo period""logo content";row-gap:6px}.exp-logo{grid-area:logo}.exp-period{grid-area:period}.exp-item>div:nth-child(3){grid-area:content}.exp-org{color:var(--secondary)}.project-intro{color:var(--muted);margin:-12px 0 24px;font-size:.94rem;line-height:1.7}.proj-contribution{color:var(--text);border-left:2px solid #38bdf866;margin:0 0 20px;padding:0 0 0 14px;font-size:.92rem;line-height:1.75}.proj-contribution strong{color:var(--acc);margin-bottom:4px;font-size:.75rem;font-weight:600;display:block}.dimension-cover{border-bottom:1px solid var(--border);background:radial-gradient(at 95% 0,#2dd4bf2e,#0000 65%),linear-gradient(135deg,#10293b,#0c172b);min-height:190px;padding:32px 28px 28px}.dimension-name{letter-spacing:-.05em;color:#f1f5f9;font-size:clamp(2rem,4vw,3.2rem);font-weight:800;line-height:1.2}.dimension-name>span{color:#5eead4}.dimension-metrics{gap:32px;margin-top:22px;display:flex}.dimension-metrics>span{color:#cbd5e1;font-size:.72rem}.dimension-metrics strong{color:#99f6e4;letter-spacing:-.03em;font-size:1.2rem;display:block}.skill-group{margin-bottom:24px}.skip-link{z-index:100;background:var(--acc);color:var(--bg);border-radius:8px;padding:12px 20px;font-family:Inter,sans-serif;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}a:focus-visible,button:focus-visible{outline:2px solid var(--acc);outline-offset:5px;border-radius:4px}#main-content:focus{outline:none}.proj-links{flex-wrap:wrap}@media (width<=880px){.exp-item{grid-template-areas:"logo period""content content"}nav{flex-flow:wrap;gap:8px 20px}.nav-line{display:none}.sidebar-resume{margin-top:16px}.dimension-cover{min-height:170px}}@media (width<=480px){.dimension-cover{padding:24px 18px}.dimension-metrics{gap:20px}.dimension-metrics>span{font-size:.64rem}.dimension-metrics strong{font-size:1rem}.proj-contribution{font-size:.88rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
