/* Space School — Launch Pad (login) */
.ssl-login-page{overflow-x:hidden}
.lp{min-height:100vh;min-height:100dvh}
.lp-scene{position:relative;min-height:calc(100dvh - 73px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:20px;max-width:1280px;margin:0 auto;padding:20px 24px 30px;transition:transform 1s cubic-bezier(.7,0,.3,1),opacity 1s}
.lp-planet{position:fixed;right:-140px;top:90px;width:420px;opacity:.55;animation:lpspin 120s linear infinite;pointer-events:none;z-index:0;filter:drop-shadow(0 0 60px rgba(124,92,255,.5))}
@keyframes lpspin{to{transform:rotate(360deg)}}

/* robots drifting across the sky */
.lp-bots{position:fixed;inset:0;pointer-events:none;z-index:0}
.lp-bot{position:absolute;width:64px;opacity:.75;filter:drop-shadow(0 8px 14px rgba(0,0,0,.4));animation:lpdrift calc(18s + var(--i) * 3s) ease-in-out infinite alternate;animation-delay:calc(var(--i) * -2.3s)}
.lp-bot:nth-child(1){left:6%;top:16%}.lp-bot:nth-child(2){left:20%;top:70%}.lp-bot:nth-child(3){left:44%;top:12%}.lp-bot:nth-child(4){left:88%;top:70%}
.lp-bot:nth-child(5){left:70%;top:22%}.lp-bot:nth-child(6){left:4%;top:48%}.lp-bot:nth-child(7){left:56%;top:84%}.lp-bot:nth-child(8){left:32%;top:36%;width:48px;opacity:.5}
@keyframes lpdrift{0%{transform:translate(0,0) rotate(-8deg)}50%{transform:translate(30px,-26px) rotate(6deg)}100%{transform:translate(-20px,18px) rotate(-4deg)}}

/* launch pad */
.lp-pad{position:relative;z-index:1;height:min(560px,72vh);display:flex;align-items:flex-end;justify-content:center}
.lp-base{position:absolute;bottom:40px;left:50%;width:min(420px,80%);height:34px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.22),rgba(255,255,255,.05) 70%,transparent);box-shadow:0 0 80px rgba(94,224,255,.25)}
.lp-base::after{content:"";position:absolute;left:50%;top:-6px;width:150px;height:16px;transform:translateX(-50%);border-radius:10px;background:linear-gradient(#3a4a7a,#1b2550);border:2px solid rgba(255,255,255,.25)}
.lp-rocket{position:absolute;left:50%;bottom:58px;width:min(190px,34%);transform:translateX(-50%);z-index:2;transition:transform 1.6s cubic-bezier(.6,0,.4,1)}
.lp-rocket-img{position:relative;z-index:2;display:block;width:100%;animation:lpidle 3.2s ease-in-out infinite;filter:drop-shadow(0 14px 22px rgba(0,0,0,.45))}
@keyframes lpidle{50%{transform:translateY(-6px)}}
.lp-flame{position:absolute;left:50%;top:86%;width:42%;transform:translateX(-50%) scaleY(.45);transform-origin:top center;z-index:1;opacity:.85;animation:lpflick .18s ease-in-out infinite alternate;transition:transform .5s,width .5s}
@keyframes lpflick{to{filter:brightness(1.25);transform:translateX(-50%) scaleY(.52)}}
.lp-smoke{position:absolute;left:50%;top:92%;width:0;height:0}
.lp-smoke i{position:absolute;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.75),rgba(255,255,255,0) 70%);opacity:0}
.lp-crew{position:absolute;inset:0;pointer-events:none}
.lp-kid{position:absolute;bottom:34px;width:min(150px,24%);filter:drop-shadow(0 12px 16px rgba(0,0,0,.45));animation:lpsway 3.6s ease-in-out infinite;transform-origin:bottom center}
.lp-kid.k0{left:2%;animation-delay:-.4s}.lp-kid.k1{left:18%;bottom:60px;width:min(128px,20%);animation-delay:-1.3s}
.lp-kid.k2{right:18%;bottom:60px;width:min(128px,20%);animation-delay:-2.1s}.lp-kid.k3{right:2%;animation-delay:-.9s}
@keyframes lpsway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg) translateY(-6px)}}
.lp-count{position:absolute;left:50%;top:18%;transform:translateX(-50%);z-index:5;font:700 110px Fredoka,sans-serif;color:#ffd36b;text-shadow:0 0 40px rgba(245,166,35,.8)}
.lp-count.tick{animation:lptick .32s ease-out}
@keyframes lptick{from{transform:translateX(-50%) scale(1.8);opacity:0}}

/* console */
.lp-console{position:relative;z-index:2}
.lp-card{width:min(440px,100%);margin-left:auto;padding:28px 26px 22px;border-radius:30px;background:linear-gradient(165deg,rgba(28,38,110,.86),rgba(10,16,60,.9));border:1px solid rgba(255,255,255,.18);box-shadow:0 40px 90px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:lpin .8s cubic-bezier(.2,.9,.3,1) both}
@keyframes lpin{from{opacity:0;transform:translateY(30px) scale(.97)}}
.lp-kicker{margin:0;color:var(--sky);font-weight:800;font-size:13.5px;letter-spacing:.4px}
.lp-card h1{font-size:clamp(30px,3.4vw,42px);margin:6px 0 6px;line-height:1.1}
.lp-card h1 span{background:linear-gradient(90deg,#ffd36b,#ff8a3d);-webkit-background-clip:text;background-clip:text;color:transparent}
.lp-sub{margin:0 0 18px;color:var(--muted);font-weight:700}
.lp-field{display:block;margin-bottom:14px}
.lp-field>span{display:block;margin-bottom:6px;font-weight:800;font-size:14px;color:#dfe5ff}
.lp-field input{width:100%;min-height:52px;padding:12px 16px;border-radius:16px;border:2px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:#fff;font:700 17px "Nunito Sans",sans-serif;letter-spacing:.3px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.lp-field input::placeholder{color:#8a97c9;font-weight:600}
.lp-field input:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(245,166,35,.22);background:rgba(255,255,255,.1)}
.lp-field input.is-bad{border-color:#f87171;box-shadow:0 0 0 4px rgba(248,113,113,.2)}
.lp-pass{position:relative;display:block}
.lp-pass input{padding-right:56px}
.lp-eye{position:absolute;right:8px;top:50%;width:42px;height:42px;margin-top:-21px;border:0;border-radius:12px;background:transparent;color:#fff;font-size:18px;cursor:pointer;opacity:.7}
.lp-eye[aria-pressed="true"]{opacity:1;background:rgba(255,255,255,.1)}
.lp-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 10px}
.lp-check{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:#dfe5ff;cursor:pointer}
.lp-check input{width:18px;height:18px;accent-color:#f5a623}
.lp-link{border:0;background:none;color:var(--sky);font:800 14px "Nunito Sans",sans-serif;cursor:pointer;padding:6px 0}
.lp-forgot{margin:0 0 12px;padding:12px 14px;border-radius:16px;background:rgba(94,224,255,.08);border:1px solid rgba(94,224,255,.3);font-size:14px;color:#dfe5ff}
.lp-forgot p{margin:0 0 6px}.lp-forgot p:last-child{margin:0}
.lp-forgot a{color:#ffd36b;font-weight:800}
.lp-msg{min-height:22px;margin:0 0 10px;color:#fca5a5;font-weight:800;font-size:14.5px}
.lp-msg.ok{color:#86efac}
.lp-go{width:100%;min-height:58px;border:0;border-radius:999px;background:linear-gradient(90deg,#f5a623,#ff8a3d);color:#1b2f6b;font:800 19px "Nunito Sans",sans-serif;cursor:pointer;box-shadow:0 14px 34px rgba(245,166,35,.45);display:flex;align-items:center;justify-content:center;gap:10px;transition:transform .2s,box-shadow .2s}
.lp-go:hover{transform:translateY(-2px);box-shadow:0 20px 40px rgba(245,166,35,.6)}
.lp-go i{font-style:normal;display:inline-block;transition:transform .3s}
.lp-go:hover i{transform:translate(3px,-3px) rotate(-8deg)}
.lp-go[disabled]{opacity:.75;cursor:wait}
.lp-new{margin:14px 0 0;text-align:center;color:var(--muted);font-weight:700;font-size:14px}
.lp-new a{color:#ffd36b;font-weight:800}

/* error: console shakes, rocket coughs */
.lp-card.shake{animation:lpshake .5s}
@keyframes lpshake{20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}
.lp.cough .lp-smoke i{animation:lpcough 1.1s ease-out forwards}
.lp.cough .lp-smoke i:nth-child(2){animation-delay:.1s;--sx:-40px}.lp.cough .lp-smoke i:nth-child(3){animation-delay:.2s;--sx:40px}
@keyframes lpcough{0%{opacity:.9;transform:translate(0,0) scale(.4)}100%{opacity:0;transform:translate(var(--sx,0),30px) scale(1.8)}}

/* LAUNCH: flame grows, smoke billows, rocket flies, crew jumps, scene lifts away */
.lp.launch .lp-flame{transform:translateX(-50%) scaleY(1.6);width:60%;animation:none;opacity:1}
.lp.launch .lp-smoke i{animation:lpbillow 1.4s ease-out forwards}
.lp.launch .lp-smoke i:nth-child(1){--sx:-90px}.lp.launch .lp-smoke i:nth-child(2){--sx:90px;animation-delay:.08s}.lp.launch .lp-smoke i:nth-child(3){--sx:-150px;animation-delay:.16s}.lp.launch .lp-smoke i:nth-child(4){--sx:150px;animation-delay:.24s}.lp.launch .lp-smoke i:nth-child(5){--sx:0;animation-delay:.32s}
@keyframes lpbillow{0%{opacity:.95;transform:translate(0,0) scale(.5)}100%{opacity:0;transform:translate(var(--sx),40px) scale(3.2)}}
.lp.fly .lp-rocket{transform:translate(-50%,-140vh)}
.lp.fly .lp-rocket-img{animation:lpshakefly .08s linear infinite}
@keyframes lpshakefly{50%{transform:translateX(1.5px)}}
.lp.launch .lp-kid{animation:lpjump .55s ease-in-out 3}
@keyframes lpjump{50%{transform:translateY(-26px) rotate(-3deg)}}
.lp.launch .lp-card{transition:transform .6s,opacity .6s;transform:translateY(-20px) scale(.96);opacity:.0}
.lp.lift .lp-scene{transform:translateY(-110vh);opacity:.2}
.lp.lift .stars.s1,.lp.lift .stars.s2{transition:transform 1.2s cubic-bezier(.7,0,.3,1);transform:translateY(-40vh)}
.lp-flash{position:fixed;inset:0;z-index:30;pointer-events:none;background:radial-gradient(circle at 50% 100%,rgba(255,211,107,.6),transparent 60%);opacity:0;transition:opacity .4s}
.lp.launch .lp-flash{opacity:1}
.lp-welcome{position:fixed;left:50%;top:40%;z-index:40;transform:translate(-50%,-50%);font:700 clamp(30px,4vw,52px) Fredoka,sans-serif;color:#fff;text-align:center;text-shadow:0 0 30px rgba(94,224,255,.6);animation:lpin .6s both}

@media (max-width:900px){
  .lp-scene{grid-template-columns:1fr;padding:10px 14px 30px;gap:0}
  .lp-pad{height:300px;order:0}
  .lp-rocket{width:120px;bottom:44px}
  .lp-kid{width:22%!important}.lp-kid.k1,.lp-kid.k2{bottom:46px}
  .lp-base{bottom:30px}
  .lp-card{margin:0 auto}
  .lp-planet{width:260px;right:-110px;top:80px}
  .lp-bot{width:44px}
  .lp-count{font-size:80px;top:6%}
}
@media (prefers-reduced-motion:reduce){
  .lp-planet,.lp-bot,.lp-kid,.lp-rocket-img,.lp-flame{animation:none!important}
  .lp-scene,.lp-rocket{transition:none}
}
/* signed out because the account was opened on another device */
.ssl-kicked{max-width:420px;margin:0 auto 14px;padding:12px 16px;border-radius:16px;background:rgba(255,200,0,.14);color:#ffe08a;font-weight:800;text-align:center;line-height:1.5}
