@import "https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--color-primary:#673de6;--color-primary-hover:#5731c9;--color-text:#16172a;--color-text-secondary:#5e6072;--color-text-tertiary:#9a9ab0;--color-bg:#fff;--color-bg-alt:#faf9fd;--color-border:#ececf4;--color-border-alt:#efeef5;--color-border-strong:#e0def0;--color-chip-bg:#f5f4fa;--color-chip-border:#eceaf4;--color-icon-bg:#f0ecfb;--color-success:#15824b;--color-success-bg:#e8f5ee;--color-dark-bg:#16172a;--color-dark-accent:#b9a4f5;--font-sans:"DM Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", monospace;--radius-pill:999px;--radius-lg:24px;--radius-md:18px;--radius-sm:14px;--shadow-cta:0 10px 28px #673de64d;--shadow-card-hover:0 22px 44px #16172a1a;--max-width:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--color-primary);color:#fff}a{color:inherit}img{max-width:100%;display:block}button{font-family:var(--font-sans)}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page{overflow-x:hidden}.container{max-width:var(--max-width);margin:0 auto;padding:0 28px}.eyebrow{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--color-primary);margin-bottom:18px;font-size:13px}.btn{border-radius:var(--radius-pill);cursor:pointer;border:none;align-items:center;gap:9px;font-weight:600;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-cta);padding:15px 30px;font-size:16px}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{color:var(--color-text);border:1.5px solid var(--color-border-strong);background:#fff;padding:14px 28px;font-size:16px}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}.nav{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border-alt);background:#ffffffd1;position:sticky;top:0}.nav__inner{justify-content:space-between;align-items:center;gap:24px;height:74px;display:flex}.nav__brand{align-items:center;gap:11px;text-decoration:none;display:flex}.nav__logo{background:var(--color-primary);color:#fff;letter-spacing:-.02em;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:700;display:flex;box-shadow:0 6px 16px #673de652}.nav__name{letter-spacing:-.02em;font-size:17px;font-weight:700}.nav__links{align-items:center;gap:30px;display:flex}.nav__link{color:#3a3b4a;font-size:15px;font-weight:500;text-decoration:none;transition:color .2s}.nav__link:hover{color:var(--color-primary)}.nav__lang{background:var(--color-chip-bg);border:1px solid var(--color-border-alt);border-radius:var(--radius-pill);font:600 13px var(--font-sans);color:var(--color-text);cursor:pointer;align-items:center;gap:6px;padding:7px 14px;transition:border-color .2s,color .2s;display:flex}.nav__lang:hover{border-color:var(--color-primary);color:var(--color-primary)}.nav__contact{background:var(--color-primary);color:#fff;border-radius:var(--radius-pill);padding:11px 22px;font-size:14.5px;font-weight:600;text-decoration:none;transition:background-color .2s;box-shadow:0 8px 22px #673de647}.nav__contact:hover{background:var(--color-primary-hover)}@media (width<=900px){.nav__links{gap:14px}.nav__link{display:none}}.hero{position:relative}.hero__glow{pointer-events:none;background:radial-gradient(circle,#673de61a,#0000 62%);width:900px;max-width:100%;height:520px;position:absolute;top:-120px;left:50%;transform:translate(-50%)}.hero__inner{text-align:center;padding:96px 28px 70px;position:relative}.hero__badge{background:var(--color-chip-bg);border:1px solid var(--color-border-alt);border-radius:var(--radius-pill);align-items:center;gap:9px;margin-bottom:30px;padding:8px 16px;display:inline-flex}.hero__badge-dot{background:var(--color-success);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #15824b24}.hero__badge-text{font:500 13px var(--font-sans);color:#3a3b4a}.hero__title{letter-spacing:-.035em;text-wrap:balance;max-width:900px;margin:0 auto 26px;font-size:74px;font-weight:700;line-height:1.04}.hero__sub{color:var(--color-text-secondary);text-wrap:pretty;max-width:600px;margin:0 auto 38px;font-size:20px;line-height:1.6}.hero__ctas{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.hero__stats{padding:20px 28px 70px}.hero__stats-inner{border-top:1px solid var(--color-border-alt);grid-template-columns:repeat(4,1fr);gap:24px;padding-top:36px;display:grid}.stat{text-align:center}.stat__value{letter-spacing:-.03em;color:var(--color-text);font-size:40px;font-weight:700}.stat__label{color:var(--color-text-secondary);margin-top:4px;font-size:14px}@media (width<=720px){.hero__title{font-size:44px}.hero__sub{font-size:17px}.hero__stats-inner{grid-template-columns:repeat(2,1fr);row-gap:28px}}.about{background:var(--color-bg-alt);border-top:1px solid var(--color-border-alt);border-bottom:1px solid var(--color-border-alt)}.about__inner{grid-template-columns:.85fr 1.15fr;align-items:center;gap:64px;padding:88px 28px;display:grid}.about__photo{aspect-ratio:1;border-radius:var(--radius-lg);border:1px solid var(--color-border-alt);background:repeating-linear-gradient(135deg,#f0eef8,#f0eef8 11px,#e9e6f4 11px 22px);justify-content:center;align-items:center;display:flex;overflow:hidden}.about__photo img{object-fit:cover;width:100%;height:100%}.about__title{letter-spacing:-.03em;margin:0 0 22px;font-size:40px;font-weight:700;line-height:1.12}.about__text{color:var(--color-text-secondary);margin:0 0 16px;font-size:17.5px;line-height:1.72}.about__text:last-of-type{margin-bottom:30px}.about__facts{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.about__cvs{flex-wrap:wrap;align-items:center;gap:22px;margin-top:28px;display:flex}.about__cvs .btn-secondary{box-shadow:none;padding:12px 24px;font-size:15px}.about__cv-link{color:var(--color-primary);align-items:center;gap:7px;font-size:15px;font-weight:600;text-decoration:none;transition:gap .2s;display:inline-flex}.about__cv-link:hover{gap:11px}.fact{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;padding:16px 18px}.fact__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-tertiary);margin-bottom:6px;font-size:11px}.fact__value{font-size:16px;font-weight:600}@media (width<=860px){.about__inner,.about__facts{grid-template-columns:1fr}}.skills{padding:90px 28px}.section-head{text-align:center;margin-bottom:54px}.section-head .eyebrow{justify-content:center}.section-title{letter-spacing:-.03em;margin:0;font-size:44px;font-weight:700;line-height:1.1}.skills__grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.skill-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;padding:26px 24px;transition:border-color .2s}.skill-card:hover{border-color:#d9cefa}.skill-card__icon{background:var(--color-icon-bg);border-radius:11px;justify-content:center;align-items:center;width:42px;height:42px;margin-bottom:18px;font-size:20px;display:flex}.skill-card__name{letter-spacing:-.01em;margin-bottom:16px;font-size:17px;font-weight:700}.skill-card__tools{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--color-chip-bg);border:1px solid var(--color-chip-border);color:#3a3b4a;border-radius:8px;padding:6px 12px;font-size:13.5px;font-weight:500}@media (width<=860px){.skills__grid{grid-template-columns:1fr}}.projects{background:var(--color-bg-alt);border-top:1px solid var(--color-border-alt);border-bottom:1px solid var(--color-border-alt)}.projects__inner{padding:90px 28px}.projects__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:38px;display:flex}.projects__title{max-width:520px}.projects__hint{color:var(--color-text-tertiary);margin:10px 0 0;font-size:14px}.projects__filters{flex-wrap:wrap;gap:9px;display:flex}.filter-chip{border-radius:var(--radius-pill);font:600 14px var(--font-sans);cursor:pointer;padding:9px 18px;transition:border-color .2s,color .2s,background-color .2s}.filter-chip--active{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.filter-chip--inactive{color:#3a3b4a;background:#fff;border:1px solid #e4e2ee}.filter-chip--inactive:hover{border-color:var(--color-primary);color:var(--color-primary)}.projects__grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.project-card{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;background:#fff;width:100%;padding:0;font-family:inherit;transition:transform .25s,box-shadow .25s;display:block;overflow:hidden}.project-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.project-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-5px)}.project-card__chart{border-bottom:1px solid var(--color-border-alt);background:linear-gradient(160deg,#f6f4fc,#efeaf9);justify-content:center;align-items:center;height:158px;display:flex;overflow:hidden}.project-card__chart--image{padding:0}.project-card__thumb{object-fit:cover;object-position:center 65%;width:100%;height:100%}.project-card__body{padding:22px 22px 24px}.project-card__cat{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--color-primary);margin-bottom:10px;font-size:11px}.project-card__title{letter-spacing:-.01em;margin-bottom:9px;font-size:18.5px;font-weight:700;line-height:1.25}.project-card__desc{color:var(--color-text-secondary);margin:0 0 16px;font-size:14.5px;line-height:1.6}.project-card__tags{flex-wrap:wrap;gap:7px;display:flex}.project-card__tag{background:var(--color-chip-bg);color:var(--color-text-secondary);border-radius:7px;padding:5px 11px;font-size:12.5px;font-weight:500}@media (width<=980px){.projects__grid{grid-template-columns:1fr 1fr}}@media (width<=640px){.projects__grid{grid-template-columns:1fr}}.experience{padding:90px 28px}.experience__inner{grid-template-columns:1fr 1.4fr;gap:64px;display:grid}.experience__intro{align-self:start;position:sticky;top:110px}.experience__title{letter-spacing:-.03em;margin:0 0 18px;font-size:42px;font-weight:700;line-height:1.1}.experience__sub{color:var(--color-text-secondary);margin:0;font-size:16.5px;line-height:1.7}.job{gap:24px;display:flex}.job__rail{flex-direction:column;align-items:center;padding-top:4px;display:flex}.job__dot{background:var(--color-primary);width:14px;height:14px;box-shadow:0 0 0 5px var(--color-icon-bg);border-radius:50%;flex-shrink:0}.job__line{background:var(--color-chip-border);flex:1;width:2px;margin:8px 0}.job:last-child .job__line{display:none}.job__content{padding-bottom:38px}.job__period{font-family:var(--font-mono);color:var(--color-text-tertiary);margin-bottom:7px;font-size:12.5px}.job__role{letter-spacing:-.01em;font-size:20px;font-weight:700}.job__company{color:var(--color-primary);margin:3px 0 10px;font-size:15px;font-weight:600}.job__desc{color:var(--color-text-secondary);margin:0;font-size:15px;line-height:1.65}.job__missions{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.job__missions li{color:var(--color-text-secondary);padding-left:18px;font-size:15px;line-height:1.6;position:relative}.job__missions li:before{content:"";background:var(--color-primary);border-radius:50%;width:5px;height:5px;position:absolute;top:8px;left:0}.credentials{grid-template-columns:1fr 1fr;gap:24px;margin-top:30px;display:grid}.credentials__card{background:var(--color-bg-alt);border:1px solid var(--color-border-alt);border-radius:20px;padding:30px 32px}.credentials__title{letter-spacing:-.01em;margin:0 0 22px;font-size:20px;font-weight:700}.edu-row{border-bottom:1px solid var(--color-border-alt);justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;display:flex}.edu-row:last-child{border-bottom:none}.edu-row__degree{font-size:16px;font-weight:600}.edu-row__school{color:var(--color-text-secondary);margin-top:2px;font-size:14px}.edu-row__year{font-family:var(--font-mono);color:var(--color-text-tertiary);flex-shrink:0;font-size:13px}.cert-list{flex-direction:column;gap:12px;display:flex}.cert-row{align-items:center;gap:12px;display:flex}.cert-row--link{border-radius:8px;margin:-6px -8px;padding:6px 8px;text-decoration:none;transition:background-color .2s}.cert-row--link:hover{background:var(--color-bg-alt)}.cert-row--link:hover .cert-row__label{color:var(--color-primary)}.cert-row__check{background:var(--color-icon-bg);width:26px;height:26px;color:var(--color-primary);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.cert-row__label{color:#2a2b3a;font-size:15px;font-weight:500;transition:color .2s}@media (width<=860px){.experience__inner{grid-template-columns:1fr}.experience__intro{position:static}.credentials{grid-template-columns:1fr}}.testimonials{background:var(--color-bg-alt);border-top:1px solid var(--color-border-alt);border-bottom:1px solid var(--color-border-alt)}.testimonials__inner{padding:84px 28px}.testimonials__grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.testimonial-card{border:1px solid var(--color-border);background:#fff;border-radius:20px;padding:32px 34px}.testimonial-card__mark{color:#d9cdfa;margin-bottom:8px;font-size:42px;font-weight:700;line-height:1}.testimonial-card__quote{color:#2a2b3a;margin:0 0 24px;font-size:18px;font-weight:500;line-height:1.65}.testimonial-card__author{align-items:center;gap:13px;display:flex}.testimonial-card__avatar{background:var(--color-icon-bg);width:46px;height:46px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;overflow:hidden}.testimonial-card__avatar img{object-fit:cover;width:100%;height:100%}.testimonial-card__name{font-size:15px;font-weight:700}.testimonial-card__role{color:var(--color-text-secondary);font-size:13.5px}@media (width<=720px){.testimonials__grid{grid-template-columns:1fr}}.blog{padding:90px 28px}.blog__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:42px;display:flex}.blog__all{color:var(--color-primary);align-items:center;gap:7px;font-size:15px;font-weight:600;text-decoration:none;transition:gap .2s;display:inline-flex}.blog__all:hover{gap:11px}.blog__grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.post-card{color:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;background:#fff;width:100%;padding:0;font-family:inherit;text-decoration:none;transition:transform .25s,box-shadow .25s;display:block;overflow:hidden}.post-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.post-card:hover{transform:translateY(-5px);box-shadow:0 22px 44px #16172a17}.post-card__cover{background:repeating-linear-gradient(135deg,#f4f3fa,#f4f3fa 10px,#eeecf7 10px 20px);align-items:flex-start;height:140px;padding:16px;display:flex}.post-card__tag{color:var(--color-primary);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--color-border);background:#fff;border-radius:7px;padding:5px 10px;font-size:11px}.post-card__body{padding:20px 22px 24px}.post-card__title{letter-spacing:-.01em;margin-bottom:12px;font-size:18px;font-weight:700;line-height:1.3}.post-card__meta{color:var(--color-text-tertiary);align-items:center;gap:10px;font-size:13px;display:flex}@media (width<=860px){.blog__grid{grid-template-columns:1fr}}.contact{background:var(--color-dark-bg);color:#fff;position:relative;overflow:hidden}.contact__glow{pointer-events:none;background:radial-gradient(circle,#673de66b,#0000 65%);width:560px;height:560px;position:absolute;top:-160px;right:-100px}.contact__inner{text-align:center;padding:96px 28px;position:relative}.contact__eyebrow{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--color-dark-accent);margin-bottom:20px;font-size:13px}.contact__title{letter-spacing:-.035em;text-wrap:balance;margin:0 0 22px;font-size:54px;font-weight:700;line-height:1.08}.contact__sub{color:#b7b8c8;max-width:520px;margin:0 auto 38px;font-size:19px;line-height:1.6}.contact__value{letter-spacing:-.02em;color:#fff;border-bottom:2px solid #b9a4f566;margin-bottom:38px;padding-bottom:4px;font-size:28px;font-weight:700;text-decoration:none;transition:border-color .2s;display:inline-block}.contact__value:hover{border-color:var(--color-dark-accent)}.contact__ctas{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:14px;display:flex}.contact__btn-primary{background:var(--color-primary);color:#fff;border-radius:var(--radius-pill);padding:14px 28px;font-size:15.5px;font-weight:600;text-decoration:none;transition:background-color .2s}.contact__btn-primary:hover{background:var(--color-primary-hover)}.contact__btn-ghost{color:#fff;border-radius:var(--radius-pill);cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;padding:13px 26px;font-size:15.5px;font-weight:600;text-decoration:none;transition:background-color .2s}.contact__btn-ghost:hover{background:#ffffff24}@media (width<=720px){.contact__title{font-size:36px}.contact__value{font-size:20px}}.footer{background:var(--color-dark-bg);color:#8e8fa4;border-top:1px solid #ffffff14}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:30px 28px;display:flex}.footer__brand{align-items:center;gap:11px;display:flex}.footer__logo{background:var(--color-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:flex}.footer__name{color:#c7c8d6;font-size:14px}.footer__rights{font-size:13.5px}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#16172a8c;justify-content:center;align-items:flex-start;padding:5vh 20px;animation:.2s fadeUp;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{border-radius:var(--radius-lg);background:#fff;width:100%;max-width:680px;position:relative;overflow:hidden;box-shadow:0 30px 80px #16172a59}.modal-close{z-index:1;width:36px;height:36px;color:var(--color-text);cursor:pointer;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:15px;transition:background-color .2s;display:flex;position:absolute;top:18px;right:18px;box-shadow:0 4px 12px #16172a1f}.modal-close:hover{color:var(--color-primary);background:#fff}.modal-panel__chart{border-bottom:1px solid var(--color-border-alt);background:linear-gradient(160deg,#f6f4fc,#efeaf9);justify-content:center;align-items:center;height:160px;display:flex;overflow:hidden}.modal-panel__chart--image{padding:0}.modal-panel__thumb{object-fit:cover;object-position:top;width:100%;height:100%}.modal-panel__body{max-height:calc(85vh - 160px);padding:32px 36px 40px;overflow-y:auto}.modal-panel__title{letter-spacing:-.015em;margin:8px 0 6px;font-size:26px;font-weight:700;line-height:1.25}.modal-panel__client{color:var(--color-text-secondary);margin-bottom:18px;font-size:14.5px}.modal-panel__tags{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.modal-section{border-top:1px solid var(--color-border-alt);margin-top:28px;padding-top:24px}.modal-section__title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--color-primary);margin:0 0 14px;font-size:12px}.modal-section__text{color:var(--color-text-secondary);margin:0;font-size:15.5px;line-height:1.7}.modal-section__list{flex-direction:column;gap:11px;margin:0;padding:0;list-style:none;display:flex}.modal-section__list li{color:#2a2b3a;padding-left:20px;font-size:15px;line-height:1.6;position:relative}.modal-section__list li:before{content:"";background:var(--color-primary);border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:0}@media (width<=640px){.modal-panel__body{padding:26px 22px 32px}.modal-panel__title{font-size:21px}}.modal-panel__body--no-chart{max-height:85vh;padding-top:44px}.article-lede{color:var(--color-text-secondary);margin:18px 0 0;font-size:17px;font-style:italic;line-height:1.6}.article-body{margin-top:8px}.article-hr{border:none;border-top:1px solid var(--color-border-alt);margin:28px 0}.article-h2{letter-spacing:-.01em;margin:0 0 14px;font-size:20px;font-weight:700;line-height:1.3}.article-p{color:#2a2b3a;margin:0 0 16px;font-size:15.5px;line-height:1.75}.article-p:last-child{margin-bottom:0}.article-p strong{color:var(--color-text);font-weight:700}.article-p--italic{color:var(--color-text-secondary);font-size:14.5px;font-style:italic}.article-list{flex-direction:column;gap:12px;margin:0 0 16px;padding-left:22px;display:flex}.article-list li{color:#2a2b3a;font-size:15.5px;line-height:1.7}.article-list strong{color:var(--color-text);font-weight:700}
