/* ====================== ШРИФТЫ ======================
   Все файлы лежат в /fonts. Если переименуешь — поправь пути здесь. */
@font-face{font-family:"Suisse Intl";font-weight:300;font-display:swap;src:url(../fonts/SuisseIntl-Light.woff2) format("woff2")}
@font-face{font-family:"Suisse Intl";font-weight:400;font-display:swap;src:url(../fonts/SuisseIntl-Regular.woff2) format("woff2")}
@font-face{font-family:"Suisse Intl";font-weight:500;font-display:swap;src:url(../fonts/SuisseIntl-Medium.woff2) format("woff2")}
@font-face{font-family:"Suisse Intl";font-weight:700;font-display:swap;src:url(../fonts/SuisseIntl-Bold.woff2) format("woff2")}
@font-face{font-family:"Runic MT";font-display:swap;src:url(../fonts/RunicMT.otf) format("opentype")}
@font-face{font-family:"Bebas Neue";font-display:swap;src:url(../fonts/BebasNeue-400.woff2) format("woff2")}
/* Oswald из Google Fonts (подключён в index.html) даёт кириллицу. Локальный файл — латинский запасной вариант */
@font-face{font-family:"Oswald Local";font-weight:200 700;font-display:swap;src:url(../fonts/Oswald-vf-latin.woff2) format("woff2")}
@font-face{font-family:"Libre Baskerville";font-display:swap;src:url(../fonts/LibreBaskerville.woff2) format("woff2")}
@font-face{font-family:"Libre Baskerville";font-style:italic;font-display:swap;src:url(../fonts/LibreBaskerville-Italic.woff2) format("woff2")}
@font-face{font-family:"Special Elite";font-display:swap;src:url(../fonts/SpecialElite.woff2) format("woff2")}

/* ====================== ПЕРЕМЕННЫЕ ====================== */
:root{
  --f-osw:"Oswald","Oswald Local","Suisse Intl",sans-serif;          /* заголовки, кнопки */
  --f-beb:"Bebas Neue","Oswald","Oswald Local","Suisse Intl",sans-serif; /* цифры, цены */
  --f-sign:"Special Elite","Suisse Intl",sans-serif;                  /* табличка */

  --red:#e10600; --red-hi:#ff2a20;
  --pink:#ff2f92;           /* заголовки секций */
  --cyan:#4fc8e8;           /* подзаголовки */
  --magenta:#9b0b52;        /* hero-заголовок */
  --gold:#e6c87a;
  --paper:#e9e3d3; --paper-dim:#b9b3a4;
  --mx:0; --my:0;
  --bar-h:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:#000}
body{background:#000;color:#fff;font-family:"Suisse Intl",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}

/* ====================== ФОН ====================== */
.bg-fx{position:fixed;inset:0;z-index:0;pointer-events:none;background:#050505}
.bg-grid{position:absolute;inset:0;opacity:.5;
  background:
    linear-gradient(#ffffff0a 1px,transparent 1px) 0 0/90px 110px,
    linear-gradient(90deg,#ffffff0a 1px,transparent 1px) 0 0/90px 110px}
.bg-glow{position:absolute;inset:0;background:radial-gradient(70% 55% at 50% 38%,#0c3a4a66 0%,#0a1c2433 45%,transparent 75%)}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;background:url(../img/grain.webp) center/cover;mix-blend-mode:screen;opacity:.55}
@media(max-width:700px){.grain{background-image:url(../img/grain-mobile.webp)}}

/* ====================== ТОП-БАР ====================== */
.topbar{position:fixed;top:0;left:0;right:0;z-index:60;height:var(--bar-h);padding-top:env(safe-area-inset-top);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;
  padding-inline:clamp(16px,4vw,56px);background:#000d;backdrop-filter:blur(6px);border-bottom:1px solid #ffffff1f}
.tb-side{display:flex;gap:clamp(14px,2.2vw,34px);font-family:var(--f-osw);font-weight:500;letter-spacing:.08em;text-transform:uppercase;font-size:15px}
.tb-right{justify-content:flex-end;align-items:center}
.tb-side a{opacity:.85;transition:opacity .2s,color .2s}.tb-side a:hover{opacity:1;color:var(--gold)}
.tb-center{text-align:center;line-height:1}
.tb-logo{display:block;font-family:"Runic MT","Bebas Neue",serif;font-size:clamp(30px,3.6vw,46px);letter-spacing:.1em;color:var(--gold);
  text-shadow:0 0 18px #dcb86e55;line-height:.95}
.tb-tag{display:block;margin-top:4px;font-family:var(--f-osw);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--paper-dim)}
.tb-cta{background:var(--red);padding:8px 16px;opacity:1!important}
.tb-cta:hover{background:var(--red-hi);color:#fff!important}
@media(max-width:820px){.tb-left,.tb-right a:not(.tb-cta){display:none}.topbar{grid-template-columns:auto 1fr}.tb-center{text-align:left}.tb-tag{display:none}}

/* ====================== КНОПКИ ====================== */
.btn{display:inline-block;font-family:var(--f-osw);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:14px;
  padding:15px 30px;border:0;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-hi);transform:translateY(-2px);box-shadow:0 8px 30px #e1060066}
.btn-ghost{background:transparent;border:1px solid #fff6;color:#fff}
.btn-ghost:hover{background:#ffffff14;transform:translateY(-2px)}

/* ====================== HERO ====================== */
.hero{position:relative;z-index:2;height:100svh;min-height:600px;overflow:hidden;perspective:1600px;background:#000}
.hero-cam{position:absolute;inset:0;transform-style:preserve-3d}
.hero-poster,.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transform:translateZ(-50px) scale(1.12) translate(calc(var(--mx)*-8px),calc(var(--my)*-6px))}
.hero-poster{transition:opacity .25s linear}
.hero-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 82% 82% at 50% 50%,#0000 33%,#00000080 74%,#000000e6)}
#particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-scrim{position:absolute;inset:0;background:radial-gradient(130% 44% at 50% 50%,#0009 0%,#00000047 46%,transparent 74%)}
.hero-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--bar-h) 20px 0;
  transform:translate3d(calc(var(--mx)*30px),calc(var(--my)*22px),45px)}
/* голубые уголки вокруг заголовка */
.brackets{position:relative;padding:.35em .6em;max-width:96vw}
.brackets::before,.brackets::after{content:"";position:absolute;width:22px;height:22px;border:0 solid var(--cyan)}
.brackets::before{left:0;top:0;border-top-width:2px;border-left-width:2px}
.brackets::after{right:0;bottom:0;border-bottom-width:2px;border-right-width:2px}
.decoder{font-family:"Runic MT","Bebas Neue",serif;font-weight:400;color:var(--magenta);
  font-size:clamp(46px,11vw,190px);line-height:1;letter-spacing:.1em;text-transform:uppercase;
  text-shadow:0 0 30px #000a;min-height:1.05em;white-space:nowrap}
.hero-sub{margin-top:26px;font-family:var(--f-osw);font-weight:300;letter-spacing:.22em;text-transform:uppercase;font-size:clamp(16px,2.4vw,32px);color:var(--paper);opacity:0;transition:opacity 1s}
.hero-badge{margin-top:14px;font-family:var(--f-osw);font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:clamp(11px,1.2vw,15px);color:var(--cyan);opacity:0;transition:opacity 1s .2s}
.hero-cta{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap;justify-content:center;opacity:0;transform:translateY(12px);transition:opacity 1s .3s,transform 1s .3s}
.hero-sub.on,.hero-badge.on,.hero-cta.on{opacity:1;transform:none}
@media(max-width:700px){.decoder{white-space:normal;letter-spacing:.05em}}

.scroll-down{position:absolute;bottom:22px;left:50%;translate:-50% 0;z-index:6;font-family:var(--f-osw);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:#ddd}
.scroll-down:hover{color:var(--gold)}

/* ====================== СЦЕНЫ (секции) ====================== */
.scene{position:relative;z-index:2;min-height:100svh;display:flex;align-items:center;justify-content:center;
  padding:calc(var(--bar-h) + 50px) clamp(18px,5vw,80px) 90px;text-align:center}
.scene-in{width:100%;max-width:1100px}
.scene-in.narrow{max-width:760px}
.h-pink{font-family:var(--f-osw);font-weight:600;font-size:clamp(36px,5.2vw,74px);line-height:.98;color:var(--pink);
  text-shadow:0 0 22px #ff2f9255,0 0 60px #ff2f9222;letter-spacing:.01em}
.h-cyan{margin:18px auto 0;font-family:var(--f-osw);font-weight:500;text-transform:uppercase;font-size:clamp(15px,1.7vw,24px);line-height:1.3;color:var(--cyan);
  text-shadow:0 0 18px #4fc8e844;max-width:760px}
.tilt{transform:rotate(-2.2deg)}
.tilt-r{transform:rotate(-1.4deg)}

/* появление при прокрутке (класс .reveal добавляет js) */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

/* ====================== КАРТОЧКИ (3 шага) ====================== */
.cards{display:flex;justify-content:center;align-items:flex-start;gap:clamp(14px,3.5vw,48px);margin-top:clamp(36px,5vw,70px);flex-wrap:wrap}
.card{position:relative;width:clamp(200px,24vw,260px);aspect-ratio:.82;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:20px;
  background:
    linear-gradient(180deg,transparent 55%,#7a0a0a99 100%),
    url(../img/grain.webp) center/cover,#101010;
  border:1px solid #ffffff1a;border-radius:6px 10px 5px 9px;box-shadow:0 20px 50px #000a,inset 0 0 40px #000;
  transition:transform .35s ease,box-shadow .35s}
.card.c1{transform:rotate(-2.2deg)}
.card.c2{transform:rotate(1.4deg) translateY(-14px)}
.card.c3{transform:rotate(-1.2deg) translateY(6px)}
.card:hover{transform:rotate(0) translateY(-10px) scale(1.03);box-shadow:0 30px 60px #000,0 0 40px #e1060033}
.card h3{font-family:var(--f-osw);font-weight:600;font-size:clamp(17px,1.7vw,22px);line-height:1.15;letter-spacing:.04em;color:var(--paper)}
.ico{width:clamp(80px,9vw,120px);color:#e9e9e9;filter:drop-shadow(0 0 10px #ffffff33)}

/* ====================== КАРТА СЕРВЕРОВ ====================== */
.map-wrap{position:relative;max-width:820px;margin:clamp(20px,3vw,40px) auto 0}
.map{width:100%;height:auto;display:block;filter:drop-shadow(0 30px 40px #000)}
.pin{position:absolute;width:34px;height:34px;translate:-50% -50%;background:none;border:0;cursor:pointer}
.pin i{position:absolute;inset:9px;border-radius:50%;background:var(--pink);box-shadow:0 0 16px var(--pink)}
.pin::before,.pin::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--pink);animation:ping 2.4s infinite;opacity:0}
.pin::after{animation-delay:1.2s}
@keyframes ping{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.7);opacity:0}}
.pin.active i{background:var(--cyan);box-shadow:0 0 18px var(--cyan)}
.pin.active::before,.pin.active::after{border-color:var(--cyan)}
.sign{position:absolute;left:2%;top:6%;transform:rotate(-3deg);padding:12px 22px 10px;background:#0a0a0a;border:3px solid var(--red);border-radius:4px;box-shadow:0 10px 30px #000,0 0 24px #e1060044;text-align:left}
.sign b{display:block;font-family:var(--f-sign);font-weight:700;letter-spacing:.14em;font-size:clamp(14px,1.8vw,22px);color:#ddd}
.sign span{display:block;margin-top:2px;font-family:var(--f-osw);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}
.srv-info{display:flex;justify-content:center;gap:clamp(18px,4vw,60px);margin-top:10px}
.srv-info small{display:block;font-family:var(--f-osw);font-size:11px;letter-spacing:.3em;color:var(--paper-dim)}
.srv-info strong{font-family:var(--f-beb);font-weight:400;font-size:clamp(26px,3vw,40px);letter-spacing:.04em;color:var(--gold)}

/* ====================== ФИЧИ ====================== */
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2px;margin-top:clamp(30px,4vw,56px);background:#1f1f1f;border:1px solid #1f1f1f;text-align:left}
.f{background:#090909cc;padding:30px 26px;transition:background .3s}
.f:hover{background:#150c0c}
.f b{font-family:var(--f-beb);font-weight:400;font-size:52px;line-height:1;color:var(--red-hi)}
.f h4{font-family:var(--f-osw);font-weight:500;letter-spacing:.08em;font-size:16px;margin:10px 0 8px;color:var(--paper)}
.f p{font-weight:300;font-size:14.5px;line-height:1.6;color:var(--paper-dim)}

/* ====================== ТАРИФЫ ====================== */
.plans{display:flex;justify-content:center;align-items:stretch;gap:clamp(14px,2.5vw,32px);margin-top:clamp(34px,5vw,60px);flex-wrap:wrap}
.plan{position:relative;width:min(340px,100%);padding:34px 26px 28px;text-align:center;
  background:linear-gradient(180deg,transparent 60%,#6a0a0a88 100%),url(../img/grain.webp) center/cover,#0f0f0f;
  border:1px solid #ffffff1c;border-radius:6px 10px 5px 9px;box-shadow:0 20px 50px #000a;transition:transform .35s,box-shadow .35s;display:flex;flex-direction:column}
.plan:nth-child(1){transform:rotate(-1.6deg)}
.plan.best{transform:translateY(-14px) scale(1.04);border-color:var(--red);box-shadow:0 24px 60px #000,0 0 50px #e1060040}
.plan:hover{transform:rotate(0) translateY(-8px)}
.plan.best:hover{transform:translateY(-22px) scale(1.06)}
.ribbon{white-space:nowrap;position:absolute;top:-13px;left:50%;translate:-50% 0;background:var(--red);padding:5px 16px;font-family:var(--f-osw);font-weight:600;font-size:12px;letter-spacing:.24em}
.plan h3{font-family:var(--f-osw);font-weight:600;letter-spacing:.14em;font-size:20px;color:var(--paper)}
.plan-sub{margin-top:8px;min-height:3em;font-family:var(--f-osw);font-weight:300;font-size:15px;letter-spacing:.04em;line-height:1.4;color:var(--paper-dim)}
.price{margin:14px 0 20px;display:flex;align-items:baseline;justify-content:center;gap:4px}
.price span{font-family:var(--f-beb);font-size:84px;line-height:1;color:var(--gold)}
.price em{font-style:normal;font-family:var(--f-osw);font-weight:500;font-size:34px;color:var(--gold)}
.price small{font-family:var(--f-osw);color:var(--paper-dim);font-size:16px;margin-left:4px}
.plan ul{list-style:none;margin-bottom:26px;flex:1}
.plan li{font-weight:300;font-size:15px;color:var(--paper);padding:9px 0;border-bottom:1px solid #ffffff12}
.plan .btn{width:100%}
.pay-note{margin-top:34px;font-family:var(--f-osw);letter-spacing:.3em;font-size:12px;text-transform:uppercase;color:var(--paper-dim)}

/* ====================== FAQ ====================== */
.faq{margin-top:34px;text-align:left}
.faq details{border-bottom:1px solid #ffffff22;padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;position:relative;font-family:var(--f-osw);font-weight:500;letter-spacing:.06em;font-size:19px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;translate:0 -50%;font-size:28px;color:var(--pink);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 0 20px;font-weight:300;line-height:1.7;color:var(--paper-dim)}

/* ====================== ФУТЕР ====================== */
.foot{position:relative;z-index:2;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:30px clamp(18px,5vw,80px) calc(30px + env(safe-area-inset-bottom));
  border-top:1px solid #ffffff1a;font-size:12px;letter-spacing:.08em;color:#777;background:#000}
.foot a:hover{color:var(--gold)}

/* ====================== МОДАЛКА ====================== */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000c;backdrop-filter:blur(4px);padding:20px}
.modal[hidden]{display:none}
.modal-box{position:relative;width:min(420px,100%);padding:36px 30px 26px;text-align:center;background:#0d0d0d;border:1px solid var(--red);box-shadow:0 0 60px #e1060033}
.modal-x{position:absolute;right:12px;top:6px;background:none;border:0;font-size:32px;cursor:pointer;color:#999}
.modal-box h3{font-family:var(--f-osw);font-weight:600;letter-spacing:.14em;font-size:22px}
.m-price{font-family:var(--f-osw);font-weight:600;font-size:34px;color:var(--gold);margin:8px 0 4px}
.m-trial{margin-bottom:18px;font-family:var(--f-osw);letter-spacing:.2em;text-transform:uppercase;font-size:13px;color:var(--cyan)}
.modal form{display:flex;flex-direction:column;gap:12px}
.modal input{background:#080808;border:1px solid #333;color:#fff;padding:15px 16px;font:400 16px "Suisse Intl";outline:0}
.modal input:focus{border-color:var(--red)}
.modal small{display:block;margin-top:14px;color:#777;font-size:12px}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ====================== ДОПОЛНЕНИЯ: окна и личный кабинет ====================== */
.m-text{color:#bbb;font-size:15px;line-height:1.5;margin:14px 0}
.m-err{color:#ff6b5e;font-size:14px;margin:12px 0}
.m-ok{color:#6fdc8c;font-size:15px;margin:12px 0}
.m-status{color:#999;font-size:14px;margin:12px 0}
.m-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.m-alt{margin-top:22px;padding-top:16px;border-top:1px solid #333;font-size:13px;color:#888}
.m-alt .btn{margin-top:10px}
.m-copy{display:flex;gap:8px;margin:14px 0}
.m-copy input{flex:1;min-width:0}
.m-check{display:block;margin:16px 0;color:#ccc;font-size:14px;cursor:pointer}
.m-flow{margin-top:16px;display:flex;flex-direction:column;gap:10px;align-items:center}
.btn-sm{padding:9px 16px;font-size:12px}
.btn.is-disabled{opacity:.35;pointer-events:none}
.key-box{font-family:"Special Elite",monospace;font-size:18px;letter-spacing:.06em;background:#080808;border:1px dashed var(--gold);color:var(--gold);padding:16px;margin:14px 0;word-break:break-all;user-select:all}
.acc{position:relative;z-index:2;min-height:100svh;padding:calc(var(--bar-h) + 40px) 20px 60px}
.acc-in{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.acc-in h2{font-family:var(--f-osw);font-size:clamp(34px,7vw,64px);line-height:1}
.acc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.acc-card{background:#0d0d0d;border:1px solid #2a2a2a;padding:24px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.acc-card h3{font-family:var(--f-osw);letter-spacing:.12em;font-size:18px}
.acc-card input{background:#080808;border:1px solid #333;color:#fff;padding:13px 14px;font:400 15px "Suisse Intl";outline:0;width:100%}
.acc-card input:focus{border-color:var(--red)}
.acc-card .m-form{display:flex;flex-direction:column;gap:10px;width:100%}
.acc-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;width:100%;border-bottom:1px solid #1d1d1d}
.acc-row span{color:#888;min-width:110px}
.acc-hint,.acc-foot{color:#888;font-size:14px}
.acc-foot a{color:var(--cyan)}
.sub{width:100%;border:1px solid #2a2a2a;padding:16px;margin:8px 0}
.sub.on{border-color:#2f6b3d}
.sub-head{display:flex;justify-content:space-between;align-items:center}
.sub .tag{font-size:11px;letter-spacing:.12em;background:#222;padding:3px 8px}
.sub-state{color:#aaa;font-size:14px;margin:8px 0}
.sub-hint{color:#777;font-size:12px}
