/* ===== Разделы после сцены: тот же светлый «студийный» стиль — крупный Unbounded, фирменный градиент,
   белые карточки с мягкой тенью, тонкие линии. Имена переменных совпадают с боевым лендингом,
   поэтому блоки конструктора (game.js), карты и кабинета перенесены без изменения разметки. ===== */
:root{
  --void:#E6E6EA; --deck:#FFFFFF; --deck2:#F2F3F7; --rim:rgba(11,18,34,.09); --rim2:rgba(11,18,34,.16);
  --text:#0B1222; --muted:#4C5568; --signal:#1D7BFF; --on-signal:#fff; --live:#12A36B;
  --lift:0 30px 60px -32px rgba(11,18,34,.45); --card-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 24px 60px -34px rgba(11,18,34,.42);
  --r-s:12px; --r-m:18px; --r-l:28px; --maxw:1240px;
  --panel:#FFFFFF; --accent:#1D7BFF; --line:rgba(11,18,34,.09);
}
html{background:var(--bg)}
h1,h2,h3{text-wrap:balance}
[hidden]{display:none !important}
[data-live-off]{display:none !important}
.muted{color:var(--muted)}
:focus-visible{outline:2px solid var(--signal); outline-offset:3px}
#prog{position:fixed; top:0; left:0; height:3px; width:100%; z-index:60; transform-origin:0 50%; transform:scaleX(0); background:var(--acc)}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
.sec{position:relative; padding:130px 0; background:var(--bg)}
.sec-alt{background:linear-gradient(180deg,#DCDCE1,#E3E3E8)}
.sec-k{margin:0 0 16px; font-weight:800; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--volt)}
.sec h2,.cta-box h2,.cab h2{font-family:'Unbounded'; font-weight:800; font-size:clamp(30px,3.7vw,56px); line-height:1.02; letter-spacing:-.03em; text-transform:uppercase; margin:0}
.acc{background:var(--acc); -webkit-background-clip:text; background-clip:text; color:transparent}
.sec-head{max-width:860px; margin:0 0 56px}
.sec-head .sub{margin:22px 0 0; color:var(--muted); font-size:19px; max-width:36em}
.sec h3{font-family:'Unbounded'; font-weight:700; font-size:19px; line-height:1.25; margin:0; letter-spacing:-.01em}
.sec p{margin:0}

/* кнопки разделов: те же, что в сцене; варианты боевого лендинга */
.btn-primary{background:var(--ink); color:#fff; border-color:var(--ink)}
.btn-primary:hover{background:var(--volt); border-color:var(--volt)}
.btn:disabled{opacity:.35; cursor:not-allowed; background:var(--ink); border-color:var(--ink)}
button.btn{font-family:'Manrope'; cursor:pointer}

/* появление при прокрутке */
.rv{opacity:0; transform:translateY(34px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1; transform:none}
.steps .rv:nth-child(2),.feats .rv:nth-child(2){transition-delay:.08s}
.steps .rv:nth-child(3),.feats .rv:nth-child(3){transition-delay:.16s}
.steps .rv:nth-child(4),.feats .rv:nth-child(4){transition-delay:.24s}

/* ---------- О сервисе ---------- */
.about{display:grid; grid-template-columns:1.2fr .8fr; gap:80px; align-items:center}
.lede{font-size:clamp(26px,2.9vw,42px) !important; line-height:1.12 !important}
.about p:not(.sec-k){margin-top:24px; color:var(--muted); font-size:19px; max-width:32em}
.poster{max-width:440px; justify-self:end; border-radius:var(--r-l); overflow:hidden; box-shadow:var(--lift); transform:rotate(2deg)}
.poster.in{transform:rotate(2deg)}
.poster img{display:block; width:100%; height:auto}

/* ---------- Как это работает ---------- */
.steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:s}
.step{position:relative; padding:30px 26px 28px; border-radius:var(--r-l); background:var(--deck); box-shadow:var(--card-shadow)}
.step .n{font-family:'Unbounded'; font-weight:900; font-size:54px; line-height:1; letter-spacing:-.04em; background:var(--acc); -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:26px}
.step p{margin-top:12px !important; color:var(--muted); font-size:16px; line-height:1.6}
.step-play{all:unset; cursor:pointer; display:inline-flex; margin-top:18px; font-weight:800; font-size:14.5px; color:var(--volt); border-bottom:2px solid rgba(29,123,255,.3)}
.step-play:hover{border-color:var(--volt)}
.step-play:focus-visible{outline:2px solid var(--signal); outline-offset:3px}

/* ---------- Преимущества ---------- */
.feats{display:grid; grid-template-columns:repeat(2,1fr); gap:20px}
.feat{padding:36px 34px; border-radius:var(--r-l); background:rgba(255,255,255,.7); box-shadow:var(--card-shadow)}
.feat .ic{width:46px; height:46px; padding:11px; border-radius:14px; color:#fff; background:var(--acc); margin-bottom:24px}
.feat p{margin-top:12px !important; color:var(--muted); font-size:16.5px; max-width:30em}

/* ---------- Охват ---------- */
.reach{padding:0; background:var(--bg); position:relative; z-index:2}
.reach-box{display:grid; grid-template-columns:repeat(3,1fr); border-radius:var(--r-l); overflow:hidden; background:var(--ink); color:#fff; transform:translateY(-50%); margin-bottom:-60px;
  box-shadow:0 40px 80px -40px rgba(11,18,34,.6)}
.reach-box .stat{position:relative; padding:44px 38px}
.reach-box .stat+.stat{box-shadow:inset 1px 0 0 rgba(255,255,255,.1)}
.reach-box .v{font-family:'Unbounded'; font-weight:800; font-size:clamp(34px,4.2vw,60px); line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums}
.reach-box .stat:first-child .v{background:linear-gradient(100deg,#3FA9FF,#D24BFF); -webkit-background-clip:text; background-clip:text; color:transparent}
.reach-box .l{margin-top:14px; font-size:15.5px; color:#9AA8C6}
.reach-box .stat:first-child::after{content:''; position:absolute; right:30px; top:30px; width:9px; height:9px; border-radius:50%; background:#2FE39A; box-shadow:0 0 12px #2FE39A}
.reach + .mapsec{padding-top:110px}

/* ---------- Карта ---------- */
.map-totals{display:flex; flex-wrap:wrap; gap:36px; margin:-24px 0 28px}
.map-totals div{display:flex; align-items:baseline; gap:10px}
.map-totals b{font:800 34px 'Unbounded',sans-serif; letter-spacing:-.02em}
.map-totals span{color:var(--muted); font-size:15px; font-weight:600}
.map-box{display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:16px}
.map-box.no-map{grid-template-columns:1fr}
.map-box.no-map .ymap{display:none}
.ymap{position:relative; height:560px; border-radius:var(--r-l); overflow:hidden; background:var(--deck2); box-shadow:var(--card-shadow)}
.map-ph{position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); font-weight:700}
.map-cats{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px}
.map-cats button,.gm-chip{all:unset; box-sizing:border-box; cursor:pointer; min-height:44px; padding:0 18px; display:inline-flex; align-items:center; border-radius:999px; background:rgba(255,255,255,.7); box-shadow:inset 0 0 0 1px var(--rim2); font-weight:700; font-size:14.5px; color:var(--text); transition:background .15s, box-shadow .15s}
.map-cats button:hover,.gm-chip:hover{box-shadow:inset 0 0 0 1.5px var(--volt)}
.map-cats button.on,.gm-chip.on{background:var(--ink); color:#fff; box-shadow:none}
.map-cats button:focus-visible,.ml-city>button:focus-visible,.ml-pt:focus-visible{outline:2px solid var(--signal); outline-offset:2px}
.map-list{background:var(--deck); border-radius:var(--r-l); box-shadow:var(--card-shadow); padding:14px; max-height:560px; overflow:auto}
.map-box.no-map .map-list{max-height:none; columns:2 280px; column-gap:16px}
.ml-city{break-inside:avoid; margin-bottom:10px}
.ml-city>button{all:unset; box-sizing:border-box; cursor:pointer; display:flex; justify-content:space-between; gap:10px; width:100%; min-height:44px; padding:10px 12px; border-radius:var(--r-s); font-weight:800; color:var(--text)}
.ml-city>button:hover,.ml-pt:hover{background:var(--deck2)}
.ml-city>button small,.ml-pt small{color:var(--muted); font-weight:700; white-space:nowrap}
.ml-pt{all:unset; box-sizing:border-box; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:44px; padding:8px 12px 8px 24px; border-radius:var(--r-s); font-size:15px; color:var(--text)}
.ml-pt span{overflow:hidden; text-overflow:ellipsis}
.map-note{margin-top:16px !important; font-size:13px; color:var(--muted); max-width:62em}
.map-note a{color:var(--volt); text-decoration:underline}
.nd-pin,.nd-cl{position:absolute; transform:translate(-50%,-50%); display:grid; place-items:center; border-radius:50%; font-family:'Unbounded',sans-serif; font-weight:700; cursor:pointer; color:#fff}
.nd-pin{width:44px; height:44px; font-size:15px; background:#0B1222; border:3px solid #fff; box-shadow:0 0 0 2px #1D7BFF, 0 8px 18px rgba(11,18,34,.35)}
.nd-cl{width:58px; height:58px; font-size:17px; background:linear-gradient(135deg,#1D7BFF,#D24BFF); border:3px solid #fff; box-shadow:0 8px 20px rgba(11,18,34,.35)}

/* ---------- Кабинет ---------- */
.cab{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center}
.cab:has(.cab-win[data-live-off]){grid-template-columns:1fr; max-width:760px}
.cab ul{list-style:none; padding:0; margin:36px 0 0; display:grid; gap:16px}
.cab li{position:relative; padding-left:34px; font-size:17.5px; font-weight:600}
.cab li::before{content:''; position:absolute; left:0; top:.28em; width:20px; height:20px; border-radius:50%; background:var(--acc)}
.cab li::after{content:''; position:absolute; left:6px; top:calc(.28em + 6px); width:8px; height:4px; border:2px solid #fff; border-top:0; border-right:0; transform:rotate(-45deg)}
.cab-card{border-radius:var(--r-l); background:var(--deck); box-shadow:var(--lift); overflow:hidden; transform:rotate(-1.5deg)}
.cab-bar{display:flex; align-items:center; justify-content:space-between; padding:18px 26px; background:var(--ink); color:#fff}
.cab-bar b{font-size:14px; font-weight:700}
.cab-bar::after{content:''; width:9px; height:9px; border-radius:50%; background:#2FE39A; box-shadow:0 0 10px #2FE39A}
.cab-body{padding:6px 26px 12px}
.cab-row{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; border-bottom:1px solid var(--rim); font-size:15.5px}
.cab-row.is-last{border-bottom:none}
.cab-row .k{color:var(--muted)}
.cab-row .num{font:800 22px 'Unbounded',sans-serif; font-variant-numeric:tabular-nums}
.pill{font-size:13px; font-weight:800; padding:6px 12px; border-radius:999px}
.pill.on{color:#0B7A50; background:rgba(18,163,107,.14)}
.pill.mod{color:#1559C8; background:rgba(29,123,255,.12)}
.pill.off{color:#C21F3A; background:rgba(255,92,112,.14)}

/* ---------- Призыв ---------- */
.cta-band{padding:0 0 130px; background:var(--bg)}
.cta-band:not(:has(.cta-actions a:not([style*="display:none"]))){display:none}
.cta-box{padding:84px 40px; border-radius:var(--r-l); text-align:center; color:#fff; background:radial-gradient(700px 320px at 50% 0%,rgba(63,169,255,.35),transparent 70%),var(--ink)}
.cta-box h2{max-width:20ch; margin:0 auto; color:#fff}
.cta-box p{margin:20px auto 0; max-width:32em; color:#9AA8C6; font-size:19px}
.cta-actions{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:36px}
.cta-box .btn{background:#fff; color:var(--ink); border-color:#fff}
.cta-box .btn-ghost{background:transparent; color:#fff; border-color:rgba(255,255,255,.4)}

/* ---------- Подвал ---------- */
.foot{padding:52px 0 60px; background:var(--ink); color:#8C9BBB; font-size:15px; text-align:left; border:0}
.foot-in{display:flex; flex-wrap:wrap; gap:16px 32px; align-items:center; justify-content:space-between}
.foot-brand{display:flex; align-items:center; gap:12px; font:700 14px 'Unbounded'; letter-spacing:.14em; color:#fff}
.foot-brand img{width:22px; height:28px}
#legalFoot{margin-top:26px; font-size:13px; line-height:1.7; text-align:center}
#legalFoot a{display:inline-block; padding:10px 12px; color:#7CC4FF; font-weight:700}
#legalFoot a:hover{text-decoration:underline}

/* ---------- Конструктор кампании (game.js) ---------- */
.game{overflow:hidden}
#game{scroll-margin-top:70px}
.gm-top{display:grid; grid-template-columns:1fr 300px; gap:28px; align-items:center; margin-bottom:28px}
.gm-levels{list-style:none; margin:0; padding:0; display:flex; gap:8px; flex-wrap:wrap}
.gm-node{all:unset; box-sizing:border-box; cursor:pointer; display:flex; align-items:center; gap:10px; min-height:48px; padding:6px 18px 6px 6px; border-radius:999px; background:var(--deck); box-shadow:inset 0 0 0 1px var(--rim2); font-weight:700; font-size:15px; color:var(--text); transition:box-shadow .2s}
.gm-node:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--volt)}
.gm-node:focus-visible{outline:2px solid var(--signal); outline-offset:2px}
.gm-node:disabled{cursor:not-allowed; color:#8E96A8; background:transparent; box-shadow:inset 0 0 0 1px var(--rim)}
.gm-node-n{width:36px; height:36px; border-radius:50%; display:grid; place-items:center; font:700 13px 'Unbounded',sans-serif; background:var(--deck2); color:var(--text)}
.gm-node.is-cur{box-shadow:inset 0 0 0 2px var(--ink)}
.gm-node.is-cur .gm-node-n{background:var(--ink); color:#fff}
.gm-node.is-done .gm-node-n{background:rgba(18,163,107,.14); color:var(--live); font-size:0}
.gm-node.is-done .gm-node-n::before{content:''; width:13px; height:7px; border:2.5px solid var(--live); border-top:0; border-right:0; transform:translateY(-2px) rotate(-45deg)}
.gm-node:disabled .gm-node-n{background:transparent; box-shadow:inset 0 0 0 1px var(--rim2); color:#8E96A8}
.gm-prog-h{display:flex; justify-content:space-between; font-size:14px; color:var(--muted); font-weight:700; margin-bottom:10px}
.gm-prog-h b{font-family:'Unbounded'; font-weight:800; color:var(--text)}
.gm-prog-track{height:8px; border-radius:999px; background:rgba(11,18,34,.1); overflow:hidden}
.gm-prog-track i{display:block; height:100%; width:0; border-radius:999px; background:var(--acc); transition:width .6s cubic-bezier(.2,.7,.2,1)}
.gm-grid{display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:32px; align-items:start}
.gm-panel{background:var(--deck); border-radius:var(--r-l); box-shadow:var(--lift); padding:38px; min-height:520px}
.gm-stage h3{font-size:24px; font-weight:800}
.gm-stage h3:focus{outline:none}
.gm-lv{font-size:13px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--volt); margin-bottom:10px}
.gm-hint{margin-top:12px !important; color:var(--muted); font-size:15.5px; max-width:38em}
.gm-chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px}
.gm-chip:focus-visible,.gm-pt:focus-visible,.gm-link:focus-visible{outline:2px solid var(--signal); outline-offset:2px}
.gm-points{display:grid; gap:10px; margin-top:18px; max-height:340px; overflow:auto; padding:2px}
.gm-pt{all:unset; box-sizing:border-box; cursor:pointer; display:grid; grid-template-columns:26px 1fr auto; gap:14px; align-items:center; padding:16px 18px; border-radius:var(--r-m); background:var(--deck2); box-shadow:inset 0 0 0 1px var(--rim); transition:box-shadow .15s, background .15s}
.gm-pt:hover{box-shadow:inset 0 0 0 1px var(--rim2)}
.gm-pt.on{background:rgba(29,123,255,.07); box-shadow:inset 0 0 0 1.5px var(--volt)}
.gm-pt-box{width:22px; height:22px; border-radius:7px; box-shadow:inset 0 0 0 1.5px var(--rim2); display:grid; place-items:center; background:#fff}
.gm-pt.on .gm-pt-box{background:var(--volt); box-shadow:none}
.gm-pt.on .gm-pt-box::before{content:''; width:10px; height:5px; border:2.5px solid #fff; border-top:0; border-right:0; transform:translateY(-1px) rotate(-45deg)}
.gm-pt-t{display:flex; flex-direction:column; min-width:0}
.gm-pt-t b{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.gm-pt-t small{color:var(--muted); font-size:13.5px}
.gm-pt-n{font-weight:800; font-size:14px; color:var(--volt); white-space:nowrap}
.gm-foot{display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:28px}
.gm-info{flex:1 1 200px; color:var(--muted); font-size:14.5px}
.gm-field{display:block; margin-top:14px}
.gm-field span{display:block; font-size:13.5px; font-weight:700; color:var(--muted); margin-bottom:6px}
.gm-field select{width:100%; min-height:48px; padding:0 14px; border-radius:var(--r-s); border:1px solid var(--rim2); background:#fff; font:700 16px 'Manrope',sans-serif; color:var(--text); color-scheme:light}
.gm-field select:focus{outline:2px solid var(--signal); outline-offset:0}
.gm-row{display:flex; flex-wrap:wrap; gap:16px 28px; margin-top:6px}
.gm-sel{flex:1 1 140px}
.gm-lbl{margin-top:20px; font-size:13.5px; font-weight:700; color:var(--muted)}
.gm-drop{position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:170px; margin-top:20px; padding:24px; border-radius:var(--r-m); border:2px dashed var(--rim2); background:var(--deck2); text-align:center; cursor:pointer; transition:border-color .15s, background .15s}
.gm-drop:hover,.gm-drop.over{border-color:var(--volt); background:rgba(29,123,255,.06)}
.gm-drop:focus-within{outline:2px solid var(--signal); outline-offset:2px}
.gm-drop input{position:absolute; inset:0; opacity:0; cursor:pointer}
.gm-drop b{font-size:17px}
.gm-drop span{color:var(--muted); font-size:14.5px}
.gm-picked{display:flex; flex-direction:column; gap:2px; margin-top:16px; font-size:15px}
.gm-picked b{overflow-wrap:anywhere}
.gm-picked small{font-size:13.5px}
.gm-err{margin-top:8px !important; color:#C21F3A; font-weight:800}
.gm-err:empty{display:none}
.gm-checks{list-style:none; margin:22px 0 0; padding:0; display:grid; gap:10px}
.gm-ck{display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:var(--r-m); background:var(--deck2); box-shadow:inset 0 0 0 1px var(--rim); font-weight:700}
.gm-ck-i{flex:none; width:24px; height:24px; border-radius:50%; box-shadow:inset 0 0 0 2px var(--rim2); position:relative}
.gm-ck:not(.ok):not(.bad):not(.warn) .gm-ck-i{border:2px solid transparent; border-top-color:var(--volt); box-shadow:inset 0 0 0 2px var(--rim); animation:gmspin .7s linear infinite}
.gm-ck.ok .gm-ck-i{background:var(--live)}
.gm-ck.ok .gm-ck-i::before{content:''; position:absolute; left:6px; top:7px; width:10px; height:5px; border:2.5px solid #fff; border-top:0; border-right:0; transform:rotate(-45deg)}
.gm-ck.bad{color:#C21F3A; box-shadow:inset 0 0 0 1.5px rgba(194,31,58,.35)}
.gm-ck.bad .gm-ck-i{background:#E2344F; box-shadow:none}
.gm-ck.bad .gm-ck-i::before,.gm-ck.bad .gm-ck-i::after{content:''; position:absolute; left:11px; top:5px; width:2.5px; height:14px; background:#fff; border-radius:2px; transform:rotate(45deg)}
.gm-ck.bad .gm-ck-i::after{transform:rotate(-45deg)}
.gm-ck.warn{color:#8A5600; box-shadow:inset 0 0 0 1.5px rgba(240,165,0,.45)}
.gm-ck.warn .gm-ck-i{background:#F0A500; box-shadow:none}
.gm-ck.warn .gm-ck-i::before{content:'!'; position:absolute; inset:0; display:grid; place-items:center; color:#1A1000; font-weight:800; font-size:14px}
@keyframes gmspin{to{transform:rotate(360deg)}}
.gm-msg{margin-top:16px !important; font-weight:700}
.gm-est{margin-top:24px; padding:22px 24px; border-radius:var(--r-m); background:rgba(29,123,255,.07); box-shadow:inset 0 0 0 1px rgba(29,123,255,.2)}
.gm-est-v{font:800 36px 'Unbounded',sans-serif; color:var(--text); font-variant-numeric:tabular-nums; letter-spacing:-.02em}
.gm-est-l{margin-top:4px; font-weight:700}
.gm-est-n{margin-top:10px; font-size:13.5px; color:var(--muted)}
.gm-sim{margin-top:22px; padding:28px; border-radius:var(--r-m); background:var(--ink); text-align:center}
.gm-count{font:800 54px/1.1 'Unbounded',sans-serif; font-variant-numeric:tabular-nums; background:linear-gradient(100deg,#3FA9FF,#D24BFF); -webkit-background-clip:text; background-clip:text; color:transparent}
.gm-count-l{margin-top:6px; color:#9AA8C6; font-size:15px}
.gm-bars{display:flex; align-items:flex-end; gap:4px; height:80px; margin-top:20px}
.gm-bars i{flex:1; height:6%; border-radius:3px 3px 1px 1px; background:linear-gradient(180deg,#3FA9FF,#1D7BFF); transition:height .35s cubic-bezier(.2,.8,.2,1)}
.gm-big{min-height:56px; padding:0 34px; font-size:16px}
.gm-req{margin-top:20px; border-radius:var(--r-m); background:var(--deck2); box-shadow:inset 0 0 0 1px var(--rim); padding:6px 20px}
.gm-req-row{display:grid; grid-template-columns:130px 1fr; gap:12px; padding:13px 0; border-bottom:1px solid var(--rim); font-size:15px}
.gm-req-row:last-child{border-bottom:0}
.gm-req-row .k{color:var(--muted); font-weight:700}
.gm-link{all:unset; cursor:pointer; margin-top:20px; color:var(--volt); font-weight:800; font-size:15px; border-bottom:2px solid rgba(29,123,255,.3)}
/* превью: настоящая стойка с фото, ролик ложится на её стекло (углы — в app.js) */
.gm-side{position:sticky; top:90px; display:grid; gap:20px}
.gm-device{position:relative; width:min(100%,250px); margin:0 auto 18px}
.gm-device .stand{position:absolute; left:0; top:0}
.gm-scr{position:absolute; inset:var(--ins); border-radius:var(--rad); overflow:hidden; container-type:size; background:#05070D; isolation:isolate}
.gm-media{position:absolute; inset:0; display:grid; place-items:center; transition:opacity .3s}
.gm-media img,.gm-media video{width:100%; height:100%; object-fit:contain; display:block}
.gm-empty{padding:0 14%; color:rgba(234,241,255,.5); text-align:center; font:700 5cqh/1.35 'Manrope',sans-serif}
.gm-other{position:absolute; inset:0; display:flex; flex-direction:column; padding:16% 9% 0; color:#fff; opacity:0; transition:opacity .3s}
.gm-scr.is-other .gm-other{opacity:1}
.gm-scr.is-other .gm-media{opacity:0}
.gm-ad-k{font:700 4.6cqh 'Unbounded',sans-serif; letter-spacing:.04em; opacity:.9}
.gm-ad-t{margin-top:12%; font:800 min(9cqh,12cqw)/1.1 'Unbounded',sans-serif; letter-spacing:-.02em}
.gm-ad-s{margin-top:6%; font:600 5.4cqh/1.35 'Manrope',sans-serif; opacity:.92}
.gm-onair{position:absolute; top:4%; right:5%; display:flex; align-items:center; gap:6px; padding:4px 12px; border-radius:999px; background:rgba(0,0,0,.6); color:#fff; font:700 3.4cqh 'Manrope',sans-serif}
.gm-onair i{width:.9em; height:.9em; border-radius:50%; background:#FF3D57; box-shadow:0 0 8px #FF3D57}
.gm-sum{border-radius:var(--r-l); background:var(--deck); box-shadow:var(--card-shadow); padding:14px 22px 20px}
.gm-sum-row{display:flex; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--rim); font-size:15px}
.gm-sum-row span{color:var(--muted)}
.gm-sum-row b{text-align:right; font-variant-numeric:tabular-nums}
.gm-awards{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; font-size:13.5px}
.gm-award{padding:6px 12px; border-radius:999px; color:#8A5600; background:rgba(255,190,70,.18); box-shadow:inset 0 0 0 1px rgba(240,165,0,.35); font-weight:800}
.gm-toasts{position:fixed; left:16px; bottom:16px; z-index:70; display:grid; gap:8px; pointer-events:none}
.gm-toast{display:flex; flex-direction:column; padding:12px 18px; border-radius:var(--r-m); background:var(--ink); box-shadow:var(--lift); color:#fff; animation:gmin .35s cubic-bezier(.2,.8,.2,1); transition:opacity .4s, transform .4s}
.gm-toast b{font-size:13px; color:#FFD27A}
.gm-toast span{font-weight:700}
.gm-toast.out{opacity:0; transform:translateY(8px)}
@keyframes gmin{from{opacity:0; transform:translateY(12px)}}
.gm-confetti{position:absolute; inset:0; pointer-events:none; z-index:6}

/* ---------- узкие экраны ---------- */
@media(max-width:980px){
  .gm-top{grid-template-columns:1fr}
  .gm-grid{grid-template-columns:1fr}
  .gm-side{position:static; order:-1; grid-template-columns:minmax(0,170px) 1fr; align-items:start}
  .gm-device{width:100%}
  .steps{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
  .sec{padding:90px 0}
  .about,.cab{grid-template-columns:1fr; gap:44px}
  .poster{justify-self:start; max-width:380px}
  .map-box{grid-template-columns:1fr}
  .ymap{height:420px}
  .map-list{max-height:none}
  .reach-box{grid-template-columns:1fr; transform:none; margin:0 0 0}
  .reach{padding:20px 0 0}
  .reach-box .stat+.stat{box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
  .reach + .mapsec{padding-top:90px}
  .cab-card{transform:none}
}
@media(max-width:600px){
  .wrap{padding:0 16px}
  .steps,.feats{grid-template-columns:1fr}
  .gm-panel{padding:24px 18px; min-height:0}
  .gm-node-t{display:none}
  .gm-node{padding:6px}
  .gm-node.is-cur .gm-node-t{display:inline; padding-right:10px}
  .gm-side{grid-template-columns:minmax(0,120px) 1fr; gap:14px}
  .gm-count{font-size:40px}
  .gm-req-row{grid-template-columns:1fr; gap:2px}
  .gm-foot .btn{flex:1 1 auto}
  .sec-head .sub{font-size:17px}
  .about p:not(.sec-k){font-size:17px}
  .cta-box{padding:60px 22px}
}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1; transform:none; transition:none}
}
