@import url("https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=IBM+Plex+Mono:wght@300;400;500;600&display=swap");:root{font-size: calc(16px + 2pt);font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;line-height: 1.6;font-weight: 400;color: #1e293b;background: #f7f9fc;--text-main: #1f2937;--text-muted: #64748b;--title-color: #0b1220;--accent: #3478d6;--border: #d9e0ea;--card: #ffffff;--hero-bg: #0c1428;--soft-bg: #f7f9fc;font-synthesis: none;text-rendering: optimizeLegibility;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale}*,*::before,*::after{box-sizing: border-box}body{margin: 0;min-width: 320px;background: var(--soft-bg);color: var(--text-main)}a{color: inherit}h1,h2,h3,p,ul{margin: 0}ul{padding-left: 1.2rem}.section{width: 100%;padding: 5rem 0;border-top: 1px solid rgba(15,23,42,0.05)}.section__inner{width: 60%;margin: 0 auto}.section h2{margin-top: 0;margin-bottom: 1.2rem;font-family: "DM Serif Display",Georgia,serif;font-size: clamp(2rem,3vw,3rem);font-weight: 400;color: var(--title-color);letter-spacing: -0.02em;line-height: 1.12;position: relative;display: inline-block}.section h2::after{content: "";position: absolute;left: 0;bottom: -0.65rem;width: 4.5rem;height: 0.2rem;border-radius: 999px;background: var(--accent)}@keyframes section-in{from{opacity: 0;transform: translateY(14px)}to{opacity: 1;transform: translateY(0)}}@media (max-width: 900px){.section{padding: 3.2rem 0}.section__inner{width: 72%}}@media (max-width: 768px){.section{padding: 2.6rem 0}.section__inner{width: calc(100% - 2.5rem)}.section h2{margin-bottom: 0.7rem}}@media (max-width: 480px){.section{padding: 2rem 0}.section__inner{width: calc(100% - 1.5rem)}}.hero{position: relative;min-height: 100vh;display: flex;align-items: center;color: #e6edf8;background: radial-gradient(circle at 18% 22%,oklch(0.372 0.181 267.935),transparent 38%),radial-gradient(circle at 84% 78%,oklch(0.372 0.181 267.935),transparent 36%),linear-gradient( 130deg,oklch(0.379 0.146 265.522) 0%,oklch(0.379 0.146 265.522) 38%,oklch(0.379 0.146 265.522) 100% );border-top: 0}.fade-in-up{opacity: 0;animation: fade-in-up 1s cubic-bezier(0.2,0.8,0.2,1) forwards}@keyframes fade-in-up{from{opacity: 0;transform: translateY(40px)}to{opacity: 1;transform: translateY(0)}}.hero__title{font-family: "DM Serif Display",Georgia,serif;font-size: clamp(2.7rem,7vw,5rem);letter-spacing: -0.03em;line-height: 1.05;color: rgba(248,251,255,0.9)}.hero .hero__subtitle{margin-top: 0.7rem;color: #8ebcff !important;font-size: clamp(2rem,2.2vw,2.45rem);letter-spacing: 0.08em;font-weight: 600;font-family: "JetBrains Mono","Fira Code","Courier New",monospace}.hero__summary{margin-top: 1.35rem;max-width: 56rem;color: rgba(230,237,248,0.8);line-height: 1.75}.hero__contacts{margin-top: 2.5rem;display: flex;flex-wrap: wrap;gap: 0.7rem;perspective: 1000px}.contact-card{display: block;background-color: transparent;flex: 1 1 100px;max-width: 135px;height: 52px;perspective: 1000px;text-decoration: none;position: relative;z-index: 1}.contact-card:hover{z-index: 100}.contact-card__inner{position: relative;width: 100%;height: 100%;text-align: center;transition: transform 0.5s cubic-bezier(0.34,1.56,0.64,1);transform-style: preserve-3d}.contact-card:hover .contact-card__inner,.contact-card:focus-visible .contact-card__inner{transform: rotateY(180deg) scale(2)}.contact-card__front,.contact-card__back{position: absolute;width: 100%;height: 100%;-webkit-backface-visibility: hidden;backface-visibility: hidden;display: flex;align-items: center;justify-content: center;border-radius: 12px;border: 1px solid rgba(142,188,255,0.2);background: rgba(230,237,248,0.04);backdrop-filter: blur(12px);box-shadow: 0 8px 24px rgba(0,0,0,0.2)}.contact-card__front{color: #8ebcff;font-size: 1.4rem}.contact-card__front svg,.contact-card__front vaadin-icon{width: 1.4rem;height: 1.4rem}.contact-card__front .brand-icon{width: 1.4rem;height: 1.4rem}.brand-icon{display: inline-block;background-color: currentColor;-webkit-mask-image: var(--brand-icon-src);-webkit-mask-repeat: no-repeat;-webkit-mask-position: center;-webkit-mask-size: contain;-webkit-mask-mode: alpha;mask-image: var(--brand-icon-src);mask-repeat: no-repeat;mask-position: center;mask-size: contain;mask-mode: alpha}.contact-card__back{color: #ffffff;transform: rotateY(180deg);font-size: 0.6rem;font-family: "IBM Plex Mono",monospace;padding: 0.4rem;word-break: break-all;background: rgba(10,20,38,0.98);border: 1px solid rgba(142,188,255,0.5);box-shadow: 0 10px 30px rgba(0,0,0,0.6)}.contact-card--email .contact-card__back{font-size: 0.52rem}.contact-card--download .contact-card__front{background: linear-gradient(135deg,rgba(43,99,179,0.15),rgba(58,132,234,0.15));border-color: rgba(142,188,255,0.4);color: #f8fbff}.contact-card--download .contact-card__back{background: linear-gradient(135deg,#2b63b3,#3a84ea);color: #f8fbff}.hero__scroll-indicator{position: absolute;bottom: 1.5rem;left: 50%;transform: translateX(-50%);display: flex;color: rgba(142,188,255,0.5);font-size: 1.8rem;cursor: pointer;z-index: 10;transition: color 0.3s ease,opacity 0.3s ease}.hero__scroll-indicator vaadin-icon{width: 1.8rem;height: 1.8rem}.hero__scroll-indicator.fade-in-up{animation: fade-in-up 1s cubic-bezier(0.2,0.8,0.2,1) forwards,hero-bounce 2s infinite 1s}.hero__scroll-indicator:hover{color: #8ebcff;opacity: 1}@keyframes hero-bounce{0%,20%,50%,80%,100%{transform: translateX(-50%) translateY(0)}40%{transform: translateX(-50%) translateY(-10px)}60%{transform: translateX(-50%) translateY(-5px)}}@media (max-width: 1024px){.hero__summary{font-size: 0.98rem}}@media (max-width: 768px){.hero__contacts{gap: 0.8rem}}@media (max-width: 480px){.hero__contacts{flex-wrap: wrap;justify-content: center}.contact-card{flex: 0 0 calc(50% - 0.45rem);min-width: 90px;height: 50px}}.about-me__summary{max-width: 56rem}.leadership{background: #f7f9fc}.leadership h2{color: #0b1220}.leadership__intro{max-width: 46rem;margin-top: -0.2rem;margin-bottom: 1.4rem;color: var(--text-muted)}.leadership__list{display: grid;gap: 0.9rem;grid-template-columns: 1fr}.leadership-card{padding: 1.1rem 1.2rem;border-radius: 0.75rem;border: 1px solid var(--border);background: #ffffff;box-shadow: 0 8px 22px rgba(11,18,32,0.05);transition: transform 0.25s ease,box-shadow 0.25s ease}.leadership-card:hover{transform: translateY(-3px);box-shadow: 0 14px 28px rgba(11,18,32,0.1)}.leadership-card__header{display: flex;flex-wrap: wrap;align-items: baseline;justify-content: space-between;gap: 0.4rem}.leadership-card__header h3{color: #12305d}.leadership-card__period{color: #2b63b3;font-size: 0.85rem;white-space: nowrap}.leadership-card ul{margin-top: 0.5rem;color: #475569}.leadership-card li + li{margin-top: 0.2rem}.leadership .section__inner{animation: section-in 0.7s ease both}@media (min-width: 1280px){.leadership__list{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (max-width: 768px){.leadership-card{padding: 0.85rem}}@media (max-width: 480px){.leadership-card__header h3{font-size: 1rem}}.skills{background: #ffffff}.skills .section__inner{animation: section-in 0.7s ease both}.skills h2{color: #0b1220}.skills__list{display: grid;grid-template-columns: repeat(2,1fr);gap: 1.5rem;margin-top: 1.5rem}.skills__group{padding: 1rem 1.1rem;border-radius: 0.75rem;border: 1px solid var(--border);background: #f9fbfe;box-shadow: 0 8px 22px rgba(11,18,32,0.05);transition: transform 0.25s ease,border-color 0.25s ease,box-shadow 0.25s ease}.skills__group:hover{transform: translateY(-3px);border-color: #abc9ef;box-shadow: 0 16px 26px rgba(11,18,32,0.08)}.skills__group h3{margin-bottom: 0.4rem;color: #12305d;font-size: 1rem}.skills__group li{margin-bottom: 0.3rem;color: #334155}@media (max-width: 768px){.skills__list{grid-template-columns: 1fr;gap: 1rem}.skills__group{padding: 0.7rem 0.85rem}}@media (max-width: 480px){.skills__group h3{font-size: 1rem}}.projects{background: #f7f9fc}.projects .section__inner{animation: section-in 0.7s ease both}.projects h2{color: #0b1220}.projects__list{display: grid;grid-template-columns: 1fr;gap: 1.5rem;margin-top: 1.5rem}.project-card{padding: 1.5rem;border-radius: 1rem;border: 1px solid var(--border);background: var(--card);box-shadow: 0 8px 32px rgba(15,23,42,0.04);transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1),box-shadow 0.3s ease,border-color 0.3s ease;display: flex;flex-direction: column;gap: 1.5rem;overflow: hidden}.project-card:hover{transform: translateY(-5px);border-color: #8ebcff;box-shadow: 0 20px 40px rgba(15,23,42,0.1)}.project-card__title{font-family: "DM Serif Display",Georgia,serif;font-size: 1.8rem;line-height: 1.2;letter-spacing: -0.01em;color: #0b1220}.project-card__meta{margin-top: 0.5rem;color: #2b63b3;font-weight: 600;font-size: 0.85rem;text-transform: uppercase;letter-spacing: 0.08em}.project-card__description{margin-top: 0.8rem;color: #334155;line-height: 1.6;white-space: pre-line}.project-card__tech{margin-top: 1.2rem}.project-card__tech-list{display: flex;flex-wrap: wrap;gap: 0.5rem}.project-card__tech-tile{padding: 0.3rem 0.75rem;background: rgba(43,99,179,0.05);color: #2b63b3;border: 1px solid rgba(43,99,179,0.15);border-radius: 6px;font-size: 0.78rem;font-weight: 500;font-family: "IBM Plex Mono",monospace;transition: all 0.2s ease}.project-card__tech-tile:hover{background: rgba(43,99,179,0.12);border-color: #2b63b3;transform: translateY(-2px);box-shadow: 0 4px 8px rgba(43,99,179,0.1)}.project-card__gallery-wrapper{position: relative;width: 100%;margin-top: 0.5rem}.project-card__gallery{display: flex;width: 100%;overflow-x: auto;scroll-snap-type: x mandatory;border-radius: 0.8rem;background: #f1f5f9;scrollbar-width: none}.project-card__gallery::-webkit-scrollbar{display: none}.project-card__image-container{flex: 0 0 100%;width: 100%;display: flex;align-items: center;justify-content: center;background: #fff;height: 385px;scroll-snap-align: start}.project-card__image{max-width: 100%;max-height: 100%;width: auto;height: auto;object-fit: contain;transition: transform 0.4s ease}.project-card__dots{display: flex;justify-content: center;gap: 0.6rem;margin-top: 1rem}.project-card__dot{width: 8px;height: 8px;border-radius: 50%;background: rgba(43,99,179,0.2);cursor: pointer;transition: all 0.3s ease}.project-card__dot:hover{background: rgba(43,99,179,0.5)}.project-card__dot.active{background: #2b63b3;transform: scale(1.25);width: 20px;border-radius: 4px}.project-card__links{margin-top: auto;display: flex;flex-wrap: wrap;gap: 0.85rem;justify-content: center}.project-card__link{display: inline-flex;align-items: center;gap: 0.6rem;padding: 0.65rem 1.2rem;border-radius: 0.6rem;border: 1px solid #2b63b3;text-decoration: none;color: #fff;background: #2b63b3;font-size: 0.95rem;font-weight: 500;transition: all 0.3s ease}.project-card__link vaadin-icon{width: 1rem;height: 1rem}.project-card__link:hover{background: #1e4b8a;border-color: #1e4b8a;transform: translateY(-2px);box-shadow: 0 6px 15px rgba(43,99,179,0.3)}.project-card__link--doc{background: transparent;color: #2b63b3;border: 1px solid rgba(43,99,179,0.4)}.project-card__link--doc:hover{background: rgba(43,99,179,0.05);border-color: #2b63b3}@media (max-width: 768px){.project-card{padding: 1.25rem}.project-card__image-container{height: 275px}.project-card__title{font-size: 1.5rem}}@media (max-width: 480px){.project-card__image-container{height: 200px}.project-card__link{width: 100%;justify-content: center}}.experiences{background: #ffffff}.experiences .section__inner{animation: section-in 0.7s ease both}.experiences h2{color: #0b1220}.experiences__intro{max-width: 46rem;margin-top: -0.2rem;margin-bottom: 1.4rem;color: var(--text-muted)}.experiences__list{display: grid;gap: 1rem;margin-top: 1rem}@media (min-width: 1280px){.experiences__list{grid-template-columns: repeat(2,minmax(0,1fr))}}.experiences .project-card{position: relative;background: #f9fbfe;border-color: var(--border);padding-left: 1.8rem}.experiences .project-card::before{content: "";position: absolute;left: 0.85rem;top: 1.2rem;width: 0.4rem;height: calc(100% - 2.4rem);border-radius: 999px;background: linear-gradient(180deg,#2b63b3,rgba(43,99,179,0.2))}.experiences .project-card__title{color: #0b1220}.experiences .project-card__meta{color: #2b63b3}.experiences .project-card__tech,.experiences .project-card p{color: #475569}.educations{background: #f7f9fc}.educations .section__inner{animation: section-in 0.7s ease both}.educations h2{color: #0b1220}.educations__list{margin-top: 1rem;display: grid;gap: 0.8rem}.education-card{padding: 1.1rem 1.2rem;border-radius: 0.75rem;border-left: 4px solid #2b63b3;border: 1px solid var(--border);background: #ffffff;box-shadow: 0 8px 22px rgba(11,18,32,0.05);transition: transform 0.25s ease,box-shadow 0.25s ease}.education-card:hover{transform: translateY(-3px);box-shadow: 0 14px 28px rgba(11,18,32,0.1)}.education-card h3{color: #12305d}.education-card p{margin-top: 0.35rem}@media (max-width: 768px){.education-card{padding: 0.85rem}}@media (max-width: 480px){.education-card h3{font-size: 1rem}}.certificates{padding: 4rem 0}.certificates .section__inner{max-width: 1140px;margin: 0 auto;padding: 0 1.5rem}.certificates .section__inner h2{margin-bottom: 2rem;color: #0b1220;font-size: clamp(2rem,4vw,3.2rem);font-family: "DM Serif Display",Georgia,serif;text-align: left}.certificates__carousel{position: relative;display: flex;align-items: center;justify-content: center}.certificates__frame{width: 100%;max-width: 100%;aspect-ratio: 3 / 2;border-radius: 1rem;overflow: hidden;box-shadow: 0 20px 45px rgba(43,99,179,0.18);position: relative;transition: transform 0.2s ease;transform-origin: center}.certificates__frame:hover{transform: scale(1.03)}.certificates__viewer-item{display: none;width: 100%;height: 100%}.certificates__viewer-item.is-active{display: block}.certificates__viewer{width: 100%;height: 100%;border: none}.certificates__meta{margin-top: 1.5rem;display: flex;flex-direction: column;align-items: center;gap: 1rem}.certificates__label{font-size: 1.1rem;font-weight: 600;color: #2b63b3}.certificates__dots{display: flex;gap: 0.5rem}.certificates__dot{width: 12px;height: 12px;padding: 0;border-radius: 50%;border: none;background: rgba(43,99,179,0.25);cursor: pointer;transition: all 0.3s ease}.certificates__dot.is-active{background: #2b63b3;transform: scale(1.2)}@media (max-width: 768px){.certificates .section__inner{padding: 0 1rem}.certificates__frame{aspect-ratio: 4 / 3}}.languages{background: #ffffff}.languages .section__inner{animation: section-in 0.7s ease both}.languages h2{color: #0b1220}.languages__list{margin-top: 1.5rem;display: flex;flex-wrap: wrap;gap: 1.25rem}.languages__list li{list-style: none;padding: 0.85rem 1.25rem;border-radius: 0.75rem;background: #f9fbfe;border: 1px solid var(--border);width: auto;flex: 1 1 auto;max-width: fit-content;text-align: center;transition: transform 0.2s ease,box-shadow 0.2s ease}.languages__list li:hover{transform: translateY(-2px);box-shadow: 0 10px 20px rgba(11,18,32,0.08)}@media (max-width: 768px){.languages__list{gap: 0.75rem}.languages__list li{width: 100%;max-width: 100%;flex: 1 1 100%}}.footer{width: 100%;padding: 2.25rem 0 1.75rem;color: #d7e2f3;background: radial-gradient( circle at 14% 20%,rgba(52,120,214,0.24),transparent 34% ),radial-gradient( circle at 88% 84%,rgba(52,120,214,0.13),transparent 34% ),linear-gradient(135deg,#0a1122,#111f3f)}.footer__inner{width: 60%;margin: 0 auto;animation: section-in 0.7s ease both;display: grid;grid-template-columns: 1fr 1fr;column-gap: 2.5rem;row-gap: 0.3rem;align-items: start;line-height: 1.3}.footer__meta{display: grid;row-gap: 0.3rem}.footer__copyright{color: #b5c5dc}.footer__contacts{display: grid;gap: 0.3rem}.footer__contacts p{display: flex;align-items: center;gap: 0.5rem}.footer__contacts p svg,.footer__contacts p vaadin-icon,.footer__contacts p .brand-icon{width: 1.1em;height: 1.1em;flex-shrink: 0}.footer__contacts a{color: #8ebcff;text-decoration: none}.footer__made-with{display: flex;align-items: center;gap: 0.4rem;font-size: 0.78rem;color: #8ea3c4}.footer__made-with img{width: 1.1em;height: 1.1em;object-fit: contain}.to-top{grid-column: 1 / -1;justify-self: center;margin-top: 0.5rem;width: 2.4rem;height: 2.4rem;border: 1px solid rgba(230,237,248,0.35);border-radius: 50%;color: #fff;background: linear-gradient(135deg,#2b63b3,#3a84ea);cursor: pointer;transition: transform 0.2s ease}.to-top:hover{transform: translateY(-3px)}@media (max-width: 900px){.footer{padding: 1.75rem 0}.footer__inner{width: 72%}}@media (max-width: 768px){.footer__inner{width: calc(100% - 2.5rem);grid-template-columns: 1fr}.to-top{grid-column: 1}.footer__contacts p{align-items: flex-start}}@media (max-width: 480px){.footer__inner{width: calc(100% - 1.5rem)}.to-top{width: 2.1rem;height: 2.1rem}}.app-shell{width: 100%}