/* The sign-in page's layout: the form on the left, a loop rendered by
   BeatFractal filling the rest. Colours, type and controls: ../ui/site.css. */

html, body { height: 100%; }
.shell { display: grid; grid-template-columns: minmax(380px, 460px) 1fr; min-height: 100%; }

.panel {
  display: flex; flex-direction: column; gap: 32px;
  padding: 40px clamp(28px, 4vw, 56px);
  background: var(--ground);
  border-right: 1px solid var(--rule);
  z-index: 1;
}
.form-wrap { margin: auto 0; width: 100%; max-width: 340px; }
.view form { margin-bottom: 4px; }
.view .btn.primary { width: 100%; margin-top: 4px; }
.alt { margin: 14px 0 0; font-size: 14px; color: var(--ink-2); }
.alt.hint { color: var(--ink-3); }
.providers { display: grid; gap: 10px; margin-bottom: 16px; }
.providers .or { margin: 6px 0 0; }

.stage { position: relative; margin: 0; overflow: hidden; background: #000; }
.stage video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.85); }
.stage::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to right, rgb(0 0 0 / 0.45), transparent 35%), linear-gradient(to top, rgb(0 0 0 / 0.55), transparent 30%);
}
.stage figcaption { position: absolute; right: 20px; bottom: 16px; z-index: 1; font-size: 12px; color: rgb(255 255 255 / 0.78); }
.stage cite { font-style: normal; color: #fff; }

@media (max-width: 820px) {
  .shell { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .stage { order: -1; height: 26vh; min-height: 160px; }
  .stage::after { background: linear-gradient(to top, rgb(0 0 0 / 0.6), transparent 45%); }
  .stage figcaption { right: 16px; bottom: 10px; left: 16px; text-align: right; }
  .panel { border-right: 0; padding: 20px 20px 28px; gap: 24px; }
  .form-wrap { margin: 0; max-width: none; }
  h1 { font-size: 28px; }
  .logo { height: 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .stage video { display: none; }
  .stage { background: #000 url('bg.75b0b33d.jpg') center / cover no-repeat; }
}
