@charset "UTF-8";@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Montserrat-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Montserrat-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/OpenSans-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/OpenSans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@keyframes gridDrift{0%{transform:translateZ(0)}to{transform:translate3d(64px,64px,0)}}@keyframes float{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(60px,40px,0) scale(1.12)}}@keyframes fadeUp{0%{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseRing{0%{transform:scale(.55);opacity:.55}70%{transform:scale(1.7);opacity:0}to{transform:scale(1.7);opacity:0}}@keyframes scrollDot{0%{transform:translateZ(0);opacity:1}80%{transform:translate3d(0,16px,0);opacity:0}to{transform:translate3d(0,16px,0);opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translate3d(0,28px,0) scale(.97)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes cardIn{0%{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:translateZ(0)}}.hero{position:relative;min-height:100vh;min-height:100lvh;display:flex;align-items:center;justify-content:center;padding:0 24px}.hero__inner{display:flex;flex-direction:column;align-items:center;gap:3.2rem;text-align:center}.hero__title{position:relative;display:inline-grid;place-items:center;font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-weight:800;letter-spacing:-.045em;line-height:1.05;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none;outline:none;color:#fff}.hero__layer{grid-area:1/1;display:block;white-space:nowrap}.hero__letter{display:inline-block;white-space:pre;color:#fff;transition:opacity .7s cubic-bezier(.16,1,.3,1) calc(var(--i, 0) * 30ms),transform .8s cubic-bezier(.16,1,.3,1) calc(var(--i, 0) * 30ms);will-change:opacity,transform}.hero__layer--full{font-size:clamp(1.35rem,8.4vw,7.4rem)}.hero__layer--full .hero__letter{opacity:0;transform:translate3d(0,.35em,0)}.hero__layer--short{font-size:clamp(2.6rem,12vw,9rem)}.hero__layer--short .hero__letter{opacity:1;transform:translateZ(0)}.hero__title.is-expanded .hero__layer--short .hero__letter{opacity:0;transform:translate3d(0,-.3em,0)}.hero__title.is-expanded .hero__layer--full .hero__letter{opacity:1;transform:translateZ(0)}.hero__title{animation:fadeUp 1.1s cubic-bezier(.16,1,.3,1) both}.hero .btn{animation:fadeUp 1s cubic-bezier(.16,1,.3,1) .4s both}@media (max-width: 640px){.hero__layer--short{font-size:clamp(2.4rem,14vw,4.4rem)}.hero__layer--full{font-size:clamp(1.15rem,8vw,2.6rem)}.hero__letter{transition:opacity .55s cubic-bezier(.16,1,.3,1) calc(var(--i, 0) * 18ms),transform .65s cubic-bezier(.16,1,.3,1) calc(var(--i, 0) * 18ms)}}.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:28px}.project-card{background:#ffffff09;border:1px solid rgba(255,255,255,.08);position:relative;border-radius:16px;overflow:hidden;cursor:pointer;outline:none;opacity:0;transition:translate .55s cubic-bezier(.16,1,.3,1),border-color .45s cubic-bezier(.4,0,.2,1),opacity .5s cubic-bezier(.4,0,.2,1);translate:0 0}.project-card:focus-visible{border-color:var(--accent)}.section.is-visible .project-card{animation:cardIn .85s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--i, 0) * .11s)}.project-card:hover{translate:0 -6px;border-color:var(--accent-soft, rgba(0, 229, 255, .6))}.project-card:hover .project-card__emoji{transform:translate3d(0,-4px,0) scale(1.06)}.project-card:hover .project-card__more{color:var(--accent)}.project-card__visual{position:relative;height:200px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 30% 20%,rgba(0,229,255,.16),transparent 60%),radial-gradient(circle at 80% 90%,rgba(124,92,255,.2),transparent 60%),#0d0f16}.project-card__ring{position:absolute;width:150px;height:150px;border-radius:50%;border:1px solid var(--accent-soft, rgba(0, 229, 255, .5));animation:pulseRing 3.4s cubic-bezier(.4,0,.2,1) infinite;will-change:transform,opacity}.project-card__ring--delay{animation-delay:-1.7s}.project-card__emoji{position:relative;z-index:1;font-size:4.4rem;line-height:1;transition:transform .7s cubic-bezier(.16,1,.3,1)}.project-card__body{padding:28px}.project-card__meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.project-card__title{margin-bottom:.65rem;font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.project-card__desc{margin-bottom:1.5rem;font-size:.95rem;line-height:1.7;color:#8a93a6}.project-card__more{display:inline-flex;align-items:center;gap:.4rem;font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-size:.88rem;font-weight:600;transition:color .4s cubic-bezier(.4,0,.2,1)}.project-card__more-arrow{display:inline-block}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px;background:#030407d1;animation:fadeIn .35s cubic-bezier(.4,0,.2,1) both}.modal__panel{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1.15rem;width:min(560px,100%);padding:44px 40px;border:1px solid var(--accent-soft, rgba(0, 229, 255, .5));border-radius:24px;background:#0d0f16;box-shadow:0 40px 90px -40px #000000e6;animation:modalIn .55s cubic-bezier(.16,1,.3,1) both}.modal__close{position:absolute;top:14px;right:16px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.08);background:none;color:#e8ecf3;font-size:1.4rem;line-height:1;cursor:pointer;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .35s cubic-bezier(.4,0,.2,1),color .35s cubic-bezier(.4,0,.2,1)}.modal__close:hover{transform:rotate(90deg);border-color:var(--accent);color:var(--accent)}.modal__title{font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-size:clamp(1.6rem,5vw,2.15rem);font-weight:800;letter-spacing:-.03em;line-height:1.15}.modal__desc{color:#8a93a6;line-height:1.75}.modal__url,.modal__hint{font-size:.78rem;letter-spacing:.04em;color:#8a93a6;opacity:.75}@media (max-width: 640px){.modal__panel{padding:36px 24px}}.section--contacts{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:90px;padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}.contact-email{position:relative;display:inline-block;padding-bottom:8px;font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-size:clamp(1.4rem,5.5vw,3rem);font-weight:700;letter-spacing:-.02em;color:#e8ecf3;transition:color .45s cubic-bezier(.4,0,.2,1)}.contact-email:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:linear-gradient(90deg,#00e5ff,#7c5cff);transform:scaleX(0);transform-origin:center;transition:transform .65s cubic-bezier(.16,1,.3,1)}.contact-email:hover{color:#00e5ff}.contact-email:hover:after{transform:scaleX(1)}.footer{margin-top:90px;font-size:.78rem;letter-spacing:.08em;color:#8a93a6;opacity:.75}.section--contacts.is-visible .contact-email{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .1s both}.section--contacts.is-visible .footer{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .25s both}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{background-color:#07080c;scroll-behavior:auto;overflow-x:clip;overscroll-behavior-y:none;-webkit-text-size-adjust:100%}body{font-family:Open Sans,Segoe UI,system-ui,sans-serif;font-size:16px;font-weight:400;background-color:#07080c;color:#e8ecf3;line-height:1.7;overflow-x:clip;overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-weight:700;line-height:1.1;letter-spacing:-.02em}a{color:inherit;text-decoration:none}ul{list-style:none}button{font:inherit}::selection{background:#00e5ff;color:#07080c}.app{position:relative;min-height:100vh;min-height:100lvh;isolation:isolate}.bg{position:fixed;top:0;left:0;right:0;z-index:-1;overflow:hidden;pointer-events:none;height:100vh;height:100lvh;background-color:#07080c}.bg__grid{position:absolute;top:-64px;right:-64px;bottom:-64px;left:-64px;background-image:linear-gradient(rgba(0,229,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,229,255,.05) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);animation:gridDrift 22s linear infinite;will-change:transform}.bg__glow{position:absolute;width:55vmax;height:55vmax;border-radius:50%;filter:blur(80px);opacity:.2;animation:float 26s ease-in-out infinite alternate;will-change:transform}.bg__glow--a{background:#7c5cff;top:-20%;left:-15%}.bg__glow--b{background:#00e5ff;bottom:-25%;right:-15%;animation-delay:-13s}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.6rem;border-radius:999px;font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-weight:600;font-size:.95rem;letter-spacing:.01em;border:1px solid transparent;cursor:pointer;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .35s cubic-bezier(.4,0,.2,1),color .35s cubic-bezier(.4,0,.2,1),background-color .35s cubic-bezier(.4,0,.2,1)}.btn:hover{transform:translate3d(0,-2px,0)}.btn:active{transform:translateZ(0)}.btn--ghost{background:#ffffff09;border:1px solid rgba(255,255,255,.08)}.btn--ghost:hover{border-color:#00e5ff73}.btn--primary{background:linear-gradient(120deg,#00e5ff,#7c5cff);color:#07080c}.btn--primary:hover{filter:brightness(1.06)}.btn__arrow{display:inline-block}.badge{display:inline-block;padding:.28rem .75rem;border-radius:999px;font-family:Montserrat,Segoe UI,system-ui,sans-serif;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#8a93a6;border:1px solid rgba(255,255,255,.08)}.badge--file{color:var(--accent, #00e5ff);border-color:var(--accent-soft, rgba(0, 229, 255, .5))}.section{max-width:1200px;margin:0 auto;padding:130px 24px}.section__head{display:flex;align-items:baseline;gap:1rem;margin-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:1.2rem}.section__head:after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:linear-gradient(90deg,#00e5ff,transparent);transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.16,1,.3,1) .15s}.section__head{position:relative}.section__title{font-size:clamp(1.9rem,4vw,2.7rem)}.section.is-visible .section__head{animation:fadeUp .85s cubic-bezier(.16,1,.3,1) both}.section.is-visible .section__head:after{transform:scaleX(1)}@media (prefers-reduced-motion: reduce){.bg__grid,.bg__glow,.project-card__ring{animation:none!important}*,*:before,*:after{animation-duration:.35s!important;animation-iteration-count:1!important;transition-duration:.25s!important}}
