:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color: #17251b;
  background: #ffffff;
}
* { box-sizing: border-box; }
html,
body {
  min-height: 100%;
  touch-action: pan-x pan-y;
  overscroll-behavior: contain;
  -webkit-text-size-adjust: 100%;
}
body { margin: 0; background: #ffffff; }
.access-gate {
  width: min(100% - 2rem, 720px);
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  padding: clamp(2rem, 8vh, 5rem) 0 max(1.25rem, env(safe-area-inset-bottom));
}
.access-gate-intro {
  display: grid;
  justify-items: center;
  gap: 1.5rem;
  text-align: center;
}
.access-gate-intro img {
  width: clamp(96px, 18vw, 160px);
  height: auto;
}
.access-gate-intro h1 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(2.4rem, 8vw, 5.5rem);
  line-height: 1;
  letter-spacing: 0;
}
.access-gate-login {
  width: min(100%, 420px);
  margin: auto auto 0;
  padding-top: clamp(4rem, 14vh, 10rem);
}
.access-gate-login form { display: grid; gap: 1rem; }
.access-gate-login h2 { margin: 0 0 .25rem; font-size: 1.15rem; }
.access-gate-login label { display: grid; gap: .35rem; font-weight: 700; }
.access-gate-login input {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: .75rem .85rem;
  border: 1px solid #cad5c8;
  border-radius: 8px;
  background: #ffffff;
  color: #17251b;
  font: inherit;
}
.access-gate-login input:focus {
  border-color: #5da832;
  outline: 3px solid rgba(93, 168, 50, .16);
}
.access-gate-login button {
  min-height: 48px;
  border: 0;
  border-radius: 8px;
  background: #4f962c;
  color: #ffffff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.access-gate-login button:hover,
.access-gate-login button:focus-visible { background: #3f7c22; }
.access-error {
  margin: 0;
  padding: .75rem;
  border: 1px solid #ef4444;
  border-radius: 8px;
  background: #fef2f2;
  color: #7f1d1d;
}
@media (max-width: 520px) {
  .access-gate { padding-top: 2rem; }
  .access-gate-login { padding-top: 3.5rem; }
  .access-gate-login input { font-size: 16px; }
}
