.login-page { min-width: 0; }
.login-shell { max-width: 92rem; margin: 0 auto; padding: 0 clamp(1.25rem, 5vw, 5rem); gap: 0; }
.login-header { min-height: 8.2rem; gap: 1.25rem; border-bottom: 1px solid var(--line); }
.login-brand { display: grid; gap: .4rem; }
.login-brand-name { color: var(--ink); font: 620 clamp(1.65rem, 3vw, 2.25rem)/1.1 var(--display); letter-spacing: -.045em; }
.login-brand-name > span { color: var(--copper); font-style: italic; }
.login-brand-description { color: var(--muted); font: 550 1rem/1.4 var(--sans); }
.login-theme { flex-shrink: 0; }
.login-theme::part(base) { min-height: 2.9rem; padding: .45rem .75rem; border: 1px solid var(--line); border-radius: .45rem; background: transparent; color: var(--ink); font: 600 1rem/1.2 var(--sans); }
.login-theme::part(label) { display: flex; align-items: center; gap: .55rem; }
.login-theme::part(base):hover { background: var(--surface-raised); }
.login-theme::part(base):focus-visible { box-shadow: var(--focus); }
.login-main { min-height: min(43rem, 72vh); display: flex; align-items: center; width: 100%; padding: 4.5rem 0; }
.login-content { width: 100%; --min-column-size: 0; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); align-items: center; gap: 3.5rem; }
.login-content > section { min-width: 0; }
.login-introduction { min-width: 0; }
.login-eyebrow { margin: 0 0 1.5rem; color: var(--copper); font: 650 1rem/1.5 var(--sans); letter-spacing: .045em; }
.login-introduction h1 { margin: 0 0 1.75rem; font: 520 clamp(3.1rem, 5.6vw, 5.45rem)/1.08 var(--display); letter-spacing: -.045em; overflow-wrap: anywhere; }
.login-introduction h1 > span { color: var(--copper); font-style: italic; }
.login-deck { max-width: 33rem; margin: 0; color: var(--ink); font: 400 1.3rem/1.75 var(--serif); }
.login-note { margin: 2rem 0 0; color: var(--muted); font: 450 1.125rem/1.65 var(--sans); }
.login-entry { padding: 2.5rem 1.85rem 2rem; border-top: 3px solid var(--copper); background: var(--surface); }
.login-entry-kicker { margin: 0 0 1.5rem; color: var(--muted); font: 600 1rem/1.5 var(--sans); }
.login-entry h2 { margin: 0 0 1.3rem; color: var(--ink); font: 520 clamp(2.5rem, 3.4vw, 3.4rem)/1.1 var(--display); letter-spacing: -.04em; overflow-wrap: anywhere; }
.login-entry-copy { margin: 0 0 2rem; color: var(--muted); font: 400 1.125rem/1.75 var(--serif); }
.login-google { display: block; width: 100%; }
.login-google::part(base) { width: 100%; min-height: 3.8rem; justify-content: space-between; gap: 1rem; padding: .9rem 1.1rem; background: var(--copper); border: 1px solid var(--copper); border-radius: .3rem; color: var(--canvas); font: 650 1rem/1.4 var(--sans); text-align: left; text-decoration: none; white-space: normal; }
.login-google img { width: 1.25rem; height: 1.25rem; filter: none; }
html[data-theme="light"] .login-google img { filter: invert(1); }
.login-google::part(base):hover, .login-google::part(base):active { background: var(--ink); border-color: var(--ink); color: var(--canvas); }
.login-google::part(base):focus-visible { box-shadow: var(--focus); }
.login-access-note { margin: 1.2rem 0 0; color: var(--muted); font: 450 1rem/1.6 var(--sans); }
.login-footer { gap: .75rem 2rem; flex-wrap: wrap; padding: 1.4rem 0 1.75rem; border-top: 1px solid var(--line); color: var(--muted); font: 550 1rem/1.5 var(--sans); }
@media (max-width: 1199.98px) {
  .login-content { gap: 2rem; }
  .login-entry { padding: 2rem 1.25rem 1.75rem; }
}
@media (max-width: 991.98px) {
  .login-main { min-height: 0; padding: 3.5rem 0; }
  .login-content { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .login-introduction h1 { font-size: clamp(3.1rem, 7.9vw, 5rem); }
  .login-entry { padding: 2rem; }
  .login-entry h2 br { display: none; }
  .login-entry-copy { max-width: 32rem; }
  .login-google { max-width: 25rem; }
}
@media (max-width: 575.98px) {
  .login-header { min-height: 6.2rem; align-items: center; padding: 1rem 0; gap: .85rem; }
  .login-brand-name { font-size: 1.65rem; }
  .login-brand-description { max-width: 10rem; }
  .login-theme::part(base) { min-width: 3rem; padding: .65rem; }
  .login-header [data-theme-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .login-main { padding: 1.8rem 0 2rem; }
  .login-content { gap: 1.6rem; }
  .login-eyebrow { margin-bottom: .85rem; }
  .login-introduction h1 { font-size: 2.6rem; line-height: 1.12; margin-bottom: 1rem; }
  .login-deck { font-size: 1.125rem; }
  .login-note { display: none; }
  .login-entry { padding: 1.4rem 1.25rem; }
  .login-entry h2 { font-size: 2.3rem; margin-bottom: .75rem; }
  .login-entry-kicker { display: none; }
  .login-entry-copy { margin-bottom: 1rem; }
  .login-google { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .login-page *, .login-page *::before, .login-page *::after { transition: none !important; }
}
