/* Главная G · Ночной режим. Анимации — из прототипа prototypes/src/G (css/home.css), инлайн-стили pages/home.html вынесены в классы. */

@keyframes fly{0%{transform:translate(-200px,140px);opacity:1}70%{transform:translate(2150px,-689px);opacity:1}70.1%,100%{transform:translate(2150px,-689px);opacity:0}}
@keyframes drone-x{from{transform:translateX(calc(var(--d) * -1))}to{transform:translateX(var(--d))}}
@keyframes hover-y{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes fill{from{transform:scaleY(0)}}
@keyframes node{from{background:#2A2A2E;box-shadow:none}}
@keyframes rv{from{opacity:0;transform:translateY(48px)}}

.fly{opacity:0;animation:fly 10s linear infinite}
.hov{display:block;animation:hover-y 3s ease-in-out infinite}
.d1{--d:22vw}.d2{--d:34vw}.d3{--d:46vw}.d4{--d:28vw}.d5{--d:40vw}.d6{--d:52vw}.d7{--d:30vw}.d8{--d:44vw}

/* Первый экран: ночной аэродром в видоискателе */
.g-top{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:800px;cursor:crosshair;background:radial-gradient(70% 45% at 50% 100%,rgba(255,46,46,.32),rgba(255,46,46,0) 70%),linear-gradient(180deg,#0B0B0D 0%,#0E0D10 55%,#1A0A0C 100%)}
.g-beam{position:absolute;z-index:0;bottom:60px;width:160px;height:980px;margin-left:-80px;clip-path:polygon(46% 100%,54% 100%,100% 0,0 0)}
.g-land{position:absolute;z-index:1;left:0;bottom:0;width:100%;height:220px}
.g-cover{position:absolute;inset:0;z-index:2;pointer-events:none}
.g-vig{background:radial-gradient(90% 80% at 50% 45%,transparent 55%,rgba(0,0,0,.55) 100%)}
.g-br{position:absolute;z-index:3;width:44px;height:44px;border:0 solid rgba(242,242,240,.35)}
.g-br.tl{left:24px;top:24px;border-left-width:2px;border-top-width:2px}
.g-br.tr{right:24px;top:24px;border-right-width:2px;border-top-width:2px}
.g-br.bl{left:24px;bottom:24px;border-left-width:2px;border-bottom-width:2px}
.g-br.brr{right:24px;bottom:24px;border-right-width:2px;border-bottom-width:2px}
.g-lbl-l,.g-lbl-r{position:absolute;z-index:3;top:36px;margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--mu)}
.g-lbl-l{left:84px}
.g-lbl-r{right:84px}
.g-lbl-r span{color:var(--fg)}
.g-scroll{position:absolute;z-index:3;right:36px;top:50%;margin:0;writing-mode:vertical-rl;font-family:var(--mono);font-size:11px;letter-spacing:.3em;color:var(--mu)}
.g-ret{left:var(--mx,70%);top:var(--my,330px)}
.g-hero-in{position:relative;z-index:3;margin-top:auto;padding:120px var(--gut) clamp(150px,14vw,200px)}
.g-rec{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-family:var(--mono);font-size:12px;letter-spacing:.22em;color:var(--fg2)}
.g-rec .rec{flex:none;width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red)}
.g-h1{margin:0;font-family:var(--cond);font-weight:900;font-size:clamp(88px,14.5vw,240px);line-height:.8;letter-spacing:-.01em;text-transform:uppercase}
.g-red{color:var(--red)}
.g-hero-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;margin-top:30px}
.g-lead{max-width:34em;margin:0;font-size:clamp(16px,1.3vw,19px);line-height:1.6;color:var(--fg2)}
.g-hero-row .btns{cursor:default}

/* О фестивале */
.g-orgs{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;margin-top:28px}

/* Небо: пролёт авиагруппы */
.g-sky{position:relative;height:clamp(280px,30vw,440px);overflow:hidden;border:1px solid var(--ln);background:radial-gradient(60% 80% at 72% 0%,rgba(255,46,46,.2),rgba(255,46,46,0) 70%),#0E0E11}
.g-sky-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(242,242,240,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(242,242,240,.05) 1px,transparent 1px);background-size:80px 80px}
.g-sky svg{position:absolute;inset:0;width:100%;height:100%}
.g-c{position:absolute;width:18px;height:18px;border:0 solid var(--red)}
.g-c.tl{left:-1px;top:-1px;border-left-width:2px;border-top-width:2px}
.g-c.tr{right:-1px;top:-1px;border-right-width:2px;border-top-width:2px}
.g-c.bl{left:-1px;bottom:-1px;border-left-width:2px;border-bottom-width:2px}
.g-c.brr{right:-1px;bottom:-1px;border-right-width:2px;border-bottom-width:2px}
.g-sky-l,.g-sky-r{position:absolute;margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--mu)}
.g-sky-l{left:20px;top:16px}
.g-sky-r{right:20px;bottom:16px}
.g-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.g-chips span{padding:10px 14px;border:1px solid var(--ln2);font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--fg2)}
.g-chips b{font-weight:400;color:var(--red)}

/* Тысяча дронов */
.g-drones{position:relative;overflow:hidden;margin-top:clamp(64px,7vw,112px);padding:clamp(80px,8vw,140px) var(--gut);border-top:1px solid var(--ln);border-bottom:1px solid var(--ln);background:radial-gradient(50% 60% at 30% 50%,rgba(255,46,46,.12),rgba(255,46,46,0) 70%),var(--bg)}
.g-drones-fly{position:absolute;inset:0;pointer-events:none}
.dx{position:absolute;left:50%}
.dx svg{display:block;width:100%;height:auto}
.g-drones-in{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px 48px}
.g-drones-tx{flex:1 1 520px;min-width:0}
.g-k{margin:0;font-family:var(--mono);font-size:12px;letter-spacing:.22em;color:var(--red)}
.g-1000{margin:12px 0 0;font-family:var(--cond);font-weight:900;font-size:clamp(150px,22vw,340px);line-height:.8;letter-spacing:-.02em}
.g-1000-l{margin:10px 0 0;font-family:var(--cond);font-weight:800;font-size:clamp(28px,3vw,44px);line-height:1;text-transform:uppercase}
.g-drones-card{flex:0 1 420px;padding:24px;border:1px solid var(--ln2);background:rgba(11,11,13,.75)}
.g-drones-d{margin:14px 0 18px;font-size:17px;line-height:1.6;color:var(--fg2)}
.g-drones-card ul{margin:0;padding:0;list-style:none;font-family:var(--mono);font-size:12px;letter-spacing:.12em}
.g-drones-card li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--ln)}
.g-drones-card li span:first-child{color:var(--mu)}

/* Хроника трёх дней */
.g-line{position:relative;padding-left:64px}
.g-line-bg,.g-line-fill{position:absolute;left:15px;top:6px;bottom:0;width:2px}
.g-line-bg{background:#232327}
.g-line-fill{background:var(--red);box-shadow:0 0 12px var(--red)}
.g-lday{position:relative;padding-bottom:56px}
.g-lday:last-child{padding-bottom:8px}
.g-lday .node{position:absolute;left:-56px;top:8px;width:18px;height:18px;background:var(--red);box-shadow:0 0 0 5px rgba(255,46,46,.2)}
.g-lday-k{margin:0;font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--mu)}
.g-lday h3{margin:10px 0 0;font-family:var(--cond);font-weight:900;font-size:clamp(40px,4.4vw,64px);line-height:.9;text-transform:uppercase}
.g-lday ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:0 32px;margin:22px 0 0;padding:0;list-style:none}
.g-lday li{display:flex;gap:16px;padding:14px 0;border-top:1px solid var(--ln);font-size:17px;line-height:1.45}
.g-lday time{flex:none;width:64px;font-family:var(--mono);font-size:14px;line-height:1.75;color:var(--red)}

/* Секторы */
.g-zts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.page .zt{display:flex;flex-direction:column;gap:12px;min-height:230px;padding:22px;border:1px solid var(--ln2);color:var(--fg);text-decoration:none;transition:background-color .3s,color .3s}
.zt-k{font-family:var(--mono);font-size:12px;letter-spacing:.2em}
.zt-t{margin-top:auto;font-family:var(--cond);font-weight:900;font-size:40px;line-height:.9;text-transform:uppercase}
.zt-d{font-size:15px;line-height:1.5;color:var(--mu)}
.page .zt:hover{background-color:var(--red);color:var(--bg)}
.zt:hover .zt-d{color:var(--bg)}

/* Лагерь, допуски */
.g-patriot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px;background:radial-gradient(60% 120% at 0% 0%,rgba(255,46,46,.2),rgba(255,46,46,0) 60%),#111114}
.g-passes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}
.g-passes .pass .h3{font-size:64px}
.g-strip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 32px;margin-top:16px;padding:16px 20px;border:1px solid var(--ln);font-family:var(--mono);font-size:13px;letter-spacing:.08em;color:var(--fg2)}
.g-strip>span:first-child{color:var(--red);letter-spacing:.2em;text-transform:uppercase}
.g-strip b{font-weight:400;color:var(--fg)}

@supports (animation-timeline:view()){
.dx{animation:drone-x linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
.g-home .rv{animation:rv linear both;animation-timeline:view();animation-range:entry 0% entry 75%}
.g-line-fill{transform-origin:50% 0;animation:fill linear both;animation-timeline:view();animation-range:entry 30% exit 70%}
.g-lday .node{animation:node linear both;animation-timeline:view();animation-range:entry 40% entry 100%}
}
@media (prefers-reduced-motion:reduce){.g-home *{animation:none!important;transition:none!important}.gl::before,.gl::after{display:none}}
@media (max-width:980px){.g-lbl-l,.g-scroll{display:none}.g-lbl-r{right:64px}}
@media (max-width:640px){
.g-top{min-height:620px}
.g-hero-in{padding-top:90px}
.g-ret{display:none}
.g-lbl-r{left:64px;right:auto}
.g-log .g-lday li:nth-child(n+4){display:none}
.g-log .g-lday ul{margin-top:14px}
.g-drones{padding-top:56px;padding-bottom:56px}
.g-passes .pass .h3{font-size:52px}
}
