.ruty-gemini-page {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

.ruty-gemini-page main#top {
  position: relative;
  overflow: visible !important;
}

.ruty-gemini-section.section.white {
  padding: 0 0 clamp(72px, 8vw, 120px) !important;
  border-top: 0 !important;
  background: #ffffff !important;
  color: #102a43;
  box-shadow: none !important;
  overflow: visible !important;
  clip-path: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.ruty-gemini-section [hidden] {
  display: none !important;
}

.ruty-gemini-scroll {
  position: relative;
  width: 100vw;
  height: 500vh;
  margin-left: calc(50% - 50vw);
  color: #102a43;
}

.ruty-gemini-sticky {
  position: sticky;
  top: 0;
  width: 100vw;
  height: 100vh;
  min-height: 720px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 68%, rgba(89, 153, 255, .09), transparent 34%),
    #ffffff;
}

.ruty-gemini-copy {
  position: relative;
  z-index: 3;
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto !important;
  padding-top: clamp(92px, 11vh, 132px);
  text-align: center;
}

.ruty-gemini-copy .eyebrow {
  width: 100%;
  margin: 0 auto 17px !important;
  justify-content: center !important;
  color: #64809a;
  text-align: center !important;
}

.ruty-gemini-section .ruty-gemini-copy h2 {
  width: min(980px, 100%) !important;
  max-width: 980px !important;
  margin: 0 auto !important;
  color: #102a43;
  font-family: "Inter Tight", Inter, sans-serif !important;
  font-size: clamp(48px, 6vw, 88px) !important;
  font-weight: 600 !important;
  line-height: .92 !important;
  letter-spacing: -.062em !important;
  text-align: center !important;
  text-wrap: balance;
}

.ruty-gemini-copy > p {
  width: min(680px, 100%);
  max-width: 680px !important;
  margin: 24px auto 0 !important;
  color: #526473;
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.55;
  text-align: center !important;
  text-wrap: balance;
}

.ruty-gemini-stage {
  position: absolute;
  z-index: 1;
  inset: clamp(300px, 37vh, 355px) 0 0;
  pointer-events: none;
}

.ruty-gemini-stage svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform-origin: 50% 100%;
}

.ruty-gemini-track,
.ruty-gemini-progress {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.ruty-gemini-track {
  display: block;
  stroke: rgba(91, 127, 158, .16);
  stroke-width: .75;
  filter: none;
}

.ruty-gemini-progress {
  opacity: 0;
  stroke-width: 1.65;
  stroke-dasharray: none;
  stroke-dashoffset: 0;
  clip-path: inset(0 100% 0 0);
  filter: url(#rutyGeminiGlow);
}

.ruty-gemini-progress:nth-of-type(1) { stroke: url(#rutyGeminiBlue); }
.ruty-gemini-progress:nth-of-type(2) { stroke: url(#rutyGeminiCyan); }
.ruty-gemini-progress:nth-of-type(3) { stroke: url(#rutyGeminiGold); }
.ruty-gemini-progress:nth-of-type(4) { stroke: url(#rutyGeminiRose); }

.ruty-gemini-output {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: max-content;
  transform: translate(-50%, -50%);
  text-align: center;
  opacity: var(--gemini-output, 0);
  transition: opacity .18s linear;
}

.ruty-gemini-output img,
.ruty-gemini-output span { display: block; }
.ruty-gemini-output img { width: 54px; height: 54px; margin: 0 auto; object-fit: contain; border-radius: 13px; box-shadow: 0 10px 30px rgba(16, 42, 67, .18); }
.ruty-gemini-output span { margin-top: 9px; color: #64809a; font: 600 9px/1 ui-monospace, monospace; letter-spacing: .12em; }

.ruty-gemini-section .webinar {
  position: relative;
  z-index: 2;
  margin-top: 0;
}

/* One shared editorial axis for every intentionally centered Ruty heading. */
body.ruty-gemini-page main#top .hero-copy,
body.ruty-gemini-page main#top .ruty-decision-heading,
body.ruty-gemini-page main#top .section > .container > header.center:not([hidden]),
body.ruty-gemini-page main#top .final-cta > .container {
  width: min(1080px, calc(100% - 48px)) !important;
  max-width: 1080px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

body.ruty-gemini-page main#top .ruty-decision-heading,
body.ruty-gemini-page main#top .section > .container > header.center:not([hidden]) {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

body.ruty-gemini-page main#top :is(.ruty-decision-heading, header.center:not([hidden])) > .eyebrow {
  width: 100% !important;
  margin-right: auto !important;
  margin-left: auto !important;
  justify-content: center !important;
  text-align: center !important;
}

body.ruty-gemini-page main#top :is(.ruty-decision-heading, header.center:not([hidden])) > h2,
body.ruty-gemini-page main#top .final-cta h2 {
  width: min(1040px, 100%) !important;
  max-width: 1040px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
  text-wrap: balance;
}

body.ruty-gemini-page main#top header.center:not([hidden]) > .section-lead {
  width: min(720px, 100%) !important;
  max-width: 720px !important;
  margin: 24px auto 0 !important;
  text-align: center !important;
  text-wrap: balance;
}

body.ruty-gemini-page main#top .final-actions,
body.ruty-gemini-page main#top .hero-actions {
  justify-content: center !important;
}

/* Never let layout utilities resurrect retired/alternate markup. */
body.ruty-gemini-page main#top [hidden] {
  display: none !important;
}

/* The legacy `.section h2` rule pins this box to the container's left edge. */
body.ruty-gemini-page main#top .ruty-gemini-section .ruty-gemini-copy > h2 {
  margin: 0 auto !important;
  margin-inline: auto !important;
}

@media (max-width: 800px) {
  .ruty-gemini-scroll { height: 440vh; }
  .ruty-gemini-sticky { min-height: 650px; }
  .ruty-gemini-copy { padding-top: 82px; }
  .ruty-gemini-section .ruty-gemini-copy h2 { font-size: clamp(42px, 10vw, 68px) !important; }
  .ruty-gemini-stage { top: 340px; }
}

@media (max-width: 520px) {
  .ruty-gemini-scroll { height: 400vh; }
  .ruty-gemini-copy { width: calc(100% - 32px); padding-top: 72px; }
  .ruty-gemini-section .ruty-gemini-copy h2 { font-size: clamp(38px, 12vw, 54px) !important; }
  .ruty-gemini-copy > p { font-size: 14px; }
  .ruty-gemini-stage { inset: 330px -190px 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ruty-gemini-scroll { height: 100vh; min-height: 760px; }
  .ruty-gemini-progress { opacity: 1 !important; clip-path: inset(0) !important; }
  .ruty-gemini-output { --gemini-output: 1 !important; }
}
