* {
    box-sizing: border-box;
}
body {
    font-family: 'Open Sans', sans-serif;
    text-rendering: optimizeLegibility;
}
:focus {
    outline: 0;
}
a {
    -webkit-transition: all 250ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
    -moz-transition: all 250ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
    -o-transition: all 250ms cubic-bezier(0.470, 0.000, 0.745, 0.715);
    transition: all 250ms cubic-bezier(0.470, 0.000, 0.745, 0.715); /* easeInSine */

    -webkit-transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
    -moz-transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
    -o-transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
    transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715); /* easeInSine */
}
fieldset {
    border: 0 none;
    padding: 15px;
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    transition: background-color 5000s ease-in-out 0s;
    background: transparent;
}

.bg,
.wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.bg { z-index: -1; }
.wrapper { z-index: 1; }

.bg svg { position: absolute; }
.bg svg {
    top: 50%;
    left: 50%;

    -webkit-transform: translate3d(-50%,-50%,0);
    -moz-transform: translate3d(-50%,-50%,0);
    transform: translate3d(-50%,-50%,0);
}
.ink {
    display: block; position: absolute;
    background: rgba(255, 255, 255,.35);
    border-radius: 100%;
    transform: scale(0);
}
.ripple {
    overflow: hidden;
    white-space: nowrap;
    position: relative;
}
/*animation effect*/
.ink.animate {animation: ripple 0.25s linear;}
@keyframes ripple {
    /*scale the element to 250% to safely cover the entire link and fade it out*/
    100% {opacity: 0; transform: scale(2.5);}
}

/**LOGIN ------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------*/
.login-cover,
.login-logo,
.login-form,
.btn-login,
.login-data .login-block-control label,
.underline {
    -webkit-transition: all 300ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
    -moz-transition: all 300ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
    -o-transition: all 300ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
    transition: all 300ms cubic-bezier(0.860, 0.000, 0.070, 1.000); /* easeInOutQuint */

    -webkit-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
    -moz-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
    -o-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
    transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000); /* easeInOutQuint */

    will-change: transform;
}

.login-cover:before {
    -webkit-transition: all 550ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
    -moz-transition: all 550ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
    -o-transition: all 550ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
    transition: all 550ms cubic-bezier(0.860, 0.000, 0.070, 1.000); /* easeInOutQuint */

    -webkit-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
    -moz-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
    -o-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
    transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000); /* easeInOutQuint */
}

.login {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 520px;
    height: 700px;

    -webkit-transform: translate3d(-50%,-50%,0);
    -moz-transform: translate3d(-50%,-50%,0);
    transform: translate3d(-50%,-50%,0);

    box-shadow: 10px 10px 10px rgba(0,0,0,.2);

    overflow: hidden;
}

.login-box { width: 100%; height: 100%; }
.login-cover { height: 100%; margin: 0; position: relative; }

.btn-login-default {
    color: rgba(255,255,255,1);
    background: #3FC0F0;

    border-radius: 3px;
    border: 0 none;

    width: 60%;
    height: 50px;
    font-size: 1rem;

    cursor: pointer;
    text-transform: uppercase;
}
.btn-login { margin-top: 40px; }
.btn-login-default:hover,
.btn-login-default:active { color: rgba(2,26,35,1); }

/** active*/
.login.active .login-cover { height: 30%; }
.login.active .login-logo { margin: 0; padding: 35px; }
.btn-login.active { opacity: 0; margin: 0; }

/** form*/
.login-form {
    position: absolute;
    top: 30%;
    left: 0;

    width: 100%;
    height: 70%;

    -webkit-transform: translate3d(0,100%,0);
    -moz-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0);
}
.login-data {
    width: 100%;
    height: 100%;
    margin: 0;
    background: rgba(255,255,255,1);
}
.login-block-control {
    position: relative;
    margin-bottom: 25px;
}
.login-data fieldset { height: 85%; }
.login-data fieldset > div { height: 100%; }

.login-data .login-block-control label {
    position: absolute;
    top: 10px;
    left: 15px;

    font-size: 14px;
    text-transform: uppercase;
    color: #B2B2B2;
}
.login-data .login-block-control input[type="text"],
.login-data .login-block-control input[type="password"] {
    height: 40px;
    border: 0 none;
    padding: 5px;
    width: 100%;
    background: transparent;

    border-bottom: solid 1px #B2B2B2;
    outline: none;

    color: #A4A4A4;
}
.login-cover:before,
.login-data .login-block-control input[type="text"] ~ .underline,
.login-data .login-block-control input[type="password"] ~ .underline {
    content: '';
    display: block;
    width: 0;
    height: 1px;
    background: #3FC0F0;
    position: absolute;
    bottom: -1px;
    left: 50%;

    -webkit-transform: translate3d(-50%,-50%,0);
    -moz-transform: translate3d(-50%,-50%,0);
    transform: translate3d(-50%,-50%,0);
}
.login-form.active {
    -webkit-transform: translate3d(0,0,0);
    -moz-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
}

.login-data .login-block-control input:focus ~ label,
.login-data .login-block-control input:valid ~ label {
    top: -10px;
    font-size: .7rem;
    color: #3FC0F0;
}
.login-cover:before {
    height: 4px;
    bottom: 0;
    -webkit-transform: translate3d(-50%,0,0);
    -moz-transform: translate3d(-50%,0,0);
    transform: translate3d(-50%,0,0);
}
.login.active .login-cover:before {
    width: 100%;
}

.login-data .login-block-control input:focus ~ .underline,
.login-data .login-block-control input:valid ~ .underline {
    width: calc(100% - 15px);
}

.login-block-control .login-data input[type="text"]:focus ~ label,
.login-block-control .login-data input[type="password"]:focus ~ label {
    top: -10px;
}

@media all and (max-width: 1600px) {
    .login {
        width: 420px;
        height: 600px;
    }
    .login-data .login-block-control label {
        font-size: 14px;
    }
}
@media all and (max-width: 1366px) {
    .login {
        width: 380px;
        height: 460px;
    }
    .login-data .login-block-control label {
        font-size: 13px;
    }
}
@media all and (max-width: 768px) {
    .wrapper {
        min-height: 100%;
        height: 100%;
    }
    .login {
        width: 100%;
        min-height: 100%;
        height: 100%;
    }

    .login.active .login-cover {
        min-height: 20%;
        height: 20%;
    }
    .login-form {
        position: absolute;
        top: 20%;
        min-height: 80%;
        height: 80%;
    }

    .login-data .login-block-control label {
        font-size: 13px;
    }
    .login-data .login-block-control input:focus ~ label,
    .login-data .login-block-control input:valid ~ label {
        font-size: 9px;
    }
}