  :root{
      --bg:#0b0a0f;
      --bg2:#121019;
      --card:#17131f;
      --card2:#20182b;
      --text:#efe9f7;
      --muted:#b9adc9;
      --accent:#9f6cff;
      --accent2:#d8b46a;
      --line:rgba(255,255,255,.08);
      --shadow:0 18px 40px rgba(0,0,0,.45);
      --radius:22px;
      --max:1240px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family: Inter, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
      background:
        radial-gradient(circle at top, rgba(159,108,255,.16), transparent 30%),
        radial-gradient(circle at 80% 0%, rgba(216,180,106,.12), transparent 28%),
        linear-gradient(180deg, #09080c 0%, #100d16 45%, #0b0a0f 100%);
      color:var(--text);
      overflow-x:hidden;
    }
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    .container{width:min(100% - 32px, var(--max)); margin-inline:auto}
    .topbar{
      position:sticky; top:0; z-index:1000;
      backdrop-filter: blur(14px);
      background:rgba(11,10,15,.72);
      border-bottom:1px solid var(--line);
    }
    .nav{
      display:flex; align-items:center; justify-content:space-between; gap:18px;
      padding:14px 0;
      flex-wrap: wrap; /* Позволяет элементам переноситься на мобильных */
    }
    .brand{display:flex; align-items:center; gap:14px; min-width:0}
    .brand img{
      width:52px; height:52px; object-fit:contain;
      filter: drop-shadow(0 8px 16px rgba(0,0,0,.5));
    }
    .brand h1{font-size:1.05rem; margin:0; line-height:1.1}
    .brand p{margin:2px 0 0; color:var(--muted); font-size:.86rem}
    .menu{display:flex; flex-wrap:wrap; gap:14px; justify-content:center}
    .menu a{
      padding:10px 13px; border:1px solid transparent; border-radius:999px;
      color:var(--muted); transition:.25s;
    }
    .menu a:hover{border-color:var(--line); color:var(--text); background:rgba(255,255,255,.03)}
    
    .phone{
      padding:11px 14px; border-radius:999px;
      background:linear-gradient(135deg, rgba(159,108,255,.2), rgba(216,180,106,.15));
      border:1px solid rgba(159,108,255,.28);
      white-space:nowrap;
    }

    /* --- Стили для мобильной кнопки (Бургера) --- */
    .burger {
      display: none;
      background: none;
      border: none;
      cursor: pointer;
      flex-direction: column;
      gap: 5px;
      padding: 5px;
      margin-left: auto;
    }
    .burger span {
      display: block;
      width: 28px;
      height: 3px;
      background-color: var(--text);
      border-radius: 2px;
      transition: 0.3s;
    }
    /* Анимация крестика при открытом меню */
    .burger.active span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
    .burger.active span:nth-child(2) { opacity: 0; }
    .burger.active span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
    /* ------------------------------------------- */

    .hero{padding:34px 0 18px}
    .hero-grid{
      display:grid; grid-template-columns: 1.15fr .85fr; gap:20px; align-items:stretch;
    }
    .hero-main, .hero-side, .section-card{
      background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }
    .hero-main{padding:28px; overflow:hidden; position:relative}
    .hero-main:before{
      content:""; position:absolute; inset:-2px;
      background:radial-gradient(circle at top right, rgba(159,108,255,.18), transparent 35%);
      pointer-events:none;
    }
    .eyebrow{
      display:inline-flex; gap:8px; align-items:center;
      color:var(--accent2); letter-spacing:.12em; text-transform:uppercase; font-size:.78rem;
      background:rgba(216,180,106,.08); border:1px solid rgba(216,180,106,.18);
      border-radius:999px; padding:8px 12px;
    }
    .hero-main h2{
      margin:16px 0 12px; font-size:clamp(2rem, 4vw, 4.2rem); line-height:1.02;
      max-width:10ch;
    }
    .hero-main p{margin:0; color:var(--muted); max-width:62ch; line-height:1.65}
    .hero-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px}
    .tag{
      padding:10px 12px; border-radius:999px; background:rgba(159,108,255,.12);
      border:1px solid rgba(159,108,255,.2); color:#e8ddff; font-size:.93rem;
    }
    .hero-side{
      padding:22px; display:grid; gap:14px; align-content:start;
      background:
        linear-gradient(180deg, rgba(159,108,255,.08), transparent 35%),
        linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
    }
    .hero-side img{width:100%; border-radius:18px; aspect-ratio: 16/11; object-fit:cover}
    .hero-side .note{
      color:var(--muted); line-height:1.6; margin:0;
    }

    section{padding:18px 0}
    .section-head{
      display:flex; justify-content:space-between; gap:16px; align-items:end; margin-bottom:14px;
    }
    .section-head h3{margin:0; font-size:clamp(1.45rem, 2.3vw, 2.2rem)}
    .section-head .sub{margin:0; color:var(--muted); max-width:60ch}

    .scroll-row{
      display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px, 1fr);
      gap:16px; overflow:auto; padding-bottom:8px; scroll-snap-type:x mandatory;
    }
    .scroll-row::-webkit-scrollbar{height:8px}
    .scroll-row::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12); border-radius:999px}
    .pack{
      scroll-snap-align:start;
      background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      border:1px solid var(--line); border-radius:20px; overflow:hidden;
    }
    .pack .img{
      position:relative; aspect-ratio: 16/10; overflow:hidden;
    }
    .pack .img img{width:100%; height:100%; object-fit:cover; transition:.35s}
    .pack:hover .img img{transform:scale(1.05)}
    .pill{
      position:absolute; top:12px; right:12px;
      background:rgba(11,10,15,.78); border:1px solid rgba(255,255,255,.1);
      padding:7px 10px; border-radius:999px; font-size:.82rem;
    }
    .title-overlay{
      position:absolute;
      left:50%;
      bottom:12px;
      transform:translateX(-50%);
      margin:0;
      width:100%;
      text-align:center;
      font-size:1.3rem;
      font-weight:800;
      text-shadow:0 2px 10px rgba(0,0,0,.85);
    }
    .pack-body{padding:16px}
    .pack-body p{margin:0 0 10px; color:var(--muted); line-height:1.55}
    .pack-body ul{margin:0; padding-left:18px; color:#e8e1f2}
    .pack-body li{margin:6px 0}

    .grid-3{
      display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
    }
    .game{
      background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      border:1px solid var(--line); border-radius:20px; overflow:hidden;
    }
    .game .img{
      position:relative;
      aspect-ratio: 16/11;
      background:#0f0d14;
      overflow:hidden;
    }
    .game .img img{width:100%; height:100%; object-fit:cover}
    .difficulty{
      position:absolute; left:12px; bottom:12px;
      background:rgba(11,10,15,.82); border:1px solid rgba(255,255,255,.1);
      padding:7px 10px; border-radius:999px; font-size:.82rem;
    }
    .age{
      position:absolute; top:12px; right:12px;
      background:rgba(159,108,255,.9); color:white;
      padding:7px 10px; border-radius:999px; font-size:.82rem; font-weight:700;
    }
    .game h4{
      position:absolute; inset:auto 16px 16px 16px; margin:0;
      text-align:center; font-size:1.15rem; text-shadow:0 2px 10px rgba(0,0,0,.85);
    }
    .game-body{padding:15px 16px 18px}
    .meta{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px}
    .meta span{
      font-size:.82rem; color:#efe6ff; background:rgba(255,255,255,.05);
      border:1px solid var(--line); border-radius:999px; padding:6px 9px;
    }
    .game-body p{margin:0 0 10px; color:var(--muted); line-height:1.55}
    .price{color:var(--accent2); font-weight:800}

    .album{
      display:grid; grid-template-columns:repeat(4,1fr); gap:12px;
    }
    .album button{
      border:0; padding:0; background:transparent; cursor:pointer;
      border-radius:16px; overflow:hidden;
      position:relative;
      aspect-ratio:1/1;
      box-shadow:var(--shadow);
    }
    .album img{
      width:100%; height:100%; object-fit:cover; transition:.35s;
    }
    .album button:hover img{transform:scale(1.08)}
    .modal{
      position:fixed; inset:0; background:rgba(0,0,0,.86);
      display:none; place-items:center; z-index:2000; padding:20px;
    }
    .modal.open{display:grid}
    .modal img{
      max-width:min(980px, 96vw); max-height:88vh; border-radius:18px;
      box-shadow:0 20px 60px rgba(0,0,0,.6);
    }

    .reviews .card{
      padding:16px; display:flex; gap:14px; align-items:flex-start;
    }
    .reviews img{width:72px; height:72px; border-radius:16px; object-fit:cover; flex:none}
    .reviews h5{margin:0 0 6px; font-size:1rem}
    .stars{color:#f4c95d; letter-spacing:2px; margin-top:8px}
    .reviews p{margin:0; color:var(--muted); line-height:1.55}

/* Выравниваем обе карточки по высоте */
    .maps {
      display: grid; 
      grid-template-columns: repeat(2, 1fr); 
      gap: 20px;
      align-items: stretch; 
    }
    
    /* Делаем так, чтобы карточка тянулась на всю доступную высоту */
    .map-card {
      background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      border: 1px solid var(--line);
      border-radius: 20px;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      height: 100%; 
    }
    
    /* Уменьшены отступы, чтобы текст был ближе к карте */
    .map-header {
      padding: 12px 16px; 
      border-bottom: 1px solid var(--line);
    }
    .map-header h4 {
      margin: 0 0 4px;
      font-size: 1.25rem;
      color: var(--accent2);
    }
    .map-header p {
      margin: 0;
      color: var(--muted);
      font-size: 0.9rem;
    }
    
    /* Значительно увеличиваем высоту карты и заставляем её заполнять пустое место */
    .map-container {
      width: 100%;
      min-height: 480px; 
      flex-grow: 1; 
      display: flex;
    }
    .map-container iframe {
      width: 100%;
      height: 100%;
      border: 0;
    }
    
    /* Уменьшены отступы снизу */
    .map-footer {
      padding: 14px 16px;
      border-top: 1px solid var(--line);
      text-align: center;
      background: rgba(11,10,15,.3);
    }
    .map-footer p {
      margin: 0 0 8px;
      font-size: 0.9rem;
      color: var(--muted);
    }
    .map-phone {
      display: inline-block;
      font-size: 1.7rem;
      font-weight: 800;
      color: var(--text);
      letter-spacing: 0.5px;
      transition: color 0.3s;
    }

/* Заголовок над картой */
    .map-header {
      padding: 18px 20px;
      border-bottom: 1px solid var(--line);
    }

    footer{
      padding:24px 0 36px; margin-top:12px;
      border-top:1px solid var(--line);
      background:linear-gradient(180deg, rgba(255,255,255,.02), transparent);
    }
    .footer-grid{
      display:grid; grid-template-columns:1.1fr .9fr 1fr; gap:16px; align-items:start;
    }
    .footer-box{
      background:rgba(255,255,255,.03);
      border:1px solid var(--line); border-radius:20px; padding:18px;
    }
    .socials{display:flex; flex-direction:column; gap:10px}
    .social{
      display:flex; align-items:center; gap:10px;
      padding:12px 14px; border-radius:14px; background:rgba(255,255,255,.04);
      border:1px solid var(--line);
    }
    .social .vk{width:26px; height:26px; border-radius:8px; background:#2787f5; display:grid; place-items:center; font-weight:800}
    .links{display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
    .links a{padding:10px 12px; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid var(--line); color:var(--muted)}

    .game-link{
      display:block;
      position:relative;
      width:100%;
      height:100%;
      color:inherit;
      text-decoration:none;
    }
    .game-link img{
      width:100%;
      height:100%;
      object-fit:cover;
      transition:transform .35s ease;
    }
    .game:hover .game-link img{
      transform:scale(1.06);
    }
    .game-link h4{
      position:absolute;
      left:50%;
      top:12px;
      transform:translateX(-50%);
      margin:0;
      text-align:center;
      font-size:1.5rem;
      font-weight:800;
      line-height:1.15;
      text-shadow:0 2px 12px rgba(0,0,0,.9);
      z-index:2;
      width:85%;
    }

    /* =========================================
       ПРАВИЛЬНАЯ АДАПТИВНОСТЬ (Media Queries)
       ========================================= */

    /* Для Планшетов (до 1024px) */
    @media (max-width: 1024px){
      .hero-grid { grid-template-columns: 1fr; }
      
      /* Перестраиваем списки квестов, карты и футер в 2 колонки вместо одной */
      .grid-3, .footer-grid, .maps { 
        grid-template-columns: repeat(2, 1fr); 
      }
      .album { grid-template-columns: repeat(3, 1fr); }
      
      /* Включаем кнопку-бургер и перестраиваем меню */
      .burger { display: flex; order: 2; }
      .phone { order: 1; }
      
      .menu { 
        display: none; /* Скрыто по умолчанию */
        width: 100%; 
        order: 3; 
        flex-direction: column; 
        background: rgba(11, 10, 15, 0.95);
        padding: 15px 0;
        border-radius: 12px;
        margin-top: 15px;
      }
      .menu.active { 
        display: flex; /* Показываем, если есть класс active */
      }
      .menu a { text-align: center; border-radius: 8px; }
    }

    /* Для Мобильных телефонов (до 768px) */
    @media (max-width: 768px){
      /* Тут уже карточки квестов и футер идут в 1 колонку, так как экран слишком узкий */
      .grid-3, .maps, .footer-grid { grid-template-columns: 1fr; }
    }

    /* Для совсем маленьких экранов (до 640px) */
    @media (max-width: 640px){
      .brand { width: calc(100% - 40px); } 
      .phone { width: 100%; text-align: center; order: 3; margin-top: 10px; }
      .burger { order: 2; margin-top: 5px; }
      .menu { order: 4; }
      
      .hero-main { padding: 22px; }
      .album { grid-template-columns: repeat(2, 1fr); }
      .links { grid-template-columns: 1fr; }
      .scroll-row { grid-auto-columns: 85%; }
    }