/* Keep the main navigation label readable at every viewport width. */
html.portal-home-page body .portal-site-button {
  font-size:15px!important;
  font-weight:700!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
html.portal-home-page body .portal-site-button:after { display:none!important; }

/* On small screens, give the globe and all twelve destinations room to scroll. */
@media (max-width:900px) {
  html.portal-home-page,html.portal-home-page body { height:auto!important;min-height:100%;overflow-x:hidden!important;overflow-y:auto!important; }
  html.portal-home-page body .page { min-height:100svh!important;overflow:hidden!important;padding-bottom:env(safe-area-inset-bottom); }
  html.portal-home-page body .page>.portal-home-topbar { position:sticky!important;top:0!important;height:64px!important;min-height:64px!important;grid-template-rows:64px!important;padding:0 16px!important;z-index:5000!important; }
  html.portal-home-page body .page>.hero-copy { position:relative!important;inset:auto!important;transform:none!important;width:100%!important;max-width:680px!important;margin:0 auto!important;padding:42px 20px 16px!important;text-align:left!important; }
  html.portal-home-page body .hero-copy h1 { font-size:clamp(36px,7.8vw,64px)!important; }
  html.portal-home-page body .subtitle { font-size:15px!important;line-height:1.6!important;max-width:52ch!important; }
  html.portal-home-page body .hero-actions { display:flex!important;flex-wrap:wrap!important;gap:12px!important; }
  html.portal-home-page body .hero-actions .lesson-cta { min-height:48px!important;max-width:100%!important;white-space:normal!important;text-align:center!important; }
  html.portal-home-page body .page>.stage { position:relative!important;inset:auto!important;width:100%!important;height:auto!important;aspect-ratio:auto!important;transform:none!important;margin:0 auto!important;padding:0 20px 36px!important;max-width:680px!important; }
  html.portal-home-page body .stage>.globe-wrap { position:relative!important;inset:auto!important;width:min(80vw,460px)!important;aspect-ratio:1!important;margin:20px auto 34px!important; }
  html.portal-home-page body .stage>.pins { position:relative!important;inset:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;width:100%!important;pointer-events:auto!important; }
  html.portal-home-page body .pins>.pin { position:relative!important;inset:auto!important;transform:none!important;display:flex!important;align-items:stretch!important;justify-content:center!important;min-width:0!important;min-height:52px!important;height:auto!important;padding:0!important;border:0!important;border-radius:16px!important;background:transparent!important;box-shadow:none!important; }
  html.portal-home-page body .pins>.pin .dot { display:none!important; }
  html.portal-home-page body .pins>.pin span:last-child { display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;margin:0!important;padding:12px 10px!important;border:1px solid rgba(255,255,255,.9)!important;border-radius:16px!important;background:rgba(255,255,255,.8)!important;box-shadow:0 10px 24px rgba(7,75,126,.13)!important;font-size:14px!important;line-height:1.35!important;white-space:normal!important;text-align:center!important; }
  html.portal-home-page body .stage>:is(.orbit,.path,.atmosphere) { display:none!important; }
  html.portal-home-page body .stage>.stage-glow { inset:0 10% 45%!important; }
  html.portal-home-page body .globe { touch-action:pan-y; }
  html.portal-home-page body .meta { display:none!important; }
  html.portal-home-page body .portal-site-panel { position:fixed!important;top:72px!important;left:12px!important;right:12px!important;width:auto!important;max-height:calc(100svh - 84px)!important; }
  html.portal-home-page body .portal-site-panel a { min-height:44px!important;font-size:14px!important; }
  html.portal-home-page body .portal-site-button { min-height:44px!important; }
}
@media(max-width:720px) {
  html.portal-home-page body .portal-home-topbar .brand>span:last-child { display:none!important; }
}
@media(max-width:420px) {
  html.portal-home-page body .page>.hero-copy { padding:32px 16px 12px!important; }
  html.portal-home-page body .page>.stage { padding-inline:16px!important; }
  html.portal-home-page body .hero-actions { flex-direction:column!important;align-items:stretch!important; }
  html.portal-home-page body .pins>.pin { min-height:56px!important; }
  html.portal-home-page body .pins>.pin span:last-child { font-size:13px!important; }
}

/* Reserve a clear text column before the globe on desktop screens. */
@media (min-width:901px) {
  html.portal-home-page body .page>.hero-copy { width:40vw!important;max-width:620px!important; }
  html.portal-home-page body .hero-copy h1 { font-size:clamp(52px,5.4vw,90px)!important; }
  html.portal-home-page body .page>.stage {
    width:min(63vw,calc(100svh + 80px),900px)!important;
    right:max(calc(24px - 6vw),calc(24px - .12 * min(63vw,calc(100svh + 80px),900px)))!important;
    container-type:inline-size;
  }
  html.portal-home-page body .portal-home-topbar .top-actions {
    justify-self:start!important;margin-left:clamp(12px,2vw,28px)!important;
  }
  /* Positions and label sizes share the same globe-based coordinate system. */
  html.portal-home-page body .stage>.pins { inset:12%!important; }
  html.portal-home-page body .pins>.pin { gap:1.4cqw!important; }
  html.portal-home-page body .pins>.pin span:last-child {
    font-size:2.1cqw!important;
    line-height:1.25!important;
    margin:0 0 0 3.25cqw!important;
    padding:1.4cqw 1.98cqw!important;
  }
  html.portal-home-page body .pins>.pin .dot {
    width:1.28cqw!important;height:1.28cqw!important;
    box-shadow:0 0 0 .7cqw rgba(255,255,255,.72),0 0 0 1.05cqw rgba(5,115,190,.16)!important;
  }
  html.portal-home-page body .pins>.pin .dot:after {
    width:5.6cqw!important;height:.23cqw!important;left:1.28cqw!important;top:.47cqw!important;
  }
  html.portal-home-page body .pins>.p1 {left:30%!important;top:20%!important;}
  html.portal-home-page body .pins>.p2 {left:58%!important;top:14%!important;}
  html.portal-home-page body .pins>.p3 {left:73%!important;top:25%!important;}
  html.portal-home-page body .pins>.p4 {left:47%!important;top:34%!important;}
  html.portal-home-page body .pins>.p5 {left:62%!important;top:54%!important;}
  html.portal-home-page body .pins>.p6 {left:26%!important;top:73%!important;}
  html.portal-home-page body .pins>.p7 {left:50%!important;top:65%!important;}
  html.portal-home-page body .pins>.p8 {left:76%!important;top:73%!important;}
  html.portal-home-page body .pins>.p9 {left:35%!important;top:84%!important;}
  html.portal-home-page body .pins>.p10 {left:66%!important;top:84%!important;}
  html.portal-home-page body .pins>.p11 {left:23%!important;top:47%!important;}
  html.portal-home-page body .pins>.p12 {left:73%!important;top:43%!important;}
  html.portal-home-page body .pins>.pin:is(:hover,:focus-visible) {
    transform:translate(-50%,-50%)!important;
  }
}

/* Keep hover/focus from enlarging touch cards into their neighbours. */
@media (max-width:900px) {
  html.portal-home-page body .pins>.pin:is(:hover,:focus-visible) { transform:none!important; }
}
