*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-body);overflow-x:hidden}p{margin:0 0 var(--space-3);color:var(--ink-muted)}button{font-family:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.stage{position:fixed;inset:0;z-index:0;background-image:radial-gradient(60% 50% at 72% 22%,rgba(255,196,120,.3),transparent 60%),radial-gradient(80% 70% at 18% 16%,rgba(86,120,210,.34),transparent 65%),radial-gradient(120% 90% at 50% 122%,rgba(20,16,40,.92),transparent 60%),linear-gradient(180deg,#1a1f3a,#241a35 45%,#120f1c);animation:drift 26s var(--ease) infinite alternate;transform-origin:60% 40%}@keyframes drift{0%{transform:scale(1.04) translate(0)}to{transform:scale(1.12) translate(-1.5%,1%)}}.sparks{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}.scrim{z-index:2}@media (prefers-reduced-motion: reduce){.stage{animation:none;transform:scale(1.06)}}.app{position:relative;z-index:3;max-width:480px;margin:0 auto;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}.topbar{position:relative;z-index:5;flex:0 0 auto;padding:20px 16px 12px;display:flex;align-items:center;gap:var(--space-2);background:#0c0d1280;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--glass-border)}.topbar .brand{margin-right:auto;display:flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:.3px}.topbar .brand .dia{color:var(--accent);text-shadow:0 0 14px var(--accent-glow)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.card{padding:13px 15px}.btn{font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;border-radius:var(--radius-btn);padding:10px 14px;min-height:44px;color:var(--on-accent);border:1px solid transparent;background:linear-gradient(180deg,var(--accent-strong),var(--accent));box-shadow:0 6px 18px var(--accent-glow),inset 0 1px #fff6;transition:transform .15s var(--ease),box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px var(--accent-glow),inset 0 1px #ffffff80}.btn:active{transform:translateY(0)}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.hint{font-size:.78rem;color:var(--ink-muted)}.error-banner{border:1px solid rgba(220,90,90,.4);background:#781e1e40;color:#f0c9c9;border-radius:var(--radius-panel);padding:var(--space-3);font-size:.85rem}.spinner-wrap{display:flex;justify-content:center;padding:var(--space-7) 0}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--glass-border);border-top-color:var(--accent);animation:spin .8s linear infinite}@media (prefers-reduced-motion: reduce){.spinner{animation:none;border-top-color:var(--glass-border)}}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-5);padding:var(--space-5)}.login-screen .brand-lg{font-family:var(--font-display);font-size:2.3rem;font-weight:600;color:var(--accent);text-shadow:0 0 22px var(--accent-glow)}.login-screen .brand-lg .dia{color:var(--accent-strong)}.login-screen .card{width:100%}
