@import url(https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap);body{-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f7f4;--bg-card:#fff;--text-primary:#0f1117;--text-secondary:#5a6072;--text-muted:#9099b0;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-light:#eff6ff;--border:#e4e7ef;--border-hover:#c7cde0;--success:#16a34a;--badge-bg:#dcfce7;--badge-text:#15803d;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 3px #0000000f,0 1px 2px #0000000a;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 12px 40px #0000001a;--nav-height:64px;--font-display:"sora",sans-serif;--font-mono:"JetBrains Mono",monospace}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;background-color:#f8f7f4;background-color:var(--bg);color:#0f1117;color:var(--text-primary);font-family:sora,sans-serif;font-family:var(--font-display);line-height:1.6}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.page-wrapper{display:flex;flex-direction:column;min-height:100vh;padding-top:64px;padding-top:var(--nav-height)}.navbar{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#f8f7f4d9;border-bottom:1px solid #0000;height:64px;height:var(--nav-height);left:0;position:fixed;right:0;top:0;transition:border-color .3s,box-shadow .3s;z-index:100}.navbar--scrolled{border-color:#e4e7ef;border-color:var(--border);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;box-shadow:var(--shadow-sm)}.navbar__inner{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:1100px;padding:0 2rem}.navbar__logo{color:#0f1117;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:1.25rem;font-weight:600;letter-spacing:-.5px}.navbar__logo-dot{color:#2563eb;color:var(--accent)}.navbar__links{align-items:center;display:flex;gap:.25rem;list-style:none}.navbar__link{border-radius:6px;border-radius:var(--radius-sm);color:#5a6072;color:var(--text-secondary);font-size:.9rem;font-weight:500;padding:.4rem .85rem;transition:color .2s,background .2s}.navbar__link:hover{background:#e4e7ef;background:var(--border);color:#0f1117;color:var(--text-primary)}.navbar__link--active{background:#eff6ff;background:var(--accent-light);color:#2563eb;color:var(--accent)}.navbar__cta{background:#2563eb;background:var(--accent);border-radius:6px;border-radius:var(--radius-sm);color:#fff;font-size:.875rem;font-weight:600;margin-left:.5rem;padding:.45rem 1.1rem;transition:background .2s,transform .15s}.navbar__cta:hover{background:#1d4ed8;background:var(--accent-hover);transform:translateY(-1px)}.navbar__burger{background:none;border:none;cursor:pointer;display:none;flex-direction:none;gap:5px;padding:4px}.navbar__burger span{background:#0f1117;background:var(--text-primary);border-radius:2px;display:block;height:2px;transition:transform .3s,opacity .3s;width:22px}.navbar__burger--open span:first-child{transform:translateY(7px) rotate(45deg)}.navbar__burger--open span:nth-child(2){opacity:0}.navbar__burger--open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.section-header{margin:0 auto 3rem;max-width:1100px;padding:0 2rem}.section-title{color:#0f1117;color:var(--text-primary);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem}.section-subtitle{color:#5a6072;color:var(--text-secondary);font-size:1.05rem}.btn{align-items:center;border:2px solid #0000;border-radius:6px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-family:sora,sans-serif;font-family:var(--font-display);font-size:.9rem;font-weight:600;gap:6px;padding:.7rem 1.5 rem;text-decoration:none;transition:all .2s}.btn--primary{background:#2563eb;background:var(--accent);border-color:#2563eb;border-color:var(--accent);color:#fff}.btn--primary:hover{background:#1d4ed8;background:var(--accent-hover);border-color:#1d4ed8;border-color:var(--accent-hover);box-shadow:0 4px 12px #2563eb59;transform:translateY(-2px)}.btn--outline{background:#0000;border-color:#c7cde0;border-color:var(--border-hover);color:#0f1117;color:var(--text-primary)}.btn--outline:hover{border-color:#2563eb;border-color:var(--accent);color:#2563eb;color:var(--accent);transform:translateY(-2px)}.btn--sm{font-size:.82rem;padding:.45rem 1rem}.btn--full{justify-content:center;width:100%}.hero{align-items:center;display:flex;gap:4rem;margin:0 auto;max-width:1100px;padding:6rem 2rem 3rem}.hero,.hero__content{flex:1 1}.hero__badge{align-items:center;background:#dcfce7;background:var(--badge-bg);border-radius:999px;color:#15803d;color:var(--badge-text);display:inline-flex;font-size:.8rem;font-weight:600;gap:6px;margin-bottom:1.25rem;padding:.3rem .85rem}.hero__badge:before{animation:pulse 2s infinite;background:#16a34a;background:var(--success);border-radius:50%;content:"";display:inline-block;height:7px;width:7px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hero__title{color:#0f1117;color:var(--text-primary);font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;letter-spacing:-.04em;line-height:1.15;margin-bottom:1.1rem}.hero__name{color:#2563eb;color:var(--accent)}.hero__subtitle{color:#5a6072;color:var(--text-secondary);font-size:1.1rem;line-height:1.7;margin-bottom:2rem;max-width:480px}.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem}.hero__avatar{flex-shrink:0}.hero__avatar-ring{background:linear-gradient(135deg,#eff6ff,#e0e7ff);background:linear-gradient(135deg,var(--accent-light),#e0e7ff);border:2px solid #e4e7ef;border:2px solid var(--border);border-radius:50%;height:260px;width:260px}.hero__avatar-inner,.hero__avatar-ring{align-items:center;display:flex;justify-content:center}.hero__avatar-inner{height:200px;width:200px}.hero__avatar-inner svg{height:140px;width:160px}.techstack{border-top:1px solid #e4e7ef;border-top:1px solid var(--border);margin:0 auto 3rem;max-width:1100px;padding:2rem 2rem 1.5rem}.techstack__label{color:#9099b0;color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.1em;margin-bottom:1rem;text-transform:uppercase}.techstack__icons{display:flex;flex-wrap:wrap;gap:.75}.techstack__item{align-items:center;background:#fff;background:var(--bg-card);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-md);cursor:default;display:flex;gap:8px;padding:.5rem .9rem;transition:border-color .2s,box-shadow .2s,transform .2s}.techstack__item:hover{border-color:#c7cde0;border-color:var(--border-hover);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);transform:translateY(-2px)}.techstack__item-label{color:#5a6072;color:var(--text-secondary);font-size:.85rem;font-weight:500}.projects{flex:1 1;margin:0 auto;max-width:1100px;padding:4rem 2rem 2rem}.projects__grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.project-card{background:#fff;background:var(--bg-card);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .25s,transform .25s,border-color .25s}.project-card:hover{border-color:#c7cde0;border-color:var(--border-hover);box-shadow:0 4px 16px #00000014;box-shadow:var(--shadow-md);transform:translateY(-4px)}.project-card__image{background:#eff6ff;background:var(--accent-light);height:200px;overflow:hidden;width:100%}.project-card__image img{height:100%;object-fit:cover;transition:transform .4s;width:100%}.project-card:hover .project-card__image img{transform:scale(1.04)}.project-card__placeholder{align-items:center;background:#eff6ff;background:var(--accent-light);color:#2563eb;color:var(--accent);display:flex;font-size:3rem;font-weight:700;height:100%;justify-content:center;width:100%}.project-card__body{padding:1.25rem}.project-card__title{color:#0f1117;color:var(--text-primary);font-size:1.1rem;font-weight:600;margin-bottom:.4rem}.project-card__desc{color:#5a6072;color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin-bottom:1rem}.project-card__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.1rem}.tag{background:#eff6ff;background:var(--accent-light);border-radius:999px;color:#2563eb;color:var(--accent);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.75rem;font-weight:600;padding:.2rem .65rem}.project-card__links{display:flex;gap:.6rem}.about{flex:1 1;margin:0 auto;max-width:1100px;padding:4rem 2rem 2rem}.about__grid{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:1fr 1fr}.about__avatar-placeholder{align-items:center;background:#eff6ff;background:var(--accent-light);color:#2563eb;color:var(--accent);display:flex;font-size:1.5rem;font-weight:700;height:80px;justify-content:center;width:80px}.about__avatar-img,.about__avatar-placeholder{border:2px solid #e4e7ef;border:2px solid var(--border);border-radius:50%;margin-bottom:1rem}.about__avatar-img{height:150px;object-fit:cover;width:150px}.about__name{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.25rem}.about__role{color:#9099b0;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.9rem;margin-bottom:1.25rem}.about__text{color:#5a6072;color:var(--text-secondary);font-size:.95rem;line-height:1.75;margin-bottom:.85rem}.about__contacts{display:flex;flex-direction:column;gap:.6rem;margin-top:1.5rem}.about__contact-link{align-items:center;color:#5a6072;color:var(--text-secondary);display:flex;font-size:.9rem;gap:10px;transition:color .2s}.about__contact-link:hover{color:#2563eb;color:var(--accent)}.about__skills-panel{display:flex;flex-direction:column;gap:1.5rem}.about__skills-title{color:#0f1117;color:var(--text-primary);font-size:1rem;font-weight:600}.about__skills-grid{display:flex;flex-wrap:wrap;gap:.6rem}.skill-chip{align-items:center;background:#fff;background:var(--bg-card);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-md);color:#5a6072;color:var(--text-secondary);display:flex;font-size:.85rem;font-weight:500;gap:7px;padding:.45rem .9rem;transition:border-color .2s,color .2s}.skill-chip:hover{border-color:#2563eb;border-color:var(--accent);color:#2563eb;color:var(--accent)}.about__card{background:#fff;background:var(--bg-card);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius-lg);display:flex;gap:2rem;padding:1.5rem}.about__stat{display:flex;flex-direction:column}.about__stat-number{color:#2563eb;color:var(--accent);font-size:2rem;font-weight:700;letter-spacing:-.03em}.about__stat-label{color:#9099b0;color:var(--text-muted);font-size:.8rem;margin-top:.15rem}.contact{flex:1 1;margin:0 auto;max-width:1100px;padding:4rem 2rem 2rem}.contact__grid{grid-gap:3rem;align-items:start;display:grid;gap:3rem;grid-template-columns:1fr 1.5fr}.contact__info-title{color:#0f1117;color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:1.5rem}.contact__detail{align-items:flex-start;color:#5a6072;color:var(--text-secondary);display:flex;gap:1rem;margin-bottom:1.25rem;transition:color .2s}.contact__detail:hover,.contact__icon-wrap{color:#2563eb;color:var(--accent)}.contact__icon-wrap{align-items:center;background:#eff6ff;background:var(--accent-light);border-radius:10px;border-radius:var(--radius-md);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.contact__detail-label{color:#9099b0;color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.06em;margin-bottom:2px;text-transform:uppercase}.contact__detail-value{font-size:.9rem;font-weight:500}.contact__form{background:#fff;background:var(--bg-card);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius-lg);gap:1.25rem;padding:2rem}.contact__form,.form-group{display:flex;flex-direction:column}.form-group{gap:.4rem}.form-group label{color:#0f1117;color:var(--text-primary);font-size:.85rem;font-weight:600}.form-group input,.form-group textarea{background:#f8f7f4;background:var(--bg);border:1.5px solid #e4e7ef;border:1.5px solid var(--border);border-radius:6px;border-radius:var(--radius-sm);color:#0f1117;color:var(--text-primary);font-family:sora,sans-serif;font-family:var(--font-display);font-size:.9rem;outline:none;padding:.7rem .9rem;resize:vertical;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group textarea:focus{border-color:#2563eb;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.form-group input::placeholder,.form-group textarea::placeholder{color:#9099b0;color:var(--text-muted)}.contact__success{background:#dcfce7;background:var(--badge-bg);border-radius:6px;border-radius:var(--radius-sm);color:#15803d;color:var(--badge-text);font-size:.875rem;font-weight:500;padding:.75rem 1rem}.site-footer{border-top:1px solid #e4e7ef;border-top:1px solid var(--border);color:#9099b0;color:var(--text-muted);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:.82rem;margin-top:auto;padding:2rem;text-align:center}@media (max-width:900px){.hero{flex-direction:column-reverse;gap:2rem;padding:3rem 1.5rem 2rem;text-align:center}.hero__subtitle{max-width:100%}.hero__actions{justify-content:center}.hero__avatar-ring{height:200px;width:200px}.about__grid,.contact__grid{grid-template-columns:1fr}}@media (max-width:640px){.navbar__links{background:#f8f7f4;background:var(--bg);border-bottom:1px solid #e4e7ef;border-bottom:1px solid var(--border);box-shadow:0 4px 16px #00000014;box-shadow:var(--shadow-md);display:none;flex-direction:column;gap:.25rem;left:0;padding:1rem;position:absolute;right:0;top:64px;top:var(--nav-height)}.navbar__links--open{display:flex}.navbar__cta,.navbar__link{margin:0;text-align:center;width:100%}.navbar__burger{display:flex}.about,.contact,.projects,.section-header,.techstack{padding-left:1.25rem;padding-right:1.25rem}.projects__grid{grid-template-columns:1fr}.contact__form{padding:1.25rem}}
/*# sourceMappingURL=main.b57ae128.css.map*/