:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}a,.green{color:#00bd7e;padding:3px;text-decoration:none;transition:all .4s}@media (hover:hover){a:hover{background-color:#00bd7e33}}.header[data-v-22143670]{color:#2c3e50;z-index:100;box-sizing:border-box;background:#fff;border-bottom:1px solid #e8ecf1;justify-content:space-between;align-items:center;width:100%;max-width:100%;height:72px;margin:0;padding:0 20px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0000000f}.home-link[data-v-22143670]{flex-shrink:0}.header-center[data-v-22143670]{flex:1;justify-content:center;gap:6px;padding:0 20px;display:flex}.nav-link[data-v-22143670]{color:#4a5a6a;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:8px 24px;font-size:15px;font-weight:500;text-decoration:none;transition:all .2s;position:relative}.nav-link[data-v-22143670]:hover{color:#1a2a3a;background:#f0f4f9}.nav-link[data-v-22143670]:active{transform:scale(.96)}.nav-link.active[data-v-22143670]{color:#2c3e50;background:#e8edf5;font-weight:600}.btn-links[data-v-22143670]{color:#fff;cursor:pointer;background:#000;border:1px solid #e0e5ec;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;position:relative}.btn-links[data-v-22143670]:hover{background:#373636;border-color:#c0c8d4}.dropdown[data-v-22143670]{background:#fff;border:1px solid #e8ecf1;border-radius:8px;min-width:180px;padding:6px;display:none;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 4px 12px #00000014}.dropdown.open[data-v-22143670]{display:block}.dropdown a[data-v-22143670]{color:#2c3e50;border-radius:6px;padding:8px 14px;font-size:14px;text-decoration:none;transition:background .15s;display:block}.dropdown a[data-v-22143670]:hover{background:#f0f4f9}@media (width<=768px){.header[data-v-22143670]{flex-wrap:wrap;gap:12px;height:auto;padding:12px 20px}.header-center[data-v-22143670]{flex-wrap:wrap;justify-content:center;gap:4px;width:100%;padding:0}.nav-link[data-v-22143670]{padding:6px 14px;font-size:13px}}@media (width<=480px){.header[data-v-22143670]{padding:10px 12px}.nav-link[data-v-22143670]{padding:5px 10px;font-size:12px}}.footer[data-v-11432ac7]{background:#fff;border-top:1px solid #e8ecf1;width:100%;margin-top:auto;padding:20px 40px}.footer-content[data-v-11432ac7]{color:#5a6c7d;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;font-size:14px;display:flex}.footer-links[data-v-11432ac7]{align-items:center;gap:20px;display:flex}.footer-links a[data-v-11432ac7]{color:#5a6c7d;text-decoration:none;transition:color .2s}.footer-links a[data-v-11432ac7]:hover{color:#2c3e50}.footer-links .email[data-v-11432ac7]{color:#5a6c7d;cursor:default}@media (width<=768px){.footer[data-v-11432ac7]{padding:16px 20px}.footer-content[data-v-11432ac7]{text-align:center;flex-direction:column;gap:8px}}[data-v-c1814321]{box-sizing:border-box;margin:0;padding:0}html[data-v-c1814321],body[data-v-c1814321]{margin:0;padding:0;overflow-x:hidden}#app[data-v-c1814321]{background:#f5f7fa;flex-direction:column;max-width:100%;min-height:100vh;margin:0;padding:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex;overflow-x:hidden}.main-content[data-v-c1814321]{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:20px;overflow-x:hidden}.content-wrapper[data-v-c1814321]{background:#fff;border:1px solid #e8ecf1;border-radius:16px;padding:40px;box-shadow:0 2px 12px #0000000a}.content-wrapper h1[data-v-c1814321]{color:#1a2a3a;margin-bottom:12px;font-size:32px}.content-wrapper p[data-v-c1814321]{color:#5a6c7d;font-size:18px;line-height:1.6}@media (width<=768px){.content-wrapper[data-v-c1814321]{padding:24px}.content-wrapper h1[data-v-c1814321]{font-size:24px}}@media (width<=480px){.content-wrapper[data-v-c1814321]{padding:16px}}.cv-container[data-v-08186fa7]{max-width:100%;margin:0 auto;padding:40px 20px}.loading[data-v-08186fa7]{text-align:center;color:#666;padding:60px 0}.error[data-v-08186fa7]{text-align:center;padding:60px 0}.error button[data-v-08186fa7]{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:4px;padding:8px 24px}.cv-content h1[data-v-08186fa7]{color:#000;border-bottom:2px solid #040404;margin-bottom:30px;padding-bottom:15px;font-size:28px;font-weight:600}.resume-item[data-v-08186fa7]{border-bottom:1px solid #eee;gap:30px;margin-bottom:30px;padding-bottom:30px;display:flex}.item-period[data-v-08186fa7]{color:#000;flex:0 0 150px;font-weight:500}.item-content[data-v-08186fa7]{flex:1}.resume-item[data-v-08186fa7]:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.item-header[data-v-08186fa7]{margin-bottom:10px}.item-header h2[data-v-08186fa7]{color:#1a1a1a;margin-bottom:4px;font-size:20px;font-weight:600}.item-header h3[data-v-08186fa7]{color:#000;margin:0;font-size:16px;font-weight:500}.resume-item p[data-v-08186fa7]{color:#444;margin:10px 0 12px;line-height:1.6}.resume-item ul[data-v-08186fa7]{margin:0;padding:0;list-style:none}.resume-item ul li[data-v-08186fa7]{color:#555;padding:6px 0 6px 20px;font-size:14px;position:relative}.resume-item ul li[data-v-08186fa7]:before{content:"•";color:#000;font-weight:700;position:absolute;left:0}@media (width<=600px){.cv-container[data-v-08186fa7]{padding:20px 15px}.cv-content h1[data-v-08186fa7]{font-size:24px}.item-header h2[data-v-08186fa7]{font-size:18px}.resume-item[data-v-08186fa7]{flex-direction:column;gap:8px}}.work-text[data-v-76e59a3d]{border-top:1px solid #e8ecf1;margin-top:48px;padding-top:32px}.work-block[data-v-76e59a3d]{margin-bottom:32px}.work-block[data-v-76e59a3d]:last-child{margin-bottom:0}.work-block h2[data-v-76e59a3d]{color:#1a1a1a;margin-bottom:12px;font-size:24px}.work-block p[data-v-76e59a3d]{color:#4a5a6a;font-size:16px;line-height:1.8}.tech-grid[data-v-022e21f6]{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.tech-card[data-v-022e21f6]{background:#fff;border:1px solid #e8ecf1;border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:24px;transition:box-shadow .2s;display:flex;box-shadow:0 2px 8px #0000000a}.tech-card[data-v-022e21f6]:hover{box-shadow:0 4px 16px #00000014}.tech-title[data-v-022e21f6]{color:#1a1a1a;margin:0;font-size:20px;font-weight:600;line-height:1.3}.tags[data-v-022e21f6]{flex-wrap:wrap;gap:8px;display:flex}.tag[data-v-022e21f6]{color:#1a1a1a;background:#f0f4f9;border:1px solid #e8ecf1;border-radius:20px;padding:4px 14px;font-size:14px}.tech-description[data-v-022e21f6]{color:#4a5a6a;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.6}.tech-container[data-v-6761f229]{max-width:1000px;margin:0 auto;padding:40px 20px}.loading[data-v-6761f229]{text-align:center;color:#666;padding:40px 0}h1[data-v-6761f229]{color:#1a1a1a;margin-bottom:30px;font-size:28px;font-weight:600}@media (width<=600px){.tech-container[data-v-6761f229]{padding:20px 15px}h1[data-v-6761f229]{font-size:24px}}.tech-container[data-v-dbc328ed]{max-width:1000px;margin:0 auto;padding:40px 20px}.loading[data-v-dbc328ed]{text-align:center;color:#666;padding:40px 0}h1[data-v-dbc328ed]{color:#1a1a1a;font-size:28px;font-weight:600}.tech-grid[data-v-dbc328ed]{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:30px;display:grid}.tech-card[data-v-dbc328ed]{background:#fff;border:1px solid #e8ecf1;border-radius:12px;padding:24px;transition:box-shadow .2s;box-shadow:0 2px 8px #0000000a}.tech-card[data-v-dbc328ed]:hover{box-shadow:0 4px 16px #00000014}.tech-card h2[data-v-dbc328ed]{color:#1a1a1a;margin-bottom:8px;font-size:20px}.tags[data-v-dbc328ed]{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.tag[data-v-dbc328ed]{color:#1a1a1a;background:#f0f4f9;border:1px solid #e8ecf1;border-radius:20px;padding:4px 14px;font-size:14px}.tech-card p[data-v-dbc328ed]{color:#4a5a6a;margin-top:8px;line-height:1.6}.additional-text[data-v-dbc328ed]{border-top:1px solid #e8ecf1;margin-top:48px;padding-top:32px}.additional-text h2[data-v-dbc328ed]{color:#1a1a1a;margin-bottom:12px;font-size:24px}.additional-text p[data-v-dbc328ed]{color:#4a5a6a;margin-bottom:16px;line-height:1.8}.cards[data-v-e66d32bf]{scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;scrollbar-color:#d0d8e0 transparent;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-overflow-scrolling:touch;grid-auto-columns:calc(29.4118% - 14.1176px);grid-auto-flow:column;gap:24px;padding-bottom:8px;display:grid;overflow-x:auto}.cards[data-v-e66d32bf]:active{cursor:grabbing}.cards[data-v-e66d32bf]::-webkit-scrollbar{height:6px}.cards[data-v-e66d32bf]::-webkit-scrollbar-track{background:0 0}.cards[data-v-e66d32bf]::-webkit-scrollbar-thumb{background:#d0d8e0;border-radius:3px}.cards[data-v-e66d32bf]::-webkit-scrollbar-thumb:hover{background:#b8c2cc}.card[data-v-e66d32bf]{scroll-snap-align:start;background:#fff;border:1px solid #e8ecf1;border-radius:12px;flex-direction:column;min-width:0;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden;box-shadow:0 2px 8px #0000000a}.card[data-v-e66d32bf]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000014}.card-image[data-v-e66d32bf]{aspect-ratio:16/10;object-fit:cover;pointer-events:none;background:#f0f4f9;width:100%;display:block}.card-image--placeholder[data-v-e66d32bf]{background:linear-gradient(135deg,#f0f4f9 0%,#e8ecf1 100%)}.card-body[data-v-e66d32bf]{flex-direction:column;gap:8px;padding:16px 18px 20px;display:flex}.card-title[data-v-e66d32bf]{color:#1a1a1a;margin:0;font-size:17px;font-weight:600;line-height:1.35}.card-text[data-v-e66d32bf]{color:#4a5a6a;overflow-wrap:anywhere;-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}@media (width<=900px){.cards[data-v-e66d32bf]{grid-auto-columns:calc(41.6667% - 10px)}}@media (width<=600px){.cards[data-v-e66d32bf]{grid-auto-columns:82%}}.modal-backdrop[data-v-e66d32bf]{z-index:1000;-webkit-backdrop-filter:blur(6px);background:#0f172173;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal[data-v-e66d32bf]{background:#fff;border-radius:16px;width:100%;max-width:720px;max-height:calc(100vh - 40px);animation:.25s modal-in-e66d32bf;position:relative;overflow-y:auto;box-shadow:0 20px 60px #00000040}.modal-close[data-v-e66d32bf]{z-index:2;color:#1a1a1a;cursor:pointer;background:#ffffffe6;border:none;border-radius:50%;width:36px;height:36px;font-size:22px;line-height:1;transition:background .2s;position:absolute;top:12px;right:12px;box-shadow:0 2px 8px #0000001f}.modal-close[data-v-e66d32bf]:hover{background:#fff}.modal-image[data-v-e66d32bf]{aspect-ratio:16/9;object-fit:cover;background:#f0f4f9;width:100%;display:block}.modal-image--placeholder[data-v-e66d32bf]{background:linear-gradient(135deg,#f0f4f9 0%,#e8ecf1 100%)}.modal-body[data-v-e66d32bf]{padding:24px 28px 28px}.modal-title[data-v-e66d32bf]{color:#1a1a1a;margin:0 0 12px;font-size:22px;font-weight:600;line-height:1.3}.modal-text[data-v-e66d32bf]{color:#4a5a6a;overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.7}@keyframes modal-in-e66d32bf{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.modal-enter-active[data-v-e66d32bf],.modal-leave-active[data-v-e66d32bf]{transition:opacity .2s}.modal-enter-from[data-v-e66d32bf],.modal-leave-to[data-v-e66d32bf]{opacity:0}@media (width<=600px){.modal-backdrop[data-v-e66d32bf]{padding:12px}.modal-body[data-v-e66d32bf]{padding:18px 20px 22px}.modal-title[data-v-e66d32bf]{font-size:19px}.modal-text[data-v-e66d32bf]{font-size:14px}}.home[data-v-7af12ea9]{max-width:1000px;margin:0 auto;padding:40px 20px}.hero[data-v-7af12ea9]{align-items:center;gap:60px;display:flex}.hero-left[data-v-7af12ea9]{flex:55%;min-width:0}.name[data-v-7af12ea9]{letter-spacing:.02em;text-transform:uppercase;color:#1a1a1a;margin:0 0 16px;font-size:clamp(32px,5.5vw,54px);font-weight:700;line-height:1.05}.name-line[data-v-7af12ea9]{display:block}.position[data-v-7af12ea9]{color:#4a5a6a;margin:0 0 20px;font-size:18px;font-weight:500}.description[data-v-7af12ea9]{color:#4a5a6a;max-width:52ch;margin:0 0 32px;font-size:16px;line-height:1.75}.achievements[data-v-7af12ea9]{border-top:1px solid #e8ecf1;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 36px;margin:0;padding:24px 0 0;list-style:none;display:grid}.achievement[data-v-7af12ea9]{flex-direction:column;gap:4px;min-width:0;display:flex}.achievement-value[data-v-7af12ea9]{color:#1a1a1a;font-size:26px;font-weight:700;line-height:1}.achievement-label[data-v-7af12ea9]{color:#4a5a6a;white-space:normal;overflow-wrap:anywhere;font-size:13px;line-height:1.4}.hero-right[data-v-7af12ea9]{aspect-ratio:4/5;cursor:pointer;background:#f0f4f9;border-radius:18px;flex:0 380px;transition:box-shadow .3s,transform .3s;display:block;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000014}.hero-right[data-v-7af12ea9]:hover{box-shadow:0 16px 40px #00000024}.hero-right[data-v-7af12ea9]:focus-visible{outline-offset:3px;outline:3px solid #007bff}.hero-photo[data-v-7af12ea9]{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.hero-right:hover .hero-photo[data-v-7af12ea9]{transform:scale(1.04)}.hero-overlay[data-v-7af12ea9]{background:0 0;transition:background .3s;position:absolute;inset:0}.hero-right:hover .hero-overlay[data-v-7af12ea9],.hero-right:focus-visible .hero-overlay[data-v-7af12ea9]{background:#00000080}.hero-hint[data-v-7af12ea9]{text-align:center;color:#fff;letter-spacing:.02em;opacity:0;justify-content:center;align-items:center;padding:0 16px;font-size:16px;font-weight:600;transition:opacity .3s;display:flex;position:absolute;inset:0}.hero-right:hover .hero-hint[data-v-7af12ea9],.hero-right:focus-visible .hero-hint[data-v-7af12ea9]{opacity:1}.home-bottom[data-v-7af12ea9]{margin-top:64px}.section-header[data-v-7af12ea9]{border-bottom:1px solid #e8ecf1;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}.section-title[data-v-7af12ea9]{color:#1a1a1a;margin:0;font-size:24px;font-weight:600}.section-link[data-v-7af12ea9]{color:#4a5a6a;white-space:nowrap;border-radius:8px;flex-shrink:0;padding:6px 14px;font-size:15px;font-weight:500;text-decoration:none;transition:background .2s,color .2s}.section-link[data-v-7af12ea9]:hover{color:#1a2a3a;background:#f0f4f9}.section-link[data-v-7af12ea9]:active{transform:scale(.96)}@media (width<=900px){.hero[data-v-7af12ea9]{flex-direction:column-reverse;align-items:stretch;gap:32px}.hero-right[data-v-7af12ea9]{flex:none;width:100%;max-width:420px;margin:0 auto}.achievements[data-v-7af12ea9]{gap:20px 28px}}@media (width<=600px){.home[data-v-7af12ea9]{padding:20px 15px}.name[data-v-7af12ea9]{font-size:30px}.position[data-v-7af12ea9]{font-size:16px}.achievement-value[data-v-7af12ea9]{font-size:22px}.home-bottom[data-v-7af12ea9]{margin-top:40px}.section-header[data-v-7af12ea9]{flex-direction:column;align-items:flex-start;gap:8px}.section-title[data-v-7af12ea9]{font-size:20px}}.projects[data-v-be485c59]{max-width:1000px;margin:0 auto;padding:40px 20px}.loading[data-v-be485c59]{text-align:center;color:#666;padding:40px 0}h1[data-v-be485c59]{color:#1a1a1a;margin-bottom:30px;font-size:28px;font-weight:600}.group[data-v-be485c59]{margin-bottom:48px}.group[data-v-be485c59]:last-child{margin-bottom:0}.group-header[data-v-be485c59]{border-bottom:1px solid #e8ecf1;margin-bottom:24px;padding-bottom:16px}.group-header h2[data-v-be485c59]{color:#1a1a1a;margin:0 0 6px;font-size:22px;font-weight:600}.group-subtitle[data-v-be485c59]{color:#4a5a6a;margin:0 0 8px;font-size:15px;font-weight:500}.group-text[data-v-be485c59]{color:#4a5a6a;margin:0;font-size:15px;line-height:1.7}@media (width<=600px){.projects[data-v-be485c59]{padding:20px 15px}h1[data-v-be485c59]{font-size:24px}.group-header h2[data-v-be485c59]{font-size:20px}}
