:root {
  color-scheme: light;
  --ink: #1d1d1f;
  --muted: #6e6e73;
  --blue: #0071e3;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
  font-synthesis: none;
  font-optical-sizing: auto;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100svh;
  color: var(--ink);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

button,
input { font: inherit; }

.signin-shell {
  display: grid;
  min-height: 100svh;
  padding: max(28px, env(safe-area-inset-top)) 24px max(32px, env(safe-area-inset-bottom));
  place-items: center;
}

.signin-card { width: min(100%, 390px); }

h1 {
  margin: 0 0 38px;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", sans-serif;
  font-size: clamp(38px, 5vw, 50px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -.045em;
}

form label {
  display: block;
  margin-bottom: 9px;
  font-size: 13px;
  font-weight: 600;
}

input {
  width: 100%;
  height: 56px;
  padding: 0 16px;
  border: 1px solid #c7c7cc;
  border-radius: 13px;
  outline: none;
  color: var(--ink);
  background: #fff;
  font-size: 17px;
  transition: border-color .2s, box-shadow .2s;
}

input:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .12);
}

.form-status {
  min-height: 20px;
  margin: 9px 2px 7px;
  color: #b42318;
  font-size: 13px;
  line-height: 1.4;
}

.form-status:empty { visibility: hidden; }
.form-status.is-neutral { color: var(--muted); }

.primary-button {
  width: 100%;
  min-height: 54px;
  padding: 0 20px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--blue);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s, transform .2s, opacity .2s;
  -webkit-tap-highlight-color: transparent;
}

.primary-button:hover { background: #0077ed; }
.primary-button:active { transform: scale(.985); }
.primary-button:disabled { cursor: wait; opacity: .62; }

@media (max-width: 420px) {
  h1 { margin-bottom: 32px; font-size: 39px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
