* {
    margin: 0;
    padding: 0;
    font-family: 'NunitoSans', 'AlibabaPuHuiTi-3';
    color: var(--default-color);
    text-decoration: none;
    box-sizing: border-box;
    line-height: 1;
    list-style: none;
    transition: 0.5s ease;
}

*::after,
*::before {
    transition: 0.5s ease;
}

html {
    background-color: var(--default-bg-color);
    font-size: 6.25%;
}

label,
button,
input,
select,
textarea,
a,
span,
p {
    appearance: none;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    outline: none;
    font: inherit;
    resize: none;
    font-size: 16rem;
    -webkit-appearance: none;
    -moz-appearance: none;
}

h1 {
    font-size: 32rem;
    font-weight: 600;
}

button,
button span,
a,
a span {
    font-weight: 600;
}

input {
    color: var(--default-color);
}

input::placeholder {
    color: var(--unfocus-color);
}

select::-ms-expand {
    display: none;
}

a,
button {
    cursor: pointer;
}

@font-face {
    font-family: 'NunitoSans';
    src: url('/assets/font/NunitoSans/NunitoSans-Regular.ttf');
    font-weight: 400;
}

@font-face {
    font-family: 'NunitoSans';
    src: url('/assets/font/NunitoSans/NunitoSans-SemiBold.ttf');
    font-weight: 600;
}

@font-face {
    font-family: 'AlibabaPuHuiTi-3';
    src: url('/assets/font/AlibabaPuHuiTi-3/AlibabaPuHuiTi-3-45-Light.ttf');
    font-weight: 400;
}

@font-face {
    font-family: 'AlibabaPuHuiTi-3';
    src: url('/assets/font/AlibabaPuHuiTi-3/AlibabaPuHuiTi-3-65-Medium.ttf');
    font-weight: 600;
}

.fw400 {
    font-weight: 400;
}

.fw600 {
    font-weight: 600;
}

:root {
    --default-bg-color: #eeeeee;
    --section-bg-color: linear-gradient(160deg, #f8f0e7 0%, #efe1d3 42%, #e7d2c0 100%);
    --unfocus-bg-color: #eeeeee;
    --hover-bg-color: #f3f3f3;

    --default-color: #111;
    --unfocus-color: #555555;
    --primary-color: #8f5c3d;
    --secondary-color: #AA733B;
    --error-color: #ae0000;

    --primary-padding: 30rem;
    --padding: 20rem 30rem;
    --sub-padding: 20rem;
    --lower-padding: 15rem 20rem;

    --radius: 20rem;
}

/* separator */

.fade-in,
.fade-up,
.fade-down,
.fade-right,
.fade-left,
.scale-up,
.expand-center {
    opacity: 0;
}

.fade-in.show,
.fade-up.show,
.fade-down.show,
.fade-right.show,
.fade-left.show,
.scale-up.show,
.expand-center.show {
    opacity: 1;
}

.fade-up {
    transform: translateY(30px);
}

.fade-up.show {
    transform: translateY(0);
}

.fade-down {
    transform: translateY(-30px);
}

.fade-down.show {
    transform: translateY(0);
}

.fade-right {
    transform: translateX(-30px);
}

.fade-right.show {
    transform: translateX(0);
}

.fade-left {
    transform: translateX(30px);
}

.fade-left.show {
    transform: translateX(0);
}

.scale-up {
    transform: scale(0.9);
}

.scale-up.show {
    transform: scale(1);
}

/* separator */

.btn {
    width: 100%;
    height: 40rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--primapadding);
    border-radius: var(--radius);
}

.primary-btn {
    background-color: var(--primary-color);
    color: white;
}

.primary-btn:hover {
    background-color: var(--secondary-color)
}

.icon {
  width: 0.8em;
  height: 0.8em;
  vertical-align: -0.15em;
  fill: var(--default-color);
  overflow: hidden;
}

.glass {
    border: 2rem solid white;
    backdrop-filter: blur(12rem) saturate(180%);
    -webkit-backdrop-filter: blur(12rem) saturate(180%);
    box-shadow: 2rem 2rem 20rem 2rem #fff;
    background: rgba(255, 255, 255, 0.5);
}

.text-link,
.sub-text-link,
.text-btn {
    position: relative;
    cursor: pointer;
    white-space: nowrap;
}

.text-link::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -1rem;
    height: 1rem;
    width: 0;
    background-color: var(--primary-color);
}

.sub-text-link {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.sub-text-link svg {
    width: 1em;
    transform: rotate(0);
}

.sub-text-link:hover svg {
    fill: var(--primary-color);
    transform: rotate(-45deg);
}

.function-btn {
    white-space: nowrap;
}

.text-link:hover,
.text-link:hover span,
.sub-text-link:hover,
.sub-text-link:hover span,
.function-btn:hover,
.function-btn:hover span {
    color: var(--primary-color);
}

.text-link:hover .icon,
.sub-text-link:hover .icon,
.function-btn:hover .icon {
    fill: var(--primary-color);
}

.text-link:hover::after {
    width: 100%;
}

/* separator */


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

.form-inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--primary-padding);
    border-radius: var(--radius);
}

.form-logo {
    width: 20%;
}

.form-title {
    margin-top: 30rem;
}

.form-main {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 30rem;
    gap: 30rem;
}

.form-input-group {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10rem;
}

.form-input-container {
    display: flex;
    align-items: center;
    gap: 20rem;
}

.form-input-wrapper {
    width: 100%;
    display: flex;
    align-items: center;
    padding: var(--lower-padding);
    border-radius: 999rem;
    border: 2rem solid var(--unfocus-bg-color);
    background-color: var(--unfocus-bg-color);
    gap: 10rem;
}

.form-input-wrapper:hover,
.remember-device-checkbox:hover {
    background-color: #fff;
}

.form-input-group:has(.form-error.true) .form-input-wrapper {
    border: var(--error-color) 2rem solid;
}

.form-error {
    position: absolute;
    top: calc(100% + 6rem);
    left: 20rem;
    color: var(--error-color);
    font-size: 14rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.form-error.true {
    opacity: 1;
    visibility: visible;
    pointer-events: all; 
}

.form-notice {
    position: absolute;
    top: calc(100% + 6rem);
    right: 20rem;
    color: var(--unfocus-color);
    font-size: 14rem;
}

.form-input-wrapper:focus-within {
    border: 2rem var(--primary-color) solid; 
    background-color: #fff;
}

.form-icon {
    flex: 0 0 20rem;
    height: auto;
    fill: var(--default-color);
}

.form-input {
    width: 100%;
}

.form-eye-icon-wrapper {
    cursor: pointer;
    user-select: none;
}

.form-eye-icon {
    width: 20rem;
}

.form-eye-close-icon {
    display: block;
}

.form-eye-open-icon {
    display: none;
}

.form-eye-icon-wrapper.visible .form-eye-close-icon {
    display: none;
}

.form-eye-icon-wrapper.visible .form-eye-open-icon {
    display: block;
}

.form-function-wraper {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.remember-device {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 5rem;
}

.remember-device-checkbox-wrapper {
    position: relative;
}

.remember-device-checkbox {
    width: 20rem;
    height: 20rem;
    border: var(--unfocus-bg-color) 2rem solid;
    border-radius: 999rem;
    background-color: var(--unfocus-bg-color);
    cursor: pointer;
}

.remember-device-checkbox:checked {
    background-color: var(--primary-color);
    border: var(--primary-color) 2rem solid;;
}

.remember-device-checkbox:checked ~ .checked-icon {
    opacity: 1;
    visibility: visible;
}

.remember-device-checkbox:checked:hover {
    background-color: var(--secondary-color);
    border: 2rem var(--secondary-color) solid;
}

.checked-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.remember-device-text {
    cursor: pointer;
}

.form-signup-notice {
    display: flex;
}

.turnstile-wrapper {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
}

.form-cf-turnstile-error {
    left: 50%;
    transform: translateX(-50%);
}

.form-cf-turnstile-send-error {
    left: auto;
    right: 0;
    text-align: right;
    white-space: nowrap;
}