@font-face{font-family:"Roboto Mono";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/roboto-mono-light.woff2") format("woff2")}@font-face{font-family:"Roboto Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/roboto-mono-regular.woff2") format("woff2")}@font-face{font-family:"Roboto Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/roboto-mono-medium.woff2") format("woff2")}@font-face{font-family:"Roboto Mono";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/roboto-mono-bold.woff2") format("woff2")}@font-face{font-family:"Roboto Mono";font-style:normal;font-weight:300 700;font-display:swap;src:url("../fonts/roboto-mono-cyrillic.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}:root{--grad-from:#180CAC;--grad-to:#D054E4;--paper:#ffffff;--paper-80:rgba(255,255,255,0.82);--paper-65:rgba(255,255,255,0.65);--paper-45:rgba(255,255,255,0.45);--paper-20:rgba(255,255,255,0.20);--paper-12:rgba(255,255,255,0.12);--paper-08:rgba(255,255,255,0.08);--paper-04:rgba(255,255,255,0.04);--line:rgba(255,255,255,0.18);--ink:#180CAC;--gold:#FFE479;--gold-soft:#FFEFA8;--accent:#FFE479}*{box-sizing:border-box;margin:0;padding:0}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html{min-height:100%;background:linear-gradient(to right bottom,var(--grad-from),var(--grad-to)) no-repeat;background-size:100% 100%}body{min-height:100vh;font-family:"Roboto Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;font-weight:400;font-size:16px;font-size-adjust:ch-width from-font;line-height:1.6;color:var(--paper);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:rgba(255,255,255,0.85);color:var(--ink)}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}strong{font-weight:700;color:var(--gold)}.wallpaper{position:fixed;inset:0;z-index:-1;background-size:cover;background-position:center;background-repeat:no-repeat;opacity:0;transition:opacity 1.2s ease-out;pointer-events:none;mix-blend-mode:soft-light}.wallpaper.is-loaded{opacity:0.22;animation:zoomOut 2.2s ease-out;background-image:url("../img/mountains.jpg");background-image:image-set( url("../img/mountains.avif") 1x type("image/avif"),url("../img/mountains.webp") 1x type("image/webp"),url("../img/mountains.jpg") 1x type("image/jpeg") )}@keyframes zoomOut{from{opacity:0;transform:scale(1.06)}to{opacity:0.22;transform:scale(1)}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}@media (min-width:768px){.container{padding:0 2.5rem}}main{position:relative;z-index:1}.hero{position:relative;min-height:calc(100vh - 60px);display:flex;align-items:center;padding:6rem 0 4rem}.hero__inner{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center}.hero__picture{order:-1}.hero__about{order:0;max-width:640px}@media (min-width:768px){.hero__inner{grid-template-columns:minmax(0,1fr) auto;gap:5rem}.hero__picture{order:0}}.hero__name{font-size:clamp(1.6rem,3.6vw,2.6rem);font-weight:700;letter-spacing:-0.01em;line-height:1.15;min-height:1.4em;white-space:pre-wrap}@media (min-width:768px){.hero__name{white-space:nowrap}}.hero__name::after{content:"_";display:inline-block;margin-left:0.06em;color:var(--paper);animation:blink 1.1s steps(2,start) infinite}.hero__job{margin-top:0.75rem;font-size:0.8rem;letter-spacing:0.35em;text-transform:uppercase;color:var(--gold);font-weight:500;animation:slideDown 0.9s 0.2s both ease-out}.hero__rule{width:56px;height:2px;border:0;background:var(--paper);margin:1.75rem 0;transform-origin:left;animation:fillUp 0.8s 0.4s both cubic-bezier(.4,0,.2,1)}.hero__text{font-size:0.92rem;font-weight:300;line-height:1.8;color:var(--paper-80);max-width:56ch;animation:slideUp 1s 0.55s both ease-out}.hero__actions{margin-top:2.25rem;display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem;animation:slideUp 1s 0.75s both ease-out}.social{display:flex;align-items:center;gap:0.75rem}.social__icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:var(--paper);border:1px solid var(--line);transition:background 0.25s ease,border-color 0.25s ease,transform 0.25s ease}.social__icon:hover{background:var(--gold);color:var(--ink);border-color:var(--gold);transform:translateY(-2px)}.hero__picture{display:flex;justify-content:center}.picture{position:relative;width:clamp(220px,32vw,320px);aspect-ratio:1}.picture__img{position:relative;border-radius:999px;width:100%;height:100%;object-fit:cover;box-shadow:0 10px 10px rgba(0,0,0,0.3);animation:picImage 1.4s 0.3s both cubic-bezier(.4,0,.2,1)}@keyframes picImage{from{opacity:0;transform:scale(1.18) translateY(-0.6rem)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideDown{from{opacity:0;transform:translateY(-0.8rem)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{from{opacity:0;transform:translateY(0.8rem)}to{opacity:1;transform:translateY(0)}}@keyframes fillUp{from{transform:scaleX(0)}to{transform:scaleX(1)}}.hero__scroll{display:none;position:fixed;left:50%;bottom:2rem;transform:translateX(-50%);width:22px;height:36px;border:1px solid var(--paper-45);border-radius:12px;opacity:1;pointer-events:auto;transition:opacity 0.4s ease;z-index:5}@media (hover:hover) and (pointer:fine) and (min-width:768px){.hero__scroll{display:block}}.hero__scroll.is-hidden{opacity:0;pointer-events:none}.hero__scroll span{position:absolute;left:50%;top:8px;width:2px;height:8px;background:var(--paper);border-radius:1px;transform:translateX(-50%);animation:scrollDot 1.8s ease-in-out infinite}@keyframes scrollDot{0%{transform:translate(-50%,0);opacity:1}100%{transform:translate(-50%,14px);opacity:0}}.section{padding:3rem 0}@media (min-width:768px){.section{padding:4rem 0}}.section__head{display:flex;align-items:center;gap:1.25rem;margin-bottom:2rem}.section__num{font-size:0.75rem;letter-spacing:0.25em;color:var(--paper-65);font-weight:500}.section__title{font-size:clamp(1.6rem,3.6vw,2.4rem);font-weight:700;letter-spacing:-0.01em}.section__line{flex:1;height:1px;background:linear-gradient(to right,var(--paper-20),transparent)}.about-grid{display:grid;grid-template-columns:1fr;gap:3rem}@media (min-width:900px){.about-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:5rem;align-items:start}}.lead{font-size:clamp(1.1rem,1.8vw,1.35rem);font-weight:400;line-height:1.7;color:var(--paper);margin-bottom:1.5rem}.about-grid__text p:last-child{color:var(--paper-65);font-weight:300}.about-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.about-stats li{border-top:1px solid var(--paper-20);padding-top:1rem;display:flex;flex-direction:column;gap:0.4rem}.stat__num{font-size:clamp(2.4rem,4vw,3.2rem);font-weight:300;line-height:1}.stat__num em{font-style:normal;color:var(--accent)}.stat__label{font-size:0.65rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--paper-65)}.exp{border-top:1px solid var(--paper-12)}.exp__row{display:grid;grid-template-columns:1fr;gap:0.5rem;padding:2.25rem 0;border-bottom:1px solid var(--paper-12);transition:background 0.3s ease}.exp__row:hover{background:var(--paper-04)}.exp__row:hover .exp__role{color:var(--accent)}@media (min-width:768px){.exp__row{grid-template-columns:200px 1fr;gap:3rem}}.exp__year{font-size:0.7rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--paper-65);padding-top:0.4rem}.exp__role{font-size:clamp(1.15rem,2vw,1.5rem);font-weight:500;color:var(--paper);transition:color 0.3s ease}.exp__co{margin-top:0.4rem;font-size:0.78rem;color:var(--paper-65);letter-spacing:0.04em}.exp__desc{margin-top:1rem;font-size:0.88rem;line-height:1.75;color:var(--paper-80);font-weight:300;max-width:62ch}.exp__tags{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:0.4rem}.exp__tags li{font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--paper-65);padding:0.35rem 0.65rem;border:1px solid var(--paper-20);border-radius:999px}.skills{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}@media (min-width:900px){.skills{grid-template-columns:repeat(4,1fr);gap:2.5rem}}.skills__group{border-top:1px solid var(--paper-20);padding-top:1.5rem}.skills__title{font-size:0.7rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--accent);margin-bottom:1.25rem;font-weight:500}.skills__list li{font-size:0.92rem;font-weight:400;padding:0.5rem 0;color:var(--paper-80);position:relative;cursor:default;transition:color 0.2s ease,padding-left 0.25s cubic-bezier(.4,0,.2,1)}.skills__list li::before{content:"";position:absolute;left:0;top:50%;width:0;height:1px;background:var(--accent);transition:width 0.25s cubic-bezier(.4,0,.2,1)}.skills__list li:hover{color:var(--paper);padding-left:1rem}.skills__list li:hover::before{width:0.65rem}.projects{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width:700px){.projects{grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.projects{grid-template-columns:repeat(3,1fr)}}.proj{position:relative;border-radius:14px;overflow:hidden;background:var(--paper-04);border:1px solid var(--paper-12);transition:transform 0.35s cubic-bezier(.4,0,.2,1),background 0.35s ease,border-color 0.35s ease}.proj::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.08),transparent 55%);opacity:0;transition:opacity 0.35s ease;pointer-events:none}.proj:hover{transform:translateY(-4px);background:var(--paper-08);border-color:var(--paper-20)}.proj:hover::before{opacity:1}.proj:hover .proj__arrow{transform:translate(2px,-2px);color:var(--paper)}.proj:hover .proj__title{color:var(--accent)}.proj__link{display:flex;flex-direction:column;height:100%;padding:1.75rem 1.5rem 1.5rem;min-height:280px}.proj__index{display:flex;justify-content:space-between;align-items:center;font-size:0.7rem;letter-spacing:0.25em;color:var(--paper-65);font-weight:500}.proj__stars{margin-left:auto;margin-right:0.75rem;letter-spacing:0.15em;color:var(--gold);font-weight:700}.proj__arrow{color:var(--paper-65);transition:transform 0.35s ease,color 0.35s ease}.proj__title{margin-top:1.75rem;font-size:1.1rem;font-weight:700;line-height:1.3;color:var(--paper);transition:color 0.3s ease}.proj__desc{margin-top:0.85rem;font-size:0.82rem;line-height:1.65;color:var(--paper-80);font-weight:300;flex-grow:1}.proj__tags{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:0.35rem}.proj__tags li{font-size:0.62rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--paper-65)}.proj__tags li:not(:last-child)::after{content:" /";margin-left:0.35rem;color:var(--paper-20)}.contact{max-width:920px}.contact__kicker{font-size:0.7rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--paper-65);margin-bottom:1.5rem}.contact__headline{font-size:clamp(2rem,6vw,4rem);font-weight:700;line-height:1.05;letter-spacing:-0.015em;margin-bottom:3rem}.caret{display:inline-block;color:var(--paper);animation:blink 1.1s steps(2,start) infinite;margin-left:0.1em}@keyframes blink{to{opacity:0}}.contact__links{border-top:1px solid var(--paper-20)}.contact__row{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:1rem;padding:1.25rem 0.25rem;border-bottom:1px solid var(--paper-20);transition:padding 0.3s ease,color 0.3s ease}@media (min-width:700px){.contact__row{grid-template-columns:110px 1fr auto;padding:1.5rem 0.5rem}}.contact__row:hover{padding-left:1rem;padding-right:1rem}.contact__row:hover .contact__row-value{color:var(--accent)}.contact__row:hover .contact__row-arrow{transform:translateX(4px);color:var(--paper)}.contact__row-label{font-size:0.65rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--paper-65)}.contact__row-value{font-size:clamp(1rem,2.2vw,1.5rem);font-weight:500;color:var(--paper);transition:color 0.3s ease;word-break:break-word}.contact__row-arrow{color:var(--paper-65);transition:transform 0.3s ease,color 0.3s ease}.section--contact{padding-bottom:5rem}.lang-switch{display:inline-flex;align-items:center;gap:0.25rem;font-size:0.7rem;letter-spacing:0.12em;flex-shrink:0}.lang-switch__opt{padding:0.15rem 0.4rem;border-radius:5px;color:var(--paper-45);transition:color 0.2s ease,background 0.2s ease}.lang-switch__opt:hover{color:var(--paper)}.lang-switch__opt.is-active{color:var(--ink);background:var(--paper);font-weight:700}.posts-note{font-size:0.78rem;color:var(--paper-65);margin:-0.5rem 0 1.75rem}a:focus-visible,button:focus-visible{outline:2px solid var(--paper);outline-offset:4px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}