/* Reuses the exact korlow.com ecosystem motion and public role photography. */
.brand { gap: 0; }
.brand-symbol { display: none; }
.brand-wordmark { width: 9.75rem; }
.login-page { min-height: 100vh; overflow-x: hidden; overflow-y: auto; }
.login-shell {
  position: relative;
  display: grid;
  min-height: 100vh;
  min-height: 100svh;
  grid-template-columns: 1fr;
  overflow: hidden;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
}
.login-photographs, .login-overlay, .ecosystem-motion { position: absolute; inset: 0; }
.login-photographs {
  display: grid;
  grid-template-columns: 1.08fr .92fr 1fr;
  background: #050505;
}
.login-photo {
  background-position: center;
  background-size: cover;
  filter: grayscale(.5) saturate(.62) contrast(1.05);
  will-change: transform;
  animation: login-photo-drift 24s ease-in-out infinite alternate;
}
.photo-athletes { background-image: url('/assets/site/athletes.jpg'); background-position: center 39%; animation-delay: -9s; }
.photo-coaches { background-image: url('/assets/site/coaches.jpg'); background-position: center 44%; animation-delay: -17s; }
.photo-organizations { background-image: url('/assets/site/organizations.jpg'); background-position: center 47%; animation-delay: -4s; }
.login-overlay {
  z-index: 1;
  background: linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.7) 42%, rgba(0,0,0,.48) 100%),
    linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.76));
}
.ecosystem-motion {
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  contain: strict;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.28) 4%, #000 11%, #000 89%, rgba(0,0,0,.28) 96%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.28) 4%, #000 11%, #000 89%, rgba(0,0,0,.28) 96%, transparent 100%);
}
.ecosystem-lane {
  position: absolute;
  top: var(--top);
  left: 0;
  display: flex;
  width: max-content;
  align-items: baseline;
  gap: var(--gap, 12vw);
  white-space: nowrap;
  transform: translate3d(var(--lane-from), 0, 0) rotate(var(--tilt, 0));
  animation: ecosystem-lane-drift var(--duration) linear var(--delay) infinite;
  will-change: transform;
}
.ecosystem-word {
  display: block;
  color: var(--tone, #f2eee7);
  font-size: var(--size);
  font-weight: var(--weight, 500);
  letter-spacing: var(--tracking, .06em);
  line-height: 1;
  opacity: 0;
  animation: ecosystem-word-breathe var(--pulse, 24s) ease-in-out var(--word-delay, 0s) infinite;
  will-change: opacity;
}
.ecosystem-word.primary { --size: clamp(38px, 4vw, 62px); --weight: 600; --peak: .3; }
.ecosystem-word.secondary { --size: clamp(27px, 2.7vw, 43px); --peak: .26; }
.ecosystem-word.tertiary { --size: clamp(21px, 2vw, 32px); --peak: .2; --tracking: .09em; }
.ecosystem-word.accent { --tone: #d9b877; --peak: .3; }
.ecosystem-word.mobile-only { display: none; }
.lane-1 { --top: 7%; --lane-from: calc(-100% - 82vw); --lane-to: 132vw; --duration: 56s; --delay: -17s; --gap: 15vw; --tilt: -1.2deg; }
.lane-2 { --top: 22%; --lane-from: 128vw; --lane-to: calc(-100% - 76vw); --duration: 49s; --delay: -29s; --gap: 13vw; --tilt: .8deg; }
.lane-3 { --top: 39%; --lane-from: calc(-100% - 88vw); --lane-to: 126vw; --duration: 64s; --delay: -36s; --gap: 14vw; --tilt: -.5deg; }
.lane-4 { --top: 61%; --lane-from: 134vw; --lane-to: calc(-100% - 84vw); --duration: 60s; --delay: -8s; --gap: 16vw; --tilt: 1deg; }
.lane-5 { --top: 77%; --lane-from: calc(-100% - 78vw); --lane-to: 130vw; --duration: 53s; --delay: -24s; --gap: 12vw; --tilt: -.8deg; }
.lane-6 { --top: 91%; --lane-from: 126vw; --lane-to: calc(-100% - 86vw); --duration: 68s; --delay: -41s; --gap: 18vw; --tilt: .6deg; }
.lane-1 .ecosystem-word:nth-child(1) { --word-delay: -4s; }
.lane-1 .ecosystem-word:nth-child(2) { --word-delay: -17s; --peak: .24; }
.lane-1 .ecosystem-word:nth-child(3) { --word-delay: -9s; --peak: .22; }
.lane-1 .ecosystem-word:nth-child(4) { --word-delay: -21s; }
.lane-2 .ecosystem-word:nth-child(1) { --word-delay: -18s; --peak: .24; }
.lane-2 .ecosystem-word:nth-child(2) { --word-delay: -5s; }
.lane-2 .ecosystem-word:nth-child(3) { --word-delay: -15s; --peak: .19; }
.lane-2 .ecosystem-word:nth-child(4) { --word-delay: -25s; --peak: .25; }
.lane-3 .ecosystem-word:nth-child(1) { --word-delay: -11s; }
.lane-3 .ecosystem-word:nth-child(2) { --word-delay: -23s; --peak: .22; }
.lane-3 .ecosystem-word:nth-child(3) { --word-delay: -3s; }
.lane-3 .ecosystem-word:nth-child(4) { --word-delay: -16s; }
.lane-4 .ecosystem-word:nth-child(1) { --word-delay: -6s; --peak: .23; }
.lane-4 .ecosystem-word:nth-child(2) { --word-delay: -20s; }
.lane-4 .ecosystem-word:nth-child(3) { --word-delay: -13s; --peak: .26; }
.lane-4 .ecosystem-word:nth-child(4) { --word-delay: -28s; --peak: .16; }
.lane-5 .ecosystem-word:nth-child(1) { --word-delay: -14s; --peak: .23; }
.lane-5 .ecosystem-word:nth-child(2) { --word-delay: -27s; --peak: .16; }
.lane-5 .ecosystem-word:nth-child(3) { --word-delay: -7s; --peak: .24; }
.lane-5 .ecosystem-word:nth-child(4) { --word-delay: -21s; }
.lane-5 .ecosystem-word:nth-child(5) { --word-delay: -19s; }
.lane-6 .ecosystem-word:nth-child(1) { --word-delay: -9s; }
.lane-6 .ecosystem-word:nth-child(2) { --word-delay: -22s; --peak: .16; }
.lane-6 .ecosystem-word:nth-child(3) { --word-delay: -31s; --peak: .22; }
@keyframes ecosystem-lane-drift {
  from { transform: translate3d(var(--lane-from), 0, 0) rotate(var(--tilt, 0)); }
  to { transform: translate3d(var(--lane-to), 0, 0) rotate(var(--tilt, 0)); }
}
@keyframes ecosystem-word-breathe {
  0%, 5%, 100% { opacity: 0; }
  18% { opacity: var(--peak); }
  62% { opacity: calc(var(--peak) * .9); }
  84% { opacity: calc(var(--peak) * .5); }
  95% { opacity: 0; }
}
@keyframes login-photo-drift {
  from { transform: scale(1.02) translate3d(-.5%, 0, 0); }
  to { transform: scale(1.08) translate3d(.8%, -.6%, 0); }
}
.login-panel {
  position: relative;
  z-index: 3;
  display: block;
  width: min(100%, 34rem);
  min-width: 0;
  padding: clamp(1.35rem, 4vw, 2.75rem);
  border: 1px solid rgba(216,183,139,.26);
  border-radius: 1.25rem;
  background: rgba(8,8,8,.78);
  box-shadow: 0 35px 90px rgba(0,0,0,.62);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.login-brand { position: static; display: flex; margin-bottom: clamp(1.5rem, 4vh, 3rem); justify-content: center; }
.login-brand .brand { display: flex; width: 100%; justify-content: center; }
.login-brand .brand-wordmark { display: block; width: min(100%, 19rem); height: auto; object-fit: contain; }
.login-content { min-width: 0; text-align: center; }
.login-panel h1 { max-width: 11ch; margin: .4rem auto 1.25rem; font-size: clamp(2.45rem, 5vw, 4.6rem); line-height: .96; }
.login-copy { max-width: 30rem; margin: 0 auto 2rem; color: #c3beb7; }
.password-field { border-color: rgba(216,183,139,.38); background: rgba(14,14,15,.88); }
.login-form { width: 100%; max-width: 28rem; margin-inline: auto; text-align: left; }
.security-note { max-width: 28rem; margin: 1.5rem auto 0; color: #98918a; text-align: center; }
.login-error { max-width: 28rem; margin-inline: auto; text-align: left; }
@media (max-width: 820px) {
  .login-photographs { grid-template-columns: 1fr; }
  .login-photo { display: none; }
  .login-photo.photo-athletes { display: block; }
  .login-overlay { background: linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.82)), linear-gradient(90deg, rgba(0,0,0,.65), rgba(0,0,0,.35)); }
  .ecosystem-word { font-size: calc(var(--size) * .72); animation-duration: calc(var(--pulse, 24s) * 1.05); }
  .ecosystem-lane { gap: 14vw; animation-duration: calc(var(--duration) * 1.08); }
  .ecosystem-lane:nth-child(odd) { --lane-from: calc(-100% - 18vw) !important; --lane-to: 112vw !important; }
  .ecosystem-lane:nth-child(even) { --lane-from: 112vw !important; --lane-to: calc(-100% - 18vw) !important; }
  .ecosystem-lane:nth-child(1) { animation-delay: -31s; }
  .ecosystem-lane:nth-child(2) { animation-delay: -19s; }
  .ecosystem-lane:nth-child(3) { animation-delay: -37s; }
  .ecosystem-lane:nth-child(4) { display: none; }
  .ecosystem-lane:nth-child(5) { animation-delay: -28s; }
  .ecosystem-word.mobile-only { display: block; }
  .ecosystem-lane.mobile-hide, .ecosystem-word.mobile-hide { display: none; }
  .login-shell { padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom)); }
  .login-panel { width: min(100%, 31rem); }
}
@media (max-width: 430px) {
  .login-panel { padding: 1.2rem; }
  .login-brand { margin-bottom: 1rem; }
  .login-brand .brand-wordmark { width: min(82%, 16rem); }
  .login-panel h1 { font-size: clamp(2.15rem, 11vw, 3rem); }
  .login-copy { margin-bottom: 1.25rem; line-height: 1.55; }
  .security-note { margin-top: 1rem; }
}
@media (max-width: 640px) {
  .header-inner .brand-wordmark { display: block; width: 7.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ecosystem-lane { animation: none; transform: translate3d(-18%, 0, 0) rotate(var(--tilt, 0)); }
  .ecosystem-word { animation: none; opacity: .08; }
  .login-photo { animation: none; transform: scale(1.03); will-change: auto; }
}
