@font-face {
    font-family: 'Bungee';
    src: url('../fonts/BUNGEE-REGULAR.TTF') format('truetype');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Jura';
    src: url('../fonts/Jura-VariableFont_wght.ttf') format('truetype');
    font-weight: 300 700;
}

/* ── ТОКЕНЫ ── */
:root {
    --bg: #030200;
    --orange: #FF7F00;
    --white: #f2f2f2;
    --white-65: rgba(255, 255, 255, .65);
    --white-50: rgba(255, 255, 255, .5);
    --orange-25: rgba(255, 127, 0, .25);
    --font-main: 'Bungee', sans-serif;
    --font-body: 'Jura', sans-serif;
}

/* ── МОБИЛЬНЫЙ КОНТЕЙНЕР ── */
#vp-mob {
    position: fixed;
    inset: 0;
    background: var(--bg);
    overflow: hidden;
    z-index: 9999;
    font-family: var(--font-body);
    padding-bottom: env(safe-area-inset-bottom);
    box-sizing: border-box;
}

/* ── СЕКЦИИ ── */
.m-sec {
    position: absolute;
    inset: 0;
    background: var(--bg);
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
}

.m-sec.m-on {
    opacity: 1;
    visibility: visible;
}

.m-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    z-index: 100;
}

.m-logo {
    height: 32px;
    width: auto;
}

.m-burger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 32px;
    height: 24px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 2100;
    /* Выше меню */
}

.m-burger span {
    display: block;
    height: 4px;
    background: var(--white);
    border-radius: 1px;
    transition: transform .3s, opacity .3s;
}

/* Меню */
.m-mob-menu {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.m-mob-menu.m-open {
    opacity: 1;
    pointer-events: auto;
}

.m-mob-nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
}

.m-mob-nav a {
    font-family: var(--font-body);
    font-size: 24px;
    color: var(--white);
    text-decoration: none;
    letter-spacing: .05em;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
    transform: translateY(20px);
}

.m-mob-nav a.m-active {
    color: var(--orange) !important;
}

/* Каскадное появление при открытии */
.m-mob-menu.m-open .m-mob-nav a {
    opacity: 1;
    transform: translateY(0);
}

.m-mob-menu.m-open .m-mob-nav a:nth-child(1) {
    transition-delay: 0.1s;
}

.m-mob-menu.m-open .m-mob-nav a:nth-child(2) {
    transition-delay: 0.14s;
}

.m-mob-menu.m-open .m-mob-nav a:nth-child(3) {
    transition-delay: 0.18s;
}

.m-mob-menu.m-open .m-mob-nav a:nth-child(4) {
    transition-delay: 0.22s;
}

.m-mob-menu.m-open .m-mob-nav a:nth-child(5) {
    transition-delay: 0.26s;
}

.m-mob-menu.m-open .m-mob-nav a:nth-child(6) {
    transition-delay: 0.30s;
}

.m-mob-menu.m-open .m-mob-nav a:nth-child(7) {
    transition-delay: 0.34s;
}

#m-dnav {
    display: none !important;
}

.m-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .3);
    cursor: pointer;
    transition: background .3s, transform .3s;
}

.m-dot.m-on {
    background: var(--orange);
    transform: scale(1.4);
}

#m-dot-active {
    /* анимированный маркер — позиционируется через JS */
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--orange);
    transition: top .35s cubic-bezier(.7, 0, .3, 1);
    pointer-events: none;
}

/* S0 — Главная */
/* S0 — Главная */
.m-b1-content {
    position: absolute;
    bottom: 10px;
    left: 20px;
    right: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    z-index: 10;
}

.m-b1-title {
    font-family: var(--font-main);
    font-size: 56px;
    line-height: 1;
    color: var(--white);
    letter-spacing: .02em;
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}

.m-b1-sub-single {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 500;
    color: var(--white);
    letter-spacing: .08em;
    margin-bottom: 24px;
}

.m-b1-dots {
    display: flex;
    gap: 10px;
    margin-bottom: 24px;
}

.m-b1-dots span {
    width: 14px;
    height: 14px;
    background: #ff9100;
    border-radius: 50%;
    box-shadow: 0 0 20px rgba(255, 145, 0, 0.6), 0 0 40px rgba(255, 145, 0, 0.3);
}

.m-b1-desc {
    font-family: var(--font-body);
    font-size: 15.5px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--white-65);
    margin-bottom: 0;
}

.m-b1-desc-p2 {
    margin-top: 10px;
}

/* Фичи - слайдер */
.m-b1-feats {
    width: 100%;
    height: 100px;
    overflow: hidden;
    pointer-events: none;
    display: flex;
    align-items: center;
    margin: 5px 0;
}

.m-b1-feats-slider {
    position: relative;
    width: 100%;
    height: 30px;
}

.m-f {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    opacity: 0;
    transform: translateY(-40px);
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.6s ease;
    visibility: hidden;
    margin: 0 !important;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 400;
    color: var(--white-65);
    letter-spacing: .04em;
}

.m-f.m-active {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
    z-index: 2;
}

.m-f.m-exit {
    opacity: 0;
    transform: translateY(40px);
    visibility: visible;
    z-index: 1;
}

.m-f::before {
    content: '';
    display: inline-block;
    width: 13px;
    height: 15px;
    background: url('../assets/img/DZR_triangle.png') center/contain no-repeat;
    flex-shrink: 0;
}

/* CTA */
.m-b1-cta {
    position: relative;
    width: 100%;
    height: 35px;
    margin-bottom: calc(40px + env(safe-area-inset-bottom));
    z-index: 5;
    display: flex;
    justify-content: center;
}

.m-b1-cta a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 210px;
    height: 100%;
    border: none;
    background: var(--orange);
    border-radius: 6px;
    color: #f2f2f2;
    font-family: var(--font-body);
    font-size: 14px;
    letter-spacing: 1px;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 0 20px rgba(255, 127, 0, .6);
}

/* Модель */
.m-b1-model-zone {
    position: absolute;
    top: -120px;
    left: 0;
    right: 0;
    bottom: 120px;
    pointer-events: none;
    z-index: 5;
}

.m-b1-model-zone canvas {
    width: 100%;
    height: 100%;
}

.m-b1-model-fade-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 15dvh;
    background: linear-gradient(to bottom, #030200, transparent);
    z-index: 6;
    pointer-events: none;
}

.m-b1-model-fade-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 75dvh;
    background: linear-gradient(to top, #030200 0%, #030200 45%, transparent 100%);
    z-index: 6;
    pointer-events: none;
}

/* Тейп */
.m-b1-tape {
    display: none;
    position: absolute;
    bottom: 40px;
    left: 50%;
    margin-left: -1020px;
    /* Фиксированная ширина как на десктопе, центровка по margin */
    width: 2040px;
    height: 25px;
    pointer-events: none;
    z-index: 7;
}

.m-b1-tape img {
    width: 100%;
    height: 100%;
    object-fit: fill;
    display: block;
    transform: rotate(-5deg);
    /* Поворот на картинке, чтобы JS анимация контейнера его не затирала */
}

/* S1 — О нас / Карточки */
.m-b6-eyebrow {
    position: absolute;
    top: 80px;
    left: 0;
    right: 0;
    text-align: center;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .15em;
    color: var(--orange);
    text-transform: uppercase;
    z-index: 10;
}

.m-b6-title {
    position: absolute;
    top: 100px;
    left: 0;
    right: 0;
    text-align: center;
    font-family: var(--font-body);
    font-size: 36px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--white);
    z-index: 10;
}

.m-b6-title-line1 {
    font-size: 26px;
}

.m-b6-title-line2 {
    font-size: 36px;
}

.m-b6-text1 {
    position: absolute;
    top: 195px;
    left: 20px;
    right: 20px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 19px;
    font-weight: 300;
    color: var(--white-50);
    line-height: 1.6;
    z-index: 10;
}

/* Статы */
.m-b6-stats {
    position: absolute;
    top: 255px;
    left: 20px;
    right: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    z-index: 10;
}

.m-b6-stat {
    text-align: center;
}

.m-b6-stat-num {
    font-family: var(--font-main);
    font-size: 31px;
    color: var(--orange);
}

.m-b6-stat-lbl {
    font-family: var(--font-body);
    font-size: 9px;
    letter-spacing: .1em;
    color: var(--white-50);
    margin-top: 4px;
}

.m-b6-stat-div {
    width: 1px;
    height: 40px;
    background: rgba(255, 255, 255, .15);
}

/* Карточки-аккордеон */
.m-b6-cards {
    position: absolute;
    top: 360px;
    left: 20px;
    right: 20px;
    bottom: 40px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 10;
}

.m-b6-card {
    border: 1px solid rgba(255, 165, 0, .2);
    background: rgba(255, 255, 255, .03);
    border-radius: 6px;
    overflow: hidden;
}

.m-b6-card-header {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    cursor: pointer;
    position: relative;
    min-height: 44px;
    transition: background .3s, box-shadow .3s;
}

.m-b6-card.m-open .m-b6-card-header {
    background: var(--orange);
    box-shadow: 0 0 20px rgba(255, 127, 0, 0.6);
    border-radius: 6px;
}

.m-b6-card-header::before,
.m-b6-card-header::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    background: var(--orange);
    border-radius: 50%;
    box-shadow: 0 0 20px rgba(255, 145, 0, 0.7), 0 0 40px rgba(255, 145, 0, 0.3);
    flex-shrink: 0;
    transition: background .3s, box-shadow .3s, opacity .3s, visibility .3s;
}

.m-b6-card.m-open .m-b6-card-header::before,
.m-b6-card.m-open .m-b6-card-header::after {
    opacity: 0;
    visibility: hidden;
}

.m-b6-card-header::before {
    left: 12px;
}

.m-b6-card-header::after {
    right: 12px;
}

.m-b6-card-icon {
    display: none;
}

.m-b6-card-title {
    flex: none;
    font-size: 14px;
    color: var(--white-50);
    font-family: var(--font-body);
    font-weight: 500;
    text-align: center;
}

.m-b6-card.m-open .m-b6-card-title {
    color: var(--white);
}

.m-b6-card-arrow {
    display: none;
}

.m-b6-card.m-open .m-b6-card-arrow {
    transform: rotate(-135deg);
}

.m-b6-card-desc {
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s ease, padding .4s ease;
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--white-65);
    line-height: 1.6;
    padding: 0 16px;
}

.m-b6-card.m-open .m-b6-card-desc {
    max-height: 200px;
    padding: 16px 16px 14px;
}

/* Контейнер-обертка для квадратика (для общей анимации страниц) */
.m-b6-square-wrap {
    position: absolute;
    bottom: 140px;
    left: 47%;
    width: 20px;
    height: 20px;
    z-index: 2;
    pointer-events: none;
}

/* Сам квадратик (для анимации при открытии гармошки) */
.m-b6-square {
    width: 100%;
    height: 100%;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.6s ease 0.4s, visibility 0.6s ease 0.4s;
}

.m-b6-square.m-hidden {
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.2s ease 0s, visibility 0.2s ease 0s !important;
}

.m-b6-sq-inner {
    width: 100%;
    height: 100%;
    background: #ffffff;
    border-radius: 4px;
    position: relative;
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.3);
    animation: m-sq-float 4s ease-in-out infinite;
}

.m-b6-sq-inner::before,
.m-b6-sq-inner::after {
    display: none;
}

@keyframes m-sq-float {

    0%,
    100% {
        transform: translateY(0) rotate(0deg);
    }

    50% {
        transform: translateY(-15px) rotate(10deg);
    }
}

@keyframes m-sq-rot {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* S2 — Что такое DOZOR */
.m-b2-h {
    position: absolute;
    top: 80px;
    left: 20px;
    right: 20px;
    font-family: var(--font-body);
    font-size: 26px;
    font-weight: 700;
    color: var(--white);
    line-height: 1.2;
    text-align: center;
    z-index: 10;
}

.m-b2-d {
    position: absolute;
    top: 115px;
    /* Было 130px */
    left: 20px;
    right: 20px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--white-65);
    line-height: 1.7;
    text-align: center;
    z-index: 10;
}

/* Адаптивная зона для авто-распределения иконок и точек */
.m-b2-adaptive-zone {
    position: absolute;
    top: 135px;
    /* Подняли выше к тексту */
    bottom: 310px;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* Центрируем плотнее */
    align-items: center;
    gap: var(--m-b2-gap, 15px);
    /* Динамический зазор */
    z-index: 10;
    pointer-events: none;
}

.m-b2-icons {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--m-b2-gap, 15px);
    z-index: 10;
    pointer-events: auto;
    scale: var(--m-b2-scale, 1);
    height: auto;
    /* Возвращаем авто, будем играть гэпом и скейлом */
    transform-origin: center center;
}

.m-b2-icon-item {
    display: flex;
    align-items: center;
    gap: 44px;
    width: 320px;
    /* Чтобы все иконки были выровнены по одной линии */
    text-align: left;
}

.m-icc-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    flex-shrink: 0;
}

.m-icc-circle {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255, 145, 0, .4);
    border-radius: 50%;
    background: #ff9100;
    box-shadow: 0 0 20px rgba(255, 145, 0, 0.5), 0 0 40px rgba(255, 145, 0, 0.2);
}

.m-icc-img {
    display: block;
    position: relative;
    width: 74px;
    /* Чуть больше круга как на скришоте */
    height: 74px;
    object-fit: contain;
    z-index: 1;
}

.m-ilbl {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 400;
    color: var(--white-65);
    line-height: 1.4;
    text-align: left;
    /* Текст внутри блока прижат влево */
}

.m-b2-dots {
    position: relative;
    display: flex;
    justify-content: center;
    gap: 15px;
    z-index: 10;
}

.m-b2-dots-row {
    display: flex;
    gap: 15px;
}

.m-b2-dots span {
    width: 14px;
    height: 14px;
    background: #ff9100;
    border-radius: 50%;
    box-shadow: 0 0 20px rgba(255, 145, 0, 0.6), 0 0 40px rgba(255, 145, 0, 0.3);
}

/* Карусель в S2 */
.m-b2-carousel {
    position: absolute;
    top: auto;
    left: 0;
    right: 0;
    bottom: 30px;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
}

.m-b2-view {
    width: 260px;
    height: 280px;
    overflow: hidden;
    position: relative;
    border-radius: 12px;
}

.m-b2-track {
    position: relative;
    width: 100%;
    height: 100%;
}

.m-b2-slide {
    position: absolute;
    inset: 0;
    width: 260px;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s ease-in-out, visibility 0.8s;
}

.m-b2-slide.m-active {
    opacity: 1;
    visibility: visible;
}

.m-b2-card-body {
    width: 100%;
    height: 100%;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 12px;
    background: rgba(3, 2, 0, 0.5);
    overflow: hidden;
}

.m-b2-card-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.m-b2-card-grad {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom,
            rgba(3, 2, 0, 1) 0%,
            rgba(3, 2, 0, 0.6) 20%,
            transparent 45%,
            transparent 55%,
            rgba(3, 2, 0, 0.6) 80%,
            rgba(3, 2, 0, 1) 100%),
        linear-gradient(to right,
            rgba(3, 2, 0, 0.4) 0%,
            transparent 30%,
            transparent 70%,
            rgba(3, 2, 0, 0.4) 100%);
    z-index: 1;
}

.m-b2-card-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 24px 16px;
}

.m-b2-card-title {
    font-family: var(--font-body);
    /* Jura */
    font-size: 20px;
    font-weight: 700;
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
}

.m-b2-card-desc {
    text-align: center;
}

.m-b2-card-desc p {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.4;
    margin-bottom: 6px;
}

.m-b2-arr {
    width: 44px;
    height: 44px;
    position: absolute;
    z-index: 15;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.m-b2-arr-l {
    left: 5px;
}

.m-b2-arr-r {
    right: 5px;
}

.m-b2-arr::before {
    content: '';
    width: 14px;
    height: 14px;
    border-top: 2px solid var(--orange);
    border-right: 2px solid var(--orange);
}

.m-b2-arr-l::before {
    transform: rotate(-135deg);
}

.m-b2-arr-r::before {
    transform: rotate(45deg);
}

.m-b2-arr:active {
    opacity: 0.5;
}

/* S3 — Предстоящая игра */
.m-b3-title {
    position: absolute;
    top: 100px;
    left: 20px;
    right: 20px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 20px;
    color: var(--white);
    z-index: 10;
}

.m-b3-subtitle {
    position: absolute;
    top: 128px;
    left: 20px;
    right: 20px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 18px;
    color: var(--white);
    z-index: 11;
}

.m-b3-img-wrap {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    overflow: hidden;
    z-index: 5;
}

.m-b3-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0.7;
}

.m-b3-fade-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to bottom, var(--bg) 10%, transparent 100%);
    z-index: 2;
}

.m-b3-fade-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60%;
    background: linear-gradient(to top, var(--bg) 15%, transparent 100%);
    z-index: 2;
}

.m-b3-center-block {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: fit-content;
    z-index: 10;
}

.m-b3-game-title {
    font-family: var(--font-body);
    font-size: 48px;
    font-weight: 700;
    line-height: 1;
    color: var(--white);
    white-space: nowrap;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.8), 0 0 20px rgba(0, 0, 0, 0.5);
}

.m-b3-date {
    font-family: var(--font-body);
    font-size: 28px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--white);
    margin-top: 4px;
    text-align: right;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.8), 0 0 20px rgba(0, 0, 0, 0.5);
}

.m-b3-info {
    position: absolute;
    bottom: 135px;
    left: 20px;
    right: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    z-index: 10;
}

.m-b3-format,
.m-b3-teams {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 500;
    color: var(--white);
    text-align: center;
}

.m-b3-cta {
    position: absolute;
    bottom: calc(80px + env(safe-area-inset-bottom));
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    z-index: 10;
}

.m-b3-cta a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 210px;
    height: 35px;
    border: none;
    background: var(--orange);
    border-radius: 6px;
    color: #f2f2f2;
    font-family: var(--font-body);
    font-size: 14px;
    letter-spacing: 1px;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 0 20px rgba(255, 127, 0, .6);
    transition: transform 0.2s, box-shadow 0.2s;
}

.m-b3-cta a:active {
    transform: scale(0.95);
}

/* S4 — Карусель */
/* S4 — Наши приключения */
.m-adv-head {
    position: absolute;
    top: 70px;
    /* Немного выше */
    left: 20px;
    right: 20px;
    text-align: center;
    z-index: 10;
}

.m-adv-eyebrow {
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: .15em;
    color: var(--orange);
    text-transform: uppercase;
    margin-bottom: 6px;
}

.m-adv-title {
    font-family: var(--font-main);
    font-size: 34px;
    color: var(--white);
    margin-bottom: 2px;
    /* Прижал подзаголовок ближе */
}

.m-adv-subtitle {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--white);
    line-height: 1.4;
    opacity: 0.9;
}

.m-adv-slider {
    position: absolute;
    top: 190px;
    /* Приподнял карусель */
    left: 0;
    right: 0;
    height: 360px;
    /* Увеличено для прямоугольной формы */
    overflow: hidden;
    z-index: 10;
}

.m-adv-track {
    display: flex;
    height: 100%;
    align-items: center;
    padding: 0 calc(50% - 140px);
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.m-adv-slide {
    flex: 0 0 280px;
    height: 100%;
    margin-right: 15px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    overflow: hidden;
    background: #000;
}

.m-adv-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.m-adv-bottom {
    position: absolute;
    bottom: 30px;
    /* Чуть ниже к краю */
    left: 20px;
    right: 20px;
    text-align: center;
    z-index: 10;
}

.m-adv-b-title {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 500;
    color: var(--white);
    margin-bottom: 10px;
}

.m-adv-b-text {
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.5;
    color: var(--white-65);
    margin-bottom: 25px;
}

.m-adv-dots {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
}

.m-adv-dots span {
    width: 15px;
    height: 15px;
    background: var(--orange);
    border-radius: 50%;
    box-shadow: 0 0 15px rgba(255, 127, 0, 0.4);
}

.m-adv-social-title {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--white-65);
    margin-bottom: 20px;
}

.m-adv-socials {
    display: flex;
    justify-content: center;
    gap: 30px;
}

.m-adv-soc-link {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}

.m-adv-soc-link:active {
    transform: scale(0.9);
}

.m-adv-soc-link img {
    width: 48px;
    /* Уменьшено для баланса */
    height: 48px;
    object-fit: contain;
}

/* S5 — FAQ */
.m-faq-head {
    position: absolute;
    top: 80px;
    left: 20px;
    right: 20px;
    text-align: center;
    z-index: 100;
}

.m-faq-title {
    font-family: var(--font-main);
    font-size: 28px;
    letter-spacing: .06em;
    color: var(--white);
    margin-bottom: 6px;
    /* Прижал подзаголовок ближе */
}

.m-faq-subtitle {
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.5;
    color: var(--white-65);
    padding: 0 20px;
}

.m-faq-wrap {
    position: absolute;
    top: 190px;
    /* Спустил чуть ниже */
    left: 20px;
    right: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 100;
    /* Убрал max-height и overflow, чтобы ничего не проваливалось под маску */
}

.m-faq-item {
    border: 1px solid rgba(255, 145, 0, 0.2);
    border-radius: 8px;
    overflow: hidden;
    background: rgba(3, 2, 0, 0.4);
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.m-faq-q {
    padding: 14px 15px;
    text-align: center;
    /* Вопрос по центру */
    cursor: pointer;
    background: rgba(255, 255, 255, 0.03);
}

.m-faq-q span {
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--white-65);
}

.m-faq-item.m-open {
    border-color: var(--orange);
    background: rgba(3, 2, 0, 0.8);
}

.m-faq-item.m-open .m-faq-q {
    background: var(--orange);
}

.m-faq-item.m-open .m-faq-q span {
    color: var(--white);
    font-weight: 600;
}

.m-faq-a {
    max-height: 0;
    overflow: hidden;
    transition: all 0.4s ease;
    padding: 0 20px;
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--white-65);
    line-height: 1.6;
    text-align: left;
    /* Ответ от левого края */
}

.m-faq-item.m-open .m-faq-a {
    max-height: 300px;
    padding: 16px 20px;
}

.m-faq-footer {
    position: absolute;
    bottom: 50px;
    /* Приподнял блок с кнопкой */
    left: 20px;
    right: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 100;
}

.m-faq-f-title {
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--white);
    margin-bottom: 4px;
}

.m-faq-f-sub {
    font-family: var(--font-body);
    font-size: 12px;
    color: var(--white-50);
    margin-bottom: 18px;
}

.m-faq-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 280px;
    height: 46px;
    background: var(--orange);
    color: var(--white);
    text-decoration: none;
    font-family: var(--font-body);
    font-size: 15px;
    border-radius: 6px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(255, 145, 0, 0.3);
}

/* Квадратик для секции FAQ (Section 5 -> 6-я страница по меню) */
.m-faq-sq-wrap {
    position: absolute;
    left: 50%;
    margin-left: -12px;
    width: 24px;
    height: 24px;
    z-index: 50;
    display: block;
    /* Показываем на всех экранах выше 730px */
    top: calc(50vh + 190px);
    /* Универсальная формула для центра */
}

/* Формула 50vh + 190px идеально высчитывает центр для всех экранных размеров */

@media (max-height: 730px) {
    .m-faq-sq-wrap {
        display: none !important;
        /* На 730 и меньше скрываем/не трогаем, как и просили */
    }
}

/* S6 — Контакты */
.m-b7-model-zone {
    position: absolute;
    top: 410px;
    bottom: 250px;
    left: 0;
    right: 0;
    pointer-events: none;
    z-index: 5;
}

.m-b7-model-zone canvas {
    width: 100%;
    height: 100%;
}

.m-b7-title {
    position: absolute;
    top: 80px;
    left: 20px;
    right: 20px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 28px;
    font-weight: 700;
    color: var(--white);
    letter-spacing: 0.05em;
    z-index: 10;
}

/* Верхний бокс */
.m-b7-top-box {
    position: absolute;
    top: 134px;
    left: 20px;
    /* Уменьшил отступы по бокам, чтобы тексту было просторнее */
    right: 20px;
    min-height: 100px;
    /* Заменил фиксированную высоту на минимальную */
    padding: 12px 15px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    background: rgba(3, 2, 0, 0.4);
    text-align: center;
    z-index: 10;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: border-color 0.5s, box-shadow 0.5s;
}

.m-b7-top-box-main {
    transition: opacity 0.5s;
}

.m-b7-top-box-promo {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 700;
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s, visibility 0.5s;
    padding: 0 20px;
}

/* Анимация мигания: 8-секундный цикл, более плавное появление и долгое свечение */
.m-promo-active.m-b7-top-box {
    animation: m-promo-glow 8s infinite ease-in-out;
}

.m-promo-active .m-b7-top-box-main {
    animation: m-promo-text-out 8s infinite ease-in-out;
}

.m-promo-active .m-b7-top-box-promo {
    visibility: visible;
    animation: m-promo-text-in 8s infinite ease-in-out;
}

@keyframes m-promo-glow {

    0%,
    55%,
    100% {
        border-color: rgba(255, 255, 255, 0.15);
        box-shadow: none;
        background: rgba(3, 2, 0, 0.4);
    }

    65%,
    90% {
        border-color: var(--orange);
        box-shadow: 0 0 30px var(--orange);
        background: var(--orange);
    }
}

@keyframes m-promo-text-out {

    0%,
    55%,
    100% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }

    65%,
    90% {
        opacity: 0;
        transform: scale(0.95);
        filter: blur(4px);
    }
}

@keyframes m-promo-text-in {

    0%,
    55%,
    100% {
        opacity: 0;
        transform: scale(1.05);
        filter: blur(4px);
    }

    65%,
    90% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }
}

.m-b7-box-orange {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--orange);
    margin-bottom: 8px;
}

.m-b7-box-white {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--white);
    line-height: 1.4;
}

/* Сетка 2x2 */
.m-b7-grid {
    position: absolute;
    top: 255px;
    left: 20px;
    right: 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    z-index: 10;
}

/* Статичная разделительная линия по центру сетки */
.m-b7-grid::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 15px;
    bottom: 15px;
    width: 0.5px;
    background: rgba(255, 255, 255, 0.15);
    transform: translateX(-50%);
    z-index: 5;
    pointer-events: none;
}

.m-b7-grid-item {
    position: relative;
    padding: 20px 10px;
    text-align: center;
    border: none;
    transition: opacity 0.6s ease, transform 0.6s ease, visibility 0.6s;
}

.m-b7-gi-head {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--white);
    margin-bottom: 4px;
}

.m-b7-gi-text {
    font-family: var(--font-body);
    font-size: 12px;
    color: var(--white-65);
    line-height: 1.3;
}

/* Блок связи */
.m-b7-cta-title {
    position: absolute;
    top: auto;
    bottom: 235px;
    left: 20px;
    right: 20px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 24px;
    font-weight: 700;
    color: var(--white);
    z-index: 10;
}

.m-b7-organizer {
    position: absolute;
    top: auto;
    bottom: 218px;
    left: 20px;
    right: 20px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--orange);
    font-weight: 600;
    z-index: 10;
}

/* Сетка контактов */
.m-b7-contacts-grid {
    position: absolute;
    top: auto;
    bottom: 80px;
    left: 20px;
    right: 20px;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 15px 10px;
    z-index: 10;
}

.m-b7-c-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.m-b7-c-icon {
    width: 26px;
    height: 26px;
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.m-b7-c-icon img {
    width: 26px;
    height: 26px;
    object-fit: contain;
}

.m-b7-c-text {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 500;
    color: var(--white);
    white-space: nowrap;
}

.m-b7-c-text a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.m-b7-c-text a:active,
.m-b7-c-text a:hover {
    color: var(--orange);
}

/* Футер без оранжевой плашки */
.m-b7-footer-striped {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: none;
    padding-bottom: env(safe-area-inset-bottom);
    height: calc(70px + env(safe-area-inset-bottom));
    /* Фиксированная высота для центровки */
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.m-b7-stripe-img {
    position: absolute;
    top: 4px;
    left: 50%;
    margin-left: -1020px;
    /* Центровка как в S1 */
    width: 2040px;
    height: 25px;
    object-fit: fill;
    /* При такой ширине искажения не будет заметно, сохранится плотность */
    display: block;
    transform: rotate(-3deg);
}

.m-b7-copyright {
    font-family: var(--font-body);
    font-size: 11px;
    color: #fff;
    text-align: center;
    padding: 0 20px;
    margin-top: 20px;
    /* Еще ниже от полоски */
}

/* Пересекающиеся линии (тейпы) */
.m-b6-tape,
.m-b7-tape {
    position: absolute;
    bottom: 25px;
    left: 50%;
    margin-left: -1020px;
    width: 2040px;
    height: 100px;
    pointer-events: none;
    z-index: 100;
}

.m-b6-tape1,
.m-b6-tape2,
.m-b7-tape1,
.m-b7-tape2 {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 25px;
}

.m-b6-tape1 img,
.m-b6-tape2 img,
.m-b7-tape1 img,
.m-b7-tape2 img {
    width: 100%;
    height: 100%;
    object-fit: fill;
    display: block;
}

.m-b6-tape1,
.m-b7-tape1 {
    transform: translateY(-50%) rotate(7deg);
}

.m-b6-tape2,
.m-b7-tape2 {
    transform: translateY(-50%) rotate(-13deg) scaleX(-1);
}

/* --- Прогрессивная адаптация S3 (аккордеон) --- */

@media (max-height: 810px) {
    .m-b6-cards {
        top: 350px;
        gap: 8px;
        bottom: 15px;
    }

    /* Опустили с 340px */
    .m-b6-card-header {
        padding: 8px 14px;
        min-height: 40px;
    }

    .m-b6-card-desc {
        font-size: 12px;
    }

    .m-b6-card.m-open .m-b6-card-desc {
        padding: 12px 14px 10px;
    }
}

@media (max-height: 790px) {
    .m-b6-cards {
        top: 335px;
        gap: 6px;
    }

    /* Опустили с 320px */
    .m-b6-card-header {
        min-height: 38px;
    }

    .m-b6-card-title {
        font-size: 13px;
    }
}

@media (max-height: 739px) {
    .m-b6-cards {
        top: 305px;
        gap: 4px;
    }

    /* Опустили с 290px */
    .m-b6-card-header {
        padding: 6px 10px;
        min-height: 36px;
    }

    .m-b6-card-desc {
        font-size: 11px;
        line-height: 1.4;
    }

    .m-b6-card.m-open .m-b6-card-desc {
        padding: 10px;
    }
}

@media (max-height: 680px) {
    .m-b6-eyebrow {
        top: 60px !important;
        font-size: 12px !important;
    }

    .m-b6-title {
        top: 76px !important;
        font-size: 26px !important;
    }

    .m-b6-title-line2 {
        font-size: 26px !important;
    }

    .m-b6-text1 {
        top: 150px !important;
        font-size: 14px !important;
    }

    .m-b6-stats {
        top: 190px !important;
        transform: scale(0.9);
        transform-origin: top left;
    }

    .m-b6-cards {
        top: 265px !important;
        gap: 3px !important;
        bottom: 10px !important;
    }

    /* Опустили с 250px */
    .m-b6-card-title {
        font-size: 12px !important;
    }
}

@media (max-height: 640px) {

    /* Центрируем гармошку, отодвигая её от блока статистики */
    .m-b6-cards {
        top: 275px !important;
        bottom: 25px !important;
    }

    /* Скрываем анимацию квадратика только на 640 и ниже */
    .m-b6-square-wrap {
        display: none !important;
    }
}

/* Адаптация под маленькие экраны (высота < 760px) */
@media (max-height: 760px) {

    /* S1 — О нас */
    .m-b6-eyebrow {
        top: 68px;
    }

    .m-b6-title {
        top: 86px;
        font-size: 30px;
    }

    .m-b6-title-line2 {
        font-size: 30px;
    }

    .m-b6-text1 {
        top: 170px;
        font-size: 16px;
    }

    .m-b6-stats {
        top: 225px;
    }

    .m-b6-cards {
        top: 315px;
        gap: 5px;
        bottom: 20px;
    }

    /* Режим "2 карточки" и "4 карточки" в S6 - теперь управляется динамически */
}

/* Применяем уменьшение плашки только на самых маленьких экранах (скрыто так как перенесено выше) */

/* Вынесенные медиа-запросы для скейла ВСЕГО БЛОКА (иконки + текст) */
/* Используем свойство scale вместо transform, чтобы не мешать анимации прилета */
/* Иконки в S2 теперь центрируются и скейлятся через .m-b2-adaptive-zone и JS */


/* Скрытие 3D куба в S6 при высоте экрана 640px и ниже */
/* Карточки центрируются между верхней плашкой и "Связаться с нами" */
@media (max-height: 640px) {
    .m-b7-model-zone {
        display: none !important;
    }

    .m-b7-grid {
        top: calc(50vh - 50px) !important;
        /* Уточнил центровку для большей гармонии */
    }
}

/* Циклическая смена 2-х пар плашек в S6 на маленьких экранах */
@media (max-height: 740px) {
    .m-b7-grid {
        grid-template-rows: auto !important;
    }

    .m-b7-model-zone {
        top: 330px !important;
    }

    .m-b7-grid-item {
        grid-row: 1 !important;
    }

    .m-b7-grid-item:nth-child(1),
    .m-b7-grid-item:nth-child(3) {
        grid-column: 1 !important;
    }

    .m-b7-grid-item:nth-child(2),
    .m-b7-grid-item:nth-child(4) {
        grid-column: 2 !important;
    }

    .m-b7-grid-item.m-hidden {
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translateY(10px);
        pointer-events: none;
    }

    .m-b7-grid-item.m-active {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0);
        pointer-events: auto;
    }
}

/* Скрываем разделительную полосу в S6 только в диапазоне 641-675px */
@media (max-height: 675px) and (min-height: 641px) {
    .m-b7-grid::after {
        display: none !important;
    }
}

/* S4 (Наши приключения) - Точечная адаптация под разные устройства */
/* 786-805px (под 790, 800): Убираем только первый заголовок */
@media (max-height: 805px) and (min-height: 786px) {
    .m-adv-b-title {
        display: none !important;
    }
}

/* 670-785px (под 780, 756, 739, 730): Убираем 2 текста */
@media (max-height: 785px) and (min-height: 670px) {

    .m-adv-b-title,
    .m-adv-b-text {
        display: none !important;
    }

    .m-adv-bottom {
        position: absolute !important;
        top: 550px !important;
        bottom: 0 !important;
        height: auto !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        padding-top: 0 !important;
        padding-bottom: 20px !important;
    }

    .m-adv-dots {
        margin-top: auto !important;
        margin-bottom: 0 !important;
        position: relative !important;
        display: flex !important;
    }

    .m-adv-social-title {
        margin-top: auto !important;
        margin-bottom: 15px !important;
        position: relative !important;
    }
}

/* 669px и ниже (под 664 и меньше): Убираем все 4 элемента */
@media (max-height: 710px) {

    .m-b2-dots,
    .m-adv-dots {
        display: none !important;
    }
}

@media (max-height: 669px) {

    .m-adv-b-title,
    .m-adv-b-text,
    .m-adv-dots,
    .m-adv-social-title {
        display: none !important;
    }
}

/* S5 — FAQ */
.m-faq-head {
    top: 68px;
}

.m-faq-wrap {
    top: 160px;
    bottom: 120px;
    overflow-y: auto;
    max-height: none;
}

.m-faq-footer {
    bottom: 20px;
}

.m-faq-item.m-open .m-faq-a {
    max-height: 150px;
}

/* Адаптация FAQ под сверхмалую высоту (iPhone SE и др.) */
@media (max-height: 640px) {

    /* Скрываем конкретный вопрос */
    .m-faq-wrap .m-faq-item:nth-child(5) {
        display: none !important;
    }

    /* Уменьшаем отступ списка от текста сверху пропорционально (~5%) */
    .m-faq-wrap {
        top: 155px !important;
        gap: 11px !important;
    }

    /* Уменьшаем только сами плашки вопросов на ~5% */
    .m-faq-q {
        padding: 13px 15px !important;
    }

    .m-faq-q span {
        font-size: 13.3px !important;
    }
}

/* Логика "жертвенного" вопроса для диапазона 640-710px */
.m-faq-item {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    max-height: 68px;
    /* Ограничиваем базу, чтобы анимация сжатия начиналась сразу */
    will-change: max-height, opacity;
}

.m-faq-item.m-open {
    max-height: 350px !important;
    /* Даем место для ответа */
}

.m-faq-item.m-sacrificed {
    opacity: 0 !important;
    max-height: 0 !important;
    margin-top: -12px !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.m-faq-wrap.m-no-scroll {
    overflow: hidden !important;
}

.m-faq-a {
    will-change: max-height;
}

@media (max-height: 730px) {
    .m-b2-adaptive-zone {
        bottom: 280px !important;
        /* Центрируем относительно уменьшенной плашки (250px + 30px) */
    }

    .m-b2-dots {
        display: none !important;
    }

    .m-b2-carousel,
    .m-b2-view,
    .m-b2-slide {
        height: 250px !important;
    }
}

/* ── МОБИЛЬНАЯ ЗАГРУЗКА (ПЕРЕХОД ЧЕРЕЗ FADE) ── */
#start-overlay {
    transition: opacity 1200ms ease, visibility 1200ms ease;
    transform: none !important;
    /* Убираем десктопный сдвиг */
}

#start-overlay.gone {
    opacity: 0;
    visibility: hidden;
    transform: none !important;
}

#loader-canvas {
    background: transparent !important;
    /* Чтобы видеть подложку и сайт под кубиком */
}

/* Декоративный квадратик в 4 блоке (ms1) */
@media (max-height: 715px) and (min-height: 681px) {
    .m-b6-square-wrap {
        display: none !important;
    }
}

@media (max-height: 660px) {
    .m-b6-square-wrap {
        display: none !important;
    }
}