:root{
  --green:#76E314;
  --dark-green:#3F7A18;
  --black:#111111;
  --ink:#1A1A1A;
  --light:#E9E9E9;
  --white:#FFFFFF;
  --domeW:900px;
  --domeH:450px;
  --nav-h:52px;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{
  background:var(--light);
  font-family:'Montserrat',sans-serif;
  color:var(--ink);
  overflow-x:hidden;
}

/* ===================== NAV ===================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:2000;
  background:rgba(17,17,17,.92);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:0 clamp(16px,3vw,40px);
  height:var(--nav-h);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.auth-btn{
  background:var(--green);color:var(--black);
  font-weight:900;font-size:12px;
  padding:8px 18px;border-radius:999px;text-decoration:none;
  letter-spacing:.5px;white-space:nowrap;justify-self:start;
  transition:transform .15s,box-shadow .15s;
}
.auth-btn:hover{transform:scale(1.04);box-shadow:0 0 18px rgba(118,227,20,.45)}
.nav-links{
  display:flex;gap:clamp(24px,4.5vw,64px);
  list-style:none;justify-self:center;
}
.nav-links a{
  color:#EDEDED;text-decoration:none;font-weight:700;
  font-size:13px;letter-spacing:1.8px;
  position:relative;transition:color .2s;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:-4px;
  width:0;height:2px;background:var(--green);
  transition:width .25s;border-radius:2px;
}
.nav-links a:hover{color:var(--green)}
.nav-links a:hover::after{width:100%}
.donate-btn{
  background:rgba(255,255,255,.06);color:var(--white);
  border:1.5px solid rgba(255,255,255,.18);
  font-weight:700;font-size:12px;padding:8px 16px;
  border-radius:999px;text-decoration:none;white-space:nowrap;
  justify-self:end;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:border-color .2s,background .2s;
}
.donate-btn:hover{border-color:var(--green);background:rgba(118,227,20,.12)}

body.nav-open .nav{
  z-index:2105;
  background:rgba(17,17,17,.97);
}

.nav-toggle{
  display:none;
  width:40px;height:40px;
  border:0;background:transparent;
  padding:8px;cursor:pointer;
  flex-direction:column;justify-content:center;align-items:center;gap:5px;
  justify-self:end;
  z-index:2102;
}
.nav-toggle span{
  display:block;width:22px;height:2px;
  background:var(--white);border-radius:2px;
  transition:transform .25s,opacity .2s;
}
body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nav-open .nav-toggle span:nth-child(2){opacity:0}
body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.nav-overlay{
  position:fixed;inset:0;z-index:2090;
  background:rgba(0,0,0,.5);
  opacity:0;pointer-events:none;
  transition:opacity .28s;
}
body.nav-open .nav-overlay{
  opacity:1;pointer-events:auto;
}
.nav-overlay[hidden]{display:none}
body.nav-open .nav-overlay[hidden]{display:block}

.nav-sidebar{
  position:fixed;
  top:0;left:0;
  width:50vw;
  max-width:50vw;
  height:100vh;height:100dvh;
  z-index:2100;
  background:rgba(17,17,17,.97);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-right:1px solid rgba(118,227,20,.25);
  box-shadow:8px 0 40px rgba(0,0,0,.35);
  transform:translateX(-105%);
  transition:transform .3s cubic-bezier(.22,1,.36,1),visibility 0s linear .3s;
  display:flex;flex-direction:column;
  padding:calc(var(--nav-h) + 16px) 24px 32px;
  padding-top:calc(var(--nav-h) + 16px + env(safe-area-inset-top,0px));
  padding-bottom:calc(32px + env(safe-area-inset-bottom,0px));
  visibility:hidden;
}
body.nav-open .nav-sidebar{
  transform:translateX(0);
  visibility:visible;
  transition:transform .3s cubic-bezier(.22,1,.36,1),visibility 0s linear 0s;
}
.sidebar-head{
  display:none;
  align-items:center;justify-content:space-between;
  gap:12px;margin-bottom:28px;
}
.sidebar-brand{
  font-weight:900;font-size:14px;letter-spacing:-0.02em;
  text-transform:uppercase;color:var(--white);line-height:1.2;
}
.sidebar-brand .f,.sidebar-brand em{color:var(--green);font-style:normal}
.sidebar-close{
  width:36px;height:36px;border:0;border-radius:50%;
  background:rgba(255,255,255,.08);color:var(--white);
  font-size:18px;line-height:1;cursor:pointer;
  flex-shrink:0;
}
.sidebar-close:hover{background:rgba(118,227,20,.2)}
.sidebar-links{
  list-style:none;
  display:flex;flex-direction:column;gap:4px;
  flex:1;
}
.sidebar-links a{
  display:block;
  color:#EDEDED;text-decoration:none;
  font-weight:800;font-size:18px;letter-spacing:2px;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:color .15s,padding-left .15s;
}
.sidebar-links a:hover,.sidebar-links a:active{
  color:var(--green);
  padding-left:8px;
}
.sidebar-actions{
  display:flex;flex-direction:column;gap:12px;
  margin-top:24px;
}
.sidebar-actions .auth-btn,
.sidebar-actions .donate-btn{
  justify-self:stretch;
  text-align:center;
  padding:12px 16px;
  font-size:13px;
}
.sidebar-actions .auth-btn{display:block}
.sidebar-actions .donate-btn{display:block}

/* ===================== HERO ===================== */
#hero-pin{
  height:100vh;
  height:100dvh;
  width:100%;
  position:relative;overflow:hidden;
}
.hero-square{
  position:absolute;
  left:50%;top:50%;
  width:min(88vmin,560px);
  height:min(88vmin,560px);
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  z-index:10;
}
.hero-title{
  font-weight:900;
  line-height:.95;
  letter-spacing:-0.04em;
  text-transform:uppercase;
  font-size:32px;
}
.hero-title .l1{font-size:640%;display:block}
.hero-title .l2{font-size:416%;display:block}
.hero-title .l3{font-size:264%;display:block}
.hero-title .f{color:var(--green)}

.hero-reveal{
  position:absolute;
  left:0;top:34%;
  width:420px;
  box-sizing:border-box;
  padding:0 4px;
  z-index:10;opacity:0;
}
.hero-reveal h2{
  font-weight:900;font-size:18px;
  margin-bottom:10px;line-height:1.35;
}
.hero-reveal p{
  font-size:13px;
  line-height:1.65;color:#444;
}
.hero-cards{
  position:absolute;
  left:50%;bottom:clamp(16px,4vh,48px);
  transform:translateX(-50%);
  display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;
  gap:clamp(12px,1.5vw,20px);
  max-width:calc(100vw - 32px);
  z-index:10;
  padding-bottom:env(safe-area-inset-bottom,0);
}
.card{
  width:min(340px,calc(100vw - 40px));
  border-radius:16px;
  padding:14px 16px;
  display:flex;flex-direction:column;
  background:rgba(255,255,255,.58);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:
    0 12px 40px rgba(0,0,0,.08),
    inset 0 1px 0 rgba(255,255,255,.8);
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.card:hover{
  transform:translateY(-4px);
  border-color:rgba(118,227,20,.5);
  box-shadow:
    0 18px 48px rgba(0,0,0,.12),
    0 0 0 1px rgba(118,227,20,.2),
    inset 0 1px 0 rgba(255,255,255,.8);
}
.card-label{
  display:flex;align-items:center;gap:8px;
  min-height:22px;
  margin-bottom:10px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(17,17,17,.1);
  font-size:9px;
  font-weight:800;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:#555;
}
.card-label-plain::before{
  content:"";
  flex-shrink:0;
  width:14px;height:3px;border-radius:2px;
  background:var(--green);
}
.card-label-accent{
  display:inline-flex;align-items:center;
  background:var(--green);
  color:var(--black);
  font-weight:900;
  letter-spacing:1.2px;
  padding:4px 12px;
  border-radius:999px;
  box-shadow:0 0 16px rgba(118,227,20,.4);
}
.partner-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.partner{
  font-size:clamp(13px,1.3vw,16px);
  font-weight:900;
  letter-spacing:-0.02em;
  text-transform:uppercase;
  color:var(--black);
}
.partner-rule{
  width:1px;
  height:14px;
  background:var(--green);
  opacity:.7;
}
.card-note{
  margin-top:10px;
  padding-top:10px;
  font-size:10px;
  line-height:1.5;
  color:#666;
  font-weight:500;
  border-top:1px solid rgba(17,17,17,.08);
}
.course-list{
  list-style:none;
  display:flex;
  flex-direction:column;
}
.course-list li{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  padding:7px 0;
  border-bottom:1px solid rgba(17,17,17,.08);
}
.course-list li:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.course-list li:first-child{
  padding-top:0;
}
.course-name{
  font-size:12px;
  font-weight:700;
  color:var(--ink);
  line-height:1.3;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.course-src{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:.6px;
  text-transform:uppercase;
  color:var(--dark-green);
  background:rgba(118,227,20,.16);
  padding:3px 9px;
  border-radius:999px;
  white-space:nowrap;
  flex-shrink:0;
}

/* ===================== MAIN PIN ===================== */
#main-pin{
  height:100vh;
  height:100dvh;
  width:100%;
  position:relative;overflow:hidden;
}
#world{
  display:flex;
  width:200vw;
  height:100vh;
  height:100dvh;
  will-change:transform;
}
#stage{
  width:100vw;
  height:100vh;
  height:100dvh;
  flex-shrink:0;
  position:relative;overflow:hidden;
  background:var(--light);
}

.big-title{
  position:absolute;
  left:50%;
  top:auto;
  bottom:calc(var(--domeH) - 0.30em);
  font-weight:900;
  font-size:160px;
  letter-spacing:-0.04em;
  text-transform:uppercase;
  white-space:nowrap;
  line-height:1;
  opacity:0;
  pointer-events:none;
  z-index:1;
}
#text-collect .thin{font-weight:900;text-transform:none}
/* EDUCATE sits behind the dome — same layer as the other titles */
#text-educate{
  color:var(--ink);
  z-index:1;
}

/* Dome — TRUE half circle (h = w/2), covers exactly half the screen width */
#liquid-stage{
  position:absolute;inset:0;
  z-index:2;
  pointer-events:none;
}
#liquid-stage.liquid{filter:url(#goo)}
#dome-wrap{
  position:absolute;
  bottom:0;left:50%;
  width:var(--domeW);
  height:var(--domeH);
  z-index:2;
  overflow:hidden;
}
#dome{
  position:absolute;
  top:0;left:0;
  width:var(--domeW);
  height:var(--domeW);
  border-radius:50%;
  background:var(--green);
}
#dome.shaded{
  background:linear-gradient(180deg,#8FE840 0%,#76E314 50%,#5AB818 100%);
}
#dome.shaded::after{
  content:"";position:absolute;
  left:0;right:0;bottom:0;height:34%;
  background:var(--dark-green);
}

/* Balls — solid default, liquid only while transforming */
#balls-layer{
  position:absolute;inset:0;
  z-index:3;
  pointer-events:none;
}
.ball{
  position:absolute;
  left:0;top:0;
  width:20px;height:20px;
  opacity:0;
  will-change:transform,opacity;
}
.ball-core{
  position:absolute;
  inset:0;
  background:var(--white);
  border-radius:50%;
  box-shadow:0 2px 5px rgba(0,0,0,.12);
  will-change:transform,box-shadow;
}
#liquid-stage.liquid .ball-core{box-shadow:none}

/* Footer / end screen */
#footer-panel{
  width:100vw;
  height:100vh;
  height:100dvh;
  flex-shrink:0;
  background:var(--light);
  position:relative;
  display:flex;
  flex-direction:column;
}
.footer-inner{
  flex:1;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  grid-template-rows:auto 1fr;
  gap:clamp(28px,4vw,56px);
  padding:clamp(72px,10vh,120px) clamp(28px,6vw,90px) clamp(24px,4vh,48px);
  align-content:center;
}
.footer-brand{grid-column:1;grid-row:1}
.footer-logo{
  font-weight:900;
  font-size:clamp(18px,2vw,26px);
  letter-spacing:-0.03em;
  text-transform:uppercase;
  color:var(--black);
  line-height:1.1;
}
.footer-logo .f{color:var(--green)}
.footer-logo em{
  font-style:normal;
  color:var(--green);
}
.footer-tag{
  margin-top:12px;
  max-width:340px;
  font-size:clamp(13px,1.1vw,15px);
  line-height:1.6;
  color:#555;
  font-weight:500;
}
.footer-cta{grid-column:2;grid-row:1;justify-self:end;text-align:right}
.footer-cta h2{
  font-weight:900;
  font-size:clamp(32px,4.2vw,56px);
  line-height:1.05;
  letter-spacing:-0.035em;
  text-transform:uppercase;
  color:var(--black);
  margin-bottom:20px;
}
.footer-btn{
  display:inline-block;
  background:var(--green);
  color:var(--black);
  font-weight:900;
  font-size:13px;
  letter-spacing:1px;
  text-transform:uppercase;
  text-decoration:none;
  padding:14px 32px;
  border-radius:999px;
  transition:transform .15s,box-shadow .15s;
}
.footer-btn:hover{
  transform:scale(1.04);
  box-shadow:0 0 24px rgba(118,227,20,.5);
}
.footer-cols{
  grid-column:1 / -1;
  grid-row:2;
  align-self:end;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(20px,3vw,40px);
  padding-top:clamp(16px,3vh,32px);
  border-top:1px solid rgba(0,0,0,.1);
}
.footer-col h4{
  font-size:11px;
  font-weight:800;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:#888;
  margin-bottom:14px;
}
.footer-col a{
  display:block;
  font-size:14px;
  font-weight:600;
  color:var(--ink);
  text-decoration:none;
  padding:5px 0;
  transition:color .15s;
}
.footer-col a:hover{color:var(--green)}

#footer-panel .green-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 32px;
  min-height:clamp(72px,12vh,96px);
  background:var(--green);
  padding:18px clamp(28px,6vw,90px);
  padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));
  color:var(--white);
}
.bar-left{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 24px;
}
.copyright{
  font-size:13px;
  font-weight:600;
  color:rgba(255,255,255,.92);
}
.bar-links{display:flex;gap:18px}
.bar-links a{
  font-size:13px;
  font-weight:700;
  color:rgba(255,255,255,.92);
  text-decoration:none;
}
.bar-links a:hover{text-decoration:underline}
.bar-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  text-align:right;
}
.credit-label{
  font-size:11px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:rgba(255,255,255,.75);
}
.credit-name{
  font-size:clamp(15px,1.4vw,18px);
  font-weight:900;
  color:var(--white);
}

/* Fallback */
.no-gsap #hero-pin,
.no-gsap #main-pin{height:auto;min-height:100vh;min-height:100dvh;overflow:visible}
.no-gsap .hero-square{position:relative;left:auto;top:auto;margin:110px auto 36px;transform:none}
.no-gsap .hero-reveal{position:relative;left:auto;top:auto;bottom:auto;opacity:1;width:auto;max-width:440px;margin:0 auto 36px;padding:0 20px;transform:none}
.no-gsap .hero-cards{position:relative;left:auto;bottom:auto;transform:none;justify-content:center;margin-bottom:48px;padding-bottom:0}
.no-gsap #world{flex-direction:column;width:100vw;height:auto}
.no-gsap #stage{width:100vw;height:100vh;height:100dvh}
.no-gsap #footer-panel{width:100vw;height:auto;min-height:60vh}
.no-gsap .footer-inner{grid-template-columns:1fr}
.no-gsap .footer-cta{grid-column:1;justify-self:start;text-align:left}
.no-gsap .big-title{opacity:1;position:relative;left:auto;margin:80px auto 20px;text-align:center;transform:none;white-space:normal}
.no-gsap #text-organize,.no-gsap #text-educate{display:none}
.no-gsap .ball{opacity:1}
.no-gsap .ball-core{box-shadow:none}
.no-gsap #dome-wrap{opacity:1}
.no-gsap .card{width:100%;max-width:340px}

/* ===================== RESPONSIVE ===================== */
@media (max-width:900px){
  :root{
    --domeW:560px;
    --domeH:280px;
  }
  .nav-links{gap:clamp(14px,3vw,28px)}
  .nav-links a{font-size:12px;letter-spacing:1.2px}
  .auth-btn{padding:7px 14px;font-size:11px}
  .donate-btn{padding:7px 12px;font-size:11px}
  .hero-title{font-size:24px}
  .big-title{font-size:96px}
  .hero-reveal{
    width:360px;
    max-width:calc(100vw - 32px);
    top:auto;
    bottom:calc(clamp(16px,4vh,48px) + 170px);
  }
  .hero-cards .card{width:min(300px,calc(50vw - 20px))}
  .footer-inner{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    gap:clamp(24px,4vh,40px);
    padding:clamp(64px,8vh,96px) clamp(20px,5vw,48px) clamp(20px,3vh,32px);
  }
  .footer-brand{grid-column:1;grid-row:1}
  .footer-cta{grid-column:1;grid-row:2;justify-self:start;text-align:left}
  .footer-cta h2{font-size:clamp(28px,6vw,44px);margin-bottom:14px}
  .footer-cols{grid-column:1;grid-row:3}
}

@media (max-width:768px){
  .nav{
    grid-template-columns:1fr auto;
    gap:10px;
    padding:0 max(12px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px));
  }
  .nav-links{display:none}
  .nav .donate-btn{display:none}
  .nav-toggle{display:flex}
  .sidebar-head{display:flex}
  .nav-sidebar{
    width:50vw;
    max-width:50vw;
  }
  .hero-cards{
    gap:8px;
    max-width:calc(100vw - 24px);
  }
  .hero-cards .card{
    width:calc(50vw - 16px);
    min-width:0;
    padding:10px 12px;
    border-radius:12px;
  }
  .card-label{font-size:8px;letter-spacing:1.2px;min-height:18px;margin-bottom:6px;padding-bottom:6px;gap:6px}
  .card-label-accent{padding:3px 8px;letter-spacing:.8px}
  .card-note{display:none}
  .course-list li{padding:5px 0;gap:6px}
  .course-name{font-size:11px}
  .course-src{font-size:9px;padding:2px 7px}
  .partner{font-size:12px}
  .partner-row{gap:6px}
}

@media (max-width:640px){
  :root{
    --nav-h:48px;
    --domeW:340px;
    --domeH:170px;
  }
  .nav{
    grid-template-columns:1fr auto;
    gap:8px;
    padding:0 max(12px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px));
  }
  .nav-links{display:none}
  .nav .donate-btn{display:none}
  .nav-toggle{display:flex}
  .nav .auth-btn{padding:7px 12px;font-size:11px}
  .nav-sidebar{
    width:50vw;
    max-width:50vw;
    padding-left:14px;
    padding-right:14px;
  }
  .sidebar-links a{font-size:15px;letter-spacing:1.2px;padding:12px 0}
  .sidebar-brand{font-size:12px}
  .hero-square{
    width:min(86vmin,560px);
    height:min(86vmin,560px);
  }
  .hero-title{font-size:16px}
  .big-title{font-size:clamp(40px,11vw,52px);letter-spacing:-0.03em}
  .hero-reveal{
    left:0;
    right:0;
    width:100%;
    max-width:none;
    top:auto;
    bottom:calc(16px + env(safe-area-inset-bottom,0px) + 132px);
    padding:0 16px;
    box-sizing:border-box;
  }
  .hero-reveal h2{font-size:14px;margin-bottom:6px}
  .hero-reveal p{font-size:11px;line-height:1.5}
  .hero-cards{
    gap:8px;
    bottom:calc(12px + env(safe-area-inset-bottom,0px));
    max-width:calc(100vw - 20px);
    width:calc(100vw - 20px);
    flex-wrap:nowrap;
  }
  .hero-cards .card{
    width:calc(50% - 4px);
    flex:1 1 0;
    min-width:0;
    padding:10px 10px;
    border-radius:12px;
  }
  .card-label{font-size:8px;letter-spacing:1.1px;min-height:16px;margin-bottom:5px;padding-bottom:5px;gap:5px}
  .card-label-accent{padding:3px 7px;letter-spacing:.6px;font-size:8px}
  .partner{font-size:11px}
  .partner-row{gap:5px}
  .card-note{display:none}
  .course-list li{padding:4px 0;gap:5px}
  .course-name{font-size:10px}
  .course-src{font-size:8px;padding:2px 6px}
  .footer-inner{
    padding:clamp(56px,7vh,80px) clamp(16px,5vw,28px) clamp(16px,3vh,28px);
    gap:clamp(20px,3.5vh,32px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .footer-tag{max-width:none}
  .footer-cta h2{font-size:clamp(26px,7vw,36px)}
  .footer-cols{
    grid-template-columns:1fr 1fr;
    gap:16px 12px;
  }
  .footer-col:last-child{grid-column:1 / -1}
  .footer-col a{font-size:13px;padding:4px 0}
  #footer-panel .green-bar{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    min-height:0;
    padding:14px clamp(16px,5vw,28px);
    padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));
  }
  .bar-left{gap:6px 16px}
  .copyright{font-size:11px}
  .bar-links a{font-size:11px}
  .bar-right{align-items:flex-start;text-align:left}
  .credit-label{font-size:10px}
  .credit-name{font-size:14px}
}

@media (max-width:400px){
  :root{
    --domeW:300px;
    --domeH:150px;
  }
  .nav .auth-btn{padding:6px 8px;font-size:10px;letter-spacing:0}
  .nav-sidebar{width:50vw;max-width:50vw}
  .sidebar-links a{font-size:14px;letter-spacing:1px;padding:11px 0}
  .sidebar-actions .auth-btn,
  .sidebar-actions .donate-btn{padding:10px 8px;font-size:11px}
  .hero-title{font-size:14px}
  .big-title{font-size:clamp(34px,10vw,44px)}
  .hero-cards{gap:6px}
  .hero-cards .card{padding:8px 8px}
  .partner:nth-child(n+4){display:none}
  .partner-rule:nth-child(n+4){display:none}
  .footer-cols{grid-template-columns:1fr}
  .footer-col:last-child{grid-column:1}
}

@media (max-height:500px) and (orientation:landscape){
  :root{
    --domeW:260px;
    --domeH:130px;
  }
  .hero-square{
    width:min(42vh,220px);
    height:min(42vh,220px);
  }
  .hero-cards{bottom:8px;gap:6px}
  .hero-cards .card{padding:6px 8px;width:calc(50% - 3px)}
  .card-note{display:none}
  .course-list li:nth-child(n+3){display:none}
  .hero-title{font-size:12px}
  .big-title{font-size:clamp(32px,8vh,48px)}
  .hero-reveal{
    top:calc(var(--nav-h) + 6px);
    bottom:auto;
    width:min(280px,46vw);
    padding:0 8px;
  }
  .hero-reveal h2{font-size:12px;margin-bottom:4px}
  .hero-reveal p{font-size:10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
}
