@import url('fonts.css');

/* ===== токены ===== */
:root{
  --bg:#070C1A; --bg-soft:#0C1428; --line:rgba(120,190,255,.16);
  --tx:#F2F6FF; --tx-dim:#9FB3D8; --tx-mid:#D3DFF7;
  --a1:#35E3FF; --a2:#7C5CFF; --a3:#FF4FD8; --warm:#FFC46B;
  --ok:#4AE6A8; --bad:#FF7A9C;
  --grad:linear-gradient(100deg,var(--a1),var(--a2));
  --glow:0 0 24px -4px rgba(53,227,255,.55);
  --r:12px; --ease:cubic-bezier(.2,.8,.3,1.3);
}
*{box-sizing:border-box}
[hidden]{display:none!important}   /* иначе display из .btn/form перебивает атрибут */
html{scroll-behavior:smooth}
body{margin:0;color:var(--tx);
  background:var(--bg);
  background-image:
    radial-gradient(70% 40% at 8% 12%,rgba(124,92,255,.20),transparent 70%),
    radial-gradient(60% 40% at 95% 45%,rgba(53,227,255,.14),transparent 70%),
    radial-gradient(60% 45% at 50% 100%,rgba(255,79,216,.12),transparent 70%);
  background-attachment:fixed;
  font-family:Onest,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--a1);outline-offset:3px;border-radius:4px}

.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
@media(min-width:760px){.wrap{padding:0 48px}}

/* ===== кнопки ===== */
.btn{position:relative;display:inline-block;font:inherit;font-weight:800;font-size:17px;text-align:center;
  text-decoration:none;color:#EAF4FF;border:0;border-radius:16px;padding:19px 30px;cursor:pointer;overflow:hidden;
  background:linear-gradient(180deg,rgba(46,62,102,.95) 0%,rgba(30,42,78,.96) 45%,rgba(16,24,48,.97) 100%);
  box-shadow:
    inset 0 1px 0 rgba(150,205,255,.5),
    inset 0 0 0 1px rgba(53,227,255,.34),
    inset 0 -18px 28px -18px rgba(0,0,0,.95),
    0 14px 34px -16px rgba(53,227,255,.45),
    0 26px 52px -30px rgba(0,0,0,.9);
  transition:transform .16s var(--ease),box-shadow .22s ease,filter .22s ease}
/* тонкая световая линия у верхней кромки вместо глянцевого пятна */
.btn::before{content:"";position:absolute;left:14%;right:14%;top:0;height:1px;pointer-events:none;z-index:0;
  background:linear-gradient(90deg,transparent,rgba(160,230,255,.85),transparent)}
.btn:hover{transform:translateY(-3px);
  box-shadow:inset 0 1px 0 rgba(150,205,255,.65),inset 0 0 0 1px rgba(53,227,255,.55),
    inset 0 -18px 28px -18px rgba(0,0,0,.95),
    0 18px 40px -16px rgba(53,227,255,.6),0 30px 60px -30px rgba(0,0,0,.95)}
.btn:active{transform:translateY(2px) scale(.976);
  box-shadow:inset 0 4px 12px rgba(0,0,0,.8),inset 0 0 0 1px rgba(53,227,255,.4),
    0 4px 14px -8px rgba(53,227,255,.4)}
.btn:disabled{filter:brightness(.75) saturate(.6);transform:none;cursor:default;
  box-shadow:inset 0 0 0 1px rgba(120,160,200,.25)}
.btn--sm{padding:13px 20px;font-size:14px;border-radius:13px}
.btn--sm::before{left:16%;right:16%}
.btn--wide{width:100%}
@media(max-width:759px){.hero .btn,form .btn{width:100%}}

/* ===== шапка ===== */
.top{position:sticky;top:0;z-index:40;backdrop-filter:blur(16px);background:rgba(7,12,26,.72);border-bottom:1px solid rgba(120,190,255,.10)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;gap:16px}
.logo{font-weight:900;font-size:14px;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.logo em{font-style:normal;color:var(--tx-dim)}
.nlinks{display:none;gap:28px;font-size:14px;color:var(--tx-dim)}
.nlinks a{text-decoration:none}
.nlinks a:hover{color:var(--tx)}
@media(min-width:760px){.top .wrap{height:68px}.nlinks{display:flex}}
@media(max-width:759px){.logo em{display:none}}

/* ===== герой ===== */
.hero{position:relative;display:flex;align-items:flex-end;min-height:660px;padding:96px 0 96px;overflow:hidden}
@media(min-width:760px){.hero{min-height:640px;padding-bottom:64px}}
.hero__shot{position:absolute;inset:0;z-index:0;
  background-color:#0C1424;
  background-image:url('/photos/01_geroy_m.jpg'),linear-gradient(160deg,#14203A,#0D1426 55%,#080D18);
  background-size:cover;background-position:center 28%;
  filter:saturate(1.2) contrast(1.06) brightness(1.08);
  animation:ken 26s ease-in-out infinite alternate}
@media(min-width:760px){.hero__shot{background-image:url('/photos/01_geroy.jpg'),linear-gradient(160deg,#14203A,#0D1426 55%,#080D18);background-position:center 32%}}
@keyframes ken{to{transform:scale(1.06) translate3d(-1.2%,-.8%,0)}}
.hero__veil{position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(80% 50% at 15% 18%,rgba(53,227,255,.20),transparent 70%),
    radial-gradient(70% 45% at 90% 8%,rgba(255,79,216,.16),transparent 70%),
    linear-gradient(180deg,rgba(7,12,26,.42) 0%,rgba(7,12,26,.66) 42%,rgba(7,12,26,.95) 100%)}
@media(min-width:760px){.hero__veil{background:
  linear-gradient(180deg,rgba(10,15,28,.35) 0%,rgba(10,15,28,.55) 40%,rgba(10,15,28,.94) 100%),
  linear-gradient(90deg,rgba(10,15,28,.75) 0%,rgba(10,15,28,.25) 55%,transparent 100%)}}
.beam{position:absolute;top:-40%;width:2px;height:180%;z-index:2;opacity:0;filter:blur(1px);
  background:linear-gradient(180deg,transparent,var(--a1),transparent);animation:sweep 9s ease-in-out infinite}
.beam:nth-of-type(1){left:22%}
.beam:nth-of-type(2){left:54%;animation-delay:3s}
.beam:nth-of-type(3){left:79%;animation-delay:6s}
@keyframes sweep{0%{opacity:0;transform:translateY(-10%)}18%{opacity:.5}40%{opacity:0;transform:translateY(10%)}100%{opacity:0}}
.hero__route{position:absolute;left:0;right:0;bottom:-6px;height:142px;width:100%;z-index:2;pointer-events:none}
@media(min-width:760px){.hero__route{height:220px}}
#rg stop:first-child{stop-color:var(--a1)}
#rg stop:last-child{stop-color:var(--a2)}
#shipG stop:first-child{stop-color:var(--a2)}
#shipG stop:last-child{stop-color:#fff}
.route-base,.route-trail{fill:none;vector-effect:non-scaling-stroke}
.route-base{stroke:rgba(255,255,255,.16);stroke-width:1;stroke-dasharray:2 6}
.route-trail{stroke:url(#rg);stroke-width:2.5;stroke-linecap:round}
.nodes circle{fill:none;stroke:var(--a1);stroke-width:1.5;opacity:.25;transform-box:fill-box;transform-origin:center;
  animation:node 11s linear infinite}
.nodes circle.core{fill:var(--a1);stroke:none}
@keyframes node{
  0%,86%{opacity:.22;transform:scale(1)}
  90%{opacity:1;transform:scale(1.9)}
  96%,100%{opacity:.22;transform:scale(1)}
}
.ship__body{fill:#FFFFFF;stroke:rgba(2,12,28,.8);stroke-width:.7}
.ship__wing{fill:url(#shipG);stroke:rgba(2,12,28,.7);stroke-width:.6}
.ship__fin{fill:#9FC2EA}
.ship__stripe{fill:rgba(20,40,80,.35)}
.ship__glass{fill:#0B1B36;opacity:.9}
.ship__engine{fill:var(--a1);filter:drop-shadow(0 0 4px var(--a1))}
.ship__flame{fill:var(--a1);opacity:.9;animation:flame .18s steps(2) infinite}
@keyframes flame{50%{opacity:.45;transform:scaleX(.8)}}
.ship__flame{transform-box:fill-box;transform-origin:right center}
.ship{will-change:transform}
.ship__in{transform:scale(2.1)}
@media(min-width:760px){.ship__in{transform:scale(1.5)}}

.hero .wrap{position:relative;z-index:3;width:100%}
h1{font-size:40px;line-height:1;letter-spacing:-.01em;margin:0 0 18px;font-weight:900;text-transform:uppercase}
@media(min-width:760px){h1{font-size:68px;max-width:14ch;margin-bottom:22px}}
.lead{font-size:16px;line-height:1.5;color:var(--tx-mid);margin:0 0 26px;max-width:520px}
@media(min-width:760px){.lead{font-size:20px;margin-bottom:30px}}
.meter{display:flex;flex-wrap:wrap;margin:0 0 28px;padding:0;list-style:none;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.meter li{flex:0 0 50%;padding:12px 0}
.meter b{display:block;font-size:24px;font-weight:900;letter-spacing:-.02em}
.meter b.g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 14px rgba(53,227,255,.45))}
.meter span{font-size:13px;color:var(--tx-dim)}
@media(min-width:760px){
  .meter{max-width:660px;margin-bottom:32px}
  .meter li{flex:1;padding:16px 20px 16px 0;border-right:1px solid var(--line)}
  .meter li:last-child{border-right:0}
  .meter b{font-size:26px}
}
.cta-row{display:flex;flex-direction:column;gap:14px;align-items:stretch}
@media(min-width:760px){.cta-row{flex-direction:row;align-items:center;gap:18px}}
.tlink{color:var(--tx-mid);font-size:15px;text-decoration:none;text-align:center;padding:11px 0;min-height:44px}
@media(min-width:760px){.tlink{border-bottom:1px solid rgba(255,255,255,.22);padding:0 0 3px;min-height:0}}
.tlink:hover{color:var(--tx)}

/* ===== секции ===== */
section{padding:44px 0}
section[id]{scroll-margin-top:72px}
@media(min-width:760px){section{padding:96px 0}}
h2{font-size:29px;line-height:1.06;letter-spacing:-.03em;margin:0 0 14px;font-weight:900}
@media(min-width:760px){h2{font-size:44px;margin-bottom:16px}}
.sub{color:var(--tx-dim);font-size:15px;line-height:1.55;margin:0 0 28px;max-width:600px}
@media(min-width:760px){.sub{font-size:18px;margin-bottom:48px}}

/* шаги */
.stp{display:grid;grid-template-columns:56px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--line);align-items:start}
@media(min-width:760px){.stp{grid-template-columns:96px 1fr;gap:28px;padding:28px 0}}
.stp .n{font-size:30px;font-weight:900;line-height:1;color:transparent;-webkit-text-stroke:1.2px var(--a1);letter-spacing:-.04em;
  filter:drop-shadow(0 0 10px rgba(53,227,255,.5))}
@media(min-width:760px){.stp .n{font-size:44px}}
.stp h3{margin:0 0 6px;font-size:18px;font-weight:700}
@media(min-width:760px){.stp h3{font-size:20px}}
.stp p{margin:0;color:var(--tx-dim);font-size:15px;line-height:1.55;max-width:560px}
@media(min-width:760px){.stp p{font-size:16px}}
.take{margin-top:24px;color:var(--tx-dim);font-size:15px;line-height:1.6}
@media(min-width:760px){.take{font-size:16px;margin-top:28px}}
.take b{color:var(--warm);font-weight:700}

/* демо-точка */
.demo{display:grid;grid-template-columns:1fr;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  background:linear-gradient(180deg,rgba(53,227,255,.06),rgba(124,92,255,.05));
  box-shadow:0 0 0 1px rgba(53,227,255,.06),0 30px 60px -40px rgba(53,227,255,.5)}
@media(min-width:760px){.demo{grid-template-columns:1fr 1fr}}
.shot-box{position:relative;min-height:220px;background-color:#101A2E;
  background-image:linear-gradient(150deg,#16223B,#0B1220);
  background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}
@media(min-width:760px){.shot-box{min-height:440px}}
.shot-box span{color:#3E4C6D;font-size:13px;text-align:center;padding:20px}
.shot-box--photo{background-size:cover;background-position:center;min-height:260px}
.shot-box--photo span{display:none}
@media(min-width:760px){.shot-box--photo{min-height:440px}}
.demo__body{padding:22px 18px}
@media(min-width:760px){.demo__body{padding:44px 44px 44px 44px}}
.tag{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--a1);margin-bottom:14px;
  text-shadow:0 0 16px rgba(53,227,255,.6)}
.demo__body h3{font-size:22px;margin:0 0 10px;font-weight:700;letter-spacing:-.02em}
@media(min-width:760px){.demo__body h3{font-size:26px}}
.q{font-size:16px;line-height:1.5;margin:0 0 20px;color:var(--tx-mid)}
@media(min-width:760px){.q{font-size:17px}}
.opts{display:grid;gap:8px;margin-bottom:18px}
.opt{text-align:left;font:inherit;font-size:16px;color:var(--tx);cursor:pointer;min-height:52px;
  background:rgba(255,255,255,.05);border:1px solid var(--line);border-left:2px solid var(--line);
  border-radius:var(--r);padding:14px 16px;
  transition:border-color .16s,background .16s,transform .16s var(--ease)}
.opt:hover:not(:disabled){background:rgba(255,255,255,.09);border-left-color:var(--a1)}
.opt:active:not(:disabled){transform:translateX(3px)}
.opt[data-state=ok]{border-color:rgba(73,214,155,.45);border-left-color:var(--ok);background:rgba(73,214,155,.12)}
.opt[data-state=no]{border-color:rgba(255,139,139,.4);border-left-color:var(--bad);background:rgba(255,128,128,.10)}
.opt:disabled{cursor:default}
.fb{font-size:15px;line-height:1.6;color:var(--tx-dim);margin:0 0 20px;border-left:2px solid var(--warm);padding-left:16px}
.fb b{color:var(--tx)}
@media(min-width:760px){.fb{font-size:16px}}

/* аудио на точке */
.audio{display:grid;gap:8px;margin:0 0 18px}
.audio audio{width:100%;height:40px;filter:invert(1) hue-rotate(180deg) saturate(.7);border-radius:var(--r)}
.audio__hint{font-size:13px;color:var(--tx-dim)}
.audio--soon{border-left:2px solid var(--line);padding-left:16px}

/* маршрут */
.rl{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:760px){.rl{grid-template-columns:1fr 1fr;gap:0 56px}}
.rl div{padding:18px 0;border-bottom:1px solid var(--line)}
.rl b{font-size:12px;letter-spacing:.14em;color:var(--a1);display:block;margin-bottom:5px;text-shadow:0 0 14px rgba(53,227,255,.5)}
.rl p{margin:0;font-size:17px;font-weight:500}
@media(min-width:760px){.rl p{font-size:18px}}
.rl i{display:block;font-style:normal;font-size:15px;color:var(--tx-dim);margin-top:4px;line-height:1.5}

/* автор */
#author{position:relative;overflow:hidden}
.author__bg{position:absolute;inset:0;z-index:0;background:url('/photos/04_author_bg.jpg') center/cover no-repeat}
.author__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,15,28,.92),rgba(10,15,28,.86))}
@media(min-width:760px){.author__bg::after{background:linear-gradient(90deg,rgba(10,15,28,.96) 40%,rgba(10,15,28,.72))}}
#author .wrap{position:relative;z-index:1}
.author{display:grid;grid-template-columns:1fr;gap:24px;align-items:center}
@media(min-width:760px){.author{grid-template-columns:1fr 320px;gap:56px}}
.author .shot-box{min-height:320px;border-radius:var(--r);background-image:url('/photos/02_nadya.jpg');background-size:cover;background-position:center 20%}
.author .shot-box span{display:none}
@media(min-width:760px){.author .shot-box{min-height:400px}}
.quote{font-size:20px;line-height:1.35;letter-spacing:-.02em;font-weight:500;margin:0 0 20px}
@media(min-width:760px){.quote{font-size:26px}}
.author .small{color:var(--tx-dim);font-size:15px;line-height:1.6;margin:0 0 18px}
@media(min-width:760px){.author .small{font-size:16px}}
.contacts{display:flex;gap:18px;flex-wrap:wrap;font-size:15px}
.contacts a{color:var(--a1);text-decoration:none;border-bottom:1px solid transparent}
.contacts a:hover{border-bottom-color:var(--a1)}

/* отзывы */
.reviews{display:grid;gap:20px}
@media(min-width:760px){.reviews{grid-template-columns:1fr 1fr;gap:28px 56px}}
.review{border-left:2px solid var(--line);padding-left:20px}
.review p{margin:0 0 10px;font-size:16px;line-height:1.6}
.review cite{font-style:normal;font-size:14px;color:var(--tx-dim)}

/* форма */
.formsec{background:linear-gradient(180deg,transparent,rgba(110,123,255,.08))}
.fgrid{display:grid;grid-template-columns:1fr;gap:28px;align-items:start}
@media(min-width:760px){.fgrid{grid-template-columns:1fr 440px;gap:64px}}
form{display:grid;gap:18px}
.field label{display:block;font-size:14px;color:var(--tx-dim);margin-bottom:7px}
.field input{width:100%;font:inherit;font-size:16px;color:var(--tx);background:transparent;
  border:0;border-bottom:1px solid var(--line);padding:12px 2px;min-height:44px;transition:border-color .15s}
.field input:focus{outline:none;border-bottom-color:var(--a1)}
.field .err{display:none;color:var(--bad);font-size:13px;margin-top:6px}
.field[data-bad] input{border-bottom-color:var(--bad)}
.field[data-bad] .err{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--tx-dim);cursor:pointer;min-height:44px;padding:2px 0}
.check input{margin:2px 0 0;width:20px;height:20px;accent-color:var(--a1);flex:0 0 auto}
.check a{color:var(--tx)}
.check[data-bad]{color:var(--bad)}
.note{font-size:15px;color:var(--tx-dim);line-height:1.6;margin:0}
@media(min-width:760px){.note{font-size:16px}}
.state{display:none;border-left:2px solid var(--ok);padding:20px 0 20px 22px}
.state h3{margin:0 0 8px;font-size:20px}
@media(min-width:760px){.state h3{font-size:22px}}
.state p{margin:0;color:var(--tx-dim);font-size:15px;line-height:1.6}
.state--err{border-left-color:var(--bad)}
.is-on{display:block}

/* контакты в подвале */
footer{border-top:1px solid var(--line);padding:36px 0;color:var(--tx-dim);font-size:14px;line-height:1.7}
@media(min-width:760px){footer{padding:44px 0}}
.fcols{display:grid;gap:20px}
@media(min-width:760px){.fcols{grid-template-columns:repeat(3,1fr);gap:32px}}
footer a{color:var(--tx-dim)}
footer a:hover{color:var(--tx)}

/* cookie */
.cookie{position:fixed;left:10px;right:10px;bottom:10px;z-index:60;display:none;gap:12px;align-items:center;
  background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;
  font-size:13px;line-height:1.4;color:var(--tx-dim);box-shadow:0 20px 50px rgba(0,0,0,.5)}
.cookie.is-on{display:flex}
.cookie a{color:var(--tx)}
.cookie .btn{white-space:nowrap;flex:0 0 auto;padding:10px 16px;font-size:14px}
@media(min-width:760px){
  .cookie{left:auto;right:24px;bottom:24px;max-width:620px;padding:18px 20px;gap:14px;font-size:14px;line-height:1.5}
}

/* юридические страницы */
.doc{max-width:760px;padding-top:40px;padding-bottom:64px}
.doc h1{font-size:30px;max-width:none;margin-bottom:8px}
@media(min-width:760px){.doc h1{font-size:40px}}
.doc .ver{color:var(--tx-dim);font-size:14px;margin:0 0 32px}
.doc h2{font-size:20px;margin:32px 0 10px}
@media(min-width:760px){.doc h2{font-size:24px}}
.doc p,.doc li{font-size:16px;line-height:1.65;color:var(--tx-mid)}
.doc ul,.doc ol{padding-left:20px}
.doc li{margin-bottom:6px}
.doc table{width:100%;border-collapse:collapse;margin:16px 0;font-size:15px}
.doc th,.doc td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.doc th{color:var(--tx);font-weight:700}
.doc td{color:var(--tx-mid)}
.back{display:inline-block;margin-bottom:24px;color:var(--tx-dim);font-size:14px;text-decoration:none}
.back:hover{color:var(--tx)}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero__shot,.beam{animation:none}
  .btn,.opt{transition:none}
}

/* ===================== добавлено 14.09.2026 ===================== */

/* что происходит на остановке */
.mini{font-size:18px;font-weight:800;margin:28px 0 12px;letter-spacing:-.01em}
@media(min-width:760px){.mini{font-size:22px;margin-top:40px}}
.flow{list-style:none;counter-reset:f;margin:0 0 24px;padding:0;display:grid;gap:12px}
.flow li{counter-increment:f;position:relative;padding:14px 16px 14px 52px;font-size:15px;line-height:1.55;
  color:var(--tx-dim);background:rgba(120,190,255,.05);border:1px solid var(--line);border-radius:var(--r)}
.flow li b{color:var(--tx);font-weight:700}
.flow li::before{content:counter(f);position:absolute;left:14px;top:13px;width:24px;height:24px;border-radius:50%;
  display:grid;place-items:center;font-size:13px;font-weight:800;color:#04101F;background:var(--grad);
  box-shadow:0 0 14px -2px rgba(53,227,255,.8)}
@media(min-width:760px){.flow li{font-size:16px;padding:16px 20px 16px 56px}}

/* схема Сити */
.scheme{margin:0 0 28px;padding:0}
.scheme img{width:100%;height:auto;border-radius:16px;border:1px solid var(--line);
  box-shadow:0 0 40px -18px rgba(53,227,255,.7),0 30px 60px -40px rgba(124,92,255,.8)}
.scheme figcaption{margin-top:10px;font-size:13px;line-height:1.5;color:var(--tx-dim)}

/* правильный ответ — вспышка */
.opt{position:relative}
.opt[data-state=ok]{animation:okpulse .5s var(--ease)}
.opt[data-state=ok]::after{content:"";position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;
  border:2px solid var(--ok);opacity:0;animation:okring .7s ease-out forwards}
@keyframes okpulse{40%{transform:scale(1.03)}100%{transform:scale(1)}}
@keyframes okring{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.06)}}
.demo.is-solved{box-shadow:0 0 0 1px rgba(74,230,168,.35),0 0 60px -20px rgba(74,230,168,.65);
  transition:box-shadow .5s ease}
.spark{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--ok);pointer-events:none;
  box-shadow:0 0 12px 2px rgba(74,230,168,.9);animation:spark .75s ease-out forwards}
@keyframes spark{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3)}}

/* отзывы — карусель */
.revs{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding:4px 0 8px}
.revs::-webkit-scrollbar{display:none}
.revs__track{display:flex;gap:14px;padding:0 20px}
@media(min-width:760px){.revs__track{gap:24px;padding:0 calc(50vw - 520px)}}
.rev{scroll-snap-align:center;flex:0 0 84%;max-width:520px;margin:0;position:relative;
  padding:44px 22px 26px;border:1px solid var(--line);border-radius:16px;
  background:linear-gradient(180deg,rgba(124,92,255,.10),rgba(53,227,255,.05));
  box-shadow:0 24px 50px -40px rgba(53,227,255,.8)}
@media(min-width:760px){.rev{flex:0 0 46%;padding:52px 32px 32px}}
.rev::before{content:"”";position:absolute;left:18px;top:2px;font-size:72px;line-height:1;font-weight:900;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.9}
.rev p{margin:0;font-size:16px;line-height:1.6;color:var(--tx-mid)}
.rev cite{display:block;margin-top:12px;font-style:normal;font-size:13px;color:var(--a1);letter-spacing:.04em}
@media(min-width:760px){.rev p{font-size:17px}}
.revs__nav{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
.arrow{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  font:inherit;font-size:18px;color:var(--tx);background:rgba(120,190,255,.08);border:1px solid var(--line);
  transition:transform .16s var(--ease),border-color .16s,background .16s}
.arrow:hover{border-color:var(--a1);background:rgba(53,227,255,.12)}
.arrow:active{transform:scale(.92)}
.dots{display:flex;gap:8px}
.dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:rgba(159,179,216,.35);transition:transform .2s var(--ease),background .2s}
.dots button[aria-current=true]{background:var(--a1);transform:scale(1.5);box-shadow:0 0 12px 1px rgba(53,227,255,.8)}

/* ——— салют за верный ответ ——— */
.boom{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}
.boom i{position:absolute;display:block;will-change:transform,opacity}
.boom .conf{width:9px;height:14px;border-radius:2px;animation:confFall var(--d) cubic-bezier(.2,.6,.4,1) forwards}
.boom .star{font-size:18px;line-height:1;color:var(--a1);text-shadow:0 0 10px currentColor;
  animation:starFly var(--d) ease-out forwards}
@keyframes confFall{
  0%{opacity:1;transform:translate3d(0,0,0) rotate(0)}
  100%{opacity:0;transform:translate3d(var(--dx),var(--dy),0) rotate(var(--rot))}
}
@keyframes starFly{
  0%{opacity:0;transform:translate3d(0,0,0) scale(.4)}
  25%{opacity:1;transform:translate3d(calc(var(--dx)*.35),calc(var(--dy)*.35),0) scale(1.25)}
  100%{opacity:0;transform:translate3d(var(--dx),var(--dy),0) scale(.5)}
}
.cheer{margin:0 0 8px;font-size:22px;font-weight:900;letter-spacing:-.02em;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 14px rgba(53,227,255,.55));animation:cheerIn .45s var(--ease)}
@keyframes cheerIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.boom{display:none}.cheer{animation:none}}

/* ——— закреплённая кнопка на мобильном ——— */
.stickycta{position:fixed;left:0;right:0;bottom:0;z-index:55;padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(7,12,26,0),rgba(7,12,26,.94) 45%);
  transform:translateY(120%);transition:transform .3s var(--ease);pointer-events:none}
.stickycta.is-on{transform:none;pointer-events:auto}
.stickycta .btn{display:block;width:100%;padding:16px 24px;font-size:16px}
@media(max-width:759px){body{padding-bottom:84px}}
@media(min-width:760px){.stickycta{display:none}}

/* ——— частые вопросы ——— */
.faq{display:grid;gap:10px}
.faq details{border:1px solid var(--line);border-radius:14px;background:rgba(120,190,255,.045);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:16px 46px 16px 18px;font-size:16px;font-weight:600;
  position:relative;min-height:52px;display:flex;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:18px;top:50%;width:10px;height:10px;margin-top:-6px;
  border-right:2px solid var(--a1);border-bottom:2px solid var(--a1);transform:rotate(45deg);
  transition:transform .2s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq p{margin:0;padding:0 18px 18px;font-size:15px;line-height:1.6;color:var(--tx-dim)}
.faq details[open]{background:rgba(124,92,255,.10);border-color:rgba(124,92,255,.35)}

/* ——— подвал поплотнее ——— */
.fcols h4{margin:0 0 10px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--tx);font-weight:700}
.fbottom{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px;
  justify-content:space-between;font-size:13px;color:var(--tx-dim)}
.totop{color:var(--tx-dim);text-decoration:none;border-bottom:1px dashed rgba(159,179,216,.4)}
.totop:hover{color:var(--tx)}

/* ——— галерея маршрута ——— */
.gal{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;margin:0 -20px 28px;padding:6px 0 10px}
.gal::-webkit-scrollbar{display:none}
@media(min-width:760px){.gal{margin:0 0 36px}}
.gal__track{display:flex;gap:12px;padding:0 20px}
@media(min-width:760px){.gal__track{gap:20px;padding:0}}
.gal .shot{scroll-snap-align:center;flex:0 0 78%;max-width:340px;margin:0;position:relative;
  border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#0C1428;
  transition:transform .4s var(--ease),border-color .4s ease,box-shadow .4s ease}
@media(min-width:760px){.gal .shot{flex:0 0 300px}}
.gal .shot img{width:100%;height:320px;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.2,.7,.3,1);transform:scale(1.04)}
@media(min-width:760px){.gal .shot img{height:360px}}
.gal .shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 14px;font-size:13px;line-height:1.45;
  color:var(--tx);background:linear-gradient(180deg,rgba(7,12,26,0),rgba(7,12,26,.92) 55%)}
.gal .shot.is-near{border-color:rgba(53,227,255,.55);box-shadow:0 0 0 1px rgba(53,227,255,.25),0 24px 50px -30px rgba(53,227,255,.9)}
.gal .shot.is-near img{transform:scale(1)}
@media(prefers-reduced-motion:reduce){.gal .shot,.gal .shot img{transition:none}}

/* ——— схема по кнопке ——— */
.schemebtn{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
  font:inherit;font-size:15px;font-weight:600;color:var(--tx);cursor:pointer;text-align:left;
  background:rgba(120,190,255,.06);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:0 0 28px;
  transition:border-color .16s,background .16s,transform .16s var(--ease)}
.schemebtn:hover{border-color:rgba(53,227,255,.5);background:rgba(53,227,255,.08)}
.schemebtn:active{transform:scale(.99)}
.schemebtn span{color:var(--tx-dim);font-weight:400;font-size:13px;display:block;margin-top:3px}
.schemebtn i{flex:0 0 auto;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:var(--grad);color:#04101F;font-style:normal;font-weight:800;font-size:15px}
.modal{position:fixed;inset:0;z-index:90;display:none;background:rgba(4,8,20,.92);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.modal.is-on{display:flex;flex-direction:column;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;
  color:var(--tx-dim);font-size:13px}
.modal__close{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);cursor:pointer;
  background:rgba(120,190,255,.08);color:var(--tx);font:inherit;font-size:20px;line-height:1}
.modal__close:active{transform:scale(.92)}
.modal__body{flex:1;overflow:auto;padding:0 12px 20px;display:grid;place-items:center}
.modal__body img{max-width:100%;height:auto;border-radius:14px;border:1px solid var(--line)}
