*{padding:0;margin:0;box-sizing:border-box;font-family:Arial,Helvetica,sans-serif}html,body{overflow-x:hidden}.ls{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%}.ls--dark{background:#080d1a}.ls--light{background:#f3f6fb}.ls__card{display:flex;flex-direction:column;align-items:center;gap:28px;animation:ls-in .4s cubic-bezier(.22,1,.36,1) both}@keyframes ls-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.ls__logo{display:flex;align-items:baseline;gap:2px;-webkit-user-select:none;user-select:none}.ls__logo-i{font-size:2.8rem;font-weight:900;letter-spacing:-.04em;background:linear-gradient(135deg,#6d5efc,#2fe3b7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}.ls__logo-text{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1}.ls--dark .ls__logo-text{color:#f8fafce6}.ls--light .ls__logo-text{color:#0f172a}.ls__bars{display:flex;align-items:flex-end;gap:5px;height:28px}.ls__bars span{width:4px;border-radius:9999px;animation:ls-bar 1.1s ease-in-out infinite;background:linear-gradient(180deg,#6d5efc,#2fe3b7)}.ls__bars span:nth-child(1){animation-delay:0s;height:40%}.ls__bars span:nth-child(2){animation-delay:.15s;height:70%}.ls__bars span:nth-child(3){animation-delay:.3s;height:55%}.ls__bars span:nth-child(4){animation-delay:.45s;height:30%}@keyframes ls-bar{0%,to{transform:scaleY(.4);opacity:.5}50%{transform:scaleY(1);opacity:1}}.ls__label{font-size:.8rem;font-weight:600;letter-spacing:.04em;margin:0}.ls--dark .ls__label{color:#94a3b8b3}.ls--light .ls__label{color:#64748bcc}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:12px;font-family:sans-serif;text-align:center;padding:24px}.error-boundary h2{font-size:1.4rem;color:#c0392b;margin:0}.error-boundary p{color:#555;margin:0}.error-boundary button{margin-top:8px;padding:10px 24px;background:#2980b9;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem}.error-boundary button:hover{background:#1f6391}
