* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
section[id], header, #cta { scroll-margin-top: 84px; }
body { font-family: 'Figtree', system-ui, sans-serif; color: #0b3160; background: #ffffff; -webkit-font-smoothing: antialiased; }
a { color: #0090f0; text-decoration: none; }
a:hover { color: #0b3160; }
::selection { background: #cdeafd; }
image-slot { width:100%; height:100%; display:block; }

@keyframes hubNodePop { from { opacity:0; transform:translate(-50%,-50%) scale(0.35); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
@keyframes hubLineIn { from { opacity:0; } to { opacity:0.85; } }
@keyframes hubFlow { to { stroke-dashoffset:-20; } }
@keyframes revealIn { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
@keyframes slideInL { from { opacity:0; transform:translateX(-56px); } to { opacity:1; transform:translateX(0); } }
@keyframes slideInR { from { opacity:0; transform:translateX(56px); } to { opacity:1; transform:translateX(0); } }
@keyframes popIn { from { opacity:0; transform:translateY(26px) scale(0.92); } to { opacity:1; transform:translateY(0) scale(1); } }
@supports (animation-timeline: view()) {
  .reveal { animation: revealIn linear both; animation-timeline: view(); animation-range: entry 2% entry 42%; }
  .slide-l { animation: slideInL linear both; animation-timeline: view(); animation-range: entry 2% entry 44%; }
  .slide-r { animation: slideInR linear both; animation-timeline: view(); animation-range: entry 2% entry 44%; }
  .pop-in { animation: popIn linear both; animation-timeline: view(); animation-range: entry 4% entry 40%; }
}

@media (max-width: 1279px) {
  .rp-feat { grid-template-columns: 1fr !important; }
  .rp-feat-wide { grid-column: auto !important; }
  .rp-shot { max-width: 70% !important; width: auto !important; margin-left: 0 !important; margin-right: auto !important; }
  .rp-logos { max-width: 560px !important; }
}
@media (max-width: 1279px) {
  .rp-split { grid-template-columns: 1fr !important; gap: 40px !important; }
  .rp-nosticky { position: static !important; top: auto !important; }
  .rp-herocopy { margin-top: 28px !important; }
  .rp-hub { max-width: 440px !important; margin: 8px auto 0 0 !important; }
  .rp-motif { left: auto !important; right: -410px !important; }
  .rp-ai-shot { width: 100% !important; }
}
@media (max-width: 860px) {
  .rp-navlinks { display: none !important; }
  .rp-nav-cta { display: none !important; }
  .rp-burger { display: flex !important; }
  .rp-hero { padding: 44px 20px 72px !important; }
  .rp-h1 { font-size: 46px !important; line-height: 1.14 !important; }
  .rp-h2 { font-size: 30px !important; }
  .rp-sec { padding: 60px 20px !important; }
  .rp-nav { padding-left: 20px !important; padding-right: 20px !important; }
  .rp-hero-split { margin-top: 18px !important; }
  .rp-motif { display: none !important; }
  .rp-lede { font-size: 23px !important; }
  .rp-hero-body { font-size: 18px !important; }
  .rp-hex-out { width: 96px !important; height: 110px !important; }
  .rp-hex-in { width: 92px !important; height: 106px !important; }
  .rp-bframe { padding: 6px 10px !important; gap: 5px !important; }
  .rp-bframe span { width: 7px !important; height: 7px !important; }
  .rp-hero-btns a { padding-left: 16px !important; padding-right: 16px !important; justify-content: center !important; text-align: center !important; }
  .rp-herocopy { margin-top: 0 !important; }
  .rp-shot { max-width: 100% !important; }
  .rp-logos { grid-template-columns: repeat(2, 1fr) !important; }
  .rp-who { grid-template-columns: repeat(2, 1fr) !important; }
  .rp-cta { padding: 48px 24px !important; }
  .rp-ctah2 { font-size: 34px !important; }
}
@media (max-width: 480px) {
  .rp-h1 { font-size: 38px !important; }
  .rp-who { grid-template-columns: 1fr 1fr !important; }
}

/* --- CSS-only mobile nav (no JavaScript) --- */
.rp-nav-toggle { display: none; }
.rp-mobile-menu { display: none; }
.rp-nav-toggle:checked ~ .rp-mobile-menu { display: flex; }
@media (min-width: 861px) {
  .rp-mobile-menu { display: none !important; }
  .rp-burger { display: none !important; }
}
