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

@font-face {
    font-family: 'ND Gambit';
    src: url(fonts/NeueDeutsche-ND_Gambit_Regular.otf);
}

@font-face {
    font-family: 'a_LCDNovaObl';
    src: url(fonts/a_lcdnovaobl_[allfont.ru].ttf);
}

@font-face {
    font-family: 'Ubuntu';
    src: url(fonts/Ubuntu-Regular.ttf);
}

html{
    scroll-behavior: smooth;
}

html, body {
    overflow-x: hidden;
}


body{
    font-family: 'Ubuntu';
    height: 100%;
}

/* big photo */

.form{
    width: 100%;
    height: 100vh;
    background-color: rgba(115, 112, 112, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    display: none;
    position: fixed;
    visibility: visible;
    z-index: 99;
}

.form_big_img{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
}

.left-step{
    position: absolute;
    left: 10px;
    top: 40%;
    color: white;
    font-size: 50px;
    text-shadow: 0 0 5px white, 0 0 10px white, 0 0 20px white;
    cursor: pointer;
}

.right-step{
    position: absolute;
    right: 10px;
    top: 40%;
    color: white;
    font-size: 50px;
    text-shadow: 0 0 5px white, 0 0 10px white, 0 0 20px white;
    cursor: pointer;
}

.name-big-photo{
    position: absolute;
    left: 15px;
    bottom: 15%;
    color: white;
    text-shadow: 0 0 5px white, 0 0 10px white, 0 0 20px white;
}

.big_img{
    width: auto;
    max-height: 85vh;
}

.close_button{
    font-size: 5vh;
    border: 2px solid black;
    border-radius: 50%;
    background-color: #b75cd3;
    width: 9vh;
    height: 9vh;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 20px;
    cursor: pointer;
}

/* preloader */

.container-preload{
    position: fixed;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    font-family: Arial, Helvetica, sans-serif;
    background-color: aliceblue;
    transition: 0.1s all;
    opacity: 1;
    visibility: visible;
    z-index: 99;
}

.container-preload.done{
    opacity: 0;
    visibility: hidden;
}

.logo{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 400px;
    height: 400px;
    background-color: aliceblue;
    position: relative;
}

.line-preload{
    width: 10px;
    height: 400px;
    background-color: black;
    position: absolute;
    left: 120px;
    z-index: 0;
    opacity: 0;
    transition-delay: 2s;
    animation: wow 0.7s ease-out 1 normal running forwards;
}

.triangle{
    width: 0;
    height: 0;
    border-bottom: 300px solid #b75cd3;
    border-right: 300px solid transparent;
    z-index: 3;
    opacity: 0;
    transition-delay: 2s;
    animation: wow 0.7s ease-out 1 normal running forwards;
}

.square{
    display: inline-block;
    width: 180px;
    height: 180px;
    background-color: #6b2d80;
    position: absolute;
    right: 50px;
    bottom: 100px;
    z-index: 3;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    opacity: 0;
    transition-delay: 2s;
    animation: wow 0.7s ease-out 1 normal running forwards;
}

.square .teatre span{
    display: inline-block;
    color: black;
    font-size: 30px;
    opacity: 1;
}

.table{
    color: white;
    background-color: black;
    height: 25px;
    width: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: -20px;
    margin-top: 10px;
}

.top{
    transform: translateY(-1800px);
    animation: t 2.7s linear 1 normal running 1s forwards;
}

.right{
    transform: translateX(-1800px);
    animation: right 0.3s linear forwards;
    animation-delay: calc(0.5s*var(--i));
}

.left{
    transform: translateX(1800px);
    animation: left 0.3s linear forwards;
    animation-delay: calc(0.5s*var(--i));
}

.loader{
    font-family: 'a_LCDNovaObl';
    font-weight: 700;
    font-size: 1.3em;
    margin-bottom: 1em;
}

@keyframes wow{
    0%{
        opacity: 0;
    }
    100%{
        opacity: 1;
    }
}

@keyframes t{
    0%{
        color: black;
        opacity: 1;
        transform: translateY(-1800px);
    }
    100%{
        color: white;
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes right{
    0%{
        color: black;
        opacity: 1;
        transform: translateX(-1800px);
    }
    100%{
        color: white;
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes left{
    0%{
        color: black;
        opacity: 1;
        transform: translateX(1800px);
    }
    100%{
        color: white;
        opacity: 1;
        transform: translateX(0);
    }
}

/* button up */

.upward {
    color: #b75cd3;
    background-color: black;
    position: fixed;
    bottom: 700px;
    right: 40px;
    width: 50px;
    height: 50px;
    border-radius: 50px;
    z-index: 80;
    border: 1px ridge white;
    cursor: pointer;
    visibility: hidden;
    opacity: 0;
    transition: 1s;
}

.upward.active {
    bottom: 40px;
    visibility: visible;
    opacity: 1;
}

.upward-p {
    text-align: center;
    margin: 10px;
    font-size: 150%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* content */

.menu{
    display: flex;
    margin-top: 1vh;
    height: 8vh;
    border-top: 3px solid black;
    border-bottom: 3px solid black;
}

.name{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 35vw;
    border-right: 3px solid black;
    font-family: 'ND Gambit';
    letter-spacing: 3px;
    font-size: 4vh;
    font-weight: bold;
}

.buttons{
    width: 90%;
    display: flex;
    align-items: center;
    justify-content: space-evenly;
}

.button,
.button:active{
    text-decoration: none;
    background-color: black;
    color: white;
    border-radius: 15px;
    padding: 0.5% 2%;
    transition: 0.5s;
    cursor: pointer;
}

.button:hover{
    background-color: #b75cd3;
    color: black;
}

.container-top{
    width: 100%;
    height: 65vh;
    display: flex;
}

.container-top-left{
    width: 60vw;
    background-color: #b75cd3;
    border-top-right-radius: 200px;
    margin-top: 1vh;
    padding: 1vh 3vh;
    color: white;
    font-size: 7.5vh;
    font-weight: 600;
    text-transform: uppercase;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.container-top-left p{
    letter-spacing: 5px;
}

.container-top-right{
    background-image: url(image/top.jpeg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
    width: 40vw; 
    margin-top: 1vh;
    margin-left: 3vh;
    padding: 1vh;
}

.container-line{
    margin-top: 1vh;
    margin-left: -150vh;
    margin-right: -150vh;
}

.line{
    width: 100%;
    height: 8vh;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    border-top: 3px solid black;
    border-bottom: 3px solid black;
    font-weight: 700;
    font-size: 5vh;
}

.black-block{
    width: 100%;
    height: 110vh;
    background-color: black;
    margin-top: 1vh;
    border-bottom-right-radius: 130px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
}

.black_fon{
    position: absolute;
    width: 50%;
}

.ts{
    position: relative;
    color: white;
    font-size: 5vh;
    font-weight: 700;
    margin-left: 2vh;
    padding-top: 2vh;
    list-style-type: none;
}

.ts::before{
    content: '';
    display: inline-block;
    background-color: #b75cd3;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin: 0 2vh 1vh 0;
}

.about-us{
    color: white;
    font-size: 3vh;
    margin-left: 50%;
    margin-top: 3vh;
}

.time{
    color: white;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    margin-top:5vh;
    margin-bottom: 2vh;
    z-index: 2;
}

.time-block-year{
    display: block;
    width: 30%;
}

.check{
    width: 0;
    height: 0;
}

.year{
    font-family: 'ND Gambit';
    cursor: pointer;
    font-size: 10vmin;
    margin: 0 10px;
    opacity: 0.3;
    transform: all .5s;
}

.inform{
    font-size: 2.5vmin;
    border-top: 5px solid white;
    opacity: 0.3;
    transform: all .5s;
}

.inform p{
    margin: 0 10px;
}

.check:checked ~ .year{
    opacity: 1;
}

.check:checked ~ .inform{
    opacity: 1;
}

.container-perfomanses{
    width: 80%;
    height: 30%;
    background-color: black;
    color: white;
    display: none; /* flex */
    align-items: flex-end;
    justify-content: center;
}

.perf{
    width: 37vmin; /*24*/
    height: 8vmin; /*5*/
    border-radius: 30px;
    display: flex;
    padding: 0 0.2%;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: calc( (100vw - 480px)/(1280 - 480) * (14 - 8) + 8px);
    transition: all 0.5s;
}

.perf:hover{
    box-shadow: 0 0 30px white;
}

.perf_a:active,
.perf_a:focus,
.perf_a{
    text-decoration: none;
    color: white;
}

.gaido{
    background-color: yellow;
    color: black;
    transform: translate(120%);
}

.chasy{
    background-color: blue;
    transform-origin: right;
    transform: translate(90%, 10%) rotate(17deg); /*-30*/
}

.strannik{
    background-color: #b75cd3;
    transform-origin: right;
    transform: translate(30%, -210%) rotate(-6deg); /*-90*/
}

.taina{
    border: 1px solid white;
    transform-origin: right;
    transform: translate(-20%, 10%) rotate(13deg); /*-140*/
}

.vedma{
    border: 1px solid white;
    transform-origin: right;
    transform: translate(-75%, -215%) rotate(-10deg); /*-195*/
}

.ded{
    background-color: blue;
    transform-origin: right;
    transform: translate(-130%, 10%) rotate(12.5deg); /*-250*/
}

.white-block{
    width: 100%;
    height: 90vh;
    margin-top: 1vh;
    border-bottom: 2px solid black;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.white-block p{
    font-size: 5vh;
    font-weight: 700;
    z-index: 70;
    text-align: left;
    position: absolute;
    top: 8vw;
    left: 8vh;
}

.smile{
    width: 50vw;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 60;
}

.poligon{
    width: 50vw;
    height: 75%;
    background-color: black;
    position: absolute;
    right: 0;
    bottom: 0;
    transform: skewX(10deg) translateX(-5%);
    z-index: 50;
}

.figur{
    position: absolute;
    top: 10%;
    left: 10%;
    max-width: 70%;
    clip-path: polygon(49% 0, 99% 26%, 100% 100%, 50% 83%, 0 100%, 1% 26%);
    transform: skewX(-20deg);
}

/* photo */

.portfolio{
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.line-photo{
    display: flex;
    justify-content: center;
    align-items: center;
}

.block-photo{
    text-align: center;
    font-size: 3vh;
}

.block-photo img{
    width: 20vw;
    border-radius: 20px;
    padding: 1vh;
    cursor: pointer;
}

.we{
    color: black;
}

/* accordeon */

.accord{
    width: 100%;
    position: relative;
    display: flex;
    flex: 0 1 100%;
    flex-direction: column;
}

.faq-input{
    width: 0;
    height: 0;
}

.faq-title{
    margin: 20px auto 5px auto;
    display: block;
    width: 90%;
    border-top: 2px solid black;
    padding: 1vh 0 0 1vh;
    -webkit-transition-duration: 0.5s;
    -moz-transition-duration: 0.5s;
    -o-transition-duration: 0.5s;
    transition-duration: 0.5s;
    font-size: 3vh;
    font-weight: 700;
    cursor: pointer;
}

.faq-title::after{
    content: '\21D2';
    position: absolute;
    right: 7%;
}

.faq-text{
    display: none;
    margin: 20px auto;
    width: 90%;
    padding: 10px 5px;
    font-weight: 500;
    font-size: 2.5vh;
    -webkit-transition-duration: 0.5s;
    -moz-transition-duration: 0.5s;
    -o-transition-duration: 0.5s;
    transition-duration: 0.5s;
}

.faq-text p {
    margin: 1.5vh 1vh 1.5vh 1vh;
    letter-spacing: 0.05em;
    text-indent: 2em;
}

.faq-text p a {
    text-decoration: none;
    cursor: pointer;
    color: #b75cd3;
}

.faq-text p span{
    font-weight: 900;
}

.faq-input:checked ~ .faq-text{
    display: block;
}

.faq-input:checked ~ .faq-title{
    color: #b75cd3;
}

.faq-input:checked ~ .faq-title::after{
    content: '\21D3';
}

.big-button,
.big-button:active{
    width: 80%;
    height: 8vh;
    border-radius: 10vh;
    background-color: #b75cd3;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    margin: 2vh auto;
    font-size: 3vh;
    text-decoration: none;
    cursor: pointer;
    -webkit-transition-duration: 0.5s;
    -moz-transition-duration: 0.5s;
    -o-transition-duration: 0.5s;
    transition-duration: 0.5s;
}

.big-button:hover{
    color: black;
}

.container-bottom{
    width: 100%;
    height: 65vh;
    display: flex;
}

.container-bottom-left h2{
    font-size: 8vh;
    font-weight: 600;
    margin-bottom: 20px;
    letter-spacing: 3px;
}

.container-bottom-left p{
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 5px;
}

.container-bottom-left .tel{
    color: black;
    font-weight: 600;
    margin-left: 20px;
    text-transform: lowercase;
}

.container-bottom-left{
    width: 60vw;
    background-color: #b75cd3;
    border-top-right-radius: 200px;
    margin-top: 1vh;
    padding: 1vh 2vh;
    color: white;
    font-size: 3vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.container-bottom-right{
    background-image: url(image/bottom_mobile.JPEG);
    background-size: auto 100%;
    background-repeat: no-repeat;
    background-position: center center;
    border-bottom-right-radius: 200px;
    background-color: black;
    width: 40vw; 
    margin-top: 1vh;
    margin-left: 3vh;
    padding: 1vh;
}

.target,
.target:active{
    width: 100%;
    text-decoration: none;
    color: black;
    font-size: 4vh;
    font-weight: 900;
    margin: 200px 0 200px 0;
    padding: 2% 2%;
    -webkit-transition-duration: 0.5s;
    -moz-transition-duration: 0.5s;
    -o-transition-duration: 0.5s;
    transition-duration: 0.5s;
    cursor: pointer;
    letter-spacing: 5px;
}

.target:hover{
    color: white;
}

/* scroll */


/* W3C standard
   сейчас только для Firefox */
   * {
    scrollbar-width: thin;
    scrollbar-color: #b75cd3 white;
  }
  
  /* для Chrome/Edge/Safari */
  *::-webkit-scrollbar {
    height: 12px;
    width: 12px;
  }
  *::-webkit-scrollbar-track {
    background: white;
  }
  *::-webkit-scrollbar-thumb {
    background-color: #b75cd3;
    border-radius: 10px;
    border: 3px solid white;
  }

/* end scroll */

/* for smal screen */

@media screen and (max-width: 1280px) {
    .container-top-left{
        font-size: 6vh;
    }

    .black-block{
        height: 100vh;
    }

    .black_fon{
        top: 2%;
    }

    .poligon{
        width: 52vw;
        height: 35%;
    }

    .about-us{
        font-size: 2.3vh;
    }

    .year{
        font-size: 6vmin;
    }

    .inform{
        font-size: 2vmin;
        border-top: 2px solid white;
    }

    .container-perfomanses{
        width: 80%;
    }

    .container-bottom-left h2{
        font-size: 4vh;
        font-weight: 600;
    }

    .container-bottom-right{
        background-size: auto 70%;
    }
}

/* for tablet */

@media screen and (max-width: 820px) { /*700*/
    .big_img{
        width: 100vw;
    }
    
    .upward {
        bottom: 700px;
        right: 20px;
        width: 35px;
        height: 35px;
        border-radius: 35px;
    }
    
    .upward.active {
        bottom: 20px;
    }
    
    .upward-p {
        margin: 6px;
        font-size: 120%;
    }

    .name-big-photo{
        bottom: 18%;
    }

    .name{
        font-size: 3vh;
    }

    .button{
        font-size: 1.5vh;
    }
    
    .container-top{
        height: 30vh;
    }
    
    .container-top-left{
        width: 60vw;
        border-top-right-radius: 50px;
        margin-top: 0.5vh;
        padding: 0.5vh 1.5vh;
        font-size: 2.4vh;
        font-weight: 700;
    }

    .container-top-left p{
        letter-spacing: 0.1px;
    }

    .line{
        width: 100%;
        height: 4vh;
        font-size: 3vh;
    }

    .black-block{
        height: 48vh;
        overflow: hidden;
    }

    .black_fon{
        top: 10%;
    }

    .ts{
        font-size: 3vh;
    }

    .ts::before{
        content: '';
        margin: 0 2vh 0.5vh 0;
    }

    .about-us{
        font-size: 1.3vh;
        margin-top: 1vh;
    }
    
    .time{
        margin-top:2vh;
        width: 100%;
        flex: 1;
    }

    .year{
        font-size: 4vmin;
    }

    .inform{
        font-size: 1.5vmin;
        border-top: 1px solid white;
    }

    .container-perfomanses{
        width: 80%;
    }

    .perf{
        width: 22vmin; 
        height: 5vmin; 
    }

    .white-block{
        height: 45vh;
    }
    
    .white-block p{
        font-size: 2.2vh;
        position: absolute;
        top: 50px;
        left: 0.8vh;
    }
    
    .smile{
        max-width: 60vw;
    }

    .figur{
        max-width: 50%;
    }

    .poligon{
        width: 50vw;
        height: 75%;
    }
    
    .block-photo{
        font-size: 1vh;
        cursor: pointer;
    }

    .faq-title{
        margin: 10px auto 2.5px auto;
        font-size: 2vh;
        text-transform: uppercase;
    }

    .faq-text{
        font-size: 1.5vh;
        padding: 5px 3px;
        font-weight: 600;
    }

    .faq-text p {
        letter-spacing: 0.01em;
    }

    .faq-text p a {
        text-decoration: none;
        cursor: pointer;
        color: #b75cd3;
    }

    .faq-text p span{
        font-weight: 900;
    }

    .big-button,
    .big-button:active{
        width: 80%;
        height: 6vh;
        border-radius: 8vh;
        font-size: 1.5vh;
    }

    .container-bottom{
        height: 25vh;
    }

    .container-bottom-left h2{
        font-size: 2.45vh;
        font-weight: 600;
    }

    .container-bottom-left .tel{
        margin-left: 7px;
    }

    .container-bottom-left p{
        margin-left: 7px;
        letter-spacing: 2px;
    }
    
    .container-bottom-left{
        width: 60vw;
        border-top-right-radius: 50px;
        margin-top: 0.5vh;
        padding: 0.5vh 1.5vh;
        font-size: 1vh;
    }

    .target,
    .target:active{
        font-size: 1.5vh;
        letter-spacing: 3px;
    }

    .container-bottom-right{
        background-image: url(image/bottom_mobile.JPEG);
        border-bottom-right-radius: 50px;
        background-size: auto 80%;
    }
}

/* for mobile */

@media screen and (max-width: 500px) {
    .big_img{
        width: 100vw;
    }
    
    .upward {
        bottom: 700px;
        right: 20px;
        width: 35px;
        height: 35px;
        border-radius: 35px;
    }
    
    .upward.active {
        bottom: 20px;
    }
    
    .upward-p {
        margin: 6px;
        font-size: 120%;
    }

    .name-big-photo{
        bottom: 18%;
    }

    .name{
        font-size: 3vh;
    }

    .button{
        font-size: 1.5vh;
    }
    
    .container-top{
        height: 30vh;
    }
    
    .container-top-left{
        width: 60vw;
        border-top-right-radius: 50px;
        margin-top: 0.5vh;
        padding: 0.5vh 1.5vh;
        font-size: 2.4vh;
        font-weight: 700;
    }

    .container-top-left p{
        letter-spacing: 0.1px;
    }

    .line{
        width: 100%;
        height: 4vh;
        font-size: 3vh;
    }

    .black-block{
        height: 45vh;
        overflow: hidden;
    }

    .black_fon{
        top: 10%;
    }

    .ts{
        font-size: 3vh;
    }

    .ts::before{
        content: '';
        margin: 0 2vh 0.5vh 0;
    }

    .about-us{
        font-size: 1.3vh;
        margin-top: 1vh;
    }
    
    .time{
        margin-top:2vh;
        width: 100%;
        flex: 1;
    }

    .year{
        font-size: 4vmin;
    }

    .inform{
        font-size: 1.5vmin;
        border-top: 1px solid white;
    }

    .container-perfomanses{
        width: 80%;
    }

    .perf{
        width: 22vmin; 
        height: 5vmin; 
    }

    .white-block{
        height: 45vh;
    }
    
    .white-block p{
        font-size: 2.2vh;
        position: absolute;
        top: 50px;
        left: 0.8vh;
    }
    
    .smile{
        width: 90vw;
    }

    .poligon{
        width: 60vw;
        height: 50%;
    }

    .figur{
        max-width: 70%;
    }
    
    .block-photo{
        font-size: 1vh;
        cursor: pointer;
    }

    .faq-title{
        margin: 10px auto 2.5px auto;
        font-size: 2vh;
        text-transform: uppercase;
    }

    .faq-text{
        font-size: 1.5vh;
        padding: 5px 3px;
        font-weight: 600;
    }

    .faq-text p {
        letter-spacing: 0.01em;
    }

    .faq-text p a {
        text-decoration: none;
        cursor: pointer;
        color: #b75cd3;
    }

    .faq-text p span{
        font-weight: 900;
    }

    .big-button,
    .big-button:active{
        width: 80%;
        height: 6vh;
        border-radius: 8vh;
        font-size: 1.5vh;
    }

    .container-bottom{
        height: 25vh;
    }

    .container-bottom-left h2{
        font-size: 2.45vh;
        font-weight: 600;
    }

    .container-bottom-left .tel{
        margin-left: 7px;
    }

    .container-bottom-left p{
        margin-left: 7px;
        letter-spacing: 2px;
    }
    
    .container-bottom-left{
        width: 60vw;
        border-top-right-radius: 50px;
        margin-top: 0.5vh;
        padding: 0.5vh 1.5vh;
        font-size: 1vh;
    }

    .target,
    .target:active{
        font-size: 1.5vh;
        letter-spacing: 3px;
    }

    .container-bottom-right{
        background-image: url(image/bottom_mobile.JPEG);
        border-bottom-right-radius: 50px;
        background-size: auto 70%;
        background-color: black;
        margin-left: 1vh;
    }
}

