@layer app {
  .auth-page {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.9fr);
    min-height: 100vh;
    background: #ffffff;
    color: var(--ink);
    font-family: "Manrope", var(--font-sans);
  }

  .auth-intro {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: clamp(2rem, 5vw, 4.5rem);
    background: var(--brand-field);
    color: #ffffff;
  }

  .auth-brand { display: inline-flex; align-items: center; gap: 0.65rem; width: fit-content; color: #ffffff; font-family: "Manrope", var(--font-sans); font-size: 1.25rem; font-weight: 800; }
  .auth-brand img { border-radius: var(--radius-sm); }
  .auth-intro-copy { max-width: 38rem; margin-block: auto; padding-block: 4rem 2.5rem; }
  .auth-kicker { margin-bottom: 1.1rem; color: var(--progress) !important; font-size: 0.95rem; font-weight: 800; }
  .auth-intro h1, .auth-panel h2 { font-family: "Manrope", var(--font-sans); font-weight: 800; letter-spacing: -0.035em; line-height: 1; text-wrap: balance; }
  .auth-intro h1 { max-width: 11ch; margin: 0; color: #ffffff; font-size: clamp(2.8rem, 5vw, 5.25rem); }
  .auth-intro-copy > p:not(.auth-kicker) { max-width: 34rem; margin-top: 1.35rem; color: #ffffff; font-size: 1rem; }

  .auth-preview { display: grid; gap: 0.65rem; width: min(100%, 28rem); border: 1px solid var(--primary-hover); border-radius: var(--radius); padding: 1.25rem; background: #ffffff; color: var(--ink); animation: auth-preview-arrival 700ms cubic-bezier(.22, 1, .36, 1) both; }
  .auth-preview-heading { display: flex; gap: 0.65rem; align-items: center; margin-bottom: 0.35rem; }
  .auth-preview-heading img { border-radius: var(--radius-sm); animation: nova-float 3s ease-in-out infinite; }
  .auth-preview-heading strong, .auth-preview-heading span { display: block; }
  .auth-preview-heading strong { font-size: 0.95rem; font-weight: 800; }
  .auth-preview-heading span { margin-top: 0.1rem; color: var(--muted); font-size: 0.82rem; }
  .auth-preview > p { margin: 0; border-top: 1px solid var(--line); padding-top: 0.65rem; color: var(--ink); font-size: 0.9rem; font-weight: 700; }
  .auth-preview > p::before { margin-right: 0.55rem; color: var(--primary-hover); content: "✓"; }

  .auth-panel { display: grid; align-content: center; width: min(100%, 34rem); min-height: 100%; margin-inline: auto; padding: clamp(2rem, 7vw, 5rem) clamp(1.5rem, 5vw, 4rem); }
  .auth-panel-copy { display: grid; gap: 0.9rem; }
  .auth-panel h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.05rem); }
  .auth-panel-copy p { font-size: 1rem; }
  .auth-form { display: grid; gap: 1.15rem; margin-top: 2.25rem; }
  .auth-form input { min-height: 3.25rem; border-color: var(--line); border-radius: var(--radius-sm); padding-inline: 1.1rem; }
  .auth-form input:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgb(18 111 196 / 20%); }
  .auth-form .button { min-height: 3.25rem; font-weight: 800; }
  .auth-form .button:hover { box-shadow: var(--shadow-lg); }
  .auth-switch { margin-top: 2.5rem; font-size: 0.9rem; }
  .auth-switch a { margin-left: 0.25rem; color: var(--primary-hover); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

  @keyframes auth-preview-arrival {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @keyframes nova-float {
    50% { transform: translateY(-5px) rotate(3deg); }
  }

  @media (max-width: 760px) {
    .auth-page { grid-template-columns: 1fr; }
    .auth-panel {
      order: -1;
      width: 100%;
      min-height: auto;
      padding-top: max(2rem, calc(env(safe-area-inset-top) + 1rem));
      padding-bottom: 2.5rem;
    }
    .auth-intro { min-height: auto; padding: 1.5rem max(1.5rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left)); }
    .auth-intro-copy { margin: 2.5rem 0 0; padding: 0; }
    .auth-intro h1 { max-width: 16ch; font-size: clamp(2.25rem, 10vw, 3.25rem); }
    .auth-preview { display: none; }
  }

  @media (prefers-reduced-motion: reduce) {
    .auth-preview, .auth-preview-heading img { animation: none; }
  }
}
