*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#17161c;
  --bg-alt:#1e1c24;
  --panel:#252330;
  --lavender:#a9a2c4;
  --white:#f3f2f6;
  --red:#a83b4c;
  --line:rgba(255,255,255,0.1)
}
html{scroll-behavior:smooth}
body{
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--white);
  font-size:16px;
  line-height:1.6;
}
h1,h2,h3{
  font-family:"Arial Black",Arial,Helvetica,sans-serif;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-0.01em;
}
h1{font-size:clamp(38px,5.5vw,72px);margin-bottom:18px}
h2{font-size:clamp(26px,3.6vw,44px);margin-bottom:16px}
h3{font-size:clamp(19px,2.2vw,26px);margin-bottom:8px}
p{margin-bottom:14px}
a{color:var(--lavender);text-decoration:none}
a:hover{color:var(--white)}
ul{list-style:none}
img{max-width:100%}
.wrap{max-width:1400px;margin:0 auto;padding:0 24px}
.band{padding:56px 0}
.band-alt{background:var(--bg-alt)}

.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--white);font-weight:900;font-size:20px;font-family:"Arial Black",Arial,sans-serif}
.brand img{display:block}

.primary-nav{display:flex;align-items:center;gap:28px}
.primary-nav ul{display:flex;gap:22px}
.primary-nav a{color:var(--white);font-size:15px;padding:6px 2px}
.primary-nav a:focus-visible{outline:2px solid var(--lavender);outline-offset:3px}
.nav-actions{display:flex;align-items:center;gap:12px}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;
  height:44px;padding:0 22px;
  border-radius:10px;
  font-size:15px;font-weight:700;
  border:2px solid transparent;
  cursor:pointer;
  white-space:nowrap;
}
.btn-solid{background:var(--red);color:var(--white);border-color:var(--red)}
.btn-solid:hover{background:#8f3241}
.btn-solid:focus-visible{outline:2px solid var(--white);outline-offset:2px}
.btn-ghost{background:transparent;color:var(--white);border-color:var(--lavender)}
.btn-ghost:hover{background:rgba(169,162,196,0.12)}
.btn-ghost:focus-visible{outline:2px solid var(--lavender);outline-offset:2px}
.btn-lg{height:52px;padding:0 30px;font-size:16px}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--white)}

.hero{padding-top:64px;padding-bottom:64px;min-height:100vh;display:flex;align-items:center}
.hero-inner{max-width:900px}
.eyebrow{color:var(--lavender);font-size:14px;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:12px}
.hero-lead{font-size:clamp(17px,2vw,20px);max-width:640px;color:var(--lavender)}
.hero-actions{margin-top:26px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.hero-note{font-size:14px;color:var(--lavender);margin:0}
.table-line{margin-top:48px;height:6px;width:100%;max-width:640px;background:repeating-linear-gradient(90deg,var(--red) 0 30px,transparent 30px 46px);border-radius:3px}

.section-lead{max-width:760px;color:var(--lavender)}

.filters{display:flex;gap:10px;overflow-x:auto;margin:22px 0 28px;padding-bottom:4px;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.chip{
  flex:0 0 auto;
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--white);
  padding:9px 18px;
  border-radius:10px;
  font-size:14px;
  cursor:pointer;
}
.chip.is-active{background:var(--red);border-color:var(--red)}
.chip:focus-visible{outline:2px solid var(--lavender);outline-offset:2px}

.game-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  grid-auto-rows:1fr;
}
.game-card{
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  color:var(--white);
  transition:transform .2s ease,border-color .2s ease;
}
.game-card:hover{transform:translateY(-4px);border-color:var(--lavender)}
.game-card:focus-visible{outline:2px solid var(--lavender);outline-offset:2px}
.cover{display:block;width:100%;aspect-ratio:16/9;overflow:hidden}
.cover img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.game-title{padding:14px 14px 4px;font-weight:700;font-size:15px}
.play-btn{
  margin:auto 14px 14px;
  background:var(--red);
  color:var(--white);
  text-align:center;
  padding:9px 0;
  border-radius:10px;
  font-size:14px;
  font-weight:700;
}
.sticker{
  position:absolute;top:10px;left:10px;z-index:2;
  background:var(--white);color:var(--bg);
  font-size:11px;font-weight:700;
  padding:4px 10px;border-radius:6px;
  transform:rotate(-4deg);
}
.sticker-2{transform:rotate(3deg);background:var(--red);color:var(--white)}
.fav-btn{
  position:absolute;top:10px;right:10px;z-index:2;
  width:30px;height:30px;border-radius:8px;
  border:1px solid var(--line);
  background:rgba(23,22,28,0.7);
  color:var(--lavender);
  font-size:15px;
  cursor:pointer;
}
.fav-btn.is-fav{color:var(--red);border-color:var(--red)}
.fav-btn:focus-visible{outline:2px solid var(--lavender);outline-offset:2px}

.zigzag{
  height:18px;
  background-image:linear-gradient(135deg,var(--bg-alt) 50%,transparent 50%),linear-gradient(225deg,var(--bg-alt) 50%,transparent 50%);
  background-size:26px 36px;
  background-position:0 0,13px 0;
  background-repeat:repeat-x;
  background-color:var(--bg);
}
.zigzag-alt{
  background-image:linear-gradient(135deg,var(--bg) 50%,transparent 50%),linear-gradient(225deg,var(--bg) 50%,transparent 50%);
  background-color:var(--bg-alt);
}

.reviews-wrap{display:flex;align-items:center;gap:14px;margin-top:20px}
.reviews-track{
  display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;
  flex:1;
}
.reviews-track::-webkit-scrollbar{display:none}
.review-card{
  flex:0 0 calc(25% - 15px);
  scroll-snap-align:start;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:22px;
  display:flex;flex-direction:column;justify-content:space-between;
  min-height:160px;
}
.review-card p{color:var(--lavender);font-size:15px}
.rev-name{font-weight:700;color:var(--white);font-size:14px}
.rev-arrow{
  flex:0 0 auto;
  width:40px;height:40px;
  border-radius:10px;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--white);
  font-size:20px;
  cursor:pointer;
}
.rev-arrow:hover{border-color:var(--lavender)}
.rev-arrow:focus-visible{outline:2px solid var(--lavender);outline-offset:2px}
.rev-dots{display:flex;gap:8px;justify-content:center;margin-top:16px}
.rev-dot{width:8px;height:8px;border-radius:50%;background:var(--line)}
.rev-dot.is-active{background:var(--red)}

.two-col{display:grid;grid-template-columns:1.2fr 0.8fr;gap:48px;align-items:center}
.two-col.reverse{grid-template-columns:0.8fr 1.2fr}
.two-col.reverse .col-media{order:-1}
.col-media img{width:100%;height:auto;max-width:420px;display:block;border-radius:14px}
.plain-list li{
  padding:10px 0 10px 20px;
  border-top:1px solid var(--line);
  position:relative;
  color:var(--lavender);
}
.plain-list li::before{content:"—";position:absolute;left:0;color:var(--red)}

.steps{display:flex;flex-direction:column;gap:20px;margin-top:22px;position:relative;padding-left:20px;border-left:2px solid var(--line)}
.step{position:relative;padding-left:14px}
.step-num{
  position:absolute;left:-40px;top:0;
  width:28px;height:28px;
  border-radius:50%;
  background:var(--red);
  color:var(--white);
  font-weight:700;font-size:14px;
  display:flex;align-items:center;justify-content:center;
}
.step p{color:var(--lavender);font-size:15px;margin-bottom:0}

.faq-list{display:flex;flex-direction:column;gap:12px;margin-top:22px;max-width:900px}
.faq-item{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:6px 20px;
}
.faq-item summary{
  cursor:pointer;
  font-weight:700;
  padding:14px 0;
  list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";float:right;color:var(--lavender)}
.faq-item[open] summary::after{content:"–"}
.faq-item p{color:var(--lavender);padding-bottom:14px;margin:0}

#about h3{margin-top:26px}
#about p{max-width:900px;color:var(--lavender)}
#about .plain-list{max-width:900px;margin-top:16px}

.cta-band{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cta-inner{text-align:left;max-width:700px}
.cta-inner p{color:var(--lavender);margin-bottom:24px}

.site-footer{background:var(--bg-alt);border-top:1px solid var(--line);padding:52px 0 20px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px}
.footer-brand p{color:var(--lavender);font-size:14px;max-width:320px}
.age-badge{
  margin-top:14px;
  font-size:13px;
  color:var(--lavender);
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
  max-width:340px;
}
.footer-col h3{font-size:16px;margin-bottom:14px}
.footer-col ul{display:flex;flex-direction:column;gap:8px}
.footer-col a{color:var(--lavender);font-size:14px}
.footer-col a:hover{color:var(--white)}
.footer-bottom{margin-top:36px;border-top:1px solid var(--line);padding-top:18px;color:var(--lavender);font-size:13px}

.to-top{
  position:fixed;right:20px;bottom:24px;z-index:90;
  width:46px;height:46px;
  border-radius:10px;
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--white);
  font-size:18px;
  cursor:pointer;
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity .25s ease,transform .25s ease;
}
.to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
.to-top:focus-visible{outline:2px solid var(--lavender);outline-offset:2px}

.cookie-banner{
  position:fixed;left:24px;right:24px;bottom:-140px;z-index:110;
  max-width:640px;margin:0 auto;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:18px 20px;
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;justify-content:space-between;
  transition:bottom .35s ease;
  box-shadow:0 10px 30px rgba(0,0,0,0.35);
}
.cookie-banner.is-visible{bottom:24px}
.cookie-banner p{margin:0;font-size:14px;color:var(--lavender);flex:1 1 280px}
.cookie-actions{display:flex;align-items:center;gap:10px}
.cookie-close{
  width:34px;height:34px;
  border-radius:8px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--white);
  font-size:16px;
  cursor:pointer;
}
.cookie-close:focus-visible,.cookie-actions .btn:focus-visible{outline:2px solid var(--lavender);outline-offset:2px}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}

@media (prefers-reduced-motion:reduce){
  .reveal{transition:none;opacity:1;transform:none}
  .game-card{transition:none}
  html{scroll-behavior:auto}
}

@media (max-width:1200px){
  .game-grid{grid-template-columns:repeat(3,1fr)}
  .review-card{flex:0 0 calc(50% - 10px)}
}

@media (max-width:768px){
  .nav-toggle{display:flex}
  .primary-nav{
    position:absolute;top:72px;left:0;right:0;
    background:var(--bg);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:stretch;
    gap:0;
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
  }
  .primary-nav.is-open{max-height:420px}
  .primary-nav ul{flex-direction:column;gap:0;padding:10px 24px}
  .primary-nav ul li a{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
  .nav-actions{flex-direction:row;padding:16px 24px 22px;gap:12px}
  .band{padding:40px 0}
  .hero{padding-top:40px;padding-bottom:40px}
  .two-col{grid-template-columns:1fr;gap:26px}
  .two-col.reverse .col-media{order:0}
  .footer-grid{grid-template-columns:1fr 1fr}
  .game-grid{grid-template-columns:repeat(2,1fr)}
  .review-card{flex:0 0 100%}
  .steps{padding-left:14px}
  .step-num{left:-32px}
}

@media (max-width:480px){
  .game-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .wrap{padding:0 16px}
  .cookie-banner{left:10px;right:10px;padding:16px}
  .btn{padding:0 16px;font-size:14px}
}
