@font-face {
    font-family: 'rany';
    src: url('./fonts/Rany-Medium.otf');
}
@font-face {
    font-family: 'cocon';
    src: url('./fonts/coconbeta1.202VF.woff2');
}
@font-face {
    font-family: 'coconForHome';
    src: url('./fonts/coconForHomeVF.woff2');
}

html, body {
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;
    cursor: none;
    --white: #fafafa;
    --black: #101010;
    --whiteBar: #fafafaef;
    --lightGrey: #e5e5e5;
    --midGrey: #c1c1c1;
    --darkGrey: #909090;
    background-color: var(--white);
    -webkit-scrollbar-width: 0;
    scrollbar-width: none;
    overflow-x: hidden;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, segoeui, Roboto, Helvetica, Arial, sans-serif;;

    /* -webkit-font-smoothing: antialiased; */
    -moz-osx-font-smoothing: grayscale;
}

/* * {
    outline: 1px solid red;
} */

.disappear.disappear.disappear {
    display: none !important;
}
.opacityOn.opacityOn.opacityOn {
    opacity: 1;
}
.opacityOff.opacityOff.opacityOff {
    opacity: 0;
}
.basic {
    display: contents;
}
::selection {
    background-color: var(--midGrey);
}

/* 鼠标样式设置 */
.cursor {
    opacity: 0;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    /* background: linear-gradient(to top, #fafafa 0%, #fafafa 100%); */
    background-color: var(--white);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 998;
    pointer-events: none;
    mix-blend-mode: difference;
    transition: width 0.2s ease-in-out, height 0.2s ease-in-out, opacity 0.6s ease-in-out;
}
.cursor.clickable {
    width: 20px !important;
    height: 20px !important;
}
@keyframes cursorRotation {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
.cursorChildren {
    pointer-events: none;
    width: 100%;
    height: 100%;
}
.cursorChildren.cursorRotation {
    animation: cursorRotation 12s linear infinite;
}
.cursorChild {
    pointer-events: none;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    /* background: linear-gradient(to top, #fafafa 0%, #fafafa 100%); */
    /* background-color: inherit; 继承父元素的背景 */
    background-color: var(--white);
    position: absolute;
    transition: all 0.2s ease-out;
}
.cursurBomm {
    width: 240px;
    height: 240px;
    position: absolute;
    top: -100px;
    left: -102px;
    /* z-index: 999; */
    mix-blend-mode: difference;
    isolation: isolate;
    pointer-events: none;
}

/* 导航栏设置 */
.navBarBox {
    width: 100vw;
    height: 50px;
    border-bottom: 1px solid var(--darkGrey);
    display: flex;
    justify-content: center;
    z-index: 888;
    position: fixed;
    top: 0;
    background-color: var(--whiteBar);
    transition: background-color 1s ease-in-out, border-bottom 1s ease-in-out;

    /* 文字无法框选 */
    -webkit-touch-callout: none; /* iOS Safari */
	-webkit-user-select: none; /* Safari */
	-khtml-user-select: none; /* Konqueror HTML */
	-moz-user-select: none; /* Firefox */
	-ms-user-select: none; /* Internet Explorer/Edge */
	user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
}
.navBar {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    max-width: 1920px;
    display: flex;
    padding: 20px 60px;
    font-weight: 100;
    font-size: 0.9rem;
    position: relative;
    z-index: 888;
    backdrop-filter: blur(6px);
}
.navBarEn {
    width: 100%;
    height: 100%;
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
}
.navBarLeft {
    display: flex;
    align-items: center;
    gap: 2vw;
}
.navBarLogo {
    position: absolute;
}
.navBarOne, .navBarTwo {
    transition: all 0.3s ease-in-out;
    z-index: 889;
}
.navBarOne:hover {
    font-weight: 500;
    letter-spacing: -0.5px;
}
.navBarSelected {
    font-weight: 500;
    letter-spacing: -0.5px;
    position: relative;
}
.navBarSelected::before {
    content: '';
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: var(--black);
    position: absolute;
    left: -10px;
    top: 7px;
    z-index: 8;
}
.navBarSelected.navBarSelectedBlackBg::before {
    content: '';
    background-color: var(--white);
}

    /* 语言切换模块 */
.navBarTwo > div:first-child {
    z-index: 10;
    position: relative;
}
.navBarTwo:hover > div:first-child {
    font-weight: 500;
    letter-spacing: -0.5px;
}
.navBarTwo:hover > .navBarLanguageChoiceBox {
    display: block;
}
.navBarTwo:hover > .navBarLanguageChoiceBox > .navBarLanguageChoiceBtn {
    opacity: 1;
}
#navBarLanguageEn {
    position: relative;
}
.navBarLanguageChoiceBox {
    position: absolute;
    right: -40px;
    bottom: -110px;
    padding: 70px 20px 10px;
    display: none;
}
.navBarLanguageChoiceBtn {
    background-color: var(--whiteBar);
    backdrop-filter: blur(6px);
    border-radius: 100px;
    position: relative;
    pointer-events: none;
}
.navBarLanguageChoiceBtn.languageChoiceBtnMotion {
    animation: LanguageChoiceBtnMotion 0.8s forwards ease;
}

@keyframes LanguageChoiceBtnMotion {
    0% {
        width: 0px;
        height: 0px;
        border: 1px solid var(--white);
        opacity: 0;
    }
    25% {
        width: 44px;
        height: 44px;
        border: 1px solid var(--black);
        opacity: 1;
    }
    100% {
        width: 148px;
        height: 44px;
        border: 1px solid var(--black);
        opacity: 1;
    }
}
.navBarLanguageChoices {
    font-size: 1rem;
    width: 190px;
    height: 44px;
    padding: 72px 0px 10px;
    display: flex;
    gap: 16px;
    justify-content: center;
    align-items: center;
    position: absolute;
    bottom: -110px;
    right: -40px;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}
.navBarLanguageChoice {
    transition: all 0.3s ease-in-out;
}
.navBarLanguageChoice:hover {
    font-weight: 500;
    letter-spacing: -0.5px;
}
    /* 联系方式模块 */  
.navBarThree {
    position: relative;

}
.navBarThree:hover > div:first-child {
    font-weight: 500;
    letter-spacing: -0.5px;
    z-index: 889;
}
#navBarContactText {
    position: relative;
    z-index: 889;
}
.navBarContactBox {
    position: absolute;
    top: -8px;
    left: -50px;
    padding: 80px 20px 10px;
    display: flex;
    z-index: 887;
}
.navBarContactBubble1 {
    background-color: var(--black);
    /* border: 1px solid var(--white); */
}
.navBarContactBubble1.navBarContactBubble1Motion {
    animation: contactBubble1Motion 1s forwards ease-in-out;
}
@keyframes contactBubble1Motion {
    0% {
        width: 0px;
        height: 0px;
        border-radius: 40px;
        transform-origin: top left;
        opacity: 0;
    }
    25% {
        width: 40px;
        height: 40px;
        border-radius: 40x;
        opacity: 1;
    }
    100% {
        width: 280px;
        height: 92px;
        border-radius: 16px;
        opacity: 1;
    }
}
.navBarContactBubble2 {
    position: absolute;
    transform: translateY(0px);
    /* 如果俄文导航栏有更改，下处需要调整 */
    left: 66px; 
    opacity: 0;
    transition: all 0.3s ease-in-out;
}
.navBarContactBubble2.navBarContactBubble2Motion {
    transform: translateY(-14px);
    opacity: 1;
}
.navBarContactBubble2 svg {
    width: 16px;
}
.navBarContactBubble3 {
    width: 40px;
    height: 40px;
    background-color: var(--black);
    /* border: 1px solid var(--white); */
    border-radius: 40px;
    color: var(--white);
    display: flex;
    padding-left: 10px;
    box-sizing: border-box;
    align-items: center;
    font-family: 'rany';
    font-size: 1.5rem;
    transform: translateX(-80px);
    opacity: 0;
    transition: width 0.3s ease-in-out, transform 0.3s ease-in-out 0.1s, opacity 0.3s ease-in-out;

}
.navBarContactBubble3.navBarContactBubble3Motion {
    transform: translateX(12px);
    opacity: 1;
}
.navBarContactBubble3:hover {
    width: 96px;
}
.navBarContactBubble3:hover::after {
    content: 'eL24';
}
.navBarContactInfo {
    position: absolute;
    width: 280px;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--white);
    z-index: 888;
    font-size: 0.7rem;
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
}
#navBarContactCopy {
    font-size: 0.5rem;
    font-weight: 500;
    color: rgb(165, 165, 165);
    padding-top: 3px;
    padding-bottom: 1px;
    border-bottom: 0.5px solid rgb(165, 165, 165);
    pointer-events: all;
    z-index: 889;
}
#navBarContactCopy:hover {
    color: var(--white);
    border-bottom: 0.5px solid var(--white);
    font-weight: 800;
}
#navBarContactCopySuccess {
    letter-spacing: 1px;
    font-size: 0.7rem;
    font-weight: 400;
    text-transform: uppercase;
}
    /* 打字机模块 */
.navBarFour {
    position: relative;
}
#navBarTypetesterText {
    z-index: 889;
    position: relative;
}
.navBarFour:hover > div:first-child {
    font-weight: 500;
    letter-spacing: -0.5px;
    z-index: 889;
}
.navBarTypetesterBox {
    display: flex;
    position: absolute;
    padding: 72px 20px 10px;
    left: -48px;
    top: 0;
    z-index: 887;
}
.navBarTypetesterBubble1 {
    border-radius: 40px;
    background-color: var(--black);
    /* border: 1px solid var(--white); */
    opacity: 0;
}
.navBarTypetesterBubble1.navBarTypetesterBubble1Motion {
    animation: typetesterBubble1Motion 0.9s forwards ease-in-out ;
}
@keyframes typetesterBubble1Motion {
    0% {
        width: 0px;
        height: 0px;
        opacity: 0;
    }
    25% {
        width: 44px;
        height: 44px;
        opacity: 1;
    }
    100% {
        width: 300px;
        height: 44px;
        opacity: 1;
    }
}
.navBarTypetesterBubble1.navBarTypetesterBubble1MotionRu {
    animation: typetesterBubble1MotionRu 0.9s forwards ease-in-out ;
}
@keyframes typetesterBubble1MotionRu {
    0% {
        width: 0px;
        height: 0px;
        opacity: 0;
    }
    25% {
        width: 44px;
        height: 44px;
        opacity: 1;
    }
    100% {
        width: 270px;
        height: 44px;
        opacity: 1;
    }
}
.navBarTypetesterBubble2 {
    position: absolute;
    transform: translateY(0px);
    left: 66px; 
    opacity: 0;
    transition: all 0.3s ease-in-out;
}
.navBarTypetesterBubble2.navBarTypetesterBubble2Motion {
    transform: translateY(-14px);
    opacity: 1;
}
.navBarTypetesterBubble2 svg {
    width: 16px;
}
.navBarTypetesterInfo {
    position: absolute;
    display: flex;
    gap: 16px;
    padding: 12px 60px;
    color: var(--white);
    opacity: 0;
    z-index: 888;
}
.navBarTypetesterInfo div {
    transition: all 0.2s ease-in-out;
}
.navBarTypetesterInfo div:hover {
    font-weight: 500;
    letter-spacing: -0.5px;
}
    /* logo模块 */  
.navBarLogoBox {
    position: fixed;
    display: flex;
    top: 11px;
    z-index: 890;
}
.navBarLogo {
    display: flex;
    justify-content: center;
    font-weight: 600;
    font-size: 1.6rem;
    font-family: cocon;
    letter-spacing: 2px;
    transform: translateX(-44px);
}
.navBarLogoBox img {
    width: 100px;
    padding: 10px;
}


/* 字重设置 */
.thin {
    font-weight: 100;
}
.light {
    font-weight: 200;
}
.normal {
    font-weight: 300;
}
.regular {
    font-weight: 400;
}
.medium {
    font-weight: 500;
}
.semibold {
    font-weight: 600;
}
.bold {
    font-weight: 700;
}
.heavy {
    font-weight: 800;
}


/* loading */
.loading {
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 990;
    display: flex;
    justify-content: center;
    color: var(--black);
    background-color: var(--white);
    /* mix-blend-mode:luminosity; */
    /* opacity: 0.4; */
    /* top: 0; */

    /* 文字无法框选 */
    -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
    -khtml-user-select: none; /* Konqueror HTML */
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* Internet Explorer/Edge */
    user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
}
.loadingBar {
    width: 100px;
    height: 50px;
    background-color: var(--white);
    position: fixed;
    top: 0;
    z-index: 989;
}
.loadingLogo {
    /* border: 1px solid red; */
    position: relative;
    opacity: 0;
}
.loadingLogoLetter {
    position: absolute;
    top: -46px;
    left: -25.5px;
    font-size: 80px;
    font-weight: 600;
    font-family: cocon;
}
.loadingLines {
    position: absolute;
    top: 0;
    /* border: 1px solid slateblue; */
}
.loadingLineM {
    width: 0px;
    height: 1px;
    background-color: var(--darkGrey);
}
.loadingLineL, .loadingLineR {
    position: absolute;
    width: 100vw;
    height: 1px;
    background-color: var(--darkGrey);
}
.loadingLineL {
    transform: translateY(-1px) translateX(-150vw);
}
.loadingLineR {
    transform: translateY(-1px) translateX(100vw);
}


/* tips */
.tipsBox {
    width: 100vw;
    height: 100vh;
    position: fixed;
    pointer-events: none;
    display: flex;
    justify-content: center;
    z-index: 996;
}
.tip {
    z-index: 997;
    background-color: var(--lightGrey);
    border: 1px solid var(--black);
    color: var(--black);
    padding: 10px 32px;
    height: fit-content;
    font-size: 0.7rem;
    font-weight: 200;
    letter-spacing: 0.6px;
    border-radius: 40px;
    opacity: 0;
    transition: all 0.5s ease-in-out;
    position: absolute;
    margin-top: 80px;
}