.portal-landing {
  --landing-ink: var(--ink);
  --landing-blue: var(--blue);
  --landing-red: var(--red);
  --landing-paper: var(--warm);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--landing-paper);
  color: var(--landing-ink);
}

.landing-header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.6rem max(5vw, 1.5rem);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.landing-header a { display: inline-block; }
.landing-header img { display: block; width: min(190px, 55vw); height: auto; }

.landing-header-links {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 3vw, 2.5rem);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.landing-header-links span { color: #555; }
.landing-header-links a { color: var(--landing-ink); text-decoration: none; }
.landing-header-links a:hover,
.landing-header-links a:focus-visible { color: var(--landing-blue); }

.landing-main {
  flex: 1 0 auto;
  width: min(1260px, 90%);
  margin: 0 auto;
  padding: clamp(2.5rem, 6vh, 5rem) 0;
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(280px, .85fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: center;
}

.landing-eyebrow,
.landing-footer {
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .72rem;
  font-weight: 800;
}

.landing-eyebrow { margin: 0 0 1.6rem; }

.portal-landing h1 {
  max-width: 820px;
  margin: 0;
  font-size: clamp(4rem, 9vw, 8.4rem);
  line-height: .88;
  letter-spacing: -.065em;
  text-transform: uppercase;
}

.landing-access {
  padding: 1rem 0 1rem clamp(1.5rem, 4vw, 4rem);
  border-left: 1px solid var(--line);
}

.landing-rule {
  display: block;
  width: 3px;
  height: 58px;
  margin-bottom: 4rem;
  background: linear-gradient(to bottom, var(--landing-red) 0 50%, var(--landing-blue) 50% 100%);
}

.landing-access h2 { margin: 0 0 1.8rem; font-size: clamp(1.7rem, 3vw, 2.35rem); }
.landing-access p { max-width: 430px; color: #555; }

.landing-sign-in { display: grid; max-width: 430px; gap: .7rem; }

.landing-sign-in label {
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.landing-sign-in input {
  min-width: 0;
  padding: .9rem 1rem;
  border: 1px solid var(--muted);
  border-radius: 0;
  background: #fff;
}

.landing-sign-in button {
  display: inline-flex;
  justify-content: space-between;
  gap: 1rem;
  width: max-content;
  padding: .95rem 1.15rem;
  background: var(--landing-ink);
  color: #fff;
  border: 0;
  border-radius: 0;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.landing-sign-in button:hover,
.landing-sign-in button:focus-visible { background: var(--landing-blue); }

.landing-support { margin: 1rem 0 0; font-size: .85rem; }
.landing-confirmation { padding-left: 1rem; border-left: 3px solid var(--landing-blue); }

.landing-error {
  flex: 1 0 auto;
  width: min(720px, 90%);
  margin: 0 auto;
  padding: clamp(4rem, 10vw, 8rem) 0;
}

.portal-landing .landing-error h1 {
  margin: .35rem 0 1.5rem;
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  line-height: .95;
}

.landing-footer {
  flex-shrink: 0;
  display: flex;
  justify-content: space-between;
  padding: 1.5rem max(5vw, 1.5rem);
  background: var(--landing-ink);
  color: #fff;
}

@media (max-width: 760px) {
  .landing-main { grid-template-columns: 1fr; width: min(90%, 620px); }
  .portal-landing h1 { font-size: clamp(3.5rem, 17vw, 6rem); }
  .landing-access { padding: 2.5rem 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .landing-rule { height: 3px; width: 58px; margin-bottom: 2.5rem; background: linear-gradient(to right, var(--landing-red) 0 50%, var(--landing-blue) 50% 100%); }
}

@media (max-width: 440px) {
  .landing-header { align-items: flex-start; }
  .landing-header-links { align-items: flex-end; flex-direction: column; gap: .3rem; text-align: right; }
  .landing-footer { flex-direction: column; gap: .6rem; }
}
