/* Ruty visual standard — mirrors the landing-page 1180px editorial system. */
body.ruty-gemini-page {
  --ruty-shell: 1180px;
  --ruty-edge: 16px;
  --ruty-measure: min(var(--ruty-shell), calc(100% - (var(--ruty-edge) * 2)));
  --ruty-section-y: clamp(88px, 8vw, 124px);
  --ruty-ink: #111418;
  --ruty-navy: #102a43;
  --ruty-copy: #526473;
  --ruty-line: rgba(16, 42, 67, .16);
  --ruty-wash: #e5f1f9;
  background: #fff;
  color: var(--ruty-ink);
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

body.ruty-gemini-page nav.cnw-global-nav,
body.ruty-gemini-page .hero > .container,
body.ruty-gemini-page .section > .container,
body.ruty-gemini-page .product-explainer__inner,
body.ruty-gemini-page .cnw-global-footer-inner {
  width: var(--ruty-measure) !important;
  max-width: var(--ruty-shell) !important;
  margin-inline: auto !important;
}

body.ruty-gemini-page nav.cnw-global-nav {
  width: min(var(--ruty-shell), calc(100% - 32px)) !important;
}

/* Hero */
body.ruty-gemini-page .hero {
  min-height: clamp(520px, 68svh, 720px) !important;
  padding: clamp(116px, 16vh, 190px) 0 12px !important;
}

body.ruty-gemini-page .hero > .container {
  width: min(1560px, calc(100% - 32px)) !important;
  max-width: 1560px !important;
  margin-inline: auto !important;
}

body.ruty-gemini-page .hero-grid {
  gap: 76px !important;
  justify-items: stretch !important;
}

body.ruty-gemini-page .hero-copy {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto !important;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .62fr) !important;
  align-items: end !important;
  gap: clamp(54px, 9vw, 170px) !important;
  text-align: left !important;
}

/* Exact editorial typography from the landing reference, applied only to Ruty. */
body.ruty-gemini-page .hero h1 {
  display: block !important;
  width: auto !important;
  max-width: 15.4ch !important;
  margin: 0 !important;
  color: #151515 !important;
  font: 620 clamp(42px, 4.25vw, 66px)/.97 "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  letter-spacing: -.058em !important;
  text-align: left !important;
  text-wrap: balance !important;
}

body.ruty-gemini-page .hero-copy > p {
  width: auto !important;
  max-width: 470px !important;
  margin: 0 0 clamp(8px, 1vw, 18px) !important;
  color: #151515 !important;
  font: 430 clamp(22px, 2vw, 29px)/1.18 Georgia, "Times New Roman", serif !important;
  letter-spacing: -.025em !important;
}

body.ruty-gemini-page .hero-actions {
  grid-column: 2 !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  margin: 14px 0 0 !important;
}

body.ruty-gemini-page .hero-stage {
  position: relative !important;
  z-index: 2 !important;
  left: auto !important;
  width: 100% !important;
  max-width: 1080px !important;
  min-height: 620px !important;
  margin-inline: auto !important;
  justify-self: center !important;
  translate: none !important;
  border-radius: 22px !important;
}

/* Shared controls */
body.ruty-gemini-page :is(.hero .btn, .section .btn, .product-explainer .btn, .pricing-switch button) {
  min-height: 46px;
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  letter-spacing: -.012em !important;
}

body.ruty-gemini-page :is(.hero .btn, .section .btn, .product-explainer .btn) {
  padding-inline: 22px !important;
  border-radius: 999px !important;
}

/* Editorial introduction */
body.ruty-gemini-page .product-explainer__inner,
body.ruty-gemini-page .section {
  padding-top: var(--ruty-section-y) !important;
  padding-bottom: var(--ruty-section-y) !important;
}

body.ruty-gemini-page .product-explainer__intro {
  gap: clamp(48px, 7vw, 104px) !important;
  align-items: end !important;
}

body.ruty-gemini-page .ruty-explainer .product-explainer__inner {
  padding-top: clamp(68px, 6vw, 88px) !important;
}

body.ruty-gemini-page .product-explainer__intro h2 {
  max-width: 12ch !important;
  margin: 0 !important;
  color: var(--ruty-ink) !important;
  font-family: "Inter Tight", Inter, Arial, sans-serif !important;
  font-size: clamp(42px, 4.4vw, 66px) !important;
  font-weight: 620 !important;
  line-height: .97 !important;
  letter-spacing: -.058em !important;
  text-wrap: balance !important;
}

body.ruty-gemini-page .product-explainer__copy {
  max-width: 560px !important;
  margin: 0 0 6px !important;
  color: var(--ruty-copy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(24px, 2.1vw, 31px) !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
}

body.ruty-gemini-page .product-explainer__copy strong {
  color: var(--ruty-ink) !important;
  font-weight: 400 !important;
}

body.ruty-gemini-page .ruty-cover-word {
  position: relative;
  z-index: 0;
  display: inline-block;
  margin-inline: .04em;
  padding: .01em .16em .07em;
  overflow: hidden;
  border-radius: .12em;
  background: #111214;
  color: #fff;
  white-space: nowrap;
  isolation: isolate;
  cursor: default;
  outline: none;
  transition: box-shadow 180ms ease, background-color 180ms ease;
}

body.ruty-gemini-page .ruty-cover-word > span:first-child {
  position: relative;
  z-index: 3;
  color: #fff;
}

body.ruty-gemini-page .ruty-cover-word::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  opacity: 0;
  background: radial-gradient(ellipse at center,rgba(92,126,255,.22),transparent 68%);
}

body.ruty-gemini-page .ruty-cover-word::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: -64%;
  width: 62%;
  opacity: 0;
  background:
    linear-gradient(90deg,transparent,#6388ff 30%,#fff 62%,transparent) top / 100% 1px no-repeat,
    linear-gradient(90deg,transparent,#6388ff 30%,#fff 62%,transparent) bottom / 100% 1px no-repeat,
    linear-gradient(90deg,transparent,rgba(91,128,255,.2),transparent);
  filter: drop-shadow(0 0 4px rgba(99,136,255,.85));
  pointer-events: none;
}

body.ruty-gemini-page .ruty-cover-word:is(:hover,:focus-visible,.is-active) {
  background: #0c0d10;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.045),0 0 18px rgba(75,112,255,.13);
}

body.ruty-gemini-page .ruty-cover-word.is-active::before {
  animation: ruty-cover-flash 820ms ease-out both;
}

body.ruty-gemini-page .ruty-cover-word.is-active::after {
  animation: ruty-cover-beam-pass 760ms cubic-bezier(.2,.72,.18,1) both;
}

body.ruty-gemini-page .ruty-cover-space {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

body.ruty-gemini-page .ruty-cover-particle {
  position: absolute;
  left: var(--particle-x);
  top: var(--particle-y);
  width: var(--particle-w);
  height: 1px;
  border-radius: 999px;
  opacity: 0;
  background: var(--particle-color);
  box-shadow: 0 0 5px var(--particle-color);
  animation: ruty-cover-particle var(--particle-duration) ease-out var(--particle-delay) both;
}

@keyframes ruty-cover-beam-pass {
  0% { left: -64%; opacity: 0; }
  12% { opacity: 1; }
  76% { left: 106%; opacity: 1; }
  100% { left: 106%; opacity: 0; }
}

@keyframes ruty-cover-flash {
  0% { opacity: 0; transform: scaleX(.2); }
  34% { opacity: 1; transform: scaleX(1); }
  100% { opacity: 0; transform: scaleX(1); }
}

@keyframes ruty-cover-particle {
  0% { opacity: 0; transform: translate3d(-16px,3px,0) scaleX(.25); }
  24% { opacity: 1; }
  72% { opacity: .9; }
  100% { opacity: 0; transform: translate3d(28px,-5px,0) scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  body.ruty-gemini-page .ruty-cover-word::before,
  body.ruty-gemini-page .ruty-cover-word::after,
  body.ruty-gemini-page .ruty-cover-particle { display: none; animation: none; }
}

/* Section headings */
body.ruty-gemini-page :is(.center, .ruty-decision-heading) {
  width: 100% !important;
  max-width: 920px !important;
  margin-inline: auto !important;
  text-align: center !important;
}

body.ruty-gemini-page :is(.section-title, .ruty-decision-heading h2) {
  margin: 0 !important;
  color: var(--ruty-ink) !important;
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: clamp(46px, 5vw, 72px) !important;
  font-weight: 550 !important;
  line-height: .94 !important;
  letter-spacing: -.057em !important;
  text-transform: none !important;
  text-wrap: balance !important;
}

body.ruty-gemini-page .section-lead {
  max-width: 720px !important;
  margin: 26px auto 0 !important;
  color: var(--ruty-copy) !important;
  font-size: clamp(18px, 1.45vw, 21px) !important;
  font-weight: 420 !important;
  line-height: 1.45 !important;
  letter-spacing: -.02em !important;
}

body.ruty-gemini-page .eyebrow {
  margin-bottom: 14px !important;
  color: var(--ruty-copy) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}

/* Canonical CNW editorial hierarchy from the first architecture section onward. */
body.ruty-gemini-page main#top :is(#use-cases, #plugins, #pricing) .section-title,
body.ruty-gemini-page main#top .final-cta h2 {
  max-width: 15.4ch !important;
  color: var(--ruty-ink) !important;
  font-family: var(--cnw-title-font) !important;
  font-size: var(--cnw-title-size) !important;
  font-weight: var(--cnw-title-weight) !important;
  line-height: var(--cnw-title-leading) !important;
  letter-spacing: var(--cnw-title-tracking) !important;
  text-wrap: balance !important;
}

body.ruty-gemini-page main#top .final-cta h2 {
  color: #fff !important;
}

body.ruty-gemini-page main#top :is(#use-cases, #plugins, #pricing) .section-lead {
  width: min(100%, 620px) !important;
  max-width: 620px !important;
  margin: 26px auto 0 !important;
  color: var(--ruty-copy) !important;
  font-family: var(--cnw-subtitle-font) !important;
  font-size: var(--cnw-subtitle-size) !important;
  font-weight: var(--cnw-subtitle-weight) !important;
  line-height: var(--cnw-subtitle-leading) !important;
  letter-spacing: -.025em !important;
}

/* Cards and visual modules */
body.ruty-gemini-page :is(
  .ruty-decision-module,
  .ruty-template-version-card,
  .plugin-card,
  .price-card
) {
  border-color: var(--ruty-line) !important;
  border-radius: 18px !important;
}

body.ruty-gemini-page :is(.ruty-decision-module, .plugin-card, .price-card) h3,
body.ruty-gemini-page .ruty-template-version-copy strong,
body.ruty-gemini-page .plan-name {
  color: var(--ruty-ink) !important;
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 570 !important;
  line-height: 1.08 !important;
  letter-spacing: -.042em !important;
}

body.ruty-gemini-page :is(.ruty-decision-module, .plugin-card, .price-card) p,
body.ruty-gemini-page .ruty-template-version-copy > span {
  color: var(--ruty-copy) !important;
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  line-height: 1.45 !important;
}

body.ruty-gemini-page .plugin-art {
  border-radius: 17px 17px 0 0 !important;
}

body.ruty-gemini-page .plugin-art img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

body.ruty-gemini-page :is(.ruty-template-version-grid, .pricing-grid) {
  gap: clamp(18px, 2vw, 24px) !important;
}

body.ruty-gemini-page .pricing-grid {
  margin-top: clamp(32px, 4vw, 50px) !important;
}

@media (max-width: 860px) {
  body.ruty-gemini-page {
    --ruty-section-y: clamp(72px, 12vw, 96px);
  }

  body.ruty-gemini-page .hero {
    min-height: auto !important;
    padding: 132px 0 12px !important;
  }

  body.ruty-gemini-page .hero-copy {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  body.ruty-gemini-page .hero h1 {
    max-width: 15.4ch !important;
    font-size: clamp(42px, 11vw, 66px) !important;
  }

  body.ruty-gemini-page .hero-actions {
    grid-column: 1 !important;
  }

  body.ruty-gemini-page .hero-stage {
    min-height: 520px !important;
  }

  body.ruty-gemini-page .product-explainer__intro {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  body.ruty-gemini-page .product-explainer__intro h2 {
    max-width: 12ch !important;
    font-size: clamp(42px, 10vw, 58px) !important;
  }

  body.ruty-gemini-page .product-explainer__copy {
    max-width: 640px !important;
  }

  body.ruty-gemini-page :is(.section-title, .ruty-decision-heading h2) {
    font-size: clamp(42px, 10vw, 62px) !important;
  }

}

@media (max-width: 560px) {
  body.ruty-gemini-page :is(#use-cases,#plugins).cnw-motion-item {
    opacity: 1 !important;
    transform: none !important;
  }

  body.ruty-gemini-page :is(#use-cases,#plugins) > .container > header.center {
    opacity: 1 !important;
    transform: none !important;
  }

  body.ruty-gemini-page :is(#use-cases,#plugins) > .container > header.center .section-title {
    max-width: 100% !important;
    color: var(--ruty-ink) !important;
    font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
    font-size: clamp(38px, 11vw, 48px) !important;
    font-weight: var(--cnw-title-weight) !important;
    line-height: var(--cnw-title-leading) !important;
    letter-spacing: var(--cnw-title-tracking) !important;
  }

  body.ruty-gemini-page #use-cases > .container > header.center,
  body.ruty-gemini-page #use-cases > .container > header.center * {
    opacity: 1 !important;
    filter: none !important;
  }

  body.ruty-gemini-page :is(#use-cases,#plugins) > .container > header.center .section-lead {
    color: var(--ruty-copy) !important;
    font-family: var(--cnw-subtitle-font) !important;
    font-size: clamp(21px, 6.2vw, 24px) !important;
    font-weight: var(--cnw-subtitle-weight) !important;
    line-height: var(--cnw-subtitle-leading) !important;
  }

  body.ruty-gemini-page main#top :is(#use-cases, #plugins, #pricing) .section-title,
  body.ruty-gemini-page main#top .final-cta h2 {
    max-width: 100% !important;
    font-size: clamp(38px, 11vw, 48px) !important;
  }

  body.ruty-gemini-page main#top #pricing .section-lead {
    font-size: clamp(21px, 6.2vw, 24px) !important;
  }

  body.ruty-gemini-page .product-explainer__copy {
    font-size: clamp(21px, 6.2vw, 27px) !important;
  }

  body.ruty-gemini-page .hero-stage {
    min-height: 390px !important;
  }

  body.ruty-gemini-page .hero-actions {
    align-items: stretch !important;
    flex-direction: column !important;
    width: 100% !important;
  }

  body.ruty-gemini-page .hero-actions .btn {
    justify-content: center !important;
    width: 100% !important;
  }

}

/* Dark product screens with bright copy and a rainbow meteor field. */
body.ruty-gemini-page .price-card.ruty-meteor-card,
body.ruty-gemini-page .price-card.ruty-stars-card {
  color: #f8fbff !important;
  border-color: #243a58 !important;
  background: linear-gradient(145deg, #111d31 0%, #0d1728 58%, #101c2e 100%) !important;
  box-shadow: 0 24px 60px rgba(5, 16, 29, .2) !important;
}

body.ruty-gemini-page .price-card.ruty-meteor-card::before {
  background: radial-gradient(circle, rgba(99, 210, 232, .16), rgba(164, 111, 238, .08) 42%, transparent 72%) !important;
}

body.ruty-gemini-page .price-card.ruty-meteor-card :is(.plan-name, .price),
body.ruty-gemini-page .price-card.ruty-stars-card :is(.plan-name, .price) {
  color: #f8fbff !important;
}

body.ruty-gemini-page .price-card.ruty-meteor-card :is(.plan-copy, ul),
body.ruty-gemini-page .price-card.ruty-stars-card :is(.plan-copy, ul) {
  color: #f8fbff !important;
}

body.ruty-gemini-page .price-card.ruty-meteor-card li,
body.ruty-gemini-page .price-card.ruty-stars-card li {
  border-color: rgba(132, 164, 197, .22) !important;
}

body.ruty-gemini-page .price-card.ruty-meteor-card .btn,
body.ruty-gemini-page .price-card.ruty-stars-card .btn {
  color: #edf7ff !important;
  border-color: #61758f !important;
  background: rgba(255, 255, 255, .035) !important;
}

body.ruty-gemini-page .price-card.ruty-meteor-card .btn:hover,
body.ruty-gemini-page .price-card.ruty-stars-card .btn:hover {
  color: #fff !important;
  border-color: #63c8d0 !important;
  background: rgba(61, 185, 194, .12) !important;
}

body.ruty-gemini-page .ruty-meteor {
  background: var(--meteor-color, #4f8cff) !important;
  box-shadow: 0 0 5px var(--meteor-color, #4f8cff), 0 0 13px color-mix(in srgb, var(--meteor-color, #4f8cff) 62%, transparent) !important;
}

body.ruty-gemini-page .ruty-meteor::after {
  background: linear-gradient(90deg, var(--meteor-color, #4f8cff), transparent) !important;
}

body.ruty-gemini-page .price-card.ruty-stars-card .ruty-star {
  background: #f7fbff !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 0 8px rgba(151,190,255,.72) !important;
}

body.ruty-gemini-page .ruty-shooting-star {
  position: absolute;
  top: var(--shoot-y);
  right: -32%;
  width: 92px;
  height: 1px;
  border-radius: 999px;
  opacity: 0;
  background: linear-gradient(90deg, transparent, #2eb9df 66%, #9e70ff 88%, #fff);
  filter: drop-shadow(0 0 4px rgba(46,185,223,.72));
  transform: rotate(-25deg);
  animation: ruty-shooting-star var(--shoot-duration) linear var(--shoot-delay) infinite;
}

@keyframes ruty-shooting-star {
  0%, 72% { opacity: 0; transform: translate3d(0,0,0) rotate(-25deg); }
  76% { opacity: 1; }
  96% { opacity: .92; }
  100% { opacity: 0; transform: translate3d(-520px,242px,0) rotate(-25deg); }
}

@media (prefers-reduced-motion: reduce) {
  body.ruty-gemini-page .ruty-shooting-star { display: none; animation: none; }
}

/* One content measure across the whole Ruty story. The hero already used 1080px;
   the following sections must not grow wider just because their diagrams can. */
body.ruty-gemini-page :is(
  .hero > .container,
  .product-explainer__inner,
  .section > .container
) {
  width: min(1080px, calc(100vw - 32px)) !important;
  max-width: 1080px !important;
  margin-inline: auto !important;
}

body.ruty-gemini-page .hero-grid {
  width: 100% !important;
  max-width: none !important;
}

body.ruty-gemini-page .ruty-allocation__row {
  grid-template-columns: 90px 60px minmax(150px, 1fr) 40px 64px minmax(150px, 1fr) !important;
  gap: 12px !important;
}

body.ruty-gemini-page .ruty-allocation__meter {
  --block: 12px;
  --gap: 6px;
  width: 100% !important;
  max-width: 100% !important;
}

body.ruty-gemini-page .ruty-allocation__head {
  padding-left: 174px !important;
  gap: 116px !important;
}

body.ruty-gemini-page .ruty-decision-grid {
  grid-template-rows: 300px 270px !important;
}

body.ruty-gemini-page .ruty-decision-module {
  padding: 26px 28px !important;
}

@media (max-width: 980px) {
  body.ruty-gemini-page .ruty-decision-grid {
    grid-template-rows: 480px 300px !important;
  }
}

/* Crop the baked-in beige whitespace while preserving the card's own shadow. */
body.ruty-gemini-page .hero-stage {
  box-shadow: 0 24px 60px rgba(16, 42, 67, .14) !important;
}

body.ruty-gemini-page .hero-stage video {
  transform: scale(1.2) !important;
  transform-origin: 50% 47% !important;
}

@media (max-width: 760px) {
  body.ruty-gemini-page .hero-stage video {
    transform: scale(1.12) !important;
  }
}

@media (max-width: 860px) {
  body.ruty-gemini-page .ruty-allocation__head { display: none !important; }
  body.ruty-gemini-page .ruty-allocation__row {
    grid-template-columns: 72px 58px minmax(110px, 1fr) 36px 64px minmax(110px, 1fr) !important;
    gap: 10px !important;
  }
}

@media (max-width: 700px) {
  body.ruty-gemini-page .ruty-allocation__row {
    grid-template-columns: 54px 54px minmax(0, 1fr) 24px 54px !important;
    gap: 9px !important;
  }

  body.ruty-gemini-page .ruty-decision-grid {
    display: flex !important;
  }

  body.ruty-gemini-page .ruty-decision-module {
    padding: 25px 22px !important;
  }
}

/* Shared product-hero standard: title, subtitle and actions in one vertical column. */
body.ruty-gemini-page .hero-copy {
  --ruty-hero-axis: min(100%, 980px);
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start !important;
  justify-items: center !important;
  gap: 0 !important;
  text-align: center !important;
}

body.ruty-gemini-page .hero h1 {
  grid-column: 1 !important;
  width: var(--ruty-hero-axis) !important;
  max-width: 980px !important;
  justify-self: center !important;
  margin-inline: auto !important;
  font-size: clamp(52px, 5.35vw, 82px) !important;
  text-align: center !important;
}

body.ruty-gemini-page .hero-copy > p {
  grid-column: 1 !important;
  width: var(--ruty-hero-axis) !important;
  max-width: 980px !important;
  justify-self: center !important;
  margin: 32px auto 0 !important;
  text-align: justify !important;
  text-align-last: center !important;
  text-justify: inter-word !important;
  hyphens: none !important;
}

body.ruty-gemini-page .hero-actions {
  grid-column: 1 !important;
  width: var(--ruty-hero-axis) !important;
  max-width: 980px !important;
  justify-self: center !important;
  justify-content: center !important;
  margin: 28px auto 0 !important;
}

@media (max-width: 860px) {
  body.ruty-gemini-page .hero h1 {
    font-size: clamp(52px, 12vw, 72px) !important;
  }

  body.ruty-gemini-page .hero-copy > p {
    margin-top: 26px !important;
  }
}
