/* ============================================ 4. LOGIN VIEW ============================================ */
@property --enso-reveal {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

#login-view {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-height: 100vh; min-height: 100dvh; gap: 16px; padding: 40px 20px;
    position: relative; z-index: 1;
}
.enso-large-wrap {
    width: 118px;
    height: 118px;
    margin-bottom: 8px;
    display: block;
    position: relative;
    opacity: 0;
    transform: translateY(6px) scale(0.96);
    filter: drop-shadow(0 0 18px rgba(196,169,106,0.11));
    -webkit-mask: conic-gradient(from 22deg at 50% 50%, #000 0deg, #000 var(--enso-reveal, 0deg), transparent calc(var(--enso-reveal, 0deg) + 12deg));
    mask: conic-gradient(from 22deg at 50% 50%, #000 0deg, #000 var(--enso-reveal, 0deg), transparent calc(var(--enso-reveal, 0deg) + 12deg));
    animation: ensoImageDraw 2.05s cubic-bezier(0.65,0,0.35,1) 0.25s forwards;
}
.enso-large {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}
@keyframes ensoImageDraw {
    0% { opacity: 0; transform: translateY(6px) scale(0.96); --enso-reveal: 0deg; }
    10% { opacity: 1; }
    100% { opacity: 1; transform: translateY(0) scale(1); --enso-reveal: 350deg; }
}
.login-title { font-family: var(--font-serif); font-size: 2.2rem; font-weight: 400; letter-spacing: 0.06em; opacity: 0; animation: fadeInUp 1s ease-out 2s forwards; }
.login-subtitle {
    min-height: 1.55em;
    font-family: var(--font-serif);
    font-size: 0.95rem;
    color: var(--text-secondary);
    opacity: 0;
    animation: fadeInUp 1s ease-out 2.4s forwards;
}
.login-subtitle span {
    display: inline-block;
    min-width: 7.5em;
    text-align: center;
    transition: opacity 0.7s ease, filter 0.7s ease, transform 0.7s ease, letter-spacing 0.7s ease;
}
.login-subtitle span.is-japanese {
    letter-spacing: 0.2em;
}
.login-subtitle span.is-latin {
    letter-spacing: 0.08em;
}
.login-subtitle span.is-changing {
    opacity: 0;
    filter: blur(5px);
    transform: translateY(5px);
}
.login-tagline { font-size: 0.85rem; color: var(--text-muted); margin-top: 8px; opacity: 0; animation: fadeInUp 1s ease-out 2.7s forwards; }
#login-btn {
    margin-top: 36px; padding: 14px 32px; background: transparent; border: 1px solid var(--border-subtle);
    color: var(--text-primary); font-size: 0.9rem; border-radius: 16px;
    display: flex; align-items: center; gap: 12px; transition: var(--transition-smooth);
    opacity: 0; animation: fadeInUp 1s ease-out 3s forwards;
}
#login-btn:hover { background: var(--interactive-hover-bg); }
#login-btn svg { width: 22px; height: 22px; }

@media (hover: none) {
    #login-btn:active {
        background: var(--interactive-press-bg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-subtitle span {
        transition: none;
    }
}
