/* NyXes Game — дизайн-система
   Цвет: циан = действие, розовый = редкий акцент (логотип, дверь, ошибки).
   Шрифты: Pixelify Sans — только крупные заголовки и логотип; Rubik — интерфейс; JetBrains Mono — цены и ключи. */
:root{
  color-scheme:dark;
  --bg:#0a0a0a; --s1:#111317; --s2:#171a20; --s3:#1e222a;
  --ln:#252a33; --ln2:#343b47;
  --tx:#eceff3; --tx2:#b0b8c4; --tx3:#7d8695;
  --cy:#00ffcc; --cy-sh:#00755e; --pk:#ff0055; --pk-tx:#ff7aa2;
  --ui:'Rubik',system-ui,-apple-system,'Segoe UI',sans-serif;
  --px:'Pixelify Sans','Rubik',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
  --max:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100dvh;display:flex;flex-direction:column;color:var(--tx);font:400 16px/1.6 var(--ui);
  background:radial-gradient(1000px 420px at 10% -120px,rgba(0,255,204,.07),transparent 70%),var(--bg);
  -webkit-font-smoothing:antialiased}
::selection{background:var(--pk);color:#fff}
img,svg{display:block;max-width:100%}
a{color:var(--cy);text-decoration:none;text-underline-offset:3px}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--cy);outline-offset:3px}
[hidden]{display:none!important}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
h1{font:700 clamp(30px,5vw,44px)/1.1 var(--px)}
h2{font:700 24px/1.2 var(--px)}
h3{font:600 22px/1.25 var(--ui)}
.skip{position:absolute;left:-999px;top:8px;background:var(--cy);color:#031a14;padding:8px 14px;font-weight:600;z-index:100}
.skip:focus{left:8px}
.wrap{flex:1;width:100%;max-width:var(--max);margin:0 auto;padding:32px 20px 80px}
.center{text-align:center}
.ic{width:20px;height:20px;flex:none}

/* ---- Шапка / подвал ---- */
.top{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--ln)}
.top-in{max-width:var(--max);margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{display:inline-flex;align-items:center;gap:10px;font:700 21px/1 var(--px);color:var(--tx)}
.logo:hover{text-decoration:none;color:var(--cy)}
.logo.sm{font-size:18px}
.mark{width:22px;height:22px}
.top-nav{display:flex;gap:6px}
.top-nav a{position:relative;padding:8px 12px;color:var(--tx2);font-weight:500;font-size:15px;transition:color .15s}
.top-nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;background:var(--cy);transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}
.top-nav a:hover{color:var(--tx);text-decoration:none}
.top-nav a:hover::after{transform:scaleX(1)}
.foot{border-top:1px solid var(--ln);background:var(--s1);padding:40px 20px}
.foot-in{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.foot-brand p{margin-top:10px;color:var(--tx3);font-size:14px;max-width:36ch}
.foot-col{display:flex;flex-direction:column;gap:8px;font-size:14px}
.foot-col b{color:var(--tx);font-weight:500;margin-bottom:2px}
.foot-col a{color:var(--tx2);width:fit-content}
.foot-col a:hover{color:var(--cy)}
.foot-brand .mitt{margin-top:14px;padding-top:12px;border-top:1px solid var(--ln);font-size:12px;line-height:1.55}

/* ---- Кнопки ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 22px;border:2px solid var(--ln2);
  background:transparent;color:var(--tx);font:600 15px/1 var(--ui);cursor:pointer;text-decoration:none;
  transition:transform .12s var(--ease),box-shadow .12s var(--ease),background-color .15s,border-color .15s,color .15s}
.btn:hover{text-decoration:none;border-color:var(--cy);color:var(--cy)}
.btn:active{transform:translate(1px,1px)}
.btn-primary{background:var(--cy);border-color:var(--cy);color:#031a14;box-shadow:3px 3px 0 var(--cy-sh)}
.btn-primary:hover{background:#33ffd6;border-color:#33ffd6;color:#031a14;transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--cy-sh)}
.btn-primary:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--cy-sh)}
.btn-sm{min-height:36px;padding:0 14px;font-size:14px}
.btn-lg{min-height:54px;padding:0 28px;font-size:17px}
.btn-block{width:100%}
.btn:disabled{opacity:.7;cursor:progress;transform:none}
.btn.loading{animation:blink 1.1s steps(2,jump-none) infinite}
@keyframes blink{50%{opacity:.55}}

/* ---- Главная ---- */
.intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:56px;align-items:end;padding:40px 0 56px}
.display{font:700 clamp(46px,8.5vw,84px)/.98 var(--px);margin-bottom:20px}
.lead{max-width:44ch;color:var(--tx2);font-size:18px}
.perks{list-style:none;margin:0;padding:0 0 0 28px;display:grid;gap:18px;border-left:2px solid var(--ln)}
.perks li{display:flex;gap:14px;align-items:flex-start}
.perk-ic{display:grid;place-items:center;width:36px;height:36px;flex:none;background:var(--s2);border:1px solid var(--ln);color:var(--cy)}
.perks b{display:block;font-weight:500;line-height:1.3}
.perks div>span{display:block;color:var(--tx3);font-size:14px}
.sec-h{margin-bottom:20px}
.feature{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);background:var(--s1);border:1px solid var(--ln);color:var(--tx);
  transition:border-color .2s,transform .2s var(--ease)}
.feature:hover{border-color:var(--cy);transform:translateY(-2px);text-decoration:none}
.feature-media{aspect-ratio:16/9;overflow:hidden;background:#05070a;border-right:1px solid var(--ln)}
.feature-media img,.cover img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated;transition:transform .5s var(--ease)}
.feature:hover .feature-media img,.card:hover .cover img{transform:scale(1.03)}
.feature-body{padding:36px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.feature-body h3{font:700 clamp(28px,3.4vw,40px)/1.05 var(--px)}
.tag{color:var(--tx3);font-size:15px}
.tag.lg{font-size:18px;color:var(--tx2)}
.price{font:700 22px/1 var(--mono);color:var(--cy)}
.price.xl{font-size:38px}
.price-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:12px}
.feature:hover .btn-primary{background:#33ffd6;transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--cy-sh)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin-top:24px}
.card{display:flex;flex-direction:column;background:var(--s1);border:1px solid var(--ln);color:var(--tx);transition:border-color .2s,transform .2s var(--ease)}
.card:hover{border-color:var(--cy);transform:translateY(-2px);text-decoration:none}
.cover{aspect-ratio:16/9;overflow:hidden;background:#05070a;border-bottom:1px solid var(--ln)}
.card-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body .price-row{margin-top:auto;padding-top:12px;justify-content:space-between}

/* ---- Страница игры ---- */
.crumb{display:inline-block;margin-bottom:20px;color:var(--tx3);font-size:15px}
.crumb:hover{color:var(--cy);text-decoration:none}
.g-head{margin-bottom:28px}
.g-head .tag{margin-top:8px}
.g-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:start}
.g-cover{aspect-ratio:16/9;overflow:hidden;background:#05070a;border:1px solid var(--ln)}
.g-cover img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.g-main{min-width:0}
.shots-row{display:flex;gap:12px;overflow-x:auto;padding:16px 0 4px}
.shots-row img{height:120px;width:auto;border:1px solid var(--ln)}
.about{margin-top:36px}
.about h2{margin-bottom:14px}
.about p{max-width:62ch;color:var(--tx2);margin-bottom:12px}
.buy{position:sticky;top:88px;background:var(--s1);border:1px solid var(--ln);padding:24px;display:grid;gap:22px}
.buy-cta{display:grid;gap:16px}
.facts{list-style:none;margin:0;padding:20px 0 0;border-top:1px solid var(--ln);display:grid;gap:14px;font-size:14px;color:var(--tx2)}
.facts li{display:flex;gap:12px;align-items:center}
.facts .ic{color:var(--cy)}
.how{margin-top:72px}
.how h2{margin-bottom:20px}
.steps{margin:0;padding:0;list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.steps li{counter-increment:s;display:flex;flex-direction:column;gap:4px;padding:18px;background:var(--s1);border:1px solid var(--ln)}
.steps li::before{content:counter(s);display:grid;place-items:center;width:28px;height:28px;margin-bottom:10px;border:2px solid var(--cy);color:var(--cy);font:700 14px/1 var(--mono)}
.steps b{font-weight:600}
.steps span{color:var(--tx3);font-size:14px}
.buybar{display:none}

/* ---- Оплата ---- */
.pay-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start;max-width:960px;margin:0 auto}
.panel{background:var(--s1);border:1px solid var(--ln);padding:32px}
.panel h1{margin-bottom:20px}
label{display:block;margin:20px 0 8px;font-weight:500;font-size:15px}
input[type=email]{width:100%;min-height:52px;padding:0 14px;background:var(--bg);color:var(--tx);border:2px solid var(--ln2);font:400 16px var(--ui);transition:border-color .15s,box-shadow .15s}
input[type=email]::placeholder{color:var(--tx3)}
input[type=email]:hover{border-color:#47505f}
input[type=email]:focus{border-color:var(--cy);outline:none;box-shadow:0 0 0 4px rgba(0,255,204,.15)}
input[type=email]:user-invalid{border-color:var(--pk-tx)}
.check{display:flex;gap:12px;align-items:flex-start;font-weight:400;color:var(--tx2);font-size:14px;cursor:pointer}
.check input{appearance:none;-webkit-appearance:none;flex:none;margin:1px 0 0;width:22px;height:22px;border:2px solid var(--ln2);background:var(--bg);cursor:pointer;transition:border-color .15s,background-color .15s}
.check input:hover{border-color:var(--cy)}
.check input:checked{background:var(--cy);border-color:var(--cy);box-shadow:inset 0 0 0 4px var(--bg)}
.check input:focus-visible{outline:2px solid var(--cy);outline-offset:3px}
form .btn-block{margin-top:28px}
.hint{color:var(--tx3);font-size:14px;margin-top:8px}
.alert{background:rgba(255,0,85,.08);border-left:3px solid var(--pk);padding:12px 16px;color:var(--pk-tx);margin:0 0 8px}
.secure{display:flex;gap:10px;align-items:center;margin-top:20px;color:var(--tx3);font-size:14px}
.secure .ic{color:var(--cy);width:16px;height:16px}
.sum{background:var(--s1);border:1px solid var(--ln);position:sticky;top:88px}
.sum img{width:100%;aspect-ratio:16/9;object-fit:cover;image-rendering:pixelated;border-bottom:1px solid var(--ln)}
.sum-body{padding:20px}
.sum-body h2{font-size:22px;margin-bottom:4px}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:20px;padding-top:16px;border-top:1px dashed var(--ln2);color:var(--tx2)}

/* ---- Успех / ошибки ---- */
.success{max-width:560px;margin:24px auto 0}
.success h1{margin-bottom:8px}
.ok-badge{display:grid;place-items:center;width:52px;height:52px;margin-bottom:20px;background:var(--cy);color:#031a14}
.ok-badge .ic{width:28px;height:28px}
.keybox{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:24px 0 12px;padding:20px;background:#000;border:2px solid var(--cy);box-shadow:5px 5px 0 var(--cy-sh)}
.keybox code{flex:1;min-width:0;font:700 clamp(22px,6vw,30px)/1.2 var(--mono);letter-spacing:.06em;color:var(--cy);word-break:break-all}
.steps.two{grid-template-columns:repeat(2,minmax(0,1fr));margin:28px 0 24px}
.loader{display:flex;gap:8px;margin:0 auto 24px;justify-content:center}
.loader i{width:14px;height:14px;background:var(--cy);animation:blink 1s steps(2,jump-none) infinite}
.loader i:nth-child(2){animation-delay:.15s}
.loader i:nth-child(3){animation-delay:.3s}
.loader i:nth-child(4){animation-delay:.45s}
.err-page{max-width:480px;margin:48px auto;text-align:center}
.err-page h1{margin-bottom:10px}
.err-page .lead{margin:0 auto 28px}
.x-mark{width:64px;height:64px;margin:0 auto 24px;color:var(--pk)}
.big-code{font:700 clamp(88px,22vw,150px)/1 var(--px);color:var(--ln2);margin-bottom:12px}

/* ---- Документы ---- */
.doc{max-width:70ch;margin:0 auto}
.doc h1{margin-bottom:28px}
.doc h2{font-size:22px;margin:36px 0 12px}
.doc p{white-space:pre-line;color:var(--tx2);margin-bottom:14px}

/* ---- Адаптив ---- */
@media (max-width:1023px){
  .intro{grid-template-columns:1fr;gap:36px;padding-top:16px}
  .perks{padding:24px 0 0;border-left:0;border-top:2px solid var(--ln)}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  .feature{grid-template-columns:1fr}
  .feature-media{border-right:0;border-bottom:1px solid var(--ln)}
  .feature-body{padding:24px}
  .g-layout{grid-template-columns:1fr;gap:24px}
  .buy{position:static;order:-1;padding:18px 20px}
  .buy-cta{display:none}
  .facts{border-top:0;padding-top:0}
  .about{margin-top:28px}
  .pay-grid{grid-template-columns:1fr}
  .sum{position:static;order:-1;display:flex;align-items:center}
  .sum img{width:112px;height:72px;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--ln)}
  .sum-body{flex:1;padding:12px 16px}
  .sum-body .hint{display:none}
  .sum-total{margin-top:6px;padding-top:0;border-top:0}
  .sum-body h2{font-size:18px}
  .price.xl{font-size:26px}
  .panel{padding:24px 20px}
  body.has-buybar .wrap{padding-bottom:112px}
  .buybar{display:flex;position:fixed;inset:auto 0 0 0;z-index:45;align-items:center;justify-content:space-between;gap:16px;
    padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:var(--s1);border-top:1px solid var(--ln2)}
  .buybar .price{font-size:26px}
  .buybar .btn{flex:1;max-width:220px}
  .foot-in{grid-template-columns:1fr;gap:28px}
}
@media (max-width:640px){
  .wrap{padding:20px 16px 64px}
  .top-in{padding:0 16px}
  .steps{grid-template-columns:1fr;gap:10px}
  .steps li{display:grid;grid-template-columns:28px 1fr;column-gap:14px;align-items:center;padding:14px 16px}
  .steps li::before{grid-row:span 2;margin:0}
  .steps.two{grid-template-columns:1fr}
  .keybox{padding:16px}
  .keybox .btn{width:100%}
  .top-nav a{padding:8px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
