@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/jetbrains-mono-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/jetbrains-mono-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:'Rubik';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/rubik-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Rubik';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/rubik-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}
html{scroll-behavior:smooth;scroll-padding-top:90px}
html,body{margin:0;background:#15110f;color:#f3ede9;font-family:Rubik,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:#ff7a4d;text-decoration:none}
a:hover{color:#ffa07f}
@keyframes cmDrift1{0%{transform:translate(0,0) scale(1)}50%{transform:translate(8vw,6vh) scale(1.15)}100%{transform:translate(0,0) scale(1)}}
@keyframes cmDrift2{0%{transform:translate(0,0) scale(1.1)}50%{transform:translate(-10vw,-4vh) scale(.9)}100%{transform:translate(0,0) scale(1.1)}}
@keyframes cmDrift3{0%{transform:translate(0,0)}50%{transform:translate(4vw,-8vh)}100%{transform:translate(0,0)}}
.btn-primary:hover{background:#ff6e42!important;color:#fff!important}
.btn-secondary:hover{background:rgba(255,255,255,.12)!important;color:#fff!important}
.btn-ghost:hover{background:rgba(255,255,255,.14)!important;color:#fff!important}
.link-accent:hover{color:#ffa07f!important}
.lang{position:relative}
.lang summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;height:38px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#f3ede9;font-size:13px;font-weight:700;letter-spacing:.04em}
.lang summary::-webkit-details-marker{display:none}
.lang summary:hover,.lang[open] summary{background:rgba(255,255,255,.12)}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:160px;padding:6px;border-radius:14px;background:rgba(30,24,21,.96);border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 50px -10px rgba(0,0,0,.7);display:flex;flex-direction:column;z-index:20}
.lang-menu a{padding:9px 12px;border-radius:9px;color:#cfc4bd;font-size:14px;font-weight:600;white-space:nowrap}
.lang-menu a:hover,.lang-menu a[aria-current]{background:rgba(255,255,255,.08);color:#fff}
@keyframes cmSlideIn{from{opacity:0;transform:translateY(-28px)}to{opacity:1;transform:none}}
/* Animate the children, not <header>: an animated ancestor becomes a backdrop root in Chrome and kills #nav-bg's backdrop-filter. */
.site-header>*{animation:cmSlideIn .8s cubic-bezier(.2,.8,.2,1) backwards}
.lang[open] .lang-menu{animation:cmSlideIn .28s cubic-bezier(.2,.8,.2,1) both}
@keyframes cmSlideOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-12px)}}
.lang.closing .lang-menu{animation:cmSlideOut .2s ease-in both}
@media (prefers-reduced-motion:reduce){.site-header>*,.lang[open] .lang-menu,.lang.closing .lang-menu{animation:none}}

/* Shared layout classes (moved out of inline styles in the template) */
.cloud{position:absolute;left:0;top:0;width:300px;height:200px;will-change:transform}
.cloud-shape{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.cloud-title{margin:0;font-size:19px;font-weight:700;letter-spacing:-.01em;text-wrap:balance}
.cloud-text{margin:0;font-size:15px;line-height:1.5;color:#e2d6ce;text-wrap:pretty}
.c-muted{color:#9a8d85}
.c-text{color:#f3ede9}
.c-soft{color:#cfc4bd}
.c-dim{color:#7d716a}
.logo-part{transform-origin:8px 8px;will-change:transform}
.icon-block{display:block;flex:none}
.section{max-width:1200px;margin:0 auto;padding:clamp(80px,12vw,150px) clamp(16px,4vw,48px) 0}
.svc-head{display:flex;align-items:center;gap:14px;min-width:0}
.svc-name{margin:0;font-family:Rubik,sans-serif;font-weight:700;font-size:21px;letter-spacing:-.02em}
.col{display:flex;flex-direction:column}
.svc-icon{width:28px;height:28px;display:block}
.meta-note{font-size:14px;color:#9a8d85}
.dl-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dl-title{margin:0;display:flex;align-items:center;gap:12px;font-family:Rubik,sans-serif;font-weight:700;font-size:26px;letter-spacing:-.02em}
.dl-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.5;color:#cfc4bd}
.svc-row{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:11px 0;border-top:1px solid rgba(255,255,255,.07);font-size:14px;line-height:1.45}
.chip{display:flex;align-items:center;height:40px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.06);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);font-size:14px;font-weight:600;color:#cfc4bd}
.cloud-body{position:relative;height:200px;padding:62px 44px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px}
.svc-card{padding:28px;border-radius:20px;background:rgba(36,29,25,.42);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);display:flex;flex-direction:column;gap:22px}
.svc-icon-box{width:44px;height:44px;flex:none;border-radius:12px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center}
.dl-card{padding:clamp(24px,3vw,36px);border-radius:22px;background:rgba(36,29,25,.42);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);display:flex;flex-direction:column;gap:22px}
a.c-muted,a.c-text,a.c-soft,a.c-dim{color:inherit}
a.c-muted{color:#9a8d85}a.c-text{color:#f3ede9}a.c-soft{color:#cfc4bd}a.c-dim{color:#7d716a}

/* Screenshot carousel */
.gallery{position:relative}
.g-stage{position:relative;aspect-ratio:2/1;perspective:1600px}
.g-slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:0;background:none;cursor:zoom-in;transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .7s cubic-bezier(.2,.8,.2,1),filter .7s;will-change:transform,opacity}
.g-slide img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;padding:8px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);box-shadow:0 40px 120px -20px rgba(0,0,0,.8)}
.g-slide:focus-visible{outline:none}
.g-slide:focus-visible img{outline:2px solid #ff7a4d;outline-offset:4px}
.gallery:not(.is-ready) .g-slide:not(:first-child){display:none}
.g-slide[data-pos="0"]{z-index:3}
.g-slide[data-pos="-1"],.g-slide[data-pos="1"]{z-index:2;opacity:.45;filter:brightness(.75) saturate(.8);cursor:pointer}
.g-slide[data-pos="-1"]{transform:translateX(-58%) scale(.72) rotateY(28deg)}
.g-slide[data-pos="1"]{transform:translateX(58%) scale(.72) rotateY(-28deg)}
.g-slide[data-pos="-2"],.g-slide[data-pos="-3"],.g-slide[data-pos="2"],.g-slide[data-pos="3"]{z-index:1;opacity:0;pointer-events:none}
.g-slide[data-pos="-2"],.g-slide[data-pos="-3"]{transform:translateX(-90%) scale(.5) rotateY(40deg)}
.g-slide[data-pos="2"],.g-slide[data-pos="3"]{transform:translateX(90%) scale(.5) rotateY(-40deg)}
.g-arrow{position:absolute;top:50%;z-index:4;display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-top:-24px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:rgba(30,24,21,.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#f3ede9;cursor:pointer;transition:background .2s,transform .2s}
.g-arrow:hover{background:#ff5a2b;color:#fff;transform:scale(1.06)}
.g-prev{left:clamp(-8px,-1.5vw,8px)}
.g-next{right:clamp(-8px,-1.5vw,8px)}
.g-dots{display:flex;justify-content:center;gap:8px;margin-top:20px}
.g-dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.22);cursor:pointer;transition:width .3s,background .3s}
.g-dots button[aria-current]{width:24px;background:#ff5a2b}
@media (max-width:640px){.g-arrow{width:40px;height:40px;margin-top:-20px}.g-slide[data-pos="-1"]{transform:translateX(-44%) scale(.62) rotateY(28deg)}.g-slide[data-pos="1"]{transform:translateX(44%) scale(.62) rotateY(-28deg)}}

.g-lightbox{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:#f3ede9;overflow:hidden}
.g-lightbox[open]{display:flex;align-items:center;justify-content:center;animation:cmLbIn .3s cubic-bezier(.2,.8,.2,1) both}
.g-lightbox.closing{animation:cmLbOut .22s ease-in both}
.g-lightbox::backdrop{background:rgba(12,9,8,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.g-lb-img{display:block;max-width:min(94vw,1920px);max-height:86vh;width:auto;height:auto;border-radius:12px;box-shadow:0 30px 100px rgba(0,0,0,.7);transition:opacity .2s}
.g-lb-prev{left:clamp(8px,2vw,32px)}
.g-lb-next{right:clamp(8px,2vw,32px)}
.g-lb-close{position:absolute;top:clamp(10px,2vw,24px);right:clamp(10px,2vw,24px);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:rgba(30,24,21,.6);color:#f3ede9;cursor:pointer}
.g-lb-close:hover{background:rgba(255,255,255,.14)}
.g-lb-count{position:absolute;bottom:clamp(12px,2.5vh,28px);left:0;right:0;text-align:center;font-family:'JetBrains Mono',monospace;font-size:13px;color:#cfc4bd}
@keyframes cmLbIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes cmLbOut{from{opacity:1;transform:none}to{opacity:0;transform:scale(.96)}}
@media (prefers-reduced-motion:reduce){.g-slide{transition-duration:.15s}.g-lightbox[open],.g-lightbox.closing{animation:none}}

/* Layout blocks (desktop) */
.nav-links{display:flex;align-items:center;gap:clamp(12px,2.4vw,28px);font-size:14px;font-weight:600;flex-wrap:wrap;justify-content:flex-end}
.nav-tools{display:flex;align-items:center;gap:clamp(12px,2.4vw,28px)}
.nav-toggle{display:none}
.hero-main{min-height:calc(100svh - 84px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.8vh,22px);padding:clamp(4px,1.5vh,24px) 0 clamp(16px,3vh,40px)}
.svc-grid{margin-top:48px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.dl-grid{margin-top:48px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px}
.cloud-grid{position:relative;margin-top:56px;min-height:600px}
.dl-file{padding:14px 16px;border-radius:12px;background:rgba(0,0,0,.3);font-family:'JetBrains Mono',monospace;font-size:13px;color:#e8ddd6;overflow-x:auto}
.dl-file-pre{line-height:1.7;white-space:pre}
.footer-row{position:relative;max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,48px);display:flex;justify-content:space-between;align-items:center;gap:16px 32px;flex-wrap:wrap;font-size:14px;color:#9a8d85}
.footer-links{display:flex;gap:24px;flex-wrap:wrap}

/* Mobile: collapsible menu (<=760px) */
@media (max-width:760px){
.nav-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);cursor:pointer}
.nav-toggle span{display:block;width:18px;height:2px;border-radius:2px;background:#f3ede9;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-links{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:2px;padding:10px;border-radius:16px;background:rgba(30,24,21,.9);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 60px -12px rgba(0,0,0,.7);font-size:17px;visibility:hidden;opacity:0;transform:translateY(-12px);pointer-events:none;transition:opacity .28s cubic-bezier(.2,.8,.2,1),transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s linear .28s}
.nav-links.is-open{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition-delay:0s}
.nav-links>a{display:flex;align-items:center;min-height:48px;padding:0 14px;border-radius:10px}
.nav-links>a:active{background:rgba(255,255,255,.08)}
.nav-tools{flex-wrap:wrap;gap:10px;margin-top:6px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}
.nav-tools .lang{flex:1 1 auto}
.nav-tools .lang summary{justify-content:flex-start;padding:0 16px}
.lang-menu{position:static;box-shadow:none;background:transparent;border:0;padding:8px 0 0;min-width:0;flex-direction:row;flex-wrap:wrap;gap:6px}
.lang-menu a{background:rgba(255,255,255,.06)}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.nav-links{transform:none}}

/* Mobile: blocks that fit a phone screen (<=640px) */
@media (max-width:640px){
.hero-main{min-height:0;justify-content:flex-start;padding:18px 0 28px;gap:10px}
.section{padding-top:clamp(56px,14vw,80px)}
.g-stage{aspect-ratio:3/2}
.svc-grid{margin:28px -16px 0;padding:0 16px 10px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.svc-grid::-webkit-scrollbar{display:none}
.svc-card{flex:0 0 84%;scroll-snap-align:center;padding:20px;gap:14px}
.svc-row{padding:9px 0;font-size:13px;grid-template-columns:92px 1fr}
.cloud-grid.compact{display:grid;grid-template-columns:1fr 1fr;gap:6px 4px;min-height:0;margin-top:32px}
.cloud-grid.compact .cloud{position:relative;width:auto;height:auto;left:auto;top:auto}
.cloud-grid.compact .cloud-body{height:auto;min-height:118px;padding:34px 22px 28px;gap:4px}
.cloud-grid.compact .cloud-title{font-size:13px;line-height:1.2}
.cloud-grid.compact .cloud-text{font-size:11.5px;line-height:1.35}
.dl-grid{margin-top:28px;gap:12px}
.dl-card{padding:20px;gap:14px}
.dl-title{font-size:22px}
.dl-file{padding:10px 12px;font-size:12px}
.dl-list{font-size:14px}
.footer-row{flex-direction:column;align-items:flex-start}
.footer-links{gap:8px 20px}
}

/* Release version badge next to the logo */
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.ver{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;color:#cfc4bd;white-space:nowrap;transition:background .2s,color .2s}
.ver[hidden]{display:none}
.ver:hover{background:rgba(255,90,43,.18);color:#ffa07f}

/* Changelog panel (opened from the version badge) */
.changelog{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:min(560px,100%);max-height:min(70vh,600px);display:flex;flex-direction:column;border-radius:16px;background:rgba(30,24,21,.92);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 60px -12px rgba(0,0,0,.7);outline:none;visibility:hidden;opacity:0;transform:translateY(-12px);pointer-events:none;transition:opacity .28s cubic-bezier(.2,.8,.2,1),transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s linear .28s}
.changelog.is-open{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition-delay:0s}
.cl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 10px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.cl-title{margin:0;font-family:Rubik,sans-serif;font-weight:700;font-size:18px;letter-spacing:-.01em}
.cl-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:#f3ede9;cursor:pointer}
.cl-close:hover{background:rgba(255,255,255,.14)}
.cl-body{overflow-y:auto;padding:6px 20px 18px;font-size:14px;line-height:1.5;color:#cfc4bd;overscroll-behavior:contain}
.cl-release{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.cl-release h3{display:flex;align-items:baseline;gap:10px;margin:0 0 8px;font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:500}
.cl-release h3 a{color:#ff7a4d}
.cl-release time{font-family:Rubik,sans-serif;font-size:12.5px;color:#9a8d85}
.cl-release h4{margin:10px 0 4px;font-size:13px;color:#f3ede9}
.cl-release p{margin:0 0 6px}
.cl-release ul{margin:0;padding-left:18px}
.cl-release li{margin:0 0 6px}
.cl-release code{padding:1px 5px;border-radius:5px;background:rgba(0,0,0,.35);font-family:'JetBrains Mono',monospace;font-size:12.5px;color:#e8ddd6}
.cl-state{margin:16px 0}
.cl-all{display:inline-block;margin-top:14px;font-weight:600}
@media (max-width:760px){.changelog{right:0;width:auto;max-height:min(72vh,560px)}.cl-body{padding:4px 16px 16px}}
@media (prefers-reduced-motion:reduce){.changelog{transform:none}}
