body {
    background-color: var(--choco-0);
}

.app__content {
    display: flex;
    flex-direction: column;
}

.app__header {
    text-align: center;
    padding: 2rem 2.5rem;
}

.app__title {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--text-color);
    display: inline-block;
}

.app__title span {
    display: inline-block;
    opacity: 0;
    transform: translateY(10px);
    animation: fadeUp 0.5s ease forwards;
}

/* 各文字に少しずつ遅延を与える */
.app__title span:nth-child(1) { animation-delay: 0s; }
.app__title span:nth-child(2) { animation-delay: 0.1s; }
.app__title span:nth-child(3) { animation-delay: 0.2s; }
.app__title span:nth-child(4) { animation-delay: 0.3s; }
.app__title span:nth-child(5) { animation-delay: 0.4s; }
.app__title span:nth-child(6) { animation-delay: 0.5s; }

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.sign-in__form-container {
    padding: 0 2.5rem;
}

.sign-in__form.error-message {
    text-align: center;
    margin: 1rem 0;
}

.sign-in__form-container form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.checkbox.sign-in__field {
    justify-content: center;
}

.checkbox.sign-in__field input {
    margin-top: 0.1rem;
}

.sign-in__actions {
    text-align: center;
}

.sign-in__footer {
    display: flex;
    justify-content: center;
    gap: 0.2rem;
    padding: 2rem 1rem;
}
