* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body,
html {
    width: 100%;
    height: 100%;
    overflow: hidden;
    font-family: 'EB Garamond', sans-serif;
}

.background {
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Левая панель */
.left-panel {
    position: absolute;
    top: 160px;
    left: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    z-index: 2;
}

.logo {
    width: 120px;
    height: auto;
}

.main-title {
    width: 519px;
    height: auto;
}

.btn-signup {
    width: 223px;
    height: 71px;
    background-image: url("../img/btn.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: transparent;
    border: none;
    cursor: pointer;
    font-family: 'EB Garamond', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: white;
    text-transform: uppercase;
    transition: transform 0.2s ease;
}

.btn-signup:hover {
    transform: scale(1.05);
}

.btn-signup:active {
    transform: scale(0.95);
}

/* Welcome Bonus прижат к низу */
.welcome-img {
    position: absolute;
    bottom: 0;
    left: 160px;
    width: 426px;
    height: auto;
    z-index: 2;
    pointer-events: none;
}

/* Область скролла */
.tower-scroll-area {
    position: absolute;
    top: 0;
    right: 0;
    bottom: -55px;
    width: 1185px;
    height: auto;
    overflow-y: scroll;
    overflow-x: hidden;
    z-index: 1;
    scrollbar-width: none;
    /* Firefox */
}

.tower-scroll-area::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari */
}

/* Внутренний блок с полной башней */
.tower-actual-size {
    position: relative;
    width: 1185px;
    height: 3071px;
    /* Рекомендуется задать реальную высоту башни */
}

/* Башня (фон) */
.tower-img {
    width: 100%;
    height: auto;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 1;
    display: block;
}

/* ================================================= */
/* ОСНОВНЫЕ СТИЛИ СОБЫТИЙ               */
/* ================================================= */

.tower-events {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 2;
}

/* ================================================= */
/* ОСНОВНОЕ ОФОРМЛЕНИЕ КАРТОЧКИ */
/* ================================================= */

.event-container {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.match-date {
    width: 188px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: url("../img/bgdata.png") no-repeat center center;
    background-size: 100% 100%;
    margin-bottom: 13px;
    color: white;
    font-size: 14px;
    font-weight: bold;
}

.match-card {
    background: none;
    padding: 30px;
    border-radius: 12px;
    color: white;
    text-align: center;
    font-weight: bold;
    position: relative;
    cursor: pointer;
}

.match-card::before {
    content: '';
    position: absolute;
    top: -10px;
    left: -4px;
    right: -4px;
    bottom: 35px;
    background: url("../img/hover.webp") no-repeat center center;
    background-size: 100% 100%;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
}

.match-card:hover::before {
    opacity: 1;
}

/* ================================================= */
/* ФЛЕКС-КОНТЕЙНЕР ДЛЯ КОЛОНОК */
/* ================================================= */

.match-content {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    /* ключ! растягивает все колонки одинаково */
    height: 100%;
}

/* ================================================= */
/* КОЛОНКА С ФЛАГОМ И ТЕКСТОМ */
/* ================================================= */

.team-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
}

.team-icon {
    width: 120px;
    height: auto;
    margin-bottom: 10px;
    /* отступ между флагом и названием */
}

.team-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    gap: 10px;
    justify-content: flex-end;
    /* растягивает название и кэф */
}

/* ================================================= */
/* ЦЕНТРАЛЬНАЯ КОЛОНКА (VS и X) */
/* ================================================= */

.center-column {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    flex: 1;
}

.center-top {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.center-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

/* ================================================= */
/* ТЕКСТЫ И КЭФЫ */
/* ================================================= */

.team-name {
    font-size: 20px;
    max-width: 160px;
    text-transform: uppercase;
    font-weight: 700;
    background: linear-gradient(180deg, #FEEB9A 0%, #D2A74A 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-top: 0;
    /* убери отрицательный маргин */
    line-height: 100%;
    word-break: break-word;
}

.vs-text {
    font-size: 20px;
    font-weight: 700;
}

.odd {
    font-size: 18px;
    font-weight: 500;
}

.center-column .odd {
    margin-top: 0;
    /* сброс auto для X по центру */
}

/* ================================================= */
/* ИНДИВИДУАЛЬНЫЕ ПОЗИЦИИ */
/* ================================================= */

.event-container.event-1 {
    top: 538px;
    right: 345px;
    width: 466px;
}

.event-1 .match-card {
    width: 460px;
    height: 330px;
}

.event-1 .match-content {
    margin-top: -30px;
}

.event-1 .center-column {
    height: 100%;
}

.event-container.event-2 {
    top: 925px;
    left: 380px;
    width: 450px;
}

.event-2 .match-card {
    width: 460px;
    height: 340px;
}

.event-2 .match-content {
    margin-top: -33px;
}

.event-2 .center-column {
    height: 100%;
}

.event-container.event-3 {
    top: 1315px;
    right: 356px;
    width: 450px;
}

.event-3 .match-card {
    width: 456px;
    height: 355px;
}

.event-3 .match-content {
    margin-top: -33px;
}

.event-3 .center-column {
    height: 100%;
}

.event-container.event-4 {
    top: 1714px;
    right: 356px;
    width: 450px;
}

.event-4 .match-card {
    width: 456px;
    height: 375px;
    margin-top: -8px;
}

.event-4 .match-content {
    margin-top: -30px;
}

.event-4 .center-column {
    height: 100%;
}

.event-container.event-5 {
    top: 2126px;
    right: 356px;
    width: 450px;
}

.event-5 .match-card {
    width: 466px;
    height: 350px;
    margin-top: 22px;
}

.event-5 .match-content {
    margin-top: -30px;
}

.event-5 .center-column {
    height: 100%;
}

/* ================================================= */
/* НОВЫЕ СТИЛИ ДЛЯ ВИДЕО ОГНЯ            */
/* ================================================= */

.fire-container {
    position: absolute;
    z-index: 3;
    pointer-events: none;
    /* Гарантирует, что видео не блокирует взаимодействие с элементами под ним */
    width: 160px; /* Установите размер контейнера, чтобы видео вписывалось */
    /* Установите размер контейнера, чтобы видео вписывалось */
}

.fire-container-0 {
    position: absolute;
    z-index: 3;
    pointer-events: none;
    /* Гарантирует, что видео не блокирует взаимодействие с элементами под ним */
    width: auto; /* Установите размер контейнера, чтобы видео вписывалось */
    /* Установите размер контейнера, чтобы видео вписывалось */
}

/* Позиционирование контейнеров огня */
.fire-pos-0 {
    top: 397px;
    left: 568px;
}

.fire-pos-1 {
    top: 675px;
    left: 223px;
}

.fire-pos-2 {
    top: 675px;
    right: 201px;
}

.fire-pos-3 {
    top: 1074px;
    left: 220px;
}

.fire-pos-4 {
    top: 1074px;
    right: 201px;
}

.fire-pos-5 {
    top: 1482px;
    left: 219px;
}

.fire-pos-6 {
    top: 1482px;
    right: 196px;
}

.fire-pos-7 {
    top: 1895px;
    left: 213px;
}

.fire-pos-8 {
    top: 1895px;
    right: 192px;
}

.fire-pos-9 {
    top: 2318px;
    left: 213px;
}

.fire-pos-10 {
    top: 2318px;
    right: 189px;
}

/* Стили для самого видео */
.fire-video {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.fire-video-0 {
    width: 65px;
    height: 70px;
    object-fit: contain;
}

/* ================================================= */
/* СТИЛИ ДЛЯ ПОПАПА                                  */
/* ================================================= */

/* Фон-оверлей, который затемняет всю страницу */
.popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.75);
    /* Полупрозрачный черный фон */
    z-index: 1000;
    /* Поверх всех остальных элементов */

    /* Используем Flexbox для идеального центрирования окна */
    display: flex;
    align-items: center;
    justify-content: center;

    /* По умолчанию попап скрыт */
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease-in-out;
}

/* Класс для отображения попапа */
.popup-overlay.active {
    opacity: 1;
    pointer-events: auto;
}

/* Само окно попапа */
.popup-window {
    position: relative;

    /* --- АДАПТИВНЫЙ ФОН С РАСТЯГИВАНИЕМ --- */
    /* Это мощная техника для создания фонов, которые могут растягиваться по высоте, 
     сохраняя при этом дизайн верхнего и нижнего краев. */
    border-style: solid;
    border-width: 120px 60px 100px 60px;
    /* Подберите эти значения под ваш фон */
    border-image-source: url("../img/popupbg.webp");
    /* Путь к вашему фону */
    border-image-slice: 120 60 100 60 fill;
    /* Как "нарезать" картинку на 9 частей */
    border-image-repeat: stretch;
    /* Центральная часть будет растягиваться */

    width: 90%;
    /* На мобильных устройствах ширина 90% */
    max-width: 360px;
    /* Максимальная ширина на десктопах */
    color: white;

    /* Анимация появления */
    transform: scale(0.9);
    transition: transform 0.3s ease-in-out;
}

.popup-overlay.active .popup-window {
    transform: scale(1);
}

/* Кнопка закрытия (крестик) */
.popup-close-btn {
    position: absolute;
    top: -120px;
    /* Располагаем над окном, можно настроить */
    right: -120px;
    width: 48px;
    height: 48px;
    background-image: url("../img/close.webp");
    background-size: contain;
    background-repeat: no-repeat;
    background-color: transparent;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.popup-close-btn:hover {
    transform: scale(1.0) rotate(90deg);
}

/* Стили для контента внутри (для примера) */
.popup-content {
    padding: 20px;
    /* Внутренние отступы для вашего контента */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

#mist-container {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 300px;
    /* Высота области, где будет виден туман */
    pointer-events: none;
    /* Клики будут проходить "сквозь" туман */
    z-index: 5;
    /* Слой тумана (выше фона, но ниже кнопок и попапов) */
    overflow: hidden;
}

.mist-particle {
    position: absolute;
    bottom: -150px;
    /* Начинает движение из-за пределов экрана */
    border-radius: 50%;
    /* Главный секрет - мягкий градиент вместо сплошного цвета */
    background: radial-gradient(circle, rgba(180, 190, 200, 0.1) 0%, rgba(180, 190, 200, 0) 70%);
    filter: blur(30px);
    /* Сильное размытие для создания эффекта дымки */

    /* Анимация будет управляться через JS */
    animation-name: riseAndFade;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

/* Ключевые кадры анимации: подъем и растворение */
@keyframes riseAndFade {
    0% {
        transform: translateY(0);
        opacity: 0;
    }
    20%,
    50% {
        /* Появление и удержание */
        opacity: 1;
    }
    100% {
        /* Подъем и растворение в конце */
        transform: translateY(-250px);
        opacity: 0;
    }
}

@media (max-width: 1620px) {
    .left-panel {
        left: 60px;
    }
    .tower-scroll-area {
        right: -120px;
    }
    .welcome-img {
        left: 100px;

    }
}

@media (max-width: 1440px) {
    .tower-scroll-area {
        right: -90px;
        width: 800px;
    }
    .tower-actual-size {
        width: 800px;
        height: auto;
    }

    .event-container.event-1 {
        top: 365px;
        right: 160px;
        width: 466px;
    }

    .match-date {
        width: 160px;
        height: 36px;
    }

    .event-1 .match-card {
        width: 308px;
        height: 225px;
    }

    .team-name {
        font-size: 13px;
        max-width: 113px;
    }

    .vs-text {
        font-size: 15px;
        font-weight: 700;
    }

    .odd {
        font-size: 14px;
        font-weight: 500;
    }

    .team-icon {
        width: 70px;
        height: auto;
    }

    .event-1 .center-column {
        height: 170px;
    }
    .event-1 .match-content {
        margin-top: -38px;
    }
    .match-card::before {
        top: -15px;
        left: 0;
        bottom: 45px;
    }

    .event-container.event-2 {
        top: 625px;
        left: 174px;
        width: 466px;
    }
    .event-2 .center-column {
        height: 179px;
    }
    .event-2 .match-content {
        margin-top: -42px;
    }
    .event-2 .match-card {
        width: 308px;
        height: 240px;
    }
    .event-2 .team-name {
        font-size: 16px;
        margin-top: 0;
    }

    .event-container.event-3 {
        top: 888px;
        left: 174px;
        width: 466px;
    }
    .event-3 .match-content {
        margin-top: -42px;
    }
    .event-3 .match-card {
        width: 308px;
        height: 252px;
    }
    .event-3 .team-name {
        font-size: 16px;
        margin-top: 0;
    }

    .event-container.event-4 {
        top: 1156px;
        left: 174px;
        width: 466px;
    }
    .event-4 .center-column {
        height: 179px;
    }
    .event-4 .match-content {
        margin-top: -42px;
    }
    .event-4 .match-card {
        width: 308px;
        height: 240px;
        margin-top: 24px;
    }
    .event-4 .team-name {
        font-size: 16px;
        margin-top: 0;
    }

    .event-container.event-5 {
        top: 1435px;
        left: 174px;
        width: 466px;
    }

    .event-5 .match-content {
        margin-top: -42px;
    }
    .event-5 .match-card {
        width: 308px;
        height: 245px;
        margin-top: 18px;
    }
    .event-5 .team-name {
        font-size: 16px;
        margin-top: 0;
    }

    .fire-pos-0 {
        top: 249px;
        left: 372px;
    }

    .fire-container {
        position: absolute;
        z-index: 3;
        pointer-events: none;
        width: 130px;
    }

    .fire-pos-1 {
        top: 437px;
        left: 140px;
    }
    .fire-pos-2 {
        top: 437px;
        right: 125px;
    }

    .fire-pos-3 {
        top: 706px;
        left: 139px;
    }

    .fire-pos-4 {
        top: 706px;
        right: 124px;
    }

    .fire-pos-5 {
        top: 981px;
        left: 139px;
    }

    .fire-pos-6 {
        top: 981px;
        right: 121px;
    }

    .fire-pos-7 {
        top: 1260px;
        left: 135px;
    }

    .fire-pos-8 {
        top: 1260px;
        right: 119px;
    }

    .fire-pos-9 {
        top: 1545px;
        left: 134px;
    }

    .fire-pos-10 {
        top: 1545px;
        right: 117px;
    }

    .left-panel {
        left: 20px;
        top: 60px;
    }

    .logo {
        width: 100px;
        height: auto;
    }

    .main-title {
        width: 430px;
        height: auto;
    }

    .welcome-img {
        left: 30px;
        width: 370px;
    }
}

@media (max-width: 1024px) {

    #mist-container {
        display: none;
    }

    .tower-scroll-area {
        /* 1. Контейнер делаем резиновым и превращаем во flex-контейнер */
        display: flex;
        justify-content: center;
        /* ЭТА СТРОКА ЦЕНТРИРУЕТ БАШНЮ ВНУТРИ */
        width: 100%;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        transform: none;
        position: absolute;
        overflow-y: scroll;
        overflow-x: hidden;
        /* Важно, чтобы скрыть горизонтальный скролл */
    }

    body,
    html {
        min-height: 1024px;
    }

    .left-panel {
        left: 20px;
        top: 60px;
        left: 50%;
        transform: translateX(-50%);
        width: 768px;
    }

    .welcome-img {
        left: 30px;
        width: 370px;
        left: 50%;
        transform: translateX(-50%);
        width: 288px;
    }

    .tower-actual-size {
        margin-top: 150px;
    }

    .overlay-bottom,
    .overlay-top {
        position: fixed;
        left: 0;
        width: 100%;
        z-index: 2;
        pointer-events: none;
    }

    .overlay-top {
        top: 0;
        height: 520px;
        background: linear-gradient(180deg, #0C151F 0%, rgba(12, 21, 31, 0.8) 52.4%, rgba(12, 21, 31, 0) 100%);
    }

    .overlay-bottom {
        bottom: 0;
        height: 340px;
        background: linear-gradient(0deg, #0C151F 0%, rgba(12, 21, 31, 0.8) 52.4%, rgba(12, 21, 31, 0) 100%);
    }

    .logo {
        width: 73px;
        height: auto;
    }

    .main-title {
        width: 400px;
        height: auto;
    }

    .btn-signup {
        width: 172px;
        height: 52px;
        font-size: 14px;
    }
}

@media (max-width: 768px) {

    body,
    html {
        min-height: 100vh;
        overflow-x: hidden !important;
        /* Используйте vh для высоты на весь экран */
    }

    .match-date {
        width: 105px;
        height: 25px;
        font-size: 10px;
    }

    .vs-text {
        font-size: 12px;
        font-weight: 700;
    }
    .odd {
        font-size: 12px;
        font-weight: 500;
    }

    .team-icon {
        width: 50px;
        height: auto;
        margin-bottom: 0;
    }
    .team-name {
        font-size: 12px;
        max-width: 80px;
        text-transform: uppercase;
        font-weight: 700;
        background: linear-gradient(180deg, #FEEB9A 0%, #D2A74A 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        margin-top: 0;
        line-height: 1.2;

        display: -webkit-box;
        /* нужно для clamp */
        -webkit-line-clamp: 2;
        /* максимум 2 строки */
        -webkit-box-orient: vertical;
        /* вертикальный блок */
        overflow: hidden;
        /* скрыть лишнее */
        text-align: center;
    }

    .event-container.event-1 {
        top: 253px;
        right: 174px;
        width: 200px;
    }

    .event-1 .match-card {
        width: 208px;
        height: 180px;
        margin-top: -12px;
        padding: 20px 20px 34px;
    }

    .event-1 .center-column {
        height: auto;
        gap: 6px;
    }

    .event-1 .match-content {
        margin-top: -18px;
    }

    .event-container.event-2 {
        top: 434px;
        left: 181px;
        width: 200px;
    }

    .event-2 .match-content {
        margin-top: -31px;
    }

    .event-2 .match-card {
        width: 212px;
        height: 165px;
        padding: 20px;
    }

    .event-2 .team-name {
        font-size: 12px;
        margin-top: 0;
        min-width: 54px;
    }

    .event-2 .center-column {
        height: 127px;
    }

    .event-2 .match-content {
        margin-top: -32px;
    }

    .event-container.event-3 {
        top: 618px;
        left: 181px;
        width: 200px;
    }

    .event-3 .match-content {
        margin-top: -31px;
    }

    .event-3 .match-card {
        width: 212px;
        height: 175px;
        padding: 20px;
    }

    .event-3 .team-name {
        font-size: 12px;
        margin-top: 0;
    }

    .event-3 .center-column {
        height: auto;
    }

    .event-3 .match-content {
        margin-top: -33px;
    }

    .event-container.event-4 {
        top: 804px;
        left: 181px;
        width: 200px;
    }

    .event-4 .match-content {
        margin-top: -40px;
    }

    .event-4 .match-card {
        width: 212px;
        height: 170px;
        padding: 20px;
    }

    .event-4 .team-name {
        font-size: 12px;
        margin-top: 0;
    }

    .event-4 .center-column {
        height: auto;
    }

    .event-4 .match-content {
        margin-top: -50px;
    }

    .match-card::before {
        top: 0;
        left: 0;
        display: none;
    }

    .event-container.event-5 {
        top: 998px;
        left: 181px;
        width: 200px;
    }

    .event-5 .match-content {
        margin-top: -31px;
    }

    .event-5 .match-card {
        width: 212px;
        height: 170px;
        padding: 20px;
        margin-top: 30px;
    }

    .event-5 .team-name {
        font-size: 12px;
        margin-top: 0;
    }

    .event-5 .center-column {
        height: auto;
    }

    .event-5 .match-content {
        margin-top: -50px;
    }

    .overlay-top {
        height: 372px;
    }

    .fire-video-0 {
        width: 46px;
        height: 70px;
        object-fit: contain;
    }

    .fire-pos-0 {
        top: 162px;
        left: 260px;
    }

    .fire-pos-1 {
        top: 321px;
        left: 107px;
    }

    .fire-pos-2 {
        top: 321px;
        right: 98px;
    }

    .fire-pos-3 {
        top: 508px;
        left: 106px;
    }

    .fire-pos-4 {
        top: 508px;
        right: 96px;
    }

    .fire-pos-5 {
        top: 700px;
        left: 105px;
    }

    .fire-pos-6 {
        top: 700px;
        right: 95px;
    }

    .fire-pos-7 {
        top: 893px;
        left: 104px;
    }

    .fire-pos-8 {
        top: 893px;
        right: 93px;
    }

    .fire-pos-9 {
        top: 1091px;
        left: 103px;
    }

    .fire-pos-10 {
        top: 1091px;
        right: 92px;
    }

    .fire-container {
        width: 70px;
    }

    .left-panel {
        width: auto;
    }

    .main-title {
        width: 350px;
        height: auto;
    }

.tower-outer-wrapper {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  overflow-x: hidden;
  overflow-y: hidden;
  display: flex;
  justify-content: center;
}
.tower-scroll-area {
  display: flex;
  justify-content: center;
  width: 100%;
  height: 100%;
  overflow-y: scroll;
  overflow-x: hidden;
  touch-action: pan-y;
  overscroll-behavior-x: none;
}

.tower-actual-size {
  width: 556px; /* твоя фикс. ширина */
  flex-shrink: 0;
  margin-top: 150px; /* если надо */
}

.tower-img {
  width: 100%;
  height: auto;
}

    .popup-close-btn {
        position: absolute;
        top: -180px;
        right: -60px;
        width: 48px;
        height: 48px;
        background-image: url("../img/close.webp");
        background-size: contain;
        background-repeat: no-repeat;
        background-color: transparent;
        border: none;
        cursor: pointer;
        transition: transform 0.2s ease;
    }

}


html.is-iphone-mobile,
html.is-iphone-mobile body {
  min-height: 1600px;
  overflow-y: scroll;
  overflow-x: hidden;
}

html.is-iphone-mobile .welcome-img {
  position: fixed;   /* фиксируем */
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 288px;
  height: auto;
  z-index: 2;
  pointer-events: none;
}

html.is-iphone-mobile .tower-scroll-area {
  display: flex;
  justify-content: center;
  width: 100%;
  height: 1550px;
  overflow-y: hidden;
  position: relative;
}

html.is-iphone-mobile .tower-actual-size {
  width: 556px; /* твоя фикс. ширина */
  height: auto; /* критично! без этого не будет высоты */
  position: relative;
}

html.is-iphone-mobile .tower-img {
  display: block;
  width: 100%;
  height: auto;
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none; /* 🔑 вот этот ключ */
}

html.is-iphone-mobile .left-panel {
  position: fixed;   /* фиксируем */
  top: 20px;         /* или сколько нужно отступ сверху */
  left: 50%;
  transform: translateX(-50%);        /* или 50% + transform, если нужно центрировать */
  z-index: 10;       /* выше башни и других фонов */
}