*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  color: var(--color-text);
  background: var(--gradient-brand);
  background-attachment: fixed;
}

.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-6) var(--space-4);
}

.page__header {
  text-align: center;
  margin-bottom: var(--space-6);
}

.page__logo {
  width: 72px;
  height: 72px;
  object-fit: contain;
  margin-bottom: var(--space-4);
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
}

.page__title {
  margin: 0;
  font-size: var(--text-2xl);
  font-weight: 700;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.page__subtitle {
  margin: var(--space-2) 0 0;
  font-size: var(--text-base);
  color: rgba(255, 255, 255, 0.92);
}

.page__form-wrap {
  width: 100%;
  max-width: 420px;
}

.page__footer {
  margin-top: var(--space-8);
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.85);
  text-align: center;
}
