/* GarudaScholar marketing landing + sign-in
   Layout system: shared rail, 8px rhythm, equal hero columns, soft dawn sky. */

html:has(#gate.gate),
body:has(#gate.gate){
  height:auto;
  min-height:100%;
  overflow-x:hidden;
  overflow-y:auto;
}

.gate{
  --lp-rail:1080px;
  --lp-hero-rail:920px;
  --lp-content-rail:880px;
  --lp-gutter:clamp(24px,5vw,40px);
  --lp-space-1:8px;
  --lp-space-2:16px;
  --lp-space-3:24px;
  --lp-space-4:32px;
  --lp-space-5:48px;
  --lp-space-6:64px;
  --lp-space-7:80px;
  --lp-ink:#1E2235;
  --lp-ink-2:#4B5168;
  --lp-ink-3:#8A90A6;
  --lp-line:#E6E8F0;
  --lp-brand:#2F6BFF;
  --lp-brand-d:#1D4ED8;
  --lp-gold:#F5B63F;
  --lp-r:16px;

  min-height:100vh;
  background:#F7F8FC;
  color:var(--lp-ink);
  font-family:"Nunito",ui-rounded,system-ui,sans-serif;
  font-weight:600;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.gate *{box-sizing:border-box}
.gate a{color:inherit;text-decoration:none}
.gate button{font:inherit}

.lp-rail{
  width:min(var(--lp-rail),100%);
  margin-inline:auto;
  padding-inline:var(--lp-gutter);
}

.lp-skip{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.lp-skip:focus{
  left:var(--lp-space-2);top:var(--lp-space-2);width:auto;height:auto;z-index:40;
  padding:10px 14px;background:#fff;border-radius:12px;font-weight:800;
  outline:3px solid var(--lp-brand);
}

/* ---------- hero ---------- */
.lp-hero{
  position:relative;
  min-height:100svh;
  display:grid;
  grid-template-rows:auto 1fr auto;
  color:#fff;
  isolation:isolate;
  overflow:hidden;
}

.lp-sky{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 70% 45% at 78% 18%, rgba(255,255,255,.12) 0%, transparent 55%),
    radial-gradient(ellipse 85% 40% at 50% 100%, rgba(245,182,63,.42) 0%, transparent 60%),
    linear-gradient(180deg,
      #0B1F4A 0%,
      #15408F 34%,
      #2F6BFF 62%,
      #5B96FF 82%,
      #B8D0FF 94%,
      #F5C96A 100%);
  animation:lp-sky-shift 18s ease-in-out infinite alternate;
}
@keyframes lp-sky-shift{
  from{filter:saturate(1) brightness(1)}
  to{filter:saturate(1.06) brightness(1.03)}
}

.lp-clouds{
  position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;
}
.lp-cloud{
  position:absolute;
  background:rgba(255,255,255,.16);
  border-radius:999px;
  filter:blur(1px);
  animation:lp-drift linear infinite;
}
.lp-cloud::before,.lp-cloud::after{
  content:"";position:absolute;border-radius:999px;background:inherit;
}
.lp-c1{width:180px;height:48px;top:16%;left:-8%;animation-duration:42s}
.lp-c1::before{width:90px;height:58px;top:-28px;left:28px}
.lp-c1::after{width:70px;height:44px;top:-18px;left:90px}
.lp-c2{width:220px;height:52px;top:26%;right:-12%;animation-duration:54s;animation-direction:reverse;opacity:.65}
.lp-c2::before{width:100px;height:64px;top:-30px;left:36px}
.lp-c2::after{width:72px;height:46px;top:-18px;left:110px}
.lp-c3{width:130px;height:34px;top:42%;left:12%;animation-duration:48s;opacity:.4}
.lp-c3::before{width:64px;height:40px;top:-18px;left:20px}
@keyframes lp-drift{
  from{transform:translateX(0)}
  to{transform:translateX(28vw)}
}

.lp-nav{
  position:relative;z-index:3;
  padding-block:var(--lp-space-3);
}
.lp-nav .lp-rail{
  display:flex;align-items:center;justify-content:space-between;
  min-height:44px;
}
.lp-nav-brand{
  display:inline-flex;align-items:center;gap:10px;
  font-weight:900;font-size:15px;letter-spacing:-.01em;
}
.lp-nav-mark{
  width:28px;height:28px;border-radius:8px;overflow:hidden;
  background:var(--lp-gold);display:grid;place-items:center;flex:none;
}
.lp-nav-mark img{width:100%;height:100%;display:block}
.lp-lang{
  display:inline-flex;gap:2px;padding:3px;
  background:rgba(255,255,255,.14);border-radius:12px;backdrop-filter:blur(8px);
}
.lp-lang button{
  border:0;background:transparent;color:rgba(255,255,255,.78);
  font-weight:800;font-size:13px;min-width:40px;min-height:36px;
  padding:0 12px;border-radius:9px;cursor:pointer;
  transition:background-color .15s ease,color .15s ease;
}
.lp-lang button.on{background:#fff;color:#15408F}
.lp-lang button:hover:not(.on){color:#fff}

.lp-hero-body{
  position:relative;z-index:3;
  width:min(var(--lp-hero-rail),100%);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(24px,3.5vw,40px);
  padding-block:var(--lp-space-3);
}

.lp-copy{
  flex:0 1 auto;
  width:min(100%,26rem);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.lp-brand{
  margin:0 0 12px;
  font-size:clamp(36px,4.6vw,52px);
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.02;
  text-wrap:balance;
  text-shadow:0 2px 20px rgba(11,31,74,.22);
}
.lp-headline{
  margin:0 0 12px;
  font-size:clamp(19px,2vw,24px);
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.015em;
  text-wrap:balance;
  color:rgba(255,255,255,.95);
  max-width:26ch;
}
.lp-lead{
  margin:0 0 var(--lp-space-4);
  font-size:16.5px;
  font-weight:650;
  line-height:1.55;
  color:rgba(255,255,255,.88);
  text-wrap:pretty;
  max-width:32ch;
}
.lp-cta{
  display:flex;
  flex-wrap:wrap;
  gap:var(--lp-space-2);
  align-items:center;
}

.google-btn{
  height:54px;padding:0 24px;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  border-radius:var(--lp-r);
  border:2px solid #fff;
  border-bottom-width:4px;
  background:#fff;color:var(--lp-ink);
  font-weight:850;font-size:16.5px;cursor:pointer;
  transition:transform .08s ease,background-color .15s ease;
}
.google-btn:hover{background:#F7F8FB}
.google-btn:active{transform:translateY(2px);border-bottom-width:2px}
.google-btn:disabled{opacity:.6;cursor:not-allowed}
.google-btn svg{flex:none}

.gate-err{
  margin-top:var(--lp-space-2);font-size:14px;font-weight:800;
  color:#FFE8E0;background:rgba(210,59,59,.35);
  display:inline-block;padding:8px 12px;border-radius:10px;
}

.lp-mascot{
  flex:0 0 auto;
  position:relative;
  width:clamp(240px,30vw,320px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
}
.lp-mascot-glow{
  position:absolute;
  inset:14%;
  background:radial-gradient(circle,rgba(255,243,214,.55) 0%, transparent 70%);
  animation:lp-pulse 3.6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes lp-pulse{
  0%,100%{transform:scale(1);opacity:.85}
  50%{transform:scale(1.05);opacity:1}
}
.lp-mascot .jaya{
  position:relative;z-index:1;
  width:88%;
  height:auto;
  filter:drop-shadow(0 16px 24px rgba(11,31,74,.25));
  animation:lp-float 4.2s ease-in-out infinite;
}
@keyframes lp-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

.lp-scroll{
  position:relative;z-index:3;
  display:flex;justify-content:center;
  padding-block:var(--lp-space-3) var(--lp-space-4);
}
.lp-scroll a{
  width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;
  color:var(--lp-ink);background:rgba(255,255,255,.9);
  transition:transform .15s ease;
  animation:lp-bob 1.8s ease-in-out infinite;
}
.lp-scroll a:hover{transform:translateY(2px)}
@keyframes lp-bob{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(4px)}
}

@media (max-width:860px){
  .lp-hero-body{
    flex-direction:column;
    text-align:center;
    padding-block:var(--lp-space-2) var(--lp-space-3);
    gap:var(--lp-space-3);
  }
  .lp-copy{
    align-items:center;
    width:min(100%,22rem);
    max-width:none;
    order:2;
  }
  .lp-headline,.lp-lead{margin-inline:auto}
  .lp-cta{justify-content:center}
  .lp-mascot{
    order:1;
    width:min(188px,48vw);
  }
  .lp-brand{font-size:clamp(34px,9vw,46px);margin-bottom:10px}
  .lp-headline{font-size:clamp(18px,4.6vw,22px);max-width:22ch;margin-bottom:10px}
  .lp-lead{font-size:16px;margin-bottom:var(--lp-space-3);max-width:30ch}
  .lp-hero-body{gap:14px}
}

@media (prefers-reduced-motion:reduce){
  .lp-sky,.lp-cloud,.lp-mascot .jaya,.lp-mascot-glow,.lp-scroll a{animation:none}
}

/* ---------- sections ---------- */
.lp-section{
  width:min(var(--lp-content-rail),100%);
  margin-inline:auto;
  padding:var(--lp-space-6) var(--lp-gutter);
}
.lp-section-head{
  max-width:34rem;
  margin-bottom:var(--lp-space-4);
}
.lp-section h2{
  margin:0 0 10px;
  font-size:clamp(24px,3vw,32px);
  font-weight:900;
  letter-spacing:-.025em;
  line-height:1.15;
  text-wrap:balance;
  color:var(--lp-ink);
}
.lp-section .lp-sub,
.lp-section-head .lp-sub{
  margin:0;
  color:var(--lp-ink-2);
  font-size:16.5px;
  font-weight:650;
  line-height:1.55;
  text-wrap:pretty;
}

.lp-features{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--lp-space-4) var(--lp-space-4);
  list-style:none;padding:0;margin:0;
}
.lp-features li{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  column-gap:14px;
  align-items:start;
}
.lp-ico{
  width:44px;height:44px;border-radius:13px;
  display:grid;place-items:center;
  color:#fff;flex:none;
  border-bottom:3px solid rgba(0,0,0,.12);
}
.lp-ico svg{width:20px;height:20px}
.lp-ico.b{background:var(--lp-brand)}.lp-ico.g{background:#1FAF78}
.lp-ico.o{background:#FF8A1F}.lp-ico.t{background:#12B5B0}
.lp-features h3{
  margin:0 0 6px;
  font-size:16.5px;font-weight:900;letter-spacing:-.01em;color:var(--lp-ink);
  line-height:1.25;
}
.lp-features p{
  margin:0;color:var(--lp-ink-2);font-size:14.5px;font-weight:650;line-height:1.5;
  text-wrap:pretty;
}

.lp-band{
  background:
    linear-gradient(180deg,rgba(47,107,255,.04),rgba(245,182,63,.08)),
    #fff;
  border-block:1px solid var(--lp-line);
}
.lp-band .lp-section{
  width:min(720px,100%);
  display:grid;
  grid-template-columns:200px minmax(0,1fr);
  column-gap:var(--lp-space-4);
  align-items:center;
}
.lp-band .lp-garu{
  width:180px;height:auto;justify-self:center;
  filter:drop-shadow(0 10px 16px rgba(47,107,255,.12));
}
.lp-band .lp-garu .jaya{width:180px;height:auto;display:block}
.lp-band .lp-section-head{margin-bottom:var(--lp-space-3);max-width:none}
.lp-steps{
  list-style:none;padding:0;margin:0;
  display:grid;gap:14px;
}
.lp-steps li{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  column-gap:12px;
  align-items:center;
  font-size:15px;font-weight:700;color:var(--lp-ink-2);
  line-height:1.35;
}
.lp-steps b{
  width:28px;height:28px;border-radius:10px;
  display:grid;place-items:center;
  background:var(--lp-brand);color:#fff;font-size:13px;font-weight:900;
}

.lp-final{
  text-align:center;
  padding-block:var(--lp-space-6) var(--lp-space-7);
}
.lp-final .lp-section-head{
  margin-inline:auto;
  margin-bottom:var(--lp-space-4);
  max-width:28rem;
}
.lp-final .google-btn{
  border-color:var(--lp-brand-d);
  border-bottom-color:var(--lp-brand-d);
  background:var(--lp-brand);color:#fff;
}
.lp-final .google-btn:hover{background:#4079FF}
.lp-foot{
  margin:var(--lp-space-3) auto 0;
  font-size:13px;font-weight:700;color:var(--lp-ink-3);
  max-width:40ch;line-height:1.5;
}

.gate-spin{
  width:36px;height:36px;margin:20px auto;border-radius:50%;
  border:4px solid #C9D8FF;border-top-color:var(--lp-brand);
  animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.gate > .gate-card{
  min-height:100vh;display:grid;place-items:center;padding:24px;
}

@media (max-width:720px){
  .lp-section{padding-block:var(--lp-space-5)}
  .lp-section-head{margin-bottom:var(--lp-space-3)}
  .lp-features{
    grid-template-columns:1fr;
    gap:var(--lp-space-3);
  }
  .lp-band .lp-section{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    row-gap:var(--lp-space-2);
  }
  .lp-band .lp-section-head{margin-inline:auto}
  .lp-steps{width:100%;max-width:22rem;margin-inline:auto}
  .lp-steps li{
    grid-template-columns:28px minmax(0,1fr);
    text-align:left;
  }
  .lp-band .lp-garu{width:140px}
  .lp-band .lp-garu .jaya{width:140px}
}
