:root{--primary: #0058be;--primary-hover: #2170e4;--bg: #f9f9f9;--surface: #ffffff;--surface-low: #f3f3f3;--text-heading: #1a1c1c;--text-body: #424754;--text-muted: #727785;--border: #c2c6d6;--border-hover: #0058be;--font-display: "Syne", sans-serif;--font-body: "Inter", sans-serif;--font-mono: "JetBrains Mono", monospace;--max-w: 1100px;--section-gap: 120px;--gutter: 24px;--radius-sm: 3px;--radius: 6px;--radius-lg: 8px;--radius-pill: 9999px;--ease-spring: cubic-bezier(.16, 1, .3, 1);--ease-out: cubic-bezier(0, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text-body);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}img{display:block;max-width:100%}.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter)}section{padding:var(--section-gap) 0}.fade-up{opacity:0;transform:translateY(36px);transition-property:opacity,transform;transition-duration:.72s;transition-timing-function:var(--ease-spring)}.fade-up.in-view{opacity:1;transform:translateY(0)}.fade-in{opacity:0;transition:opacity .6s var(--ease-out)}.fade-in.in-view{opacity:1}.nav{position:fixed;top:0;left:0;right:0;z-index:100;border-bottom:1px solid transparent;transition:background .3s,border-color .3s,backdrop-filter .3s}.nav.scrolled{background:#f9f9f9e0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.nav-logo{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text-heading);letter-spacing:-.01em}.nav-links{display:flex;align-items:center;gap:2rem;list-style:none}.nav-links a{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-body);letter-spacing:.02em;position:relative;transition:color .15s}.nav-links a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--primary);transition:width .25s var(--ease-spring)}.nav-links a:hover{color:var(--primary)}.nav-links a:hover:after{width:100%}.nav-resume{font-family:var(--font-mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;padding:.5rem 1rem;background:var(--primary);color:#fff;border-radius:var(--radius);transition:background .15s,transform .15s;display:inline-block}.nav-resume:hover{background:var(--primary-hover);transform:translateY(-1px)}.hero{padding-top:144px;padding-bottom:var(--section-gap);min-height:100svh;display:flex;align-items:center}.hero-status{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted);margin-bottom:2rem;animation:fadeUp .6s var(--ease-spring) both}.hero-dot{width:8px;height:8px;background:#22c55e;border-radius:50%;animation:pulse 2.4s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.hero-title{font-family:var(--font-display);font-size:clamp(2.75rem,6.5vw,4.25rem);font-weight:700;line-height:1.08;letter-spacing:-.03em;color:var(--text-heading);margin-bottom:1.5rem;animation:fadeUp .7s .08s var(--ease-spring) both}.hero-name{position:relative;display:inline;color:var(--primary)}.hero-name:after{content:"";position:absolute;bottom:5px;left:0;width:0;height:3px;background:var(--primary);border-radius:2px;animation:underline-slide .8s .85s var(--ease-spring) forwards}@keyframes underline-slide{to{width:100%}}.hero-sub{font-size:clamp(1rem,2.2vw,1.1875rem);font-weight:500;color:var(--text-body);line-height:1.55;max-width:520px;margin-bottom:3rem;animation:fadeUp .7s .18s var(--ease-spring) both}.hero-skill-rows{display:flex;flex-direction:column;gap:.875rem;animation:fadeUp .7s .28s var(--ease-spring) both}.hero-skill-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.hero-skill-label{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);min-width:80px}.hero-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{font-family:var(--font-mono);font-size:.75rem;padding:.25rem .625rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-body);transition:border-color .15s,color .15s;display:inline-flex;align-items:center;gap:.35rem}.tag:hover{border-color:var(--primary);color:var(--primary)}.tag-icon{font-size:.875rem;display:flex;align-items:center;flex-shrink:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.skills{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.section-label{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.625rem}.section-title{font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--text-heading);letter-spacing:-.02em;margin-bottom:3.5rem}.skills-categories{display:flex;flex-direction:column;gap:3rem}.skills-cat{display:grid;grid-template-columns:110px 1fr;gap:2rem;align-items:start}.skills-cat-label{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding-top:1rem}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.75rem}.skill-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .2s,transform .25s var(--ease-spring),background .2s}.skill-card:hover{border-color:var(--primary);transform:translateY(-4px);background:#fff}.skill-icon{font-size:1.875rem;color:var(--text-muted);display:flex;align-items:center;transition:color .2s}.skill-card:hover .skill-icon{color:var(--primary)}.skill-name{font-family:var(--font-mono);font-size:.625rem;font-weight:500;color:var(--text-body);text-align:center;letter-spacing:.02em}.about-grid{display:grid;grid-template-columns:200px 1fr;gap:5rem;align-items:start}.about-heading{font-family:var(--font-display);font-size:2rem;font-weight:600;letter-spacing:-.02em;color:var(--text-heading);position:sticky;top:88px}.about-body{display:flex;flex-direction:column;gap:1.5rem}.about-body p{font-size:1.0625rem;line-height:1.78;color:var(--text-body)}.achievements{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.achievements-grid{display:grid;grid-template-columns:200px 1fr;gap:5rem;align-items:start}.achievements-heading{font-family:var(--font-display);font-size:2rem;font-weight:600;letter-spacing:-.02em;color:var(--text-heading);position:sticky;top:88px}.achievements-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.achievement-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;display:flex;gap:1rem;align-items:flex-start;transition:border-color .2s,transform .25s var(--ease-spring)}.achievement-card:hover{border-color:var(--primary);transform:translateY(-3px)}.achievement-icon{width:38px;height:38px;border-radius:var(--radius);background:var(--surface-low);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:1.125rem;flex-shrink:0}.achievement-title{font-family:var(--font-display);font-size:.875rem;font-weight:600;color:var(--text-heading);margin-bottom:.25rem}.achievement-desc{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted);line-height:1.55}.projects{overflow:hidden}.projects-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem}.projects-nav{display:flex;gap:.5rem}.projects-nav-btn{width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--text-body);transition:border-color .15s,color .15s,background .15s}.projects-nav-btn:hover{border-color:var(--primary);color:var(--primary);background:#fff}.projects-scroll{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding-bottom:1rem;cursor:grab;scrollbar-width:none;-ms-overflow-style:none;-webkit-user-select:none;user-select:none}.projects-scroll::-webkit-scrollbar{display:none}.projects-scroll.dragging{cursor:grabbing;scroll-behavior:auto}.project-card{flex:0 0 340px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;scroll-snap-align:start;display:flex;flex-direction:column;transition:border-color .2s,transform .25s var(--ease-spring)}.project-card:hover{border-color:var(--primary);transform:translateY(-5px)}.project-thumb{height:175px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:2.25rem;font-weight:700;color:#ffffff2e;letter-spacing:-.02em;position:relative;overflow:hidden}.project-thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.35) 0%,transparent 60%)}.project-body{padding:1.375rem;display:flex;flex-direction:column;flex:1}.project-title{font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--text-heading);margin-bottom:.5rem}.project-desc{font-size:.875rem;color:var(--text-body);line-height:1.65;margin-bottom:1rem;flex:1}.project-tech{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:1.125rem}.project-tech-tag{font-family:var(--font-mono);font-size:.625rem;padding:.2rem .5rem;background:var(--surface-low);color:var(--text-muted);border-radius:var(--radius-sm)}.project-links{display:flex;gap:1.25rem}.project-link{font-family:var(--font-mono);font-size:.8125rem;color:var(--primary);display:inline-flex;align-items:center;gap:.3rem;transition:gap .15s,opacity .15s}.project-link:hover{gap:.5rem;opacity:.8}.github-cta{flex:0 0 260px;background:var(--text-heading);border:1px solid var(--text-heading);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2rem;scroll-snap-align:start;text-align:center;transition:transform .25s var(--ease-spring)}.github-cta:hover{transform:translateY(-5px)}.github-cta-icon{font-size:2.75rem;color:#fff}.github-cta-title{font-family:var(--font-display);font-size:1rem;font-weight:600;color:#fff}.github-cta-link{font-family:var(--font-mono);font-size:.8125rem;color:#ffffff8c;display:flex;align-items:center;gap:.375rem;transition:color .15s}.github-cta:hover .github-cta-link{color:#ffffffe6}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.contact-heading{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-.03em;color:var(--text-heading);margin-bottom:1rem}.contact-sub{font-size:1rem;color:var(--text-body);line-height:1.7;max-width:360px}.contact-email{font-family:var(--font-display);font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:600;color:var(--primary);display:block;margin-bottom:1.5rem;transition:color .15s}.contact-email:hover{color:var(--primary-hover)}.contact-socials{display:flex;gap:1.5rem}.social-link{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted);display:flex;align-items:center;gap:.375rem;transition:color .15s}.social-link:hover{color:var(--primary)}footer{border-top:1px solid var(--border);padding:2rem 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.footer-logo{font-family:var(--font-display);font-size:.875rem;font-weight:700;color:var(--text-heading)}.footer-copy{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted)}.footer-links{display:flex;gap:1.5rem}.footer-links a{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted);transition:color .15s}.footer-links a:hover{color:var(--primary)}@media (max-width: 768px){:root{--section-gap: 80px}.nav-links{display:none}.about-grid,.achievements-grid,.contact-grid{grid-template-columns:1fr;gap:2rem}.about-heading,.achievements-heading{position:static}.skills-cat{grid-template-columns:1fr;gap:1rem}.achievements-cards{grid-template-columns:1fr}.project-card{flex:0 0 288px}.github-cta{flex:0 0 220px}.footer-copy{display:none}}
