@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#000;--tile:#161617;--tile-2:#1d1d1f;--line:#424245;--line-soft:#ffffff14;--text:#f5f5f7;--text-2:#a1a1a6;--text-3:#86868b;--link:#2997ff;--btn:#0071e3;--btn-hover:#0a7ef0;--blue:#0a84ff;--orange:#ff9f0a;--green:#30d158;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-io:cubic-bezier(.65, 0, .35, 1);--sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Inter Variable", "Helvetica Neue", sans-serif;--gutter:max(22px, env(safe-area-inset-left));--content:1100px;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-color:var(--line) var(--bg);scroll-padding-top:64px}body{background:var(--bg);color:var(--text);font-family:var(--sans);letter-spacing:-.022em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;caret-color:var(--link);margin:0;font-size:17px;line-height:1.47;overflow-x:clip}::selection{color:#fff;background:#2997ff66}h1,h2,h3,p,ul,dl,dd,figure{margin:0}ul{padding:0;list-style:none}a{color:var(--link);text-underline-offset:.18em;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:6px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dim{color:var(--text-3)}.nav{z-index:10;backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--line-soft);background:#161617bd;position:sticky;top:0}.nav-inner{max-width:calc(var(--content) + var(--gutter) * 2);height:48px;padding:0 var(--gutter);align-items:center;gap:24px;margin:0 auto;display:flex}.brand{color:var(--text);letter-spacing:-.02em;align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.brand:hover{text-decoration:none}.brand svg{width:18px;height:18px}.nav-links{gap:28px;margin-left:auto;display:flex}.nav-links a,.nav-lang,.nav-gh{color:#d2d2d7;letter-spacing:-.01em;font-size:12px;transition:color .2s}.nav-links a:hover,.nav-lang:hover,.nav-gh:hover{color:#fff;text-decoration:none}.nav-end{align-items:center;gap:20px;display:flex}.nav-lang{letter-spacing:.02em;border:1px solid #6e6e73;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:600}.nav-gh{display:flex}.nav-gh svg{width:16px;height:16px}.hero{isolation:isolate;padding:clamp(64px, 10vh, 112px) var(--gutter) clamp(72px, 10vh, 112px);text-align:center;position:relative;overflow-x:clip}.hero-lede{max-width:34em;color:var(--text-2);letter-spacing:-.02em;text-wrap:pretty;margin:0 auto;font-size:clamp(19px,2vw,24px);line-height:1.4}.hero-apps{--hero-icon:clamp(64px, calc(min(22vw, 168px) * 3 / max(3, var(--count,3))), 168px);flex-wrap:wrap;justify-content:center;gap:40px clamp(12px,4vw,64px);margin-top:clamp(40px,6vh,64px);display:flex}.hero-apps a{width:max(var(--hero-icon), min(160px, 25vw));text-wrap:balance;color:var(--text);border-radius:28px;flex-direction:column;align-items:center;display:flex}.hero-apps a:hover{text-decoration:none}.hero-icon{width:var(--hero-icon);filter:drop-shadow(0 28px 36px #0000008c);height:auto;transition:transform .5s var(--ease-out);animation:fade-in 1.2s var(--ease-out) backwards;animation-delay:calc(.15s + var(--i) * 90ms);display:block}.hero-apps a:hover .hero-icon,.hero-apps a:focus-visible .hero-icon{transform:translateY(-6px)scale(1.04)}.app-name{margin-top:18px;font-size:clamp(17px,2vw,21px);font-weight:600}.app-role{color:var(--text-3);margin-top:2px;font-size:clamp(13px,1.4vw,15px)}.hero-cta{margin-top:clamp(32px,5vh,48px)}.hero-apps li{isolation:isolate;position:relative}.hero-apps li:before{content:"";z-index:-1;top:calc(var(--hero-icon) / 2);width:calc(var(--hero-icon) * 2.3);aspect-ratio:1;background:radial-gradient(circle, var(--glow) 0%, transparent 62%);filter:blur(36px);opacity:.7;mix-blend-mode:plus-lighter;animation:breathe 9s var(--ease-io) infinite alternate;animation-delay:calc(var(--i,0) * -3s);pointer-events:none;border-radius:50%;position:absolute;left:50%;translate:-50% -50%}@keyframes breathe{0%{opacity:.55;transform:scale(.9)}to{opacity:.8;transform:scale(1.08)}}@keyframes fade-in{0%{opacity:0}}.actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 28px;margin-top:32px;display:flex}.btn{background:var(--btn);color:#fff;border-radius:980px;align-items:center;min-height:44px;padding:0 22px;font-size:17px;font-weight:400;transition:background-color .2s;display:inline-flex}.btn:hover{background:var(--btn-hover);text-decoration:none}.btn:active{background:#006edb}.more{align-items:center;gap:6px;font-size:17px;display:inline-flex}.more svg{width:7px;height:12px;margin-top:1px}.projects{padding:clamp(80px, 12vw, 140px) var(--gutter) clamp(96px, 12vw, 140px)}.projects-head{max-width:var(--content);margin:0 auto}.projects-title{letter-spacing:-.03em;font-size:clamp(40px,6vw,64px);font-weight:700;line-height:1.05}.projects-lede{color:var(--text-3);letter-spacing:-.02em;margin-top:8px;font-size:clamp(21px,2.4vw,28px);font-weight:600;line-height:1.2}.catalog{grid-template-columns:repeat(var(--cols,3), minmax(0, 1fr));max-width:var(--content);gap:20px;margin:clamp(40px,5vw,56px) auto 0;display:grid}.project{grid-row:span 7;grid-template-rows:subgrid;background:var(--tile);border-radius:30px;row-gap:0;display:grid;overflow:hidden}.project-stage{isolation:isolate;place-items:center;padding:48px 0 8px;display:grid;position:relative}.project-stage:before{content:"";z-index:-1;aspect-ratio:1;background:radial-gradient(circle, var(--glow) 0%, transparent 62%);filter:blur(40px);opacity:.45;mix-blend-mode:plus-lighter;pointer-events:none;border-radius:50%;width:300px;position:absolute;top:62%;left:50%;translate:-50% -50%}.project-icon{filter:drop-shadow(0 22px 28px #0000008c);width:112px;height:auto;transition:transform .5s var(--ease-out)}.project:hover .project-icon{transform:translateY(-4px)scale(1.03)}.project-body{grid-row:span 6;grid-template-rows:subgrid;row-gap:0;padding:28px 28px 32px;display:grid}.project-name{letter-spacing:-.03em;font-size:32px;font-weight:700;line-height:1.1}.project-kind{color:var(--text-3);margin-top:4px;font-size:15px}.project-tagline{letter-spacing:-.02em;text-wrap:balance;margin-top:18px;font-size:21px;font-weight:600;line-height:1.2}.project-summary{color:var(--text-2);text-wrap:pretty;margin-top:10px;font-size:17px;line-height:1.47}.project-highlights{color:var(--text-2);margin-top:20px;font-size:15px;line-height:1.4}.project-highlights li{border-top:1px solid var(--line);padding:10px 0}.project-highlights li:last-child{border-bottom:1px solid var(--line)}.project .actions{justify-content:flex-start;margin-top:auto;padding-top:28px}.project-next{max-width:var(--content);color:var(--text-3);margin:32px auto 0;font-size:17px}.project-next strong{color:var(--text);font-weight:600}.about{width:min(var(--content), 100% - var(--gutter) * 2);border-top:1px solid var(--line-soft);align-items:flex-start;gap:clamp(20px,4vw,40px);margin:0 auto;padding:56px 0 clamp(96px,12vw,140px);display:flex}.avatar{aspect-ratio:1;background:var(--tile-2);border-radius:50%;flex:none;width:clamp(72px,12vw,104px);height:auto}.about-title{letter-spacing:-.02em;font-size:clamp(24px,3vw,32px);font-weight:600;line-height:1.15}.about-body{max-width:34em;color:var(--text-2);margin-top:10px;font-size:17px;line-height:1.5}.about-links{flex-wrap:wrap;gap:8px 28px;margin-top:18px;display:flex}.foot{background:var(--tile);color:var(--text-3);letter-spacing:-.01em;font-size:12px;line-height:1.4}.foot-inner{max-width:calc(var(--content) + var(--gutter) * 2);padding:20px var(--gutter) max(20px, env(safe-area-inset-bottom));flex-wrap:wrap;align-items:center;gap:12px 24px;margin:0 auto;display:flex}.foot-tools{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px 20px;width:100%;padding-bottom:12px;display:flex}.foot a{color:#d2d2d7}.foot-lang{margin-left:auto}@media (width<=1000px){.catalog{grid-template-columns:repeat(min(var(--cols,3), 2), minmax(0, 1fr))}}@media (width<=700px){.catalog{grid-template-columns:minmax(0,1fr)}}@media (width<=560px){.nav-inner{gap:16px}.hero{padding-top:48px}.hero-apps{--hero-icon:min(22vw, 96px);max-width:calc(var(--cols,3) * 25vw + (var(--cols,3) - 1) * 12px);gap:28px 12px;margin:36px auto 0}.hero-apps a{width:25vw}.app-name{margin-top:12px}.hero-cta{margin-top:28px}.nav-links{gap:18px}.nav-end{gap:16px}.about{flex-direction:column}.foot-lang{margin-left:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation:none!important}}
