:root {
  --navy-950: #031128;
  --navy-900: #061a3a;
  --navy-850: #08214a;
  --navy-800: #0b2857;
  --blue-600: #0f63ff;
  --blue-500: #1479ff;
  --blue-400: #1497ff;
  --cyan-500: #00c7df;
  --cyan-400: #00d5e8;
  --teal-500: #08bca8;
  --ink: #07173b;
  --ink-soft: #4d5b78;
  --muted: #73809b;
  --line: #dce4f1;
  --line-strong: #ccd7e8;
  --surface: #ffffff;
  --surface-soft: #f7faff;
  --surface-blue: #f2f7ff;
  --shadow-card: 0 22px 70px rgba(7, 23, 59, .12);
  --shadow-soft: 0 12px 32px rgba(7, 23, 59, .08);
  --radius-card: 14px;
  --radius-panel: 12px;
  --transition: 180ms cubic-bezier(.2, .8, .2, 1);
}

* { box-sizing: border-box; }
html { height: 100%; -webkit-text-size-adjust: 100%; }
body {
  min-height: 100%;
  margin: 0;
  font-family: Inter, Manrope, Poppins, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--surface-soft);
  overflow-x: hidden;
}

button, input { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
svg { display: block; }

.login-page {
  min-height: 100svh;
}

.pressable {
  position: relative;
  overflow: hidden;
  transform: translate3d(0,0,0);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  user-select: none;
}

.pressable.is-pressing {
  transform: translateY(1px) scale(.985);
}

.pressable .tap-ripple {
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  pointer-events: none;
  background: rgba(255,255,255,.42);
  transform: translate(-50%, -50%) scale(0);
  animation: ripple .58s ease-out forwards;
}

.secondary-button .tap-ripple,
.create-account-button .tap-ripple,
.text-link .tap-ripple,
.icon-button .tap-ripple,
.check-line .tap-ripple {
  background: rgba(15, 99, 255, .16);
}

@keyframes ripple {
  from { opacity: .9; transform: translate(-50%, -50%) scale(0); }
  to { opacity: 0; transform: translate(-50%, -50%) scale(24); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
