:root { --brand: #c2410c; --ink: #1c1917; --paper: #fffaf5; }
* { box-sizing: border-box; }
body { align-items: center; background: #1c1917; color: var(--ink); display: flex; font-family: 'Poppins', sans-serif; justify-content: center; margin: 0; min-height: 100vh; padding: 24px; }
.background-video { height: 100%; inset: 0; object-fit: cover; opacity: .45; pointer-events: none; position: fixed; width: 100%; z-index: 0; }
main { animation: login-card-enter .6s ease-out both; background: rgba(255, 255, 255, .96); border: 1px solid #fed7aa; border-radius: 8px; box-shadow: 0 20px 45px rgba(0, 0, 0, .35); max-width: 420px; padding: 36px; position: relative; width: 100%; z-index: 1; }
h1 { font-size: 1.5rem; margin: 0 0 8px; }
p { color: #57534e; font-size: .95rem; line-height: 1.5; margin: 0 0 28px; }
.login-welcome { animation: welcome-enter .7s .15s ease-out both; color: var(--brand); font-size: .85rem; font-weight: 700; margin: 0 0 10px; text-transform: uppercase; }
label { display: block; font-size: .9rem; font-weight: 600; margin-bottom: 8px; }
input { border: 1px solid #a8a29e; border-radius: 6px; font: inherit; padding: 12px; width: 100%; }
input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px #fed7aa; outline: 0; }
button { background: var(--brand); border: 0; border-radius: 6px; color: #fff; cursor: pointer; font: inherit; font-weight: 600; margin-top: 20px; padding: 12px; width: 100%; }
button:hover { background: #9a3412; }
a { color: #9a3412; display: block; font-size: .9rem; font-weight: 600; margin-top: 20px; text-align: center; }
.message { background: #fff1f2; border: 1px solid #fecdd3; border-radius: 6px; color: #9f1239; font-size: .9rem; margin-bottom: 20px; padding: 10px 12px; }
.qr-code { display: block; height: auto; margin: 0 auto 20px; max-width: 240px; width: 100%; }
.manual-key { overflow-wrap: anywhere; text-align: center; }
@keyframes login-card-enter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes welcome-enter { from { letter-spacing: .16em; opacity: 0; transform: translateY(-6px); } to { letter-spacing: .05em; opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { main, .login-welcome { animation: none; } }