/* Pantalla de título — inspirada en la pantalla de inicio de OMORI */

.login-body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100dvh;
    position: relative;
    overflow: hidden;
}

.stars-overlay {
    position: fixed;
    inset: 0;
    background-image: radial-gradient(1.5px 1.5px at 20% 30%, rgba(255,255,255,0.5) 50%, transparent 100%),
                       radial-gradient(1.5px 1.5px at 70% 60%, rgba(255,255,255,0.4) 50%, transparent 100%),
                       radial-gradient(1px 1px at 40% 80%, rgba(255,255,255,0.35) 50%, transparent 100%),
                       radial-gradient(1px 1px at 85% 20%, rgba(255,255,255,0.3) 50%, transparent 100%),
                       radial-gradient(1.5px 1.5px at 55% 45%, rgba(255,255,255,0.4) 50%, transparent 100%);
    background-repeat: repeat;
    background-size: 260px 260px;
    animation: drift 60s linear infinite;
    opacity: 0.6;
    pointer-events: none;
}

@keyframes drift {
    from { background-position: 0 0; }
    to { background-position: -260px -260px; }
}

.login-screen {
    width: 100%;
    max-width: 380px;
    padding: 1.5rem;
    z-index: 1;
}

.login-card {
    background: var(--world-surface);
    border: 3px solid var(--world-border);
    border-radius: var(--radius-lg);
    padding: 2rem 1.75rem;
    text-align: center;
    box-shadow: 0 10px 0 var(--world-shadow);
    animation: card-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes card-in {
    from { opacity: 0; transform: translateY(24px) scale(0.95); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.login-logo {
    width: 96px;
    height: 96px;
    margin: 0 auto 1rem;
    image-rendering: pixelated;
    animation: character-bob 3s ease-in-out infinite;
}

.login-title {
    font-size: 2rem;
    color: var(--world-accent);
    text-shadow: 0 3px 0 var(--world-shadow);
    margin-bottom: 0.2rem;
}

.login-subtitle {
    color: var(--world-text-muted);
    font-size: 0.85rem;
    margin-bottom: 1.5rem;
}

.login-form {
    text-align: left;
}

.login-error {
    background: rgba(255, 107, 107, 0.15);
    border: 1px solid var(--world-danger);
    color: var(--world-danger);
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.75rem;
    font-size: 0.8rem;
    margin-bottom: 1rem;
}

.login-form .btn-omori {
    width: 100%;
    margin-top: 0.5rem;
}
