@font-face {
    font-family: onest;
    src: url(../fonts/Onest-Regular.woff2);
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: onest;
    src: url(../fonts/Onest-Medium.woff2);
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: onest;
    src: url(../fonts/Onest-Bold.woff2);
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: onest;
    src: url(../fonts/Onest-Black.woff2);
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: icon;
    src: url(../fonts/vian-icon.woff2);
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
:root {
    --bg-1: #06060a;
    --bg-2: #0f0f17;
    --bg-3: #0569fe;
    --bg-4: rgba(37, 99, 235, 0.10);
    --bg-5: rgba(6, 6, 10, 0.90);
    --text-1: #94a3b8;
    --text-2: #dfe8f7;
    --text-3: #0569fe;
    --text-4: #626e85;
    --text-shadow-1: 0 20px 18px rgba(6, 6, 10, 0.60);
    --border-1: 1px solid rgba(255, 255, 255, 0.30);
    --border-2: 1px solid #1d1d30;
    --border-3: 1px solid rgba(255, 255, 255, 0.40);
    --shadow-1: 0 10px 18px rgba(6, 6, 10, 0.60);
    --ws: #0569fe;
    --ws-2: rgba(37, 99, 235, 0.10);
    --mobile: #ff1f7d;
    --mobile-2: rgba(255, 31, 125, 0.10);
    --service: #ff5e1e;
    --service-2: rgba(255, 94, 30, 0.10);
    --ux-ui: #9d00ff;
    --ux-ui-2: rgba(157, 0, 255, 0.10);
    --ai: #00e599;
    --ai-2: rgba(0, 229, 153, 0.10);
}
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    color: var(--text-1);
    font-size: 16px;
    font-family: onest;
}
body {
    background: var(--bg-1);
    position: relative;
}
.page-wrapper {
    overflow: hidden;
}
a {
    text-decoration: none;
}
.wrapper {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}
button {
    border: none;
    cursor: pointer;
    background: none;
}
img {
    display: block;
}
.btn {
    display: flex;
    gap: 4px;
    height: 57px;
    border-radius: 16px;
    overflow: hidden;
    &:not(.is-managed):hover, &.is-active {
        > span:not(.arrow) {
            > span {
                transform: translateY(0);
            }
            &::before {
                width: calc(100% + 24px);
            }
        }
        > .arrow {
            &::after {
                width: calc(100% + 24px);
            }
            &::before {
                transform: rotate(45deg);
            }
        }
    }
    &:not(.is-managed) {
        > span:not(.arrow) {
            > span {
                transition: transform 0.6s ease 0.1s;
            }
            &::before {
                transition: width 0.6s ease 0.1s;
            }
        }
        > .arrow {
            &::after {
                transition: width 0.6s ease 0.7s;
            }
            &::before {
                transition: transform 0.6s ease 0.7s;
            }
        }
    }
    &.is-entering {
        > span:not(.arrow) {
            > span {
                animation: btn-content-in 0.6s ease 0.1s forwards;
            }
            &::before {
                animation: btn-background-in 0.6s ease 0.1s forwards;
            }
        }
        > .arrow {
            &::after {
                animation: btn-arrow-in 0.6s ease 0.6s forwards;
            }
            &::before {
                animation: btn-arrow-icon-in 0.6s ease 0.6s forwards;
            }
        }
    }
    &.is-leaving {
        --btn-main-delay: 0.1s;
        > span:not(.arrow) {
            > span {
                animation: btn-content-out 0.6s ease var(--btn-main-delay) forwards;
            }
            &::before {
                animation: btn-background-out 0.6s ease var(--btn-main-delay) forwards;
            }
        }
        > .arrow {
            &::after {
                animation: btn-arrow-out 0.6s ease forwards;
            }
            &::before {
                animation: btn-arrow-icon-out 0.6s ease forwards;
            }
        }
    }
    &.is-leaving.has-arrow {
        --btn-main-delay: 0.6s;
    }
    > span:not(.arrow) {
        background: var(--bg-1);
        overflow: hidden;
        position: relative;
        display: flex;
        flex-direction: column;
        height: 57px;
        border-radius: 16px;
        &::before {
            content: '';
            width: 0;
            position: absolute;
            height: 57px;
            bottom: 0;
            left: 0;
            background: var(--bg-3);
            border-radius: 0 40px 40px 0;
        }
        span {
            display: flex;
            align-items: center;
            padding: 0 40px;
            height: 100%;
            min-height: 57px;
            font-size: 18px;
            color: var(--text-2);
            z-index: 1;
            transform: translateY(-57px);
        }
    }
    .arrow {
        flex: 0 0 57px;
        width: 57px;
        border-radius: 16px;
        background: var(--bg-1);
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        margin-top: 0;
        position: relative;
        &::after {
            content: '';
            position: absolute;
            width: 0;
            height: 100%;
            top: 0;
            left: 0;
            background: var(--bg-3);
            border-radius: 0 40px 40px 0;
            z-index: 0;
        }
        &::before {
            z-index: 1;
            transform: rotate(0);
            position: relative;
            font-family: icon;
            content: '\f000';
            color: var(--text-2);
            font-size: 24px;
        }
    }
}
header {
    padding: 10px 0;
    position: sticky;
    top: 0px;
    z-index: 99;
    .wrapper {
        height: 65px;
        display: flex;
        justify-content: space-between;
        gap: 40px;
        .left, .right {
            background: var(--bg-2);
            border-radius: 20px;
            padding: 4px;
        }
        .left {
            display: flex;
            gap: 4px;
            > div {
                background: var(--bg-1);
                display: flex;
                align-items: center;
                justify-content: center;
                height: 100%;
                border-radius: 16px;
            }
            .logo {
                width: 134px;
                a {
                    img {
                        display: block;
                        width: 66px;
                        margin-bottom: 3px;
                    }
                }
            }
            .ws-menu {
                padding: 0 32px;
                gap: 32px;
                .item {
                    a, p {
                        font-size: 15px;
                        font-weight: 500;
                        transition: color 0.2s;
                        &:hover {
                            color: var(--text-2);
                        }
                        .selected {
                            color: var(--text-3);
                        }
                    }
                }
            }
        }
    }
}
@keyframes btn-content-in {
    from {
        transform: translateY(-57px);
    }
    to {
        transform: translateY(0);
    }
}

@keyframes btn-content-out {
    from {
        transform: translateY(0);
    }
    to {
        transform: translateY(-57px);
    }
}
@keyframes btn-background-in {
    from {
        width: 0;
    }
    to {
        width: calc(100% + 24px);
    }
}
@keyframes btn-background-out {
    from {
        width: calc(100% + 24px);
    }
    to {
        width: 0;
    }
}
@keyframes btn-arrow-in {
    from {
        width: 0;
    }
    to {
        width: calc(100% + 24px);
    }
}
@keyframes btn-arrow-out {
    from {
        width: calc(100% + 24px);
    }
    to {
        width: 0;
    }
}
@keyframes btn-arrow-icon-in {
    from {
        transform: rotate(0);
    }
    to {
        transform: rotate(45deg);
    }
}
@keyframes btn-arrow-icon-out {
    from {
        transform: rotate(45deg);
    }
    to {
        transform: rotate(0);
    }
}