/* Gemini Corporation · слой движения v4 (поверх v3) */
html{scroll-behavior:smooth}
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.65,0,.35,1)}

/* полоса прогресса прокрутки */
.mx-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:200;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--gold),var(--gold-2));pointer-events:none}

/* заставка: рисуется знак */
.mx-intro{position:fixed;inset:0;z-index:300;background:radial-gradient(ellipse 60% 75% at 60% 35%,#123456 0%,#08182B 45%,#050C15 100%);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:22px;transition:opacity .7s var(--ease-io),visibility .7s}
.mx-intro.out{opacity:0;visibility:hidden}
.mx-intro svg{width:120px;height:120px}
.mx-intro .o{stroke-dasharray:600;stroke-dashoffset:600;animation:mxDraw 1.1s var(--ease-io) .1s forwards}
.mx-intro .g{stroke-dasharray:300;stroke-dashoffset:300;animation:mxDraw .9s var(--ease-io) .45s forwards}
.mx-intro .b{stroke-dasharray:60;stroke-dashoffset:60;animation:mxDraw .4s var(--ease-io) 1.1s forwards}
.mx-intro .d{opacity:0;animation:mxFade .3s ease 1.4s forwards}
.mx-intro p{margin:0;font-family:var(--head);font-weight:300;letter-spacing:.5em;color:#EAF2FB;font-size:13px;opacity:0;animation:mxFade .6s ease 1s forwards;padding-left:.5em}
@keyframes mxDraw{to{stroke-dashoffset:0}}
@keyframes mxFade{to{opacity:1}}

/* шапка: прозрачная над первым экраном, стекло при прокрутке */
header.top{transition:background .5s var(--ease-out),border-color .5s,box-shadow .5s}
body.mx-at-top.mx-home header.top{background:rgba(5,12,21,0);border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
body.mx-scrolled header.top{background:rgba(5,12,21,.72);backdrop-filter:saturate(1.4) blur(18px);-webkit-backdrop-filter:saturate(1.4) blur(18px);box-shadow:0 10px 30px rgba(5,12,21,.25)}
body.mx-home main{margin-top:-72px}

/* первый экран */
.hero{min-height:min(100svh,980px);display:flex;align-items:center;overflow:hidden;isolation:isolate}
.hero .wrap{width:100%;padding-top:clamp(120px,14vw,170px)}
.hero .mx-bgimg{position:absolute;inset:0;background:url(assets/photo/hero.webp) center 40%/cover no-repeat;z-index:-3;transform:scale(1.12);animation:mxKen 22s var(--ease-io) infinite alternate;opacity:.55}
.hero{background-image:none!important}
@keyframes mxKen{from{transform:scale(1.12) translate3d(0,0,0)}to{transform:scale(1.02) translate3d(-1.5%,-1%,0)}}
.hero canvas.mx-sky{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero::before{z-index:-2}
.hero .mx-orbit{position:absolute;right:max(-120px,-8vw);top:50%;width:min(62vw,760px);aspect-ratio:1;transform:translateY(-50%);z-index:-1;opacity:.9;pointer-events:none}
.hero .mx-orbit svg{width:100%;height:100%;overflow:visible}
.hero .mx-orbit .ring{transform-origin:100px 100px;animation:mxSpin 90s linear infinite}
.hero .mx-orbit .ring2{transform-origin:100px 100px;animation:mxSpin 140s linear infinite reverse}
.hero .mx-orbit .sat{transform-origin:100px 100px;animation:mxSpin 24s linear infinite}
@keyframes mxSpin{to{transform:rotate(360deg)}}
.hero .mx-scroll{position:absolute;left:auto;right:clamp(16px,4vw,56px);bottom:140px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:4px;color:rgba(234,242,251,.55);text-decoration:none}
.hero .mx-scroll i{display:block;width:1px;height:46px;background:linear-gradient(rgba(242,198,109,0),var(--gold-2));animation:mxDrop 2.2s var(--ease-io) infinite;transform-origin:0 0}
@keyframes mxDrop{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:0 0}50.1%{transform-origin:0 100%}100%{transform:scaleY(0);transform-origin:0 100%}}
@media (max-width:860px){.hero .mx-orbit{opacity:.35;width:110vw;right:-45vw}.hero .mx-scroll{display:none}}

/* заголовок по строкам */
.mx-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.mx-line>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease-out)}
.mx-ready .mx-line>span{transform:none}
.mx-ready .mx-line:nth-child(2)>span{transition-delay:.09s}
.mx-ready .mx-line:nth-child(3)>span{transition-delay:.18s}
.mx-ready .mx-line:nth-child(4)>span{transition-delay:.27s}
.hero .eyebrow,.hero .lead,.hero .actions{opacity:0;transform:translateY(18px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.mx-ready .hero .eyebrow{opacity:1;transform:none}
.mx-ready .hero .lead{opacity:1;transform:none;transition-delay:.35s}
.mx-ready .hero .actions{opacity:1;transform:none;transition-delay:.5s}

/* появление при прокрутке */
.mx-r{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out);transition-delay:var(--d,0s)}
.mx-r.mx-in{opacity:1;transform:none}
.mx-img{clip-path:inset(12% 0 12% 0 round 6px);transition:clip-path 1.3s var(--ease-out)}
.mx-img.mx-in{clip-path:inset(0 0 0 0 round 0)}
.eyebrow.mx-in::before{animation:mxGrow .9s var(--ease-out) both}
@keyframes mxGrow{from{transform:scaleX(0);transform-origin:0 50%}to{transform:scaleX(1);transform-origin:0 50%}}

/* смена страниц */
[data-view].on.mx-enter{animation:mxPage .75s var(--ease-out) both}
@keyframes mxPage{from{opacity:0;transform:translateY(24px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
.mx-curtain{position:fixed;inset:0;z-index:150;pointer-events:none;background:linear-gradient(180deg,#050C15,#0A1A2E);transform:scaleY(0);transform-origin:50% 100%}
.mx-curtain.go{animation:mxCurtain .8s var(--ease-io) both}
@keyframes mxCurtain{0%{transform:scaleY(0);transform-origin:50% 100%}45%{transform:scaleY(1);transform-origin:50% 100%}55%{transform:scaleY(1);transform-origin:50% 0}100%{transform:scaleY(0);transform-origin:50% 0}}

/* подсветка карточек за курсором */
.dcard,.card,.feature,.pc,.doc,.dirs>a{position:relative}
.mx-glow::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(217,174,85,.16),transparent 45%)}
.mx-glow:hover::after{opacity:1}
.dcard{transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out)}
.dcard:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(5,12,21,.14)}

/* кнопки: мягкое притяжение и блик */
.btn{position:relative;overflow:hidden;transition:transform .35s var(--ease-out),background .3s,color .3s,border-color .3s}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease-out);pointer-events:none}
.btn:hover::before{transform:translateX(120%)}

/* лента брендов */
.mx-marquee{background:#fff;border-block:1px solid var(--line);overflow:hidden;padding-block:26px;margin-top:clamp(40px,5vw,64px)}
.mx-marquee .lab{text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:4px;color:var(--muted);margin:0 0 18px;text-transform:uppercase}
.mx-track{display:flex;width:max-content;gap:64px;align-items:center;animation:mxMarq 60s linear infinite}
.mx-marquee:hover .mx-track{animation-play-state:paused}
.mx-track img{height:30px;width:auto;max-width:130px;object-fit:contain;filter:grayscale(1) contrast(.9);opacity:.55;transition:filter .4s,opacity .4s}
.mx-track a:hover img{filter:none;opacity:1}
.mx-marquee{-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
@keyframes mxMarq{to{transform:translateX(-50%)}}

/* цифры: тонкая золотая линия сверху рисуется */
.stats .grid>div{position:relative}
.stats .grid>div::before{content:"";position:absolute;left:26px;right:26px;top:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.4s var(--ease-out) var(--d,0s)}
.stats .grid>div.mx-in::before{transform:scaleX(1)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .mx-intro{display:none}
  .mx-r,.mx-img,.mx-line>span,.hero .eyebrow,.hero .lead,.hero .actions{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .mx-track,.hero .mx-bgimg,.hero .mx-orbit *,[data-view].on.mx-enter,.mx-curtain{animation:none!important}
}
