/* Foreground layout contract: content must never inherit the scale or hit area of decoration. */
.foreground-layout {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: grid;
  grid-template-columns: minmax(320px, 460px) minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(20px, 3vh, 48px);
  padding: clamp(24px, 4vw, 72px);
  pointer-events: none;
}

.foreground-layout > * { pointer-events: auto; }

.dynamic-area {
  z-index: 2;
  width: min(55vw, 960px);
  max-width: 960px;
  pointer-events: none;
}

.brand-lockup {
  position: relative;
  left: auto;
  top: auto;
  z-index: auto;
  grid-column: 1;
  grid-row: 1;
  align-self: start;
}

.login-form {
  position: relative;
  left: auto;
  top: auto;
  z-index: auto;
  grid-column: 1;
  grid-row: 2;
  align-self: center;
  width: min(100%, 440px);
  max-width: 440px;
}

.feature-bar {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: auto;
  grid-column: 1 / -1;
  grid-row: 3;
  width: 100%;
  height: clamp(76px, 9.2vh, 112px);
}

.visual-toast {
  position: fixed;
  z-index: 20;
}

.motion-toggle { z-index: 20; }

@media (max-width: 1100px) {
  .foreground-layout {
    grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
    padding: clamp(20px, 3.5vw, 48px);
  }

  .dynamic-area { width: min(52vw, 680px); }
}

@media (max-width: 720px) {
  html, body { min-height: 100%; overflow: auto; }
  .scene { min-height: 100svh; height: auto; overflow: hidden; }
  .foreground-layout {
    position: relative;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 28px 20px 22px;
  }

  .dynamic-area { display: none; }
  .brand-lockup, .login-form, .feature-bar { position: relative; width: 100%; max-width: none; }
  .brand-lockup { margin: 0; }
  .login-form { align-self: stretch; }
  .feature-bar {
    margin-top: auto;
    height: auto;
    min-height: 88px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 10px;
  }
  .feature-item { min-height: 34px; font-size: 13px; }
  .feature-item:not(:last-child)::after { display: none; }
}
