:root{
  --steel-900:#1E2732;
  --steel-700:#2F3C4A;
  --steel-500:#5F6F7F;
  --steel-300:#AEB8C2;
  --rust-700:#7A2E1C;
  --rust-600:#A23B1F;
  --rust-500:#C24A23;
  --rust-300:#E07A3F;
  --neutral-bg:#F5F6F7;
  --white:#FFFFFF;

  --rp-ink:var(--steel-900);
  --rp-bg:var(--neutral-bg);
  --rp-surface:var(--white);
  --rp-border:#ccd6e2;
  --rp-blue:var(--steel-700);
  --rp-slate:var(--steel-500);
  --rp-rust:var(--rust-600);
  --rp-rust-soft:rgba(162,59,31,.12);
  --rp-focus:var(--rust-600);

  --bg:var(--rp-bg);
  --card:var(--rp-surface);
  --ink:var(--rp-ink);
  --muted:#5f6f82;
  --line:var(--rp-border);
  --pill:#e4ebf3;
  --pillOn:#243b57;
  --pillOnText:#f8fbff;
  --brand:#1c3653;
  --accent:var(--rp-rust);
}
@media (prefers-color-scheme: dark){
  :root{
    --rp-ink:#e8edf5;
    --rp-bg:#111821;
    --rp-surface:#182230;
    --rp-border:#2e3e52;
    --bg:var(--rp-bg);
    --card:var(--rp-surface);
    --ink:var(--rp-ink);
    --muted:#b5c0ce;
    --pill:#1e2d40;
    --pillOn:#3c5f87;
    --pillOnText:#f4f8ff;
    --brand:#e8edf5;
  }
}

*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.5;
  font-weight:500;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  opacity:.028;
  mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.05' numOctaves='1' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='96' height='96' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  background-repeat:repeat;
  background-size:96px 96px;
}
a{color:inherit}

h1,h2,h3,h4,h5,h6{font-weight:800;line-height:1.15;letter-spacing:-.015em;text-transform:capitalize}
h1,h2,h3,.section-title,.section-heading,.card-title{text-align:center}
button,.btn,.btnAlt,.btnQuick,.btnSoft,.adminBtn,.inlineCta,.ctaSmall{
  font-family:inherit;
  text-transform:capitalize;
}

.wrap{max-width:760px;margin:0 auto;padding:18px 14px 32px}
.card{
  background:rgba(255,250,245,.75);
  background-image:linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,245,235,0.65));
  border:1px solid rgba(30,39,50,0.08);
  border-radius:24px;
  padding:18px;
  box-shadow:0 18px 40px rgba(30,39,50,0.10);
}
.topbar{display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.brandCard{
  width:100%;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:24px;
  padding:14px 16px;
  box-shadow:0 1px 0 rgba(14,30,52,.03);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.brandLeft{display:flex;align-items:center;gap:12px;min-width:0}
.brandLogo{height:34px;width:auto;display:block}
.brandText{display:flex;flex-direction:column;gap:2px;min-width:0}
.brandTitle{font-weight:800;line-height:1.05;font-size:16px;color:var(--brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brandSub{font-weight:700;font-size:12px;color:var(--muted);letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brandRight{display:flex;align-items:center;gap:8px;white-space:nowrap}
.brandTag{font-weight:700;font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:capitalize}
.adminBtn{border:1px solid var(--line);background:var(--card);border-radius:999px;font-size:12px;font-weight:700;padding:8px 12px;cursor:pointer;letter-spacing:.01em}

label{display:block;font-weight:700;margin:14px 0 8px;text-transform:capitalize}
input,select,textarea{font-family:inherit;font-weight:500}

.pillRow{display:flex;gap:10px;background:var(--pill);padding:8px;border-radius:20px;border:1px solid var(--line)}
.pill{flex:1;padding:12px 10px;border-radius:16px;border:0;background:transparent;color:var(--ink);font-weight:700;font-size:18px;letter-spacing:.01em;cursor:pointer}
.pill.on{background:var(--pillOn);color:var(--pillOnText)}

.btn,.btnAlt,.btnQuick,.btnSoft,.inlineCta{
  transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease, transform .08s ease;
}
.btn{
  width:100%;padding:18px 16px;border-radius:18px;border:1px solid var(--rp-blue);
  background:var(--rp-blue);color:#fff;font-size:22px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;text-align:center
}
.btnAlt{
  width:100%;padding:16px 14px;border-radius:18px;border:1px solid rgba(162,59,31,.22);
  background:var(--card);color:var(--ink);font-size:18px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;text-align:center
}
.note{margin:12px 0 0;color:var(--muted);font-weight:500}

.btn:hover,.inlineCta:hover,.ctaSmall:hover{box-shadow:0 0 0 3px var(--rp-rust-soft);border-color:var(--rp-rust)}
.btnAlt:hover,.btnQuick:hover,.btnSoft:hover,.adminBtn:hover,.pill:hover{border-color:var(--rp-rust);background-color:rgba(194,74,35,0.08);box-shadow:0 0 0 3px var(--rp-rust-soft)}
.btn:active,.btnAlt:active,.btnQuick:active,.btnSoft:active,.adminBtn:active,.inlineCta:active{transform:translateY(1px)}
.btn:focus-visible,.btnAlt:focus-visible,.btnQuick:focus-visible,.btnSoft:focus-visible,.adminBtn:focus-visible,
.pill:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{
  outline:3px solid var(--rp-focus);
  outline-offset:2px;
}

/* Marketing and landing site */
.rp-theme-marketing{
  --bg:#eef2f5;
  --card:rgba(255,250,245,.75);
  --ink:var(--steel-900);
  --muted:#5f6f7f;
  --line:rgba(47,60,74,.16);
  --brand:var(--steel-900);
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.15) 0%,
      rgba(255,255,255,0.05) 40%,
      rgba(194,74,35,0.05) 100%
    ),
    radial-gradient(circle at 20% 10%, rgba(255,255,255,0.85), transparent 55%),
    radial-gradient(circle at 85% 75%, rgba(194,74,35,0.12), transparent 52%),
    linear-gradient(135deg, #eef2f5 0%, #dde4ea 60%, #f5f3f0 100%);
  position:relative;
}
.rp-theme-marketing::before{
  content:"";
  position:fixed;
  inset:auto -10vw -18vh auto;
  width:min(45vw,480px);
  height:min(45vw,480px);
  background:url('/assets/rapid-logo-A-monogram.png') no-repeat center/contain;
  opacity:.035;
  mix-blend-mode:soft-light;
  pointer-events:none;
  z-index:0;
}

.rp-theme-marketing::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.06;
  mix-blend-mode:soft-light;
  background-image:
    radial-gradient(circle at center, rgba(255,255,255,0) 60%, rgba(30,39,50,0.04) 100%),
    radial-gradient(rgba(174,184,194,.35) 0.6px, transparent 0.6px);
  background-size:4px 4px;
}
.rp-theme-marketing > *{position:relative;z-index:1}


.bg-motion-overlay{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:var(--bg-opacity, .2);
  transform:translate3d(0,0,0);
  will-change:transform, background-position, opacity;
  background-image:
    radial-gradient(70% 62% at calc(18% + var(--bg-shift-x, 0%)) calc(22% + var(--bg-shift-y, 0%)), rgba(194,74,35,0.11), rgba(194,74,35,0) 72%),
    radial-gradient(62% 55% at calc(84% - var(--bg-shift-x, 0%)) calc(72% - var(--bg-shift-y, 0%)), rgba(47,60,74,0.08), rgba(47,60,74,0) 70%),
    radial-gradient(85% 85% at 50% 50%, rgba(255,255,255,0), rgba(30,39,50,0.035));
  background-repeat:no-repeat;
}

@media (prefers-reduced-motion: reduce){
  .bg-motion-overlay{
    --bg-shift-x:0%;
    --bg-shift-y:0%;
    --bg-opacity:.2;
    transform:none;
  }
}

.sitePage{font-weight:500;padding-bottom:calc(112px + env(safe-area-inset-bottom, 0px));}
.siteShell,.siteMain{max-width:1120px;margin:0 auto;padding:0 14px}
.siteHeaderWrap{
  position:sticky;top:0;z-index:120;
  background:rgba(238,242,245,.78);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.siteHeaderInner{max-width:1120px;margin:0 auto;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:18px;position:relative}
.siteBrand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0;flex:1 1 380px;max-width:520px}
.siteBrand img{height:34px;width:auto;flex:0 0 auto}
.brand-block{display:flex;flex-direction:column;gap:2px;min-width:320px}
.siteBrandTitle{font-size:16px;font-weight:800;color:var(--brand);line-height:1.1}
.siteBrandSub{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.08em;white-space:nowrap;line-height:1.2}
.siteHeaderDesktop{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;flex:0 1 auto}
.siteHeaderActions{display:flex;align-items:center;justify-content:flex-end;position:relative;flex:0 0 auto}
.siteNavToggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:4px;width:46px;height:46px;border-radius:14px;border:1px solid rgba(47,60,74,.14);background:rgba(255,255,255,.7);box-shadow:0 10px 22px rgba(30,39,50,.08);cursor:pointer}
.siteNavToggle span{display:block;width:18px;height:2px;border-radius:999px;background:var(--steel-900);transition:transform .18s ease, opacity .18s ease}
.siteNavPanel{display:none;align-items:center}
.siteNav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.siteNav a{padding:10px 12px;border-radius:12px;text-decoration:none;font-size:14px;font-weight:700;color:#f4f7fb;border:1px solid transparent;text-transform:capitalize}
.siteNav a{color:var(--steel-900)}
.siteNav a[aria-current="page"],.siteNav a:hover{background:rgba(255,255,255,.65);border-color:var(--line);box-shadow:inset 0 -2px 0 rgba(194,74,35,.18)}
.ctaSmall{background:linear-gradient(135deg,#2F3C4A,#A23B1F);color:#fff !important;border:1px solid rgba(255,255,255,.24);padding:14px 12px}
.siteHeaderCta,.siteNavPanelCta{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}

.hero{padding:34px 0 24px;position:relative;isolation:isolate;overflow:hidden}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0.85) 0%, rgba(255,248,240,0.65) 100%);
}
.hero-media{position:absolute;inset:0;z-index:-2;pointer-events:none;background:#e6e4e0}
.heroInner,.hero-content{
  max-width:1000px;
  margin:0 auto;
  padding:0;
  text-align:center;
}
.hero-content > *{margin-left:auto;margin-right:auto}
.hero h1{font-size:38px;line-height:1.1;margin:0 0 10px;font-weight:800;max-width:1040px;text-wrap:balance}
.hero p{margin:0 0 10px;color:var(--muted);font-size:18px;line-height:1.5;max-width:68ch}
.hero p:last-of-type{margin-bottom:12px}
.hero .inlineCta{margin-top:0;padding:11px 15px}
.heroScrollCue{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);margin:34px auto 0;cursor:pointer;color:#fff;box-shadow:0 10px 24px rgba(8,12,18,.18);backdrop-filter:blur(6px)}
.heroScrollCue svg{width:22px;height:22px;stroke:currentColor;stroke-width:2.2;fill:none}
.heroScrollCue:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.4)}
.heroScrollCue:focus-visible{outline:2px solid var(--rp-focus);outline-offset:2px}
.heroGrid{display:grid;gap:22px;align-items:start}
.ctaGrid{display:grid;grid-template-columns:1fr;gap:12px;max-width:680px}
.ctaCard{background:rgba(255,250,245,.75);background-image:linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,245,235,0.65));border:1px solid rgba(30,39,50,0.08);border-radius:22px;padding:22px;text-decoration:none;display:block;backdrop-filter:blur(6px);box-shadow:0 18px 40px rgba(30,39,50,0.10)}
.ctaCard h2{margin:0 0 8px;font-size:24px}
.ctaCard p{margin:0;color:var(--muted);font-size:15px}
.ctaCard.primary{background:#2F3C4A;color:#fff;border-color:rgba(47,60,74,.3)}
.ctaCard.primary{box-shadow:inset 0 1px 2px rgba(255,255,255,0.2),0 12px 25px rgba(20,30,40,0.25)}
.ctaCard.primary p{color:#f4f0ec}
.ctaCard:hover{transform:translateY(-2px);border-color:rgba(194,74,35,.32);box-shadow:0 0 0 3px rgba(194,74,35,.08),0 10px 30px rgba(30,39,50,.06)}
.trustBar{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 2px}
.trustBar span{background:rgba(255,250,245,.82);background-image:linear-gradient(180deg, rgba(255,255,255,0.7), rgba(255,255,255,0.25));border:1px solid rgba(30,39,50,0.08);box-shadow:0 10px 24px rgba(30,39,50,0.06);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700;color:#2f3c4a}
.hero-home{
  width:100vw;
  margin-left:calc(50% - 50vw);
  min-height:min(820px,78vh);
  padding:84px 0 40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-home::before{display:none}
.hero-home .hero-media{
  background:#10161d;
}
.hero-home .hero-media::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-image:
    linear-gradient(
      to bottom,
      rgba(10, 14, 18, 0.18) 0%,
      rgba(10, 14, 18, 0.38) 54%,
      rgba(10, 14, 18, 0.66) 100%
    ),
    linear-gradient(
      120deg,
      rgba(34, 42, 52, 0.06) 0%,
      rgba(0,0,0,0) 52%
    );
}
.hero-home .hero-media-image{
  position:absolute;
  inset:0;
  background-image:url('/assets/hero/hero-steel-frame.jpg');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  transform:scale(1);
  transform-origin:center;
  will-change:transform;
  animation:heroZoom 28s ease-in-out infinite alternate;
}
.hero-shell{
  width:100%;
  display:flex;
  justify-content:center;
  padding-top:0;
}
.hero-home .heroInner,
.hero-home .hero-content{
  max-width:980px;
  display:grid;
  justify-items:center;
  gap:20px;
  padding:0 24px;
  text-align:center;
}
.hero-home .hero-content{
  background:none;
  border:0;
  border-radius:0;
  backdrop-filter:none;
}
.hero-home .hero-eyebrow{
  margin:0;
  color:rgba(245, 246, 248, .82);
  font-size:13px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.hero-home h1{
  margin:0;
  max-width:14ch;
  color:#f7f7f5;
  font-size:clamp(2.25rem,4.9vw,3.9rem);
  line-height:.96;
  letter-spacing:-.035em;
}
.hero-home p{
  margin:4px 0 0;
  max-width:48rem;
  color:rgba(240, 241, 243, .9);
  font-size:19px;
  line-height:1.68;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-top:16px;
}
.hero-button{
  min-width:228px;
  padding:16px 28px;
  border-radius:999px;
  border:1px solid transparent;
  text-decoration:none;
  font-size:15px;
  font-weight:800;
  letter-spacing:.01em;
  transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease, transform .08s ease;
}
.hero-button--primary{
  background:linear-gradient(180deg, #324252 0%, #243341 100%);
  border-color:rgba(255,255,255,.16);
  color:#f9fafb;
  box-shadow:0 18px 36px rgba(8,12,18,.26), inset 0 1px 0 rgba(255,255,255,.14);
}
.hero-button--secondary{
  background:rgba(255,255,255,.04);
  border-color:rgba(247,249,251,.42);
  color:#f2f4f6;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(6px);
}
.hero-button:hover{box-shadow:0 0 0 3px rgba(194,74,35,.12)}
.hero-button--secondary:hover{background:rgba(255,255,255,.08)}
.hero-button:active{transform:translateY(1px)}
.hero-button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.trustStrip--hero{
  width:100%;
  padding:16px 0 0;
}
.trustStrip--hero .trustStripInner{
  max-width:980px;
  padding:12px 20px;
  color:rgba(241, 243, 245, .88);
  font-size:13px;
  font-weight:700;
  gap:14px 0;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:linear-gradient(180deg, rgba(18, 24, 32, .26) 0%, rgba(18, 24, 32, .16) 100%);
  box-shadow:0 18px 36px rgba(8,12,18,.14);
  backdrop-filter:blur(6px);
}
.trustStrip--hero .trustStripItem{
  padding:0 18px;
}
.trustStrip--hero .trustStripItem + .trustStripItem{
  border-left:1px solid rgba(255,255,255,.2);
}

@keyframes heroZoom{
  from{transform:scale(1)}
  to{transform:scale(1.035)}
}

@media (prefers-reduced-motion: reduce){
  .hero-home .hero-media-image{
    animation:none;
    transform:none;
  }
}

.trustStrip{padding:18px 0 6px}
.trustStripInner{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 0;text-align:center;color:var(--muted);font-size:14px;font-weight:700}
.trustStripItem{padding:0 16px;line-height:1.4;white-space:nowrap}
.trustStripItem + .trustStripItem{border-left:1px solid rgba(47,60,74,.2)}
.section--whatWeDo{padding-top:86px}

.section{padding:28px 0}
.section h2{margin:0 0 12px;font-size:30px;font-weight:800;position:relative;padding-bottom:8px}
.section h2::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:56px;height:2px;background:var(--rp-rust);opacity:.35}
.section p{margin:0 0 14px;color:var(--muted);line-height:1.6}
.panelGrid{display:grid;gap:14px;grid-template-columns:1fr}
.panel{background:rgba(255,250,245,.75);background-image:linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,245,235,0.65));border:1px solid rgba(30,39,50,0.08);box-shadow:0 18px 40px rgba(30,39,50,0.10);border-radius:20px;padding:20px}
.panel h3{margin:0 0 8px;font-size:21px}
.inlineCta{display:inline-block;margin-top:10px;padding:10px 14px;background:#2F3C4A;color:#fff;border-radius:14px;text-decoration:none;font-weight:700;font-size:14px;border:1px solid rgba(47,60,74,.3)}

.projectGrid{display:grid;gap:14px;grid-template-columns:1fr}
.projectCard{background:rgba(255,250,245,.75);background-image:linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,245,235,0.65));border:1px solid rgba(30,39,50,0.08);box-shadow:0 18px 40px rgba(30,39,50,0.10);border-radius:18px;overflow:hidden}
.projectCard img{display:block;width:100%;height:220px;object-fit:cover;background:#ddd}
.projectCardBody{padding:16px}

.siteFooter{border-top:1px solid var(--line);padding:24px 0 16px;margin-top:26px}
.siteFooterGrid{display:grid;gap:14px;grid-template-columns:1fr}
.siteFooter p,.siteFooter a{margin:0;color:var(--muted);font-size:14px;text-decoration:none}
.siteFooter strong{color:var(--steel-900)}

.mobileStickyCtas{position:fixed;left:12px;right:12px;bottom:12px;display:flex;gap:10px;z-index:60}
.mobileStickyCtas a{flex:1;text-align:center;text-decoration:none;padding:13px 12px;border-radius:14px;font-weight:700;font-size:15px;color:#fff}
.mobileStickyCtas .call{background:var(--rp-blue)}
.mobileStickyCtas .wa{background:#128c7e}

@media (max-width:980px){
  .siteBrandSub{font-size:10px;letter-spacing:.06em}
}
@media (max-width:860px){
  .siteBrandSub{font-size:9px;letter-spacing:.05em}
}

@media (min-width:769px){
  .rp-gateway{padding:64px 46px 56px}
  .rp-gateway-inner{width:min(1260px,100%);gap:14px;padding-top:24px}
  .rp-gateway-hero{width:100%;max-width:960px;display:flex;flex-direction:column;align-items:center;text-align:center}
  .rp-gateway-brand img{width:min(420px,34vw);max-width:420px;margin-bottom:46px}
  .rp-gateway h1{margin:0 0 34px;font-size:clamp(88px,7vw,122px);line-height:.91;letter-spacing:-.055em;font-weight:800;max-width:960px}
  .rp-gateway-subheadline{margin:24px 0 30px;max-width:860px;font-size:clamp(29px,2vw,36px);line-height:1.35;font-weight:600;opacity:.88}
  .rp-gateway-trust--hero{max-width:820px;font-size:clamp(18px,1.4vw,21px);line-height:1.35;font-weight:600;opacity:.8;margin:0 0 48px}
  .rp-gateway-cards{display:flex;flex-direction:row;justify-content:center;gap:26px;margin:0 0 22px}
  .rp-gateway-card{min-width:360px;min-height:78px;padding:0 46px;border-radius:30px;display:flex;align-items:center;justify-content:center}
  .rp-gateway-card span{font-size:22px;font-weight:800;letter-spacing:-.02em}
  .rp-gateway-card--primary{box-shadow:0 14px 32px rgba(15,23,42,.2)}
  .rp-gateway-card--secondary{background:rgba(253,250,246,.9);border:1px solid rgba(47,60,74,.2)}
  .rp-gateway-pref--remember{margin-top:8px}
  .rp-gateway-pref--remember label{font-size:16px;font-weight:700;opacity:.82;gap:8px;align-items:center}
  .rp-gateway-pref--remember input{width:18px;height:18px;transform:none}
  .rp-gateway-secondary{margin-top:12px;opacity:1}
  .rp-gateway-secondary .rp-gateway-trust,
  .rp-gateway-secondary .rp-gateway-helper{display:none}
  .rp-gateway-secondary #change-preference{display:inline-block;margin-top:11px;font-size:15px;font-weight:700;opacity:.76;text-decoration:underline;border-bottom:0}
  .rp-gateway-watermark{opacity:.03}
}
@media (max-width:768px){
  body.menu-open{overflow:hidden}
  .sitePage{padding-bottom:calc(128px + env(safe-area-inset-bottom, 0px))}
  .siteMain{padding:0 16px}
  .siteHeaderWrap{background:rgba(244,247,249,.96);border-bottom-color:rgba(47,60,74,.1)}
  .siteHeaderInner{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:8px 16px;gap:12px}
  .siteBrand{align-items:center;gap:10px;flex:1 1 auto;max-width:none;min-width:0;padding-right:0}
  .siteBrand img{height:30px;margin-top:0}
  .brand-block{min-width:0;gap:3px;display:flex;flex-direction:column}
  .siteBrandTitle{font-size:14px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .siteBrandSub{font-size:10px;letter-spacing:.03em;white-space:nowrap;line-height:1.2;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .siteHeaderDesktop{display:none}
  .siteHeaderActions{align-self:center;margin-left:auto;z-index:141}
  .siteNavToggle{display:inline-flex}
  .siteNavBackdrop{display:none}
  .siteNavPanel{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;width:100%;height:100vh;min-height:100vh;overflow-y:auto;padding:calc(72px + env(safe-area-inset-top, 0px)) 16px calc(24px + env(safe-area-inset-bottom, 0px));border:0;border-radius:0;background:rgba(244,247,249,.98);box-shadow:none;backdrop-filter:blur(10px)}
  #siteHeader.menu-open .siteNavPanel{display:flex;align-items:flex-start}
  .siteNav.siteNav--mobile{display:grid;grid-template-columns:1fr;gap:0;width:100%}
  .siteNav.siteNav--mobile a{display:block;padding:14px 0;font-size:15px;border-radius:0;border:0;border-bottom:1px solid rgba(47,60,74,.1);background:transparent;box-shadow:none;text-align:left}
  .siteNav.siteNav--mobile a[aria-current="page"],.siteNav.siteNav--mobile a:hover{background:transparent;border-color:rgba(47,60,74,.16);box-shadow:none;color:var(--rp-rust)}
  .siteNavPanelCta{margin-top:12px;text-align:center;padding:14px;border-radius:14px}

  .hero-home{min-height:min(540px,62svh);padding:32px 0 18px;justify-content:flex-end}
  .hero-home .hero-media::before{
    background-image:
      linear-gradient(
        to bottom,
        rgba(10, 14, 18, 0.08) 0%,
        rgba(10, 14, 18, 0.24) 54%,
        rgba(10, 14, 18, 0.5) 100%
      ),
      linear-gradient(
        120deg,
        rgba(34, 42, 52, 0.04) 0%,
        rgba(0,0,0,0) 52%
      );
  }
  .hero-home .hero-media-image{background-position:center 24%}
  .hero-home .heroInner,
  .hero-home .hero-content{max-width:560px;gap:12px;padding:0 18px}
  .hero-home .hero-eyebrow{font-size:11px;letter-spacing:.14em}
  .hero-home h1{font-size:clamp(1.625rem,7vw,2rem);line-height:.9;max-width:12ch}
  .hero-home p{margin-top:0;font-size:15px;line-height:1.38;max-width:30ch}
  .hero-actions{width:100%;display:grid;grid-template-columns:1fr;gap:10px;margin-top:8px}
  .hero-button{display:flex;width:100%;min-width:0;padding:14px 18px;font-size:15px;border-radius:18px;justify-content:center;text-align:center}
  .trustStrip--hero{padding-top:10px}
  .trustStrip--hero .trustStripInner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:560px;width:100%;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none}
  .trustStrip--hero .trustStripItem{display:flex;align-items:center;justify-content:center;min-height:68px;padding:12px 10px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:linear-gradient(180deg, rgba(18,24,32,.3) 0%, rgba(18,24,32,.18) 100%);box-shadow:0 14px 28px rgba(8,12,18,.12);font-size:12px;line-height:1.35;white-space:normal;text-align:center}
  .trustStrip--hero .trustStripItem + .trustStripItem{border-left:none}
  .heroScrollCue{margin:18px auto 0}

  .section--whatWeDo{padding-top:68px}
  .section{padding:22px 0}
  .section h2{margin-bottom:10px;font-size:26px}
  .section p{margin-bottom:12px;font-size:15px;line-height:1.58}
  .panelGrid,.projectGrid,.siteFooterGrid{gap:12px}
  .panel{padding:18px}
  .panel h3{font-size:19px}

  .mobileStickyCtas{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom, 0px) + 10px);gap:8px}
  .mobileStickyCtas a{padding:9px 10px;border-radius:13px;font-size:13px;line-height:1.2;box-shadow:0 10px 20px rgba(30,39,50,.14)}
}
@media (max-width:560px){
  .trustStripInner{gap:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .trustStripItem{padding:0 8px;white-space:normal}
  .trustStripItem + .trustStripItem{border-left:none}
  .trustStrip--hero .trustStripInner{grid-template-columns:1fr}
}
@media (min-width:720px){
  .brandLogo{height:38px}
  .panelGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .projectGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:960px){
  .heroGrid{grid-template-columns:1fr}
  .projectGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .siteFooterGrid{grid-template-columns:2fr 1fr}
  .mobileStickyCtas{display:none}
}

/* Tool theme */
.rp-theme-tool{
  --bg:var(--neutral-bg);
  --card:var(--white);
  --ink:var(--steel-900);
  --muted:var(--steel-500);
  --line:#c8d4e2;
  --pill:#e4ecf5;
  --pillOn:var(--steel-700);
  --pillOnText:#f7fbff;
  --brand:var(--steel-900);
}
.rp-theme-tool .card,
.rp-theme-tool .brandCard,
.rp-theme-tool .panel,
.rp-theme-tool .section,
.rp-theme-tool .drawingWrap,
.rp-theme-tool .mono,
.rp-theme-tool .legendBox,
.rp-theme-tool .extrasBox{
  box-shadow:0 1px 0 rgba(14,30,52,.03),0 8px 18px rgba(14,30,52,.035);
}
.rp-theme-tool .btn{background:#2F3C4A;border-color:var(--steel-700);border-bottom:2px solid #25323f}
.rp-theme-tool .btnAlt,.rp-theme-tool .btnQuick,.rp-theme-tool .btnSoft,.rp-theme-tool .adminBtn{background:#fff}
.rp-theme-tool .ok,.rp-theme-tool .err{background:#fff}
.rp-theme-tool .card,.rp-theme-tool .brandCard{border-radius:24px}
.rp-theme-tool .adminBtn{border-color:var(--rust-600);color:var(--rust-700)}

/* Tool gateway (landing) */
.rp-gateway{
  min-height:100svh;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:32px 28px;
  position:relative;
  overflow:hidden;
}
.rp-gateway-inner{width:min(860px,100%);display:grid;gap:20px;justify-items:center;text-align:center;position:relative;z-index:2}
.rp-gateway-brand img{width:min(290px,52vw);height:auto;display:block}
.rp-gateway h1{margin:8px 0 0;font-size:clamp(2.8rem,5.6vw,4.25rem);line-height:.98;letter-spacing:-.026em;color:var(--steel-900);max-width:17ch;text-wrap:balance}
.rp-gateway-subheadline{margin:0 0 28px;max-width:900px;font-size:clamp(28px,2vw,36px);line-height:1.35;font-weight:600;color:#1f3248;text-wrap:pretty}
.rp-gateway-subheadline-desktop{display:inline}
.rp-gateway-subheadline-mobile{display:none}
.rp-gateway-trust{margin:0;max-width:62ch;font-size:clamp(1rem,1.75vw,1.15rem);line-height:1.38;font-weight:600;color:#34485f}
.rp-gateway-trust--hero{max-width:900px;font-size:clamp(18px,1.45vw,22px);line-height:1.4;font-weight:500;opacity:.78;margin:0 0 48px}
.rp-gateway-action-line{margin:2px 0 0;max-width:58ch;font-size:1rem;line-height:1.35;font-weight:600;color:#334a62}
.rp-gateway-cards{width:100%;display:grid;grid-template-columns:1fr;gap:14px;margin-top:4px}
.rp-gateway-card{border-radius:24px;padding:22px 20px;text-decoration:none;border:1px solid var(--line);box-shadow:0 10px 28px rgba(15,23,42,.1);transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;backdrop-filter:blur(6px)}
.rp-gateway-card span{display:block;font-size:1.2rem;font-weight:800;letter-spacing:-.01em}
.rp-gateway-card:hover{transform:translateY(-2px);border-color:rgba(194,74,35,.36);box-shadow:0 0 0 3px rgba(194,74,35,.08),0 10px 30px rgba(30,39,50,.06)}
.rp-gateway-card--primary{background:#2F3C4A;border-color:#2F3C4A;color:#fff}
.rp-gateway-card--primary:hover{background:#2F3C4A;box-shadow:inset 0 0 0 1px rgba(194,74,35,.28),0 0 0 3px rgba(194,74,35,.08),0 10px 30px rgba(30,39,50,.06)}
.rp-gateway-card--secondary{background:rgba(255,255,255,.78);color:var(--steel-900);border:1px solid rgba(47,60,74,.28)}
.rp-gateway-card--secondary:hover{background:rgba(194,74,35,.06);color:var(--steel-900);border-color:rgba(194,74,35,.32)}
.rp-gateway-helper{margin:0;max-width:60ch;font-size:.96rem;line-height:1.4;color:#41556d}
.rp-gateway-card:focus-visible,.rp-gateway-pref a:focus-visible,.rp-gateway-pref input:focus-visible{outline:3px solid var(--rp-focus);outline-offset:3px}
.rp-gateway-pref{display:grid;gap:8px;justify-items:center;margin-top:0}
.rp-gateway-pref label{margin:0;display:inline-flex;align-items:center;gap:7px;font-size:.9rem;font-weight:700;color:#22344b;cursor:pointer}
.rp-gateway-pref input{appearance:none;width:15px;height:15px;margin:0;border:1.5px solid #71879f;border-radius:4px;background:#fff;display:grid;place-content:center;cursor:pointer;transform:translateY(-1px)}
.rp-gateway-pref input::before{content:"";width:8px;height:8px;transform:scale(0);transition:transform .12s ease;box-shadow:inset 1em 1em var(--rp-rust);clip-path:polygon(14% 48%,0 65%,42% 100%,100% 18%,82% 0,40% 62%)}
.rp-gateway-pref input:checked{border-color:var(--rp-rust);background:#fff7f2}
.rp-gateway-pref input:checked::before{transform:scale(1)}
.rp-gateway-secondary #change-preference{font-size:.86rem;font-weight:700;color:#2a3d54;text-decoration:none;border-bottom:1px solid rgba(42,61,84,.33)}
.rp-gateway-secondary #change-preference:hover{border-bottom-color:var(--rp-rust)}
.rp-gateway-watermark{position:absolute;right:min(6vw,56px);top:50%;transform:translateY(-50%);width:min(44vw,460px);max-width:54vh;opacity:.03;pointer-events:none;user-select:none}
@media (min-width:760px){.rp-gateway-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (max-width:768px){
  .rp-gateway{
    min-height:100svh;
    overflow-x:hidden;
    overflow-y:auto;
    display:block;
    padding:max(env(safe-area-inset-top), 18px) 24px 18px;
    box-sizing:border-box;
  }
  .rp-gateway-inner{width:100%;max-width:390px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;margin:0 auto;position:relative;z-index:2}
  .rp-gateway-hero{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center}
  .rp-gateway-brand img{width:min(76.5vw,276px);max-width:276px;min-width:212px;height:auto;display:block;margin-top:9px;margin-bottom:32px}
  .rp-gateway h1{font-size:clamp(48px,11vw,62px);line-height:.9;font-weight:800;letter-spacing:-.05em;max-width:340px;margin:0 0 24px}
  .rp-gateway-subheadline{font-size:clamp(20px,5vw,24px);line-height:1.28;font-weight:600;letter-spacing:-.015em;max-width:330px;opacity:.88;margin:0 0 24px}
  .rp-gateway-cards{width:100%;display:flex;flex-direction:column;gap:14px;margin:0 0 26px}
  .rp-gateway-card{width:100%;min-height:59px;padding:0 20px;border-radius:24px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(15,23,42,.07)}
  .rp-gateway-card span{font-size:19px;font-weight:800;letter-spacing:-.02em}
  .rp-gateway-card--primary{border-color:#2F3C4A;box-shadow:0 6px 16px rgba(15,23,42,.1)}
  .rp-gateway-card--secondary{background:rgba(253,250,246,.8);border:1px solid rgba(47,60,74,.14)}
  .rp-gateway-pref--remember{margin-top:4px}
  .rp-gateway-pref--remember label{font-size:15px;font-weight:700;gap:5px}
  .rp-gateway-pref--remember input{width:16px;height:16px;border-radius:4px;transform:none}
  .rp-gateway-secondary{margin-top:54px;padding-bottom:32px;opacity:.54;max-width:340px;text-align:center}
  .rp-gateway-trust,.rp-gateway-helper{font-size:14px;line-height:1.42;font-weight:500;max-width:340px}
  .rp-gateway-subheadline-desktop{display:none}
  .rp-gateway-subheadline-mobile{display:inline}
  .rp-gateway-trust{margin:0 0 10px}
  .rp-gateway-trust--hero{display:none}
  .rp-gateway-helper{margin:0}
  .rp-gateway-secondary #change-preference{display:inline-block;margin-top:18px;font-size:14px;font-weight:700;opacity:.9}
  .rp-gateway-watermark{opacity:.032}
}
.rp-theme-tool h1,.rp-theme-tool h2,.rp-theme-tool h3{color:var(--steel-900)}
