html,body{height:100%;overflow:hidden}
.gateway{position:relative;min-height:100svh;height:100vh;isolation:isolate;overflow:hidden;background:#18232b}
.gateway-bg{position:absolute;inset:0;z-index:-3;background-image:url("../assets/backgrounds/gateway/login-desktop-day.webp");background-position:center;background-size:cover;background-repeat:no-repeat;transition:filter .7s ease,transform 1.2s ease}
.gateway-vignette{position:absolute;inset:0;z-index:-2;pointer-events:none;background:
linear-gradient(90deg,rgba(6,17,20,.58) 0%,rgba(6,17,20,.26) 33%,rgba(6,17,20,.04) 62%,rgba(6,17,20,.20) 100%),
linear-gradient(0deg,rgba(4,11,13,.44) 0%,transparent 35%,rgba(4,11,13,.10) 100%)}
.gateway.night .gateway-bg{background-image:url("../assets/backgrounds/gateway/login-desktop-night.webp");filter:saturate(.92) brightness(.92)}
.brand{position:absolute;top:28px;left:32px;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border:1px solid rgba(255,255,255,.20);border-radius:18px;background:rgba(13,25,29,.34);backdrop-filter:blur(16px);box-shadow:0 12px 35px rgba(0,0,0,.16)}
.brand-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.16);font-weight:800;font-size:1.2rem}
.brand strong,.brand span{display:block}
.brand strong{font-size:.95rem;letter-spacing:.01em}
.brand span{margin-top:2px;font-size:.72rem;color:rgba(255,255,255,.68)}
.icon-button{border:1px solid rgba(255,255,255,.22);color:#fff;background:rgba(13,25,29,.34);backdrop-filter:blur(16px);box-shadow:0 12px 35px rgba(0,0,0,.16)}
.night-toggle{position:absolute;top:28px;right:32px;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-size:1.25rem;transition:transform .2s ease,background .2s ease}
.night-toggle:hover{transform:translateY(-2px);background:rgba(13,25,29,.52)}
.login-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(430px,calc(100vw - 56px));padding:28px;border:1px solid rgba(255,255,255,.24);border-radius:28px;background:rgba(12,23,27,.54);backdrop-filter:blur(22px) saturate(1.15);box-shadow:0 24px 70px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.14)}
.eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.14em;color:rgba(255,255,255,.70)}
.login-card h1{margin:9px 0 9px;font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.05;letter-spacing:-.035em}
.lead{font-size:.9rem;line-height:1.55;color:rgba(255,255,255,.76);margin-bottom:22px}
.field{display:block;margin-bottom:13px}
.field span{display:block;margin:0 0 7px;font-size:.75rem;font-weight:700;color:rgba(255,255,255,.82)}
.field input{width:100%;height:48px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.09);color:#fff;outline:none;transition:border-color .2s,background .2s,box-shadow .2s}
.field input::placeholder{color:rgba(255,255,255,.43)}
.field input:focus{border-color:rgba(255,255,255,.62);background:rgba(255,255,255,.13);box-shadow:0 0 0 4px rgba(255,255,255,.06)}
.primary-button{width:100%;height:50px;margin-top:5px;border:0;border-radius:15px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.93);color:#182329;font-weight:800;box-shadow:0 10px 28px rgba(0,0,0,.20);transition:transform .2s,box-shadow .2s}
.primary-button:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.27)}
.form-status{min-height:19px;margin-top:10px;font-size:.76rem;color:rgba(255,255,255,.72)}
.login-footer{display:flex;align-items:center;gap:8px;margin-top:17px;padding-top:14px;border-top:1px solid rgba(255,255,255,.13);font-size:.68rem;color:rgba(255,255,255,.55)}
.dot{opacity:.45}
.world-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.world-choice{text-align:left;min-height:145px;padding:18px;border:1px solid rgba(255,255,255,.15);border-radius:20px;background:rgba(255,255,255,.07);color:#fff;transition:transform .2s,border-color .2s,background .2s}
.world-choice:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.12)}
.world-symbol{display:grid;place-items:center;width:42px;height:42px;margin-bottom:20px;border-radius:13px;background:rgba(255,255,255,.11);font-size:1.25rem}
.world-choice strong,.world-choice small{display:block}
.world-choice strong{font-size:.95rem}
.world-choice small{margin-top:4px;color:rgba(255,255,255,.58)}
@media(max-width:800px){
  .gateway-bg{background-image:url("../assets/backgrounds/gateway/login-mobile-day.webp")}
  .gateway.night .gateway-bg{background-image:url("../assets/backgrounds/gateway/login-mobile-night.webp")}
  .gateway-vignette{background:linear-gradient(0deg,rgba(5,13,16,.68) 0%,rgba(5,13,16,.10) 48%,rgba(5,13,16,.18) 100%)}
  .brand{top:16px;left:16px;padding:8px 11px 8px 8px;border-radius:15px}
  .brand-icon{width:34px;height:34px;border-radius:11px}
  .brand strong{font-size:.82rem}.brand span{font-size:.64rem}
  .night-toggle{top:16px;right:16px;width:43px;height:43px;border-radius:13px}
  .login-card{left:50%;right:auto;top:auto;bottom:14px;transform:translateX(-50%);width:75%;max-width:340px;padding:19px;border-radius:21px;background:rgba(10,20,24,.66)}
  .login-card h1{font-size:1.65rem}
  .lead{font-size:.82rem;margin-bottom:17px}
  .field input{height:46px}
  .login-footer{font-size:.62rem}
}
@media(max-width:430px){
  .login-card{width:75%;padding:17px}
  .login-card h1{font-size:1.48rem}
  .login-footer{gap:5px}
  .world-grid{grid-template-columns:1fr}
}

[hidden]{display:none!important}
.world-view{padding:30px}
.world-view h2{margin:9px 0;font-size:clamp(1.65rem,3vw,2.15rem);line-height:1.08;letter-spacing:-.03em}
.back-button{border:0;background:transparent;color:rgba(255,255,255,.7);padding:0;margin:0 0 20px;font-size:.78rem;font-weight:700}
.back-button:hover{color:#fff}
.world-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.world-choice{text-align:left;min-height:128px;padding:16px;border:1px solid rgba(255,255,255,.15);border-radius:18px;background:rgba(255,255,255,.07);color:#fff;transition:transform .2s,border-color .2s,background .2s}
.world-choice:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.12)}
.world-symbol{display:grid;place-items:center;width:40px;height:40px;margin-bottom:16px;border-radius:12px;background:rgba(255,255,255,.11);font-size:1.15rem}
.world-choice strong,.world-choice small{display:block}
.world-choice strong{font-size:.9rem}
.world-choice small{margin-top:4px;color:rgba(255,255,255,.58)}
@media(max-width:430px){.world-grid{grid-template-columns:1fr}.world-view{padding:21px}}

.primary-button:disabled{opacity:.72;cursor:wait;transform:none!important}
.field input:disabled{opacity:.72;cursor:wait}


/* v10.5.2: never let the gateway artwork show through an active learning world. */
.gateway.world-active > .gateway-bg,
.gateway.world-active > .gateway-vignette,
.gateway.world-active > .brand,
.gateway.world-active > #night-toggle,
.gateway.world-active > #login-view,
.gateway.world-active > #world-view{
  visibility:hidden;
  pointer-events:none;
}
