html, body { margin: 0; }
  body { background: var(--surface-card); }
  a { -webkit-tap-highlight-color: transparent; }
  /* ---- Premium link hover: smoothly ease every link's state change ---- */
  a, .rs-navlink, .rs-foot-link, .rs-phone, .rs-crumb, .rs-tlink, .rs-toc-link, .rs-wh-inline, .rs-wh-more, .rsh-tab, .rsh-cert-chip, .rs-fig-cta, .rs-headcta, .rs-tslide-btn, .rs-prose a {
    transition: color var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
  }
  /* Arrow text-links: gentle arrow nudge on hover */
  .rs-tlink svg { transition: transform var(--dur-base) var(--ease-out); }
  .rs-tlink:hover svg { transform: translateX(3px); }
  .rs-menu-item { transition: background var(--dur-hover) var(--ease-out), transform var(--dur-hover) var(--ease-out); }
  .rs-menu-item:hover { background: rgba(237,28,64,0.12) !important; transform: translateX(3px); }
  .rs-navlink:hover { color: rgba(255,255,255,0.7) !important; }
  .rs-phone:hover { color: #fff !important; }
  .rs-foot-link:hover { color: var(--red-400) !important; opacity: 1 !important; }
  .rs-social { transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), transform var(--dur-hover) var(--ease-out); }
  .rs-social:hover { background: var(--brand) !important; border-color: var(--brand) !important; color: #fff !important; transform: translateY(-2px); }
  .rs-govsupplier { transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
  .rs-govsupplier:hover { background: rgba(255,255,255,0.06) !important; border-color: rgba(244,86,112,0.4) !important; }
  .rs-relres-card { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-relres-card:hover { transform: translateY(-4px); border-color: var(--red-200) !important; box-shadow: var(--shadow-md) !important; }
  .rs-relres-card:hover .rs-relres-cta { gap: 11px; }
  .rs-relres-cta { transition: gap .2s var(--ease-out); }
  .rs-crumb:hover { color: var(--brand) !important; }
  /* ----- Sydney regions map ----- */
  .rs-map-wrap { position: relative; width: 100%; }
  .rs-map-frame { position: relative; width: 100%; aspect-ratio: 1000 / 640; border-radius: var(--radius-xl); overflow: hidden; background: linear-gradient(160deg, #EDF2F6 0%, #E4EBF1 100%); border: 1px solid var(--border-subtle); box-shadow: 0 12px 34px -20px rgba(20,22,28,0.28); }
  .rs-map-frame svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
  .rs-map-pins { position: absolute; inset: 0; z-index: 2; }
  .rs-map-pin { position: absolute; transform: translate(-50%, -100%); display: block; text-decoration: none; z-index: 3; }
  .rs-map-pin:hover, .rs-map-pin:focus-visible { z-index: 40; outline: none; }
  .rs-map-drop { position: relative; z-index: 2; display: block; width: 30px; height: 30px; border-radius: 50% 50% 50% 0; background: linear-gradient(150deg, #F45670, #ED1C40); transform: rotate(-45deg); box-shadow: 0 9px 18px -6px rgba(209,18,54,0.6), 0 2px 4px rgba(0,0,0,0.14); border: 2.5px solid #fff; transition: transform var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-map-drop::after { content: ''; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px; border-radius: 50%; background: #fff; transform: translate(-50%,-50%); }
  .rs-map-pin:hover .rs-map-drop, .rs-map-pin:focus-visible .rs-map-drop { transform: rotate(-45deg) scale(1.18); box-shadow: 0 15px 26px -6px rgba(209,18,54,0.72), 0 3px 6px rgba(0,0,0,0.18); }
  .rs-map-ping { position: absolute; left: 50%; top: 15px; width: 30px; height: 30px; border-radius: 50%; transform: translate(-50%,-50%); border: 2px solid var(--red-400); opacity: 0; pointer-events: none; z-index: 1; }
  .rs-map-label { position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%); width: max-content; max-width: 170px; text-align: center; white-space: nowrap; font-family: var(--font-display); font-weight: 700; font-size: 13px; letter-spacing: var(--ls-tight); color: var(--text-strong); background: rgba(255,255,255,0.9); backdrop-filter: blur(3px); padding: 3px 10px; border-radius: var(--radius-pill); box-shadow: 0 2px 6px rgba(20,22,28,0.14); transition: color var(--dur-hover) var(--ease-out); }
  .rs-map-label-above { top: auto; bottom: calc(100% + 8px); }
  .rs-map-pin:hover .rs-map-label, .rs-map-pin:focus-visible .rs-map-label { color: var(--brand); }
  .rs-map-tip { position: absolute; left: 50%; bottom: calc(100% + 12px); transform: translateX(-50%) translateY(6px); width: 224px; text-align: left; background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 14px 15px; opacity: 0; visibility: hidden; transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); pointer-events: none; z-index: 50; }
  .rs-map-tip::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 7px solid transparent; border-top-color: var(--surface-card); }
  .rs-map-tip-below { bottom: auto; top: calc(100% + 12px); transform: translateX(-50%) translateY(-6px); }
  .rs-map-tip-below::after { top: auto; bottom: 100%; border-top-color: transparent; border-bottom-color: var(--surface-card); }
  .rs-map-pin:hover .rs-map-tip, .rs-map-pin:focus-visible .rs-map-tip { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
  .rs-map-caption { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 18px; font-size: 13.5px; color: var(--text-muted); text-align: center; }
  .rs-map-list { display: none; }
  .rs-map-listitem { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-map-listitem:hover { transform: translateY(-2px); border-color: var(--red-200) !important; box-shadow: var(--shadow-md) !important; }
  @media (prefers-reduced-motion: no-preference) {
    @keyframes rsMapPing { 0% { transform: translate(-50%,-50%) scale(0.75); opacity: 0.55; } 70%, 100% { transform: translate(-50%,-50%) scale(2.2); opacity: 0; } }
    .rs-map-ping { animation: rsMapPing 3.1s var(--ease-out) infinite; }
  }
  @media (max-width: 760px) {
    .rs-map-wrap, .rs-map-caption { display: none !important; }
    .rs-map-list { display: grid; grid-template-columns: 1fr; gap: 10px; }
  }
  @media (max-width: 820px) { .rs-team-roles { grid-template-columns: 1fr !important; } }
  /* Standard red text links: darken to soft charcoal on hover */
  .rs-tlink:hover, .rs-tlink:hover * { color: var(--text-strong) !important; }
  .rs-tlink, .rs-tlink * { transition: color 0.45s var(--ease-out), transform var(--dur-base) var(--ease-out) !important; }
  .rs-faq-tab:hover { color: var(--text-strong) !important; background: var(--ink-100) !important; }
  .rs-faq-item:hover { transform: translateY(-3px); border-color: var(--red-200) !important; box-shadow: var(--shadow-md) !important; }
  .rs-tcard:hover { border-color: var(--red-200) !important; }
  .rs-band-chip { transition: border-color var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
  .rs-band-chip:hover { border-color: var(--red-300) !important; }
  .rs-stat-card { transition: border-color var(--dur-hover) var(--ease-out); }
  .rs-stat-card:hover { border-color: rgba(237,28,64,0.28) !important; }
  /* Team headshots: top-anchor the cover crop so faces stay (head-to-stomach framing) */
  .rsh-staff image-slot::part(image) { top: 0 !important; transform: translate(-50%, 0) !important; }
  .rsh-platform::part(frame) { background: transparent !important; }
  image-slot[id^="platform-"]::part(frame) { background: transparent !important; }
  .rs-audit-input::placeholder { color: var(--text-muted); }
  .rs-nf-link { transition: border-color .18s var(--ease-out), background .18s var(--ease-out), transform .18s var(--ease-out); text-decoration: none; }
  .rs-nf-link:hover { border-color: var(--red-300) !important; background: var(--red-50) !important; transform: translateY(-1px); }
  .rs-audit-input:focus { border-color: var(--brand) !important; background: #fff !important; }
  @keyframes rs-mega-in { from { opacity: 0; transform: translateY(-6px) scale(0.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
  .rs-mega { transform-origin: top center; animation: rs-mega-in 0.34s cubic-bezier(0.22, 1, 0.36, 1) both; }
  @media (prefers-reduced-motion: reduce) { .rs-mega { animation: none; } }
  .rs-chev { transition: transform 0.22s var(--ease-out); }
  .rs-navlink:hover .rs-chev, .rs-nav > div:hover .rs-chev { transform: translateY(3px); }
  .rs-team-card { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-team-card:hover { transform: translateY(-4px); border-color: var(--red-200) !important; box-shadow: var(--shadow-md); }
  .rs-team-flow { display: flex; align-items: center; justify-content: center; }
  /* ----- Team campaign flow map ----- */
  .rs-flow { position: relative; max-width: 940px; margin: 38px auto 0; }
  .rs-flow-step { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 24px; padding-bottom: 26px; }
  .rs-flow-step:last-child { padding-bottom: 0; }
  .rs-flow-link { position: absolute; left: 27px; top: 52px; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--red-300), var(--red-400)); z-index: 0; }
  .rs-flow-node { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%; background: var(--surface-card); border: 2px solid var(--red-300); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(237,28,64,0.12); }
  .rs-flow-node-final { background: linear-gradient(150deg, #F45670, #ED1C40); border-color: transparent; box-shadow: 0 12px 26px rgba(237,28,64,0.34); }
  .rs-flow-node-start { background: linear-gradient(150deg, #F45670, #ED1C40); border-color: transparent; box-shadow: 0 10px 24px rgba(237,28,64,0.32); }
  .rs-flow-rise { position: absolute; left: 27px; top: -96px; width: 2px; height: 96px; background: linear-gradient(180deg, transparent, var(--red-300)); z-index: 0; }
  .rs-flow-lens { position: relative; width: 132px; height: 132px; flex: none; }
  .rs-flow-card { flex: 1; display: flex; gap: 24px; align-items: center; background: var(--surface-page); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 22px 24px; transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-flow-card:hover { transform: translateY(-3px); border-color: var(--red-200); box-shadow: var(--shadow-md); }
  .rs-flow-card-final { background: var(--surface-dark); border-color: transparent; align-items: center; }
  .rs-flow-card-final:hover { transform: none; border-color: transparent; box-shadow: none; }
  /* ----- Tools mastery grid ----- */
  .rs-tool-card { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), background var(--dur-hover) var(--ease-out); }
  .rs-tool-card:hover { transform: translateY(-3px); border-color: var(--red-200) !important; box-shadow: var(--shadow-md) !important; }
  /* ----- Services intro: premium trust tiles ----- */
  .rs-trust-tile { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-trust-tile:hover { transform: translateY(-3px); border-color: var(--red-200); box-shadow: var(--shadow-md); }
  /* ----- Challenges We Solve: premium editorial cards ----- */
  .rs-cap-card { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-cap-card:hover { transform: translateY(-4px); border-color: var(--red-200); box-shadow: var(--shadow-md); }
  /* ----- Resources: staggered load-more entrance ----- */
  .rs-res-in { animation: rsResIn 0.62s var(--ease-out) both; }
  @media (prefers-reduced-motion: no-preference) {
    @keyframes rsResIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
  }
  @media (prefers-reduced-motion: reduce) { .rs-res-in { animation: none !important; } }
  /* ----- Testimonials slider ----- */
  .rs-tslide-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--border-default); background: var(--surface-card); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .2s, background .2s, transform .2s; }
  .rs-tslide-btn:hover { border-color: var(--red-300); background: var(--red-50); transform: translateY(-1px); }
  .rs-cs-tab { transition: background var(--dur-base) var(--ease-out), color var(--dur-base), border-color var(--dur-base), box-shadow var(--dur-base); }
  .rs-cs-tab[aria-pressed="false"]:hover { border-color: var(--red-300) !important; color: var(--text-strong) !important; }
  /* ----- Success stories (stacked cards) ----- */
  .rs-sc-sum { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  @media (max-width: 860px) {
    .rs-sc-card { grid-template-columns: 1fr !important; }
    .rs-sc-media { min-height: 188px !important; }
  }
  @media (max-width: 520px) {
    .rs-sc-stats { grid-template-columns: 1fr !important; }
  }
  /* ----- Our Work: case-study cards ----- */
  .rs-cs-card { text-decoration: none; }
  .rs-cs-card:hover { transform: translateY(-4px); border-color: var(--red-200) !important; box-shadow: var(--shadow-lg) !important; }
  .rs-cs-media image-slot { transition: transform .5s var(--ease-out); }
  .rs-cs-card:hover .rs-cs-media image-slot { transform: scale(1.045); }
  .rs-cs-cta { transition: gap .25s var(--ease-out); }
  .rs-cs-cta:hover { gap: 12px; }
  .rs-cs-title { color: inherit; text-decoration: none; transition: color .2s var(--ease-out); }
  .rs-cs-title:hover { color: var(--brand); }
  /* ----- Client success story cards: reveal the client logo on featured-image hover ----- */
  .rs-cs-media .rs-reveal, .rs-sc-media .rs-reveal {
    position: absolute; inset: 0; z-index: 3;
    display: flex; align-items: center; justify-content: center;
    padding: 11% 12%;
    background: rgba(9, 10, 14, 0);
    opacity: 0; pointer-events: none;
    transition: background .5s cubic-bezier(0.22, 1, 0.36, 1), opacity .4s ease;
  }
  .rs-cs-media:hover .rs-reveal, .rs-sc-media:hover .rs-reveal { background: rgba(20, 23, 30, 0.45); opacity: 1; }
  .rs-reveal > * {
    transform: translateY(12px) scale(0.93); opacity: 0;
    transition: transform .55s cubic-bezier(0.22, 1, 0.36, 1) .05s, opacity .45s ease .05s;
  }
  .rs-cs-media:hover .rs-reveal > *, .rs-sc-media:hover .rs-reveal > * { transform: none; opacity: 1; }
  .rs-reveal-img { max-width: 78%; max-height: 46%; object-fit: contain; }
  .rs-reveal-img[src*="client-grinders"], .rs-reveal-img[src*="client-cerrone"] { filter: brightness(0) invert(1); }
  .rs-reveal-plate { background: #fff; border-radius: 12px; padding: 18px 24px; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5); max-width: 82%; }
  .rs-reveal-plate img { display: block; max-width: 100%; max-height: 56px; object-fit: contain; }
  .rs-reveal-txt { font-family: var(--font-display); font-weight: 800; font-size: clamp(18px, 1.4vw + 0.5rem, 30px); letter-spacing: var(--ls-tight); color: #fff; text-align: center; line-height: 1.12; text-wrap: balance; }
  @media (prefers-reduced-motion: reduce) { .rs-reveal, .rs-reveal > * { transition-duration: .001ms; } }
  /* ----- Team section: chess "win the game" animation ----- */
  .rs-pzbox { position: relative; z-index: 1; width: 100%; height: 360px; border-radius: 20px; background: radial-gradient(125% 120% at 50% 16%, #ffffff, #fff2f5 80%); box-shadow: var(--shadow-lg); overflow: hidden; display: flex; align-items: center; justify-content: center; }
  .rs-pzsvg { width: 90%; max-width: 372px; height: auto; overflow: visible; }
  .rs-ch-p, .rs-ch-king { transform-box: fill-box; transform-origin: bottom center; }
  .rs-ch-glow { transform-box: fill-box; transform-origin: center; opacity: 0; }
  .rs-ch-conv { transform-box: fill-box; transform-origin: center; opacity: 0; }
  .rs-ch-play .rs-ch-p1 { animation: rsChP1 8s cubic-bezier(.22,1,.36,1) infinite; }
  .rs-ch-play .rs-ch-p2 { animation: rsChP2 8s cubic-bezier(.22,1,.36,1) infinite; }
  .rs-ch-play .rs-ch-p3 { animation: rsChP3 8s cubic-bezier(.22,1,.36,1) infinite; }
  .rs-ch-play .rs-ch-p4 { animation: rsChP4 8s cubic-bezier(.22,1,.36,1) infinite; }
  .rs-ch-play .rs-ch-king { animation: rsChKing 8s cubic-bezier(.3,1.3,.5,1) infinite; }
  .rs-ch-play .rs-ch-glow { animation: rsChGlow 8s ease-in-out infinite; }
  .rs-ch-play .rs-ch-conv { animation: rsChConv 8s cubic-bezier(.3,1.4,.5,1) infinite; }
  .rs-ch-conv2 { animation-delay: .12s; }
  .rs-ch-conv3 { animation-delay: .24s; }
  .rs-ch-conv4 { animation-delay: .36s; }
  @keyframes rsChP1 { 0% { opacity: 0; transform: translate(-70px,26px) scale(.8); } 10% { opacity: 1; } 30%,86% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(-70px,26px) scale(.8); } }
  @keyframes rsChP2 { 0% { opacity: 0; transform: translate(-38px,30px) scale(.8); } 13% { opacity: 1; } 36%,86% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(-38px,30px) scale(.8); } }
  @keyframes rsChP3 { 0% { opacity: 0; transform: translate(38px,30px) scale(.8); } 16% { opacity: 1; } 40%,86% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(38px,30px) scale(.8); } }
  @keyframes rsChP4 { 0% { opacity: 0; transform: translate(70px,26px) scale(.8); } 19% { opacity: 1; } 44%,86% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(70px,26px) scale(.8); } }
  @keyframes rsChKing { 0% { opacity: 0; transform: translate(0,34px) scale(.78); } 22% { opacity: 1; } 50% { transform: translate(0,0) scale(1); } 60% { transform: translate(0,-6px) scale(1.06); } 68%,86% { transform: translate(0,0) scale(1); opacity: 1; } 100% { opacity: 0; transform: translate(0,34px) scale(.78); } }
  @keyframes rsChGlow { 0%,52% { opacity: 0; } 64%,84% { opacity: .85; } 96%,100% { opacity: 0; } }
  @keyframes rsChConv { 0%,56% { opacity: 0; transform: translateY(10px) scale(0); } 66% { opacity: 1; transform: translateY(0) scale(1.12); } 72%,86% { opacity: 1; transform: translateY(0) scale(1); } 97%,100% { opacity: 0; transform: translateY(-5px) scale(.55); } }
  @media (prefers-reduced-motion: reduce) { .rs-ch-p,.rs-ch-king { animation: none !important; opacity: 1; transform: none; } .rs-ch-glow,.rs-ch-conv { animation: none; opacity: 1; } }
  /* Our Work media slots: the Replace/Remove hover controls normally hang below the
     frame and get clipped by the cards' overflow:hidden — pin them inside instead. */
  image-slot[id^="cs-media-"]::part(ctl), image-slot[id^="cs-hero-"]::part(ctl) { top: auto; bottom: 12px; padding-top: 0; }
  .rs-cs-card:hover .rs-cs-cta { gap: 12px; }
  .rs-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  @media (max-width: 900px) {
    .rs-cs-card { grid-template-columns: 1fr !important; }
    .rs-cs-grid { grid-template-columns: 1fr !important; }
    .rs-cs-overview { grid-template-columns: 1fr !important; }
    .rs-cs-cols { grid-template-columns: 1fr !important; }
  }
  @media (max-width: 560px) {
    .rs-cs-statband { grid-template-columns: 1fr !important; gap: 24px !important; }
  }
  .rs-cs-story-line { position: absolute; left: 16px; top: 50px; bottom: 4px; width: 2px; border-radius: 2px; background: linear-gradient(180deg, var(--red-300), rgba(237,28,64,0.10)); }
  @media (max-width: 560px) {
    .rs-cs-story { grid-template-columns: 50px 1fr !important; column-gap: 20px !important; }
    .rs-cs-story-line { left: 13px !important; }
  }
  /* ----- Case study: unified journey flow map ----- */
  .rs-jrny { position: relative; max-width: 940px; margin: 0 auto; }
  .rs-jrny-track { position: relative; }
  .rs-jrny-stop { position: relative; display: grid; grid-template-columns: 72px 1fr; column-gap: 26px; padding-bottom: 36px; }
  .rs-jrny-stop:last-child { padding-bottom: 0; }
  .rs-jrny-line { position: absolute; left: 25px; top: 62px; bottom: -36px; width: 2px; border-radius: 2px; background: linear-gradient(180deg, var(--red-300), var(--red-200)); z-index: 0; }
  .rs-jrny-node { position: relative; z-index: 1; width: 52px; height: 52px; border-radius: 50%; background: var(--surface-card); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1.5px var(--red-200), 0 0 0 7px rgba(237,28,64,0.05), 0 12px 24px -10px rgba(237,28,64,0.30); }
  .rs-jrny-node-fill { background: var(--brand); box-shadow: 0 0 0 1.5px rgba(237,28,64,0.30), 0 0 0 7px rgba(237,28,64,0.07), 0 14px 28px -10px rgba(237,28,64,0.5); }
  .rs-jrny-node-fill svg { filter: drop-shadow(0 1px 1.5px rgba(120,0,15,0.35)); }
  .rs-jrny-num { font-family: var(--font-numeral); font-weight: 800; font-size: 19px; letter-spacing: -0.02em; background: linear-gradient(150deg, #F45670, #ED1C40); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
  .rs-jrny-card { border-radius: var(--radius-lg); padding: 24px 26px; box-shadow: var(--shadow-xs); transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-jrny-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
  @media (max-width: 560px) {
    .rs-jrny-stop { grid-template-columns: 58px 1fr !important; column-gap: 15px !important; }
    .rs-jrny-line { left: 25px !important; }
  }
  /* ----- Case study: outcome figures ----- */
  @media (max-width: 680px) {
    .rs-outcome-figs { grid-template-columns: 1fr !important; }
    .rs-outcome-fig { border-left: none !important; padding: 4px 12px !important; }
    .rs-outcome-fig + .rs-outcome-fig { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 28px !important; margin-top: 6px; }
  }
  /* ----- Case study: prev/next nav + service chips ----- */
  .rs-csnav-card { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-csnav-card:hover { transform: translateY(-3px); border-color: var(--red-200) !important; box-shadow: var(--shadow-md) !important; }
  .rs-svc-chip { transition: color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out); cursor: pointer; }
  .rs-svc-chip:hover { color: var(--brand) !important; border-color: var(--red-200) !important; background: var(--red-50) !important; }
  @media (max-width: 760px) { .rs-caps { grid-template-columns: 1fr !important; } }
  @media (max-width: 640px) {
    .rs-csnav { grid-template-columns: 1fr !important; gap: 14px !important; }
    .rs-csnav-card { width: 100%; justify-self: stretch !important; align-items: flex-start !important; text-align: left !important; }
    .rs-csnav-all { order: 3; justify-self: center !important; }
  }
  /* ----- Who We Help (home) ----- */
  .rs-wh-card { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), background var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-wh-card:hover { transform: translateY(-5px); border-color: rgba(244,86,112,0.42) !important; background: rgba(255,255,255,0.055) !important; box-shadow: 0 26px 54px -26px rgba(237,28,64,0.55) !important; }
  .rs-wh-cta { transition: gap .2s var(--ease-out); }
  .rs-wh-card:hover .rs-wh-cta { gap: 13px; }
  .rs-wh-inline:hover { color: var(--red-400) !important; }
  .rs-wh-more:hover { background: rgba(255,255,255,0.08) !important; border-color: rgba(244,86,112,0.5) !important; }
  /* ----- Case-study results bar ----- */
  .rs-fig-cta svg { transition: transform .2s var(--ease-out); }
  .rs-fig-cta:hover { color: #fff !important; }
  .rs-fig-cta:hover svg { transform: translateX(3px); }
  @media (prefers-reduced-motion: no-preference) {
    @keyframes rsFigRise { from { transform: scaleY(0.05); opacity: 0; } to { transform: scaleY(1); opacity: 1; } }
    .rs-fig-bar { animation: rsFigRise .55s var(--ease-out) both; }
  }
  .rs-fig-cell { transition: transform var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out); }
  .rs-fig-cell:hover { transform: translateY(-4px); box-shadow: 0 16px 40px -16px rgba(20,22,28,0.22) !important; }
  /* Header “Contact Us”: ghost/transparent on hover (sits on dark header) */
  .rs-headcta:hover { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,0.6) !important; box-shadow: none !important; }
  /* ----- Article prose ----- */
  .rs-prose a { color: var(--brand); text-decoration: none; border-bottom: 1px solid rgba(237,28,64,0.34); transition: border-color .15s var(--ease-out); }
  .rs-prose a:hover { border-color: var(--brand); }
  .rs-toc-link:hover { color: var(--text-strong) !important; }
  .rs-artlink:hover { color: #fff !important; }

  @media (max-width: 1024px) {
    .rs-nav { display: none !important; }
    .rs-burger { display: inline-flex !important; }
    .rs-phone { display: none !important; }
  }
  @media (max-width: 560px) {
    .rs-cta-checks { grid-template-columns: 1fr !important; }
    .rs-authorbio { flex-direction: column !important; gap: 16px !important; }
  }
  @media (max-width: 980px) {
    .rs-hero-grid { grid-template-columns: 1fr !important; gap: 36px !important; }
    .rs-hero-card { order: -1; }
    .rs-cta-grid, .rs-founder-grid, .rs-split, .rs-article { grid-template-columns: 1fr !important; gap: 40px !important; }
    .rs-bnr-grid { grid-template-columns: 1fr !important; }
    .rs-bnr-deco { display: none !important; }
    .rs-toc { display: none !important; }
    .rs-services, .rs-testimonials, .rs-why { grid-template-columns: 1fr 1fr !important; }
    .rs-cs-info { width: min(100%, 440px) !important; }
    .rs-team-flow { display: none !important; }
    .rs-flow-step { grid-template-columns: 44px 1fr !important; gap: 14px !important; }
    .rs-flow-link { left: 21px !important; }
    .rs-flow-rise { left: 21px !important; }
    .rs-flow-node { width: 44px !important; height: 44px !important; }
    .rs-flow-card { flex-direction: column !important; gap: 14px !important; }
    .rs-flow-lens { width: 108px !important; height: 108px !important; }
    .rs-why-cta { flex-direction: column !important; align-items: flex-start !important; }
    .rs-logo-grid, .rs-stats-grid { grid-template-columns: 1fr 1fr !important; }
    .rs-tools { grid-template-columns: 1fr 1fr !important; }
    .rs-footer-grid { grid-template-columns: 1fr 1fr !important; }
    .rs-sitemap-cols { grid-template-columns: 1fr 1fr !important; }
  }
  @media (max-width: 820px) {
    .rs-cs-media2 { position: relative !important; height: 230px !important; }
    .rs-cs-hero > div:last-child { min-height: 0 !important; }
    .rs-cs-info { margin-left: 0 !important; width: 100% !important; padding: 26px 0 8px !important; }
    .rs-cs-scrim { background: linear-gradient(180deg, rgba(255,255,255,0) 50%, rgba(255,255,255,0.5) 78%, #ffffff 100%) !important; }
    .rs-cs-scrim-b { display: none !important; }
    .rs-cited-grid { grid-template-columns: repeat(2, 1fr) !important; }
  }
  @media (max-width: 680px) {
    .rs-cta-btn { display: none !important; }
    .rs-services, .rs-testimonials, .rs-why, .rs-footer-grid, .rs-sitemap-cols, .rs-founder-stats { grid-template-columns: 1fr !important; }
    .rs-cs-stats { grid-template-columns: 1fr !important; }
    .rs-cited-grid { grid-template-columns: 1fr !important; }
    .rs-outcome-grid { grid-template-columns: 1fr !important; }
    .rs-tools { grid-template-columns: 1fr !important; }
    .rs-hero-divider { display: none !important; }
  }

  /* ----- Hero trust panel ----- */
  @keyframes rshRise { from { transform: translateY(12px); } to { transform: translateY(0); } }
  @keyframes rshPulse { 0% { box-shadow: 0 0 0 0 rgba(21,166,106,0.5); } 70% { box-shadow: 0 0 0 7px rgba(21,166,106,0); } 100% { box-shadow: 0 0 0 0 rgba(21,166,106,0); } }
  .rsh-dot { animation: rshPulse 2s infinite; }
  .rsh-rise { animation: rshRise 0.5s var(--ease-out) both; }
  .rsh-tab:hover { color: #fff !important; }
  .rsh-trust-tile { transition: transform var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out), background var(--dur-hover) var(--ease-out); }
  .rsh-trust-tile:hover { transform: translateY(-3px); border-color: rgba(237,28,64,0.45) !important; background: rgba(255,255,255,0.06) !important; }
  .rsh-cert-chip { transition: background .2s, border-color .2s; }
  .rs-cited-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); }
  .rs-cited-track { display: flex; width: max-content; animation: rsCitedMarquee 70s linear infinite; will-change: transform; }
  @keyframes rsCitedMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  .rs-cited-rows { display: flex; flex-direction: column; gap: 44px; }
  .rs-cited-track-rev { animation-direction: reverse; }
  .rsh-cert-chip:hover { background: rgba(255,255,255,0.09) !important; border-color: rgba(255,255,255,0.2) !important; }
  .rsh-stat { transition: background .2s var(--ease-out); }
  .rsh-stat:hover { background: rgba(255,255,255,0.04); }
  .rsh-staff { transition: transform var(--dur-hover) var(--ease-out), box-shadow var(--dur-hover) var(--ease-out), border-color var(--dur-hover) var(--ease-out); }
  .rsh-staff:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--border-strong); }

  /* ----- Featured-on marquee ----- */
  @keyframes rshMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  .rsh-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
  .rsh-marquee-track { display: flex; align-items: center; width: max-content; animation: rshMarquee 32s linear infinite; }
  .rsh-marquee:hover .rsh-marquee-track { animation-play-state: paused; }

  /* ----- Featured-on press logos: force consistent muted-white marks on the dark band ----- */
  image-slot[id^="client-"]::part(frame) { background: transparent; }
  image-slot[id^="client-"] { filter: brightness(0) invert(0.72); transition: filter 1.1s cubic-bezier(0.22, 1, 0.36, 1); }
  image-slot[id^="client-"]:hover { filter: none; }
  image-slot[id^="client-"]::part(empty) { color: rgba(255,255,255,0.5); }
  image-slot[id^="client-"]::part(ring) { border-color: rgba(255,255,255,0.18); }

  /* ----- Hero premium backdrop ----- */
  @keyframes rshAuroraA { 0%, 100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-44px, 32px) scale(1.14); } }
  @keyframes rshAuroraB { 0%, 100% { transform: translate(0,0) scale(1); } 50% { transform: translate(38px, -28px) scale(1.12); } }
  @keyframes rshAuroraC { 0%, 100% { transform: translate(0,0) scale(1); opacity: 0.5; } 50% { transform: translate(26px, 18px) scale(1.22); opacity: 0.9; } }
  @keyframes rshGridDrift { from { background-position: 0 0; } to { background-position: 52px -52px; } }
  @keyframes rshEmber {
    0% { transform: translate(0, 0) scale(1); opacity: 0; }
    14% { opacity: var(--eo, 0.5); }
    82% { opacity: var(--eo, 0.5); }
    100% { transform: translate(var(--ex, 0), -180px) scale(0.65); opacity: 0; }
  }
  @keyframes rshSheen { 0% { transform: translateX(-130%) skewX(-16deg); } 100% { transform: translateX(260%) skewX(-16deg); } }
  .rsh-aurora-a { animation: rshAuroraA 24s var(--ease-in-out) infinite; will-change: transform; }
  .rsh-aurora-b { animation: rshAuroraB 29s var(--ease-in-out) infinite; will-change: transform; }
  .rsh-aurora-c { animation: rshAuroraC 19s var(--ease-in-out) infinite; will-change: transform, opacity; }
  .rsh-grid-drift { animation: rshGridDrift 38s linear infinite; }
  .rsh-ember { animation-name: rshEmber; animation-timing-function: ease-in-out; animation-iteration-count: infinite; will-change: transform, opacity; }
  .rsh-sheen { animation: rshSheen 11s var(--ease-in-out) infinite; animation-delay: 2.5s; }

  /* ----- Team discipline illustrations ----- */
  @keyframes rstSpin  { to { transform: rotate(360deg); } }
  @keyframes rstSpinR { to { transform: rotate(-360deg); } }
  @keyframes rstSweep { to { transform: rotate(360deg); } }
  @keyframes rstPulse { 0%, 100% { transform: scale(1); opacity: 0.55; } 50% { transform: scale(1.22); opacity: 1; } }
  @keyframes rstBob   { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2.5px); } }
  @keyframes rstRing  { 0% { transform: scale(0.4); opacity: 0.7; } 70%, 100% { transform: scale(1.5); opacity: 0; } }
  .rst-spin, .rst-spinr, .rst-sweep, .rst-pulse, .rst-bob, .rst-ring { transform-box: view-box; }
  .rst-spin  { animation: rstSpin 16s linear infinite; }
  .rst-spinr { animation: rstSpinR 11s linear infinite; }
  .rst-sweep { animation: rstSweep 4.5s linear infinite; }
  .rst-pulse { animation: rstPulse 2.6s var(--ease-in-out) infinite; }
  .rst-bob   { animation: rstBob 3.4s var(--ease-in-out) infinite; }
  .rst-ring  { animation: rstRing 3.2s var(--ease-out) infinite; }
  @keyframes rstInflow { from { stroke-dashoffset: 8; } to { stroke-dashoffset: 0; } }
  .rst-inflow { animation: rstInflow 0.85s linear infinite; }

  /* ----- Inner-page banner ----- */
  @keyframes rsBnrSpin { to { transform: rotate(360deg); } }
  .rs-bnr-sweep { animation: rsBnrSpin 8s linear infinite; transform-origin: 50% 50%; }
  @keyframes rsBnrPing { 0% { transform: translate(-50%,-50%) scale(1); opacity: 0.55; } 70%, 100% { transform: translate(-50%,-50%) scale(3); opacity: 0; } }
  .rs-bnr-ping { animation: rsBnrPing 2.8s var(--ease-out) infinite; }
  @media (prefers-reduced-motion: no-preference) {
    @keyframes rsBnrIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
    .rs-bnr-in { animation: rsBnrIn 0.62s var(--ease-out) both; }
  }

  /* ----- Link Building authority illustration ----- */
  @keyframes lbFlow { to { stroke-dashoffset: -32; } }
  @keyframes lbSrcPing { 0% { transform: scale(0.7); opacity: 0.6; } 70%, 100% { transform: scale(2); opacity: 0; } }
  @keyframes lbCorePing { 0% { transform: scale(0.55); opacity: 0.5; } 70%, 100% { transform: scale(2.1); opacity: 0; } }
  @keyframes lbSpin { to { transform: rotate(360deg); } }
  @keyframes lbSpark { 0%, 100% { opacity: 0.25; transform: scale(0.82); } 50% { opacity: 1; transform: scale(1.15); } }
  @keyframes lbGlowPulse { 0%, 100% { opacity: 0.72; } 50% { opacity: 1; } }
  .lb-glow-pulse { animation: lbGlowPulse 3.4s var(--ease-in-out) infinite; }
  .lb-ring-rot { transform-box: fill-box; transform-origin: center; animation: lbSpin 26s linear infinite; }
  .lb-src-ping { transform-box: fill-box; transform-origin: center; animation: lbSrcPing 2.9s var(--ease-out) infinite; }
  .lb-core-ping { transform-box: fill-box; transform-origin: center; animation: lbCorePing 3s var(--ease-out) infinite; }
  .lb-link-line { animation: lbFlow 1.5s linear infinite; }
  .lb-arrow-flow { animation: lbFlow 1.15s linear infinite; }
  .lb-spark { transform-box: fill-box; transform-origin: center; animation: lbSpark 1.7s var(--ease-in-out) infinite; }
  @keyframes lbStack { 0% { transform: scaleY(0); opacity: 0; } 12% { opacity: 1; } 55%, 100% { transform: scaleY(1); opacity: 1; } }
  .lb-stack-seg { transform-box: fill-box; transform-origin: center bottom; animation: lbStack 2.8s var(--ease-out) infinite; }

  /* ----- Premium service-illustration motion depth ----- */
  @keyframes paTrace { 0% { stroke-dashoffset: var(--len, 600); opacity: 0; } 8% { opacity: 1; } 48%, 84% { stroke-dashoffset: 0; opacity: 1; } 98%, 100% { stroke-dashoffset: 0; opacity: 0; } }
  .pa-trace { animation: paTrace 6s var(--ease-in-out) infinite; }
  @keyframes paComet { to { stroke-dashoffset: -340; } }
  .pa-comet { animation: paComet 2.6s linear infinite; }
  @keyframes paPop { 0% { opacity: 0; transform: scale(0.2); } 14% { opacity: 1; transform: scale(1.14); } 24%, 84% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(0.2); } }
  .pa-pop { transform-box: fill-box; transform-origin: center; animation: paPop 6s var(--ease-in-out) infinite; }
  @keyframes paRise { 0% { opacity: 0; transform: translateY(9px) scale(0.85); } 16% { opacity: 1; } 26% { transform: translateY(-3px) scale(1); } 64% { opacity: 1; } 100% { opacity: 0; transform: translateY(-26px) scale(1); } }
  .pa-rise { transform-box: fill-box; transform-origin: center; animation: paRise 4.6s var(--ease-out) infinite; }
  @keyframes paScan { 0% { transform: translateY(0); opacity: 0; } 12%, 88% { opacity: 0.85; } 100% { transform: translateY(var(--scan, 150px)); opacity: 0; } }
  .pa-scan { transform-box: fill-box; animation: paScan 5s var(--ease-in-out) infinite; }
  @keyframes paFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
  .pa-float { transform-box: fill-box; animation: paFloat 5.5s var(--ease-in-out) infinite; }
  @keyframes paBreathe { 0%, 100% { opacity: 0.3; transform: scale(0.94); } 50% { opacity: 0.82; transform: scale(1.08); } }
  .pa-breathe { transform-box: fill-box; transform-origin: center; animation: paBreathe 4.5s var(--ease-in-out) infinite; }
  @keyframes paBlink { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } }
  .pa-blink { animation: paBlink 2.8s var(--ease-in-out) infinite; }
  @keyframes paNeedle { 0%, 100% { transform: rotate(-76deg); } 42% { transform: rotate(5deg); } 54%, 64% { transform: rotate(0deg); } }
  .pa-needle { animation: paNeedle 5.5s var(--ease-in-out) infinite; }
  .pa-spin { animation: lbSpin 7.5s linear infinite; }

  @media (prefers-reduced-motion: reduce) {
    .rsh-dot, .rsh-rise { animation: none !important; }
    .lb-glow-pulse, .lb-ring-rot, .lb-src-ping, .lb-core-ping, .lb-link-line, .lb-arrow-flow, .lb-spark, .lb-stack-seg { animation: none !important; }
    .pa-trace, .pa-comet, .pa-pop, .pa-rise, .pa-scan, .pa-float, .pa-breathe, .pa-blink, .pa-needle, .pa-spin { animation: none !important; }
    .rsh-marquee-track, .rs-cited-track { animation: none !important; }
    .rsh-aurora-a, .rsh-aurora-b, .rsh-aurora-c, .rsh-grid-drift, .rsh-ember, .rsh-sheen { animation: none !important; }
    .rst-spin, .rst-spinr, .rst-sweep, .rst-pulse, .rst-bob, .rst-ring, .rst-inflow { animation: none !important; }
    .rs-bnr-sweep, .rs-bnr-ping { animation: none !important; }
  }