/* Sensus PR — 2026 rebrand.
   Source: rebrand/design (Sensus PR v4). Tokens are OKLCH with hex fallbacks below. */

:root {
  --bg: oklch(0.12 0.018 290);
  --bg-deep: oklch(0.08 0.018 290);
  --surface: oklch(0.17 0.02 290);
  --surface-2: oklch(0.16 0.02 290);
  --surface-cta: oklch(0.15 0.02 290);
  --line: oklch(0.2 0.02 290);
  --text: oklch(0.95 0.005 80);
  --text-2: oklch(0.8 0.01 80);
  --text-3: oklch(0.72 0.01 80);
  --text-4: oklch(0.65 0.01 80);
  --accent: oklch(0.74 0.17 300);
  --accent-ink: oklch(0.5 0.2 300);
  --accent-glow: oklch(0.74 0.17 300 / 0.8);
  --light: oklch(0.95 0.005 80);
  --light-card: oklch(0.9 0.006 80);
  --ink: oklch(0.14 0.018 290);
  --hair: oklch(1 0 0 / 0.08);
  --hair-2: oklch(1 0 0 / 0.12);
  --hair-3: oklch(1 0 0 / 0.14);
  --outline: oklch(0.8 0.1 300 / 0.28);

  --pad-x: clamp(20px, 4vw, 56px);
  --sec-y: clamp(72px, 10vw, 140px);
  --font: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --serif: 'Instrument Serif', Georgia, serif;
  --mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
}

@supports not (color: oklch(0 0 0)) {
  :root {
    --bg: #06050c; --bg-deep: #020105; --surface: #0f0e18; --surface-2: #0d0c15;
    --surface-cta: #0b0a12; --line: #16151f; --text: #f0eeeb; --text-2: #c1bdb7;
    --text-3: #a8a49e; --text-4: #928f88; --accent: #bc8fff; --accent-ink: #773ac1;
    --accent-glow: rgba(188, 143, 255, .8); --light: #f0eeeb; --light-card: #e0deda; --ink: #090810;
    --hair: rgba(255, 255, 255, .08); --hair-2: rgba(255, 255, 255, .12);
    --hair-3: rgba(255, 255, 255, .14); --outline: rgba(200, 170, 255, .28);
  }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.rs {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  font-family: var(--font);
  font-weight: 300;
  line-height: 1.5;
  color: var(--text);
  background:
    radial-gradient(ellipse 60% 40% at 85% 0%, oklch(0.3 0.12 300 / 0.6), transparent 70%) no-repeat,
    var(--bg);
  -webkit-font-smoothing: antialiased;
}
:where(.rs) a { color: inherit; text-decoration: none; }
:where(.rs) a:hover { color: var(--accent); }
.rs ::selection { background: var(--accent); color: var(--bg); }
.rs input, .rs textarea, .rs button { font: inherit; }
.rs img { max-width: 100%; }
.rs h1, .rs h2, .rs h3, .rs h4 { margin: 0; font-weight: 400; }
.rs p { margin: 0; }
.rs-skip { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 10px 16px; background: var(--text); color: var(--ink); border-radius: 0 0 12px 0; }
.rs-skip:focus { left: 0; }
.rs-main { display: block; }

/* ---------- Type ---------- */
.rs-h1 {
  max-width: 1400px;
  font-size: clamp(48px, 8vw, 132px);
  line-height: .95;
  letter-spacing: -0.05em;
  text-wrap: balance;
}
.rs-h1--hero { font-size: clamp(52px, 9vw, 148px); line-height: .94; }
.rs-h1--contact { font-size: clamp(48px, 7vw, 116px); }
.rs-h2 {
  font-size: clamp(38px, 5vw, 76px);
  line-height: 1;
  letter-spacing: -0.04em;
  text-wrap: balance;
}
.rs-h2--footer { font-size: clamp(36px, 4.6vw, 72px); line-height: .95; letter-spacing: -0.05em; }
.rs-h3 { font-size: clamp(32px, 3.4vw, 48px); letter-spacing: -0.035em; line-height: 1; }
.rs h1 em, .rs h2 em, .rs-serif-accent {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.02em;
  color: var(--accent);
}
.rs-light h2 em { color: inherit; }
.rs-lede { max-width: 600px; font-size: clamp(17px, 1.35vw, 20px); line-height: 1.55; color: var(--text-2); text-wrap: pretty; }
.rs-body { font-size: 18px; line-height: 1.65; color: var(--text-2); text-wrap: pretty; }
.rs-eyebrow, .rs-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent);
}
.rs-label { font-size: 11px; color: var(--text-4); }
.rs-eyebrow--dot { display: flex; align-items: center; gap: 12px; color: var(--text-3); letter-spacing: .16em; }
.rs-eyebrow--dot::before { content: ""; width: 8px; height: 8px; border-radius: 8px; background: var(--accent); box-shadow: 0 0 16px var(--accent); }

/* ---------- Buttons ---------- */
.rs-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 26px;
  font-size: 15px; font-weight: 400;
  border: 1px solid transparent; border-radius: 999px;
  background: var(--text); color: var(--bg);
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
}
.rs a.rs-btn:hover, .rs button.rs-btn:hover { background: var(--accent); color: var(--bg); }
.rs-btn--accent { background: var(--accent); color: var(--bg); }
.rs a.rs-btn--accent:hover, .rs button.rs-btn--accent:hover { background: var(--text); color: var(--bg); }
.rs-btn--ghost { background: transparent; color: var(--text); border-color: oklch(1 0 0 / 0.25); }
.rs a.rs-btn--ghost:hover { background: transparent; color: var(--accent); border-color: var(--accent); }
.rs-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Logo ---------- */
.rs-logo {
  display: inline-flex; align-items: baseline;
  gap: .0846em; font-size: 26px; line-height: 1;
  padding-bottom: .38em;
  color: var(--text);
}
.rs-logo__word { font-weight: 500; letter-spacing: -0.045em; margin-right: .031em; }
.rs-logo__bar { flex: none; width: .1em; border-radius: .1em; }
.rs-logo__bar--1 { height: .2385em; background: oklch(0.96 0.005 80); }
.rs-logo__bar--2 { height: .85em; background: oklch(0.92 0.04 300); }
.rs-logo__bar--3 { height: 1.246em; background: var(--accent); box-shadow: 0 0 .46em var(--accent-glow); }
.rs-logo__bar--4 { height: .796em; background: oklch(0.8 0.12 300); }
.rs-logo__bar--5 { height: .558em; background: oklch(0.76 0.15 300); }
.rs-logo__gap { flex: none; width: .05em; }
.rs-logo__p, .rs-logo__r { position: relative; flex: none; height: .53em; }
.rs-logo__p { width: .488em; }
.rs-logo__r { width: .329em; }
.rs-logo__p-stem, .rs-logo__r-stem { position: absolute; left: 0; top: 0; width: .1em; border-radius: .1em; background: var(--accent); }
.rs-logo__p-stem { height: .912em; }
.rs-logo__r-stem { height: .53em; }
.rs-logo__p-bowl { position: absolute; inset: 0; border: .1em solid var(--accent); border-radius: .53em; }
.rs-logo__r-arc { position: absolute; left: 0; top: 0; width: .329em; height: .329em; border-top: .1em solid var(--accent); border-left: .1em solid var(--accent); border-top-left-radius: .329em; }

/* ---------- Header ---------- */
.rs-header {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: 14px 24px;
  padding: 18px var(--pad-x);
  background: oklch(0.12 0.018 290 / 0.75);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--hair);
}
.rs-header__logo { display: flex; align-items: center; }
.rs-nav { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid oklch(1 0 0 / 0.1); border-radius: 999px; font-size: 14px; }
.rs-nav__link { padding: 8px 16px; border-radius: 999px; }
.rs a.rs-nav__link.is-active { background: var(--text); color: var(--bg); }
.rs-header__cta { padding: 11px 20px; font-size: 14px; }

/* Mobile menu (hidden on desktop) */
.rs-burger, .rs-mnav { display: none; }
.rs-burger {
  position: relative; width: 46px; height: 46px; padding: 0; flex: none;
  align-items: center; justify-content: center; cursor: pointer;
  background: oklch(1 0 0 / 0.04); color: var(--text);
  border: 1px solid var(--hair-3); border-radius: 50%;
  transition: background .2s, border-color .2s;
}
.rs-burger:hover { background: oklch(1 0 0 / 0.1); }
.rs-burger:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.rs-burger__bars { position: relative; display: block; width: 18px; height: 10px; }
.rs-burger__bars i { position: absolute; left: 0; width: 100%; height: 1.5px; border-radius: 2px; background: currentColor; transition: transform .3s cubic-bezier(.2,.7,.2,1), top .3s cubic-bezier(.2,.7,.2,1); }
.rs-burger__bars i:first-child { top: 0; }
.rs-burger__bars i:last-child { top: 8.5px; }
.rs-burger[aria-expanded="true"] .rs-burger__bars i:first-child { top: 4.25px; transform: rotate(45deg); }
.rs-burger[aria-expanded="true"] .rs-burger__bars i:last-child { top: 4.25px; transform: rotate(-45deg); }

@media (max-width: 900px) {
  .rs-header { flex-wrap: nowrap; padding: 12px var(--pad-x); gap: 16px; }
  .rs-header.is-menu-open { background: var(--bg); -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom-color: transparent; }
  .rs-header > .rs-nav, .rs-header > .rs-header__cta { display: none; }
  .rs-burger { display: inline-flex; }

  .rs-mnav {
    position: fixed; inset: 0; z-index: 19;
    display: flex; flex-direction: column; justify-content: space-between; gap: 32px;
    padding: calc(var(--rs-header-h, 72px) + 12px) var(--pad-x) max(28px, env(safe-area-inset-bottom));
    overflow-y: auto; overscroll-behavior: contain;
    background:
      radial-gradient(ellipse 90% 50% at 100% 100%, oklch(0.38 0.15 300 / 0.35), transparent 70%),
      var(--bg);
    visibility: hidden; opacity: 0; transform: translateY(-8px);
    transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
  }
  .rs-mnav.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity .25s ease, transform .25s ease; }
  html.rs-menu-open, html.rs-menu-open body { overflow: hidden; }

  .rs-mnav__nav { display: flex; flex-direction: column; }
  .rs a.rs-mnav__link {
    display: grid; grid-template-columns: 44px 1fr auto; align-items: baseline;
    padding: clamp(14px, 3.2vh, 22px) 0; border-bottom: 1px solid var(--hair-2);
    font-size: clamp(32px, 9.5vw, 46px); font-weight: 500; letter-spacing: -0.025em; line-height: 1.05;
    color: var(--text);
  }
  .rs-mnav__n { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; color: var(--text-4); }
  .rs-mnav__go { font-size: .6em; color: var(--accent); opacity: 0; transform: translateX(-6px); transition: opacity .2s, transform .2s; }
  .rs a.rs-mnav__link:hover .rs-mnav__go, .rs a.rs-mnav__link:focus-visible .rs-mnav__go, .rs a.rs-mnav__link.is-active .rs-mnav__go { opacity: 1; transform: none; }
  .rs a.rs-mnav__link.is-active .rs-mnav__t { color: var(--accent); }
  .rs a.rs-mnav__link:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }

  .rs-mnav__foot { display: flex; flex-direction: column; gap: 18px; align-items: stretch; }
  .rs-mnav__cta { justify-content: center; padding: 16px 24px; font-size: 16px; }
  .rs a.rs-mnav__mail { align-self: center; font-size: 15px; color: var(--text-3); }
  .rs a.rs-mnav__mail:hover { color: var(--text); }

  /* staggered entrance */
  .rs-mnav__link, .rs-mnav__foot > * { opacity: 0; transform: translateY(14px); }
  .rs-mnav.is-open .rs-mnav__link, .rs-mnav.is-open .rs-mnav__foot > * { opacity: 1; transform: none; transition: opacity .4s ease, transform .4s cubic-bezier(.2,.7,.2,1); transition-delay: calc(60ms + var(--i, 0) * 45ms); }
}
@media (prefers-reduced-motion: reduce) {
  .rs-mnav, .rs-mnav.is-open, .rs-mnav__link, .rs-mnav__foot > *, .rs-burger__bars i { transition: none !important; transform: none !important; }
}

/* ---------- Sections ---------- */
.rs-section { padding: var(--sec-y) var(--pad-x); }
.rs-pagehead { padding: clamp(48px, 8vw, 120px) var(--pad-x) clamp(40px, 5vw, 72px); display: flex; flex-direction: column; gap: 32px; }
.rs-pagehead--split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); align-items: end; }
.rs-pagehead__col { display: flex; flex-direction: column; gap: 32px; }
.rs-pagehead__aside { max-width: 460px; justify-self: end; }
.rs-stack { display: flex; flex-direction: column; gap: 18px; }

/* Hero */
.rs-hero { padding: clamp(48px, 8vw, 120px) var(--pad-x) clamp(40px, 5vw, 72px); display: flex; flex-direction: column; gap: clamp(28px, 4vw, 48px); }
/* Bar : gap = 1 : 0.75, the same ratio as the logo bars (0.1em wide, 0.075em apart); gap comes from space-between */
.rs-wave { height: clamp(64px, 8vw, 110px); display: flex; align-items: center; justify-content: space-between; }
.rs-wave__bar { flex: none; width: calc(100% / 96 * 0.5714); background: oklch(1 0 0 / 0.22); border-radius: 999px; transform-origin: center; animation: rs-bar 2s ease-in-out infinite; }
.rs-wave__bar.is-accent { background: var(--accent); }
.rs-hero__foot { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 32px; align-items: end; }
.rs-hero__foot .rs-actions { justify-content: flex-end; }

/* We are */
.rs-weare { margin: 0 var(--pad-x); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); border-top: 1px solid var(--hair-2); border-bottom: 1px solid var(--hair-2); }
.rs-weare__item { display: flex; flex-direction: column; gap: 14px; padding: 32px 28px 32px 0; }
.rs-weare__title { font-size: clamp(30px, 3vw, 44px); letter-spacing: -0.035em; line-height: 1; }
.rs-weare__item p { font-size: 16px; line-height: 1.6; color: oklch(0.75 0.01 80); text-wrap: pretty; }

/* Image strip */
.rs-strip { padding: clamp(40px, 5vw, 72px) 0; overflow: hidden; position: relative; }
/* Side vignette: pulls highlights down towards the page background at both edges */
.rs-strip::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(90deg, var(--bg) 0%, oklch(0.12 0.018 290 / .7) 6%, oklch(0.12 0.018 290 / .3) 16%, transparent 30%, transparent 70%, oklch(0.12 0.018 290 / .3) 84%, oklch(0.12 0.018 290 / .7) 94%, var(--bg) 100%); }
/* Spacing is margin (not gap) so the duplicated half is exactly 50% wide and the loop is seamless */
.rs-strip__track { display: flex; width: max-content; animation: rs-strip 120s linear infinite; }
.rs-strip__tile { flex: none; width: clamp(220px, 22vw, 320px); aspect-ratio: 4 / 5; margin-right: clamp(14px, 1.6vw, 24px);
  border-radius: 14px; overflow: hidden; background: var(--surface, #15131a); position: relative; isolation: isolate; }
/* Duotone: greyscale photo, multiplied by the accent so highlights turn purple and shadows stay black */
.rs-strip__tile::before { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--accent); mix-blend-mode: multiply; pointer-events: none; }
.rs-strip__tile:nth-child(even) { transform: translateY(28px); }
.rs-strip__tile::after { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(0,0,0,.2), transparent 35%, transparent 45%, rgba(0,0,0,.5)); pointer-events: none; }
.rs-strip__tile img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1) contrast(1.3) brightness(.8); }

/* Image placeholder / frame */
.rs-img { position: relative; overflow: hidden; border-radius: 24px; background: repeating-linear-gradient(135deg, var(--line) 0 1px, transparent 1px 12px), var(--surface-2); }
.rs-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* What we do */
.rs-what { padding: clamp(40px, 6vw, 80px) var(--pad-x) clamp(32px, 4vw, 56px); display: flex; flex-direction: column; gap: clamp(32px, 4vw, 56px); }
.rs-what__top { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 24px; }
.rs-what__top .rs-h2 { max-width: 820px; }
.rs-tabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid var(--hair-2); border-radius: 28px; font-size: 14px; }
.rs-tab { padding: 10px 18px; border: 0; border-radius: 999px; background: transparent; color: var(--text); cursor: pointer; }
.rs-tab:hover { color: var(--accent); }
.rs-tab[aria-selected="true"] { background: var(--text); color: var(--bg); }
.rs-svc { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 20px; }
.rs-svc[hidden] { display: none; }
.rs-svc .rs-img { min-height: 440px; }
.rs-card { border-radius: 24px; background: var(--surface); border: 1px solid var(--hair); padding: clamp(28px, 3.5vw, 48px); display: flex; flex-direction: column; gap: 24px; }
.rs-card__count { font-family: var(--mono); font-size: 12px; color: var(--accent); }
.rs-card p { font-size: 17px; line-height: 1.6; color: var(--text-2); text-wrap: pretty; }
.rs-list { margin: auto 0 0; padding: 0; list-style: none; border-top: 1px solid var(--hair-2); }
.rs-list li { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--hair-2); font-size: 16px; transition: padding-left .3s; }
.rs-list li:hover { padding-left: 16px; }
.rs-list li span:last-child { color: var(--accent); }

/* Trusted by */
.rs-trusted { padding: clamp(32px, 4vw, 56px) 0 clamp(8px, 2vw, 24px); display: flex; flex-direction: column; gap: 28px; overflow: hidden; }
.rs-trusted .rs-label { padding: 0 var(--pad-x); letter-spacing: .16em; }
.rs-trusted__marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.rs-trusted__track { display: flex; width: max-content; animation: rs-strip 70s linear infinite; }
.rs-trusted__marquee:hover .rs-trusted__track { animation-play-state: paused; }
.rs-trusted__item { display: flex; margin-right: 12px; }
.rs-trusted__item a, .rs-trusted__item > span { display: block; padding: 14px 26px; border: 1px solid var(--hair-2); border-radius: 999px; background: oklch(1 0 0 / .025); font-size: 17px; letter-spacing: -0.01em; white-space: nowrap; color: var(--text-2); transition: color .25s, border-color .25s, background .25s; }
.rs-trusted__item a:hover { color: var(--text); border-color: var(--accent); background: oklch(0.74 0.17 300 / .1); }

/* Why */
.rs-why { padding: clamp(16px, 3vw, 40px) var(--pad-x) clamp(72px, 9vw, 120px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: clamp(32px, 5vw, 80px); align-items: end; }
.rs-why__body { display: flex; flex-direction: column; gap: 24px; }
.rs-link { align-self: flex-start; font-size: 15px; border-bottom: 1px solid currentColor; padding-bottom: 4px; }

/* Testimonials */
.rs-voices { position: relative; padding: clamp(48px, 6vw, 88px) var(--pad-x); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(32px, 6vw, 96px); align-items: start; border-top: 1px solid var(--hair-2); overflow: hidden; }
.rs-voices::before { content: ""; position: absolute; width: 520px; height: 520px; right: -180px; top: -140px; border-radius: 50%; background: radial-gradient(closest-side, oklch(0.74 0.17 300 / .12), transparent); pointer-events: none; }
.rs-voices > * { position: relative; }
.rs-voices__top { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; min-height: 100%; }
.rs-voices .rs-h2 { font-size: clamp(32px, 3.4vw, 48px); }
.rs-arrows { display: flex; gap: 8px; }
.rs-arrow { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--hair-2); border-radius: 40px; background: transparent; color: var(--text); font-size: 15px; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.rs-arrow:hover { background: var(--accent); border-color: var(--accent); color: var(--bg); }
/* All quotes share one grid cell so the section is as tall as the longest one and never jumps */
.rs-voices__stage { display: grid; }
.rs-quote { grid-area: 1 / 1; display: flex; flex-direction: column; visibility: hidden; opacity: 0; transition: opacity .35s ease, visibility 0s .35s; margin: 0; position: relative; padding-left: clamp(20px, 2.5vw, 32px); border-left: 1px solid var(--accent); }
.rs-quote.is-active { visibility: visible; opacity: 1; transition: opacity .35s ease; }
.rs-quote__mark { display: none; }
.rs-quote blockquote { color: var(--text); margin: 0 0 32px; max-width: 760px; font-family: var(--serif); font-size: clamp(20px, 1.9vw, 28px); line-height: 1.35; text-wrap: pretty; }
.rs-quote__who { margin-top: auto; display: flex; align-items: center; gap: 12px; font-size: 14px; }
.rs-quote__badge { flex: none; width: 36px; height: 36px; border-radius: 50%; overflow: hidden; background: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-size: 18px; color: var(--ink); }
.rs-quote__badge img { width: 100%; height: 100%; object-fit: contain; }
.rs-quote__who strong { display: block; font-weight: 500; }
.rs-quote__who em { display: block; font-style: normal; color: var(--text-3); font-size: 13px; }
@media (max-width: 800px) { .rs-voices { grid-template-columns: 1fr; } .rs-voices__top { flex-direction: row; align-items: end; justify-content: space-between; } }
@keyframes rs-fade { from { opacity: .4; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* About */
.rs-split { padding: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: clamp(32px, 5vw, 72px); }
.rs-split .rs-img { aspect-ratio: 4/3; }
.rs-split__text { display: flex; flex-direction: column; gap: 22px; font-size: 18px; line-height: 1.65; color: var(--text-2); }
.rs-split__quote { font-family: var(--serif); font-size: clamp(28px, 2.6vw, 38px); line-height: 1.2; color: var(--text); text-wrap: pretty; }
.rs-cards { padding: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 20px; }
.rs-cards--tight { padding-bottom: 0; }
.rs-value { border-radius: 24px; background: var(--surface); border: 1px solid var(--hair); padding: 32px; display: flex; flex-direction: column; gap: 16px; min-height: 240px; }
.rs-value__n { font-family: var(--mono); font-size: 12px; color: var(--accent); }
.rs-value h3 { margin-top: auto; font-size: 32px; letter-spacing: -0.03em; }
.rs-value p { font-size: 16px; line-height: 1.6; color: oklch(0.75 0.01 80); text-wrap: pretty; }

/* Services accordion */
.rs-acc { padding: 0 var(--pad-x) var(--sec-y); }
.rs-acc__list { border-top: 1px solid var(--hair-3); }
.rs-acc__item { border-bottom: 1px solid var(--hair-3); scroll-margin-top: 90px; }
.rs-acc__head { width: 100%; display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 16px; align-items: baseline; padding: 26px 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.rs-acc__head:hover .rs-acc__name { color: var(--accent); }
.rs-acc__num { font-family: var(--mono); font-size: 12px; color: var(--text-4); }
.rs-acc__name { font-size: clamp(28px, 3.4vw, 48px); letter-spacing: -0.035em; line-height: 1.05; }
.rs-acc__sign { font-family: var(--mono); font-size: 22px; color: var(--accent); }
.rs-acc__panel { padding: 0 0 32px 72px; max-width: 712px; font-size: 18px; line-height: 1.65; color: var(--text-2); text-wrap: pretty; }
.rs-acc__panel[hidden] { display: none; }

/* Insights */
.rs-filter { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-pill { font-size: 14px; padding: 10px 16px; border-radius: 999px; border: 1px solid oklch(1 0 0 / 0.2); background: transparent; color: var(--text); cursor: pointer; }
.rs a.rs-pill:hover { border-color: var(--accent); }
.rs-pill.is-active, .rs-pill[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--bg); }
.rs-grid { padding: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; }
.rs-post { display: flex; flex-direction: column; gap: 18px; padding: 16px; border-radius: 24px; background: var(--surface); border: 1px solid var(--hair); transition: border-color .3s; }
.rs a.rs-post:hover { border-color: var(--accent); color: inherit; }
.rs-post__img { aspect-ratio: 16/10; border-radius: 14px; position: relative; overflow: hidden; background: repeating-linear-gradient(135deg, oklch(0.22 0.02 290) 0 1px, transparent 1px 12px), oklch(0.19 0.02 290); }
.rs-post__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rs-post__meta { padding: 0 8px; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-4); }
.rs-post__title { padding: 0 8px; font-size: 26px; letter-spacing: -0.03em; line-height: 1.1; }
.rs-post__lede { padding: 0 8px 8px; font-size: 15px; line-height: 1.6; color: oklch(0.75 0.01 80); text-wrap: pretty; }

/* Article */
.rs-articlehead { padding: clamp(48px, 8vw, 100px) var(--pad-x) clamp(24px, 3vw, 40px); max-width: 1100px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.rs-articlehead .rs-h1 { font-size: clamp(40px, 6vw, 88px); }
.rs-articlehead__sub { font-size: clamp(18px, 1.6vw, 22px); line-height: 1.5; color: var(--text-2); text-wrap: pretty; }
.rs-article { max-width: 780px; margin: 0 auto; padding: 0 var(--pad-x) var(--sec-y); font-size: 18px; line-height: 1.7; color: var(--text-2); }
.rs-article p, .rs-article ul, .rs-article ol, .rs-article blockquote { margin: 0 0 1.2em; }
.rs-article h1, .rs-article h2, .rs-article h3, .rs-article h4 { margin: 1.6em 0 .6em; color: var(--text); letter-spacing: -0.03em; line-height: 1.1; }
.rs-article h2 { font-size: 34px; }
.rs-article h3 { font-size: 26px; }
.rs-article a { color: var(--accent); border-bottom: 1px solid currentColor; }
.rs-article img { max-width: 100%; height: auto; border-radius: 16px; }
.rs-article blockquote { padding-left: 24px; border-left: 2px solid var(--accent); font-family: var(--serif); font-size: 26px; line-height: 1.3; color: var(--text); }
.rs-article strong { color: var(--text); font-weight: 500; }
.rs-postnav { display: flex; justify-content: space-between; align-items: center; gap: 16px; max-width: 780px; margin: 0 auto; padding: 0 var(--pad-x) var(--sec-y); }
.rs-postnav a { display: flex; align-items: center; gap: 10px; padding: 12px 20px; border: 1px solid oklch(1 0 0 / 0.2); border-radius: 999px; font-size: 14px; }
.rs a.rs-postnav__link:hover { border-color: var(--accent); }

/* Contact */
.rs-contact { padding: clamp(48px, 8vw, 120px) var(--pad-x) var(--sec-y); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: clamp(40px, 6vw, 96px); }
.rs-contact__info { display: flex; flex-direction: column; gap: 32px; }
.rs-contact__info > p { max-width: 460px; }
.rs-contact__mail { display: flex; flex-direction: column; gap: 6px; border-top: 1px solid var(--hair-3); padding-top: 24px; }
.rs-contact__mail a { font-size: 28px; letter-spacing: -0.02em; }
.rs-contact__social { display: flex; gap: 20px; font-size: 15px; }
.rs-formcard { border-radius: 24px; background: var(--surface); border: 1px solid var(--hair); padding: clamp(28px, 3.5vw, 48px); align-self: start; }
.rs-form { display: flex; flex-direction: column; gap: 26px; margin: 0; }
.rs-field { display: flex; flex-direction: column; gap: 8px; }
.rs-field input, .rs-field textarea { border: 0; border-bottom: 1px solid oklch(1 0 0 / 0.25); background: transparent; padding: 10px 0; font-size: 19px; color: inherit; outline: none; border-radius: 0; resize: vertical; }
.rs-field input:focus, .rs-field textarea:focus { border-bottom-color: var(--accent); }
.rs-field input::placeholder, .rs-field textarea::placeholder { color: var(--text-4); }
.rs-form__captcha { display: flex; flex-direction: column; gap: 8px; }
#captchaStatus { font-size: 14px; color: oklch(0.75 0.15 25); }
.rs-feedback { display: none; }
.rs-feedback > * + * { margin-top: 14px; }
.rs-feedback h3 { font-family: var(--serif); font-style: italic; font-size: 56px; line-height: 1; color: var(--accent); }
.rs-feedback p { font-size: 18px; line-height: 1.6; color: var(--text-2); }
.rs-feedback a { color: var(--accent); }

/* Footer */
.rs-footer { background: var(--bg-deep); padding: clamp(20px, 3vw, 40px) clamp(12px, 2vw, 24px) 0; display: flex; flex-direction: column; overflow: hidden; }
.rs-footer__cta { border-radius: 28px; background: radial-gradient(ellipse 70% 120% at 100% 0%, oklch(0.38 0.15 300 / 0.5), transparent 60%), var(--surface-cta); border: 1px solid var(--hair); padding: clamp(28px, 3.5vw, 48px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(24px, 4vw, 56px); align-items: end; }
.rs-footer__cta-head, .rs-footer__cta-body { display: flex; flex-direction: column; gap: 20px; }
.rs-footer__cta-body p { max-width: 440px; font-size: 17px; line-height: 1.6; color: var(--text-2); text-wrap: pretty; }
.rs-footer__cols { position: relative; padding: clamp(32px, 3.5vw, 52px) clamp(8px, 2vw, 32px) clamp(100px, 12.6vw, 212px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); align-items: start; gap: clamp(24px, 3vw, 44px); }
.rs-footer__brand { position: relative; z-index: 3; grid-column: span 2; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.rs-footer__logo .rs-logo { font-size: 34px; }
.rs-footer__brand p { max-width: 360px; font-size: 15px; line-height: 1.6; color: var(--text-3); text-wrap: pretty; }
.rs-news { display: flex; width: 100%; max-width: 440px; margin-top: 19px; padding: 5px; border: 1px solid oklch(1 0 0 / 0.16); border-radius: 999px; transition: border-color .2s; }
.rs-news:focus-within { border-color: var(--accent); }
.rs-news input[type="email"] { flex: 1; min-width: 0; border: 0; background: transparent; padding: 0 16px; font-size: 14px; outline: none; color: inherit; }
.rs-news input::placeholder { color: var(--text-3); }
.rs-news__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.rs-news button { flex: none; border: 0; border-radius: 999px; padding: 11px 18px; font-size: 14px; background: var(--text); color: var(--bg); cursor: pointer; transition: background .2s; }
.rs-news button:hover { background: var(--accent); }
.rs-news__done { margin-top: 8px; font-family: var(--serif); font-style: italic; font-size: 22px; color: var(--accent); }
.rs-news__err { margin-top: 6px; font-size: 13px; color: oklch(0.75 0.15 25); }
.rs-footer__col { position: relative; z-index: 3; display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.rs-footer__col .rs-label { margin-bottom: 6px; color: oklch(0.6 0.01 80); letter-spacing: .14em; }
.rs-footer__place { color: var(--text-3); }
.rs-footer__bar { position: relative; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px 24px; padding: 22px clamp(8px, 2vw, 32px); border-top: 1px solid oklch(1 0 0 / 0.1); font-size: 13px; color: var(--text-4); background: var(--bg-deep); }
.rs-footer__bar-links { display: flex; flex-wrap: wrap; gap: 24px; }
.rs-totop { display: flex; align-items: center; gap: 10px; }
.rs-totop span { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border: 1px solid oklch(1 0 0 / 0.2); border-radius: 32px; }

/* Footer outlined wordmark */
.rs-logo-outline {
  position: absolute; right: clamp(130px, 15vw, 240px); bottom: -.36em; z-index: 2;
  pointer-events: none; user-select: none;
  font-size: clamp(74px, 12vw, 202px);
}
.rs-logo-outline__svg { display: block; height: 1.72em; width: auto; overflow: visible; color: var(--accent); }

/* ---------- Motion ---------- */
/* One bar at a time: 5 bars x 6s slot; fill-mode backwards keeps bars dark while they wait for their turn, each lights up and fades inside its own slot */
.rs-logo-outline__glow { animation: rs-glow 30s ease-in-out infinite backwards; }
.rs-logo-outline__peak { animation: rs-peak 30s ease-in-out infinite backwards; }
@keyframes rs-glow { 0%, 100% { opacity: .1; } 10% { opacity: 1; } 22% { opacity: .1; } }
@keyframes rs-peak { 0%, 100% { opacity: 0; } 10% { opacity: 1; } 22% { opacity: 0; } }
@keyframes rs-bar { 0%, 100% { transform: scaleY(.25); } 50% { transform: scaleY(1); } }
@keyframes rs-strip { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .rs-wave__bar, .rs-strip__track, .rs-trusted__track, .rs-logo-outline__glow, .rs-logo-outline__peak { animation: none; }
  .rs-quote { transition: none; }
}

/* ---------- Tablet footer ---------- */
@media (max-width: 1000px) {
  /* Brand + newsletter on their own row, the three link columns below, the outlined logo centred under them */
  .rs-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 40px; padding-bottom: calc(min(17vw, 150px) * 1.95); }
  .rs-footer__brand { grid-column: 1 / -1; }
  /* bottom raised so the "p" descender ends above the divider instead of colliding with the bottom bar */
  .rs-logo-outline { right: auto; left: 50%; bottom: .06em; transform: translateX(-50%); font-size: min(17vw, 150px); }
}

/* ---------- Small screens ---------- */
@media (max-width: 640px) {
  .rs-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; padding-left: 8px; padding-right: 8px; padding-bottom: calc(18vw * 1.95); }
  /* Connect becomes a full-width row of pills, so the 2-column grid has no empty half */
  .rs-footer__col--connect { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px; }
  .rs-footer__col--connect .rs-label { flex-basis: 100%; margin-bottom: 0; }
  .rs-footer__col--connect a { padding: 9px 16px; border: 1px solid var(--hair-2); border-radius: 999px; font-size: 14px; }
  .rs-footer__col--connect .rs-footer__place { flex-basis: 100%; margin-top: 6px; font-size: 14px; }
  .rs-logo-outline { font-size: 18vw; }
  .rs-footer__bar { flex-direction: column; align-items: flex-start; gap: 14px; padding-top: 18px; }
  .rs-footer__bar .rs-totop { align-self: flex-start; }
  .rs-news { max-width: none; }
  .rs-hero__foot .rs-actions { justify-content: flex-start; }
  .rs-pagehead__aside { justify-self: start; }
  .rs-acc__panel { padding-left: 0; }
}

/* Minimal footer (admin / login): just the bottom bar */
.rs-footer--min { padding-top: 0; }
.rs-footer--min .rs-footer__bar { border-top: 1px solid var(--hair-2); }

/* Trusted by: client logos (white on transparent) used as a mask over a slowly drifting theme-purple gradient.
   Hovering the strip pauses it and dims every logo but the one under the pointer, which lifts and shows the client name. */
.rs-trusted { position: relative; gap: 12px; }
.rs-trusted .rs-label { display: flex; align-items: center; gap: 18px; color: var(--text-3); }
.rs-trusted .rs-label::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 14px var(--accent); flex: none; }
.rs-trusted .rs-label::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--hair-3), transparent); }
.rs-trusted__marquee { -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent); mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent); }
.rs-trusted__track { align-items: center; }
.rs-trusted__item--logo { position: relative; margin-right: clamp(56px, 7vw, 120px); padding: 14px 0 34px; opacity: .72; transition: opacity .35s, transform .45s cubic-bezier(.2,.7,.2,1); }
.rs-trusted__track:hover .rs-trusted__item--logo { opacity: .28; }
.rs-trusted__track:hover .rs-trusted__item--logo:hover { opacity: 1; transform: translateY(-4px); }
.rs-trusted__item--logo a, .rs-trusted__item--logo > span { display: block; padding: 0; border: 0; border-radius: 0; background: none; width: clamp(72px, 7vw, 100px); aspect-ratio: 1; }
.rs-trusted__item--logo a::before, .rs-trusted__item--logo > span::before { content: ""; display: block; width: 100%; height: 100%; background: linear-gradient(120deg, oklch(0.9 0.09 310), oklch(0.7 0.2 295), oklch(0.55 0.21 285), oklch(0.78 0.15 305), oklch(0.9 0.09 310)); background-size: 300% 300%; animation: rs-sheen 9s ease-in-out infinite alternate; -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.rs-trusted__item--logo a:hover, .rs-trusted__item--logo a:focus-visible { background: none; border-color: transparent; }
.rs-trusted__item--logo a { transition: filter .45s; }
.rs-trusted__item--logo:hover a, .rs-trusted__item--logo a:focus-visible { filter: drop-shadow(0 0 12px oklch(0.74 0.17 300 / .6)); }
.rs-trusted__item--logo:hover a::before { transform: scale(1.1); }
.rs-trusted__item--logo::after { content: attr(data-name); position: absolute; left: 50%; bottom: 6px; transform: translate(-50%, 4px); font-family: var(--mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; color: var(--text-3); opacity: 0; transition: opacity .35s, transform .45s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.rs-trusted__item--logo:hover::after { opacity: 1; transform: translate(-50%, 0); }
@keyframes rs-sheen { from { background-position: 0% 30%; } to { background-position: 100% 70%; } }
@media (prefers-reduced-motion: reduce) { .rs-trusted__item--logo a::before, .rs-trusted__item--logo > span::before { animation: none; } }

/* About: traits, mission/vision, experience, principles */
.rs-traits { margin: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); border-top: 1px solid var(--hair-2); border-bottom: 1px solid var(--hair-2); }
.rs-trait { padding: clamp(28px, 4vw, 56px) clamp(0px, 2vw, 32px); display: flex; flex-direction: column; gap: 14px; }
.rs-trait + .rs-trait { border-left: 1px solid var(--hair-2); padding-left: clamp(24px, 3vw, 48px); }
.rs-trait h3 { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(40px, 5vw, 72px); line-height: 1; letter-spacing: -0.03em; background: linear-gradient(135deg, oklch(0.9 0.1 310), oklch(0.68 0.2 295)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rs-trait p { font-size: 16px; line-height: 1.6; color: var(--text-3); max-width: 28ch; }
@media (max-width: 700px) { .rs-trait + .rs-trait { border-left: 0; border-top: 1px solid var(--hair-2); padding-left: 0; } }

.rs-purpose { padding: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 20px; }
.rs-purpose__panel { position: relative; overflow: hidden; border-radius: 28px; border: 1px solid var(--hair); background: radial-gradient(ellipse 80% 90% at 100% 0%, oklch(0.36 0.15 300 / .5), transparent 65%), var(--surface); padding: clamp(32px, 4vw, 56px); min-height: 320px; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; transition: border-color .3s; }
.rs-purpose__panel:hover { border-color: var(--accent); }
.rs-purpose__text { font-family: var(--serif); font-size: clamp(28px, 3vw, 44px); line-height: 1.15; letter-spacing: -0.02em; color: var(--text); text-wrap: balance; }
.rs-purpose__text em { color: var(--accent); }

.rs-exp { padding: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.rs-exp__stat { display: flex; flex-direction: column; gap: 12px; }
.rs-exp__num { font-family: var(--serif); font-size: clamp(120px, 16vw, 240px); line-height: .85; letter-spacing: -0.05em; background: linear-gradient(160deg, oklch(0.92 0.09 310), oklch(0.62 0.22 295) 60%, oklch(0.45 0.2 285)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rs-exp__num sup { font-size: .5em; vertical-align: top; position: relative; top: .1em; }
.rs-exp__body { display: flex; flex-direction: column; gap: 22px; font-size: 18px; line-height: 1.65; color: var(--text-2); }
@media (max-width: 800px) { .rs-exp { grid-template-columns: 1fr; } }

.rs-principles { padding: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.rs-principles .rs-stack { position: sticky; top: 100px; }
.rs-principles__list { border-top: 1px solid var(--hair-3); }
.rs-principle { display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 16px; row-gap: 14px; padding: clamp(28px, 3.5vw, 44px) 0; border-bottom: 1px solid var(--hair-3); }
.rs-principle__n { grid-row: 1 / span 2; font-family: var(--mono); font-size: 12px; color: var(--accent); padding-top: 12px; }
.rs-principle h3 { font-size: clamp(26px, 2.6vw, 36px); letter-spacing: -0.03em; transition: color .3s; }
.rs-principle:hover h3 { color: var(--accent); }
.rs-principle p { font-size: 16px; line-height: 1.7; color: var(--text-3); text-wrap: pretty; max-width: 62ch; }
@media (max-width: 800px) { .rs-principles { grid-template-columns: 1fr; } .rs-principles .rs-stack { position: static; } }

/* About intro: large serif statement beside the story, with a soft purple glow */
.rs-intro { position: relative; padding: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.rs-intro::before { content: ""; position: absolute; width: 560px; height: 560px; left: -200px; top: -120px; border-radius: 50%; background: radial-gradient(closest-side, oklch(0.74 0.17 300 / .16), transparent); pointer-events: none; }
.rs-intro > * { position: relative; }
.rs-intro__quote { font-family: var(--serif); font-size: clamp(36px, 4.6vw, 68px); line-height: 1.08; letter-spacing: -0.03em; color: var(--text); text-wrap: balance; padding-left: clamp(18px, 2vw, 28px); border-left: 2px solid var(--accent); }
.rs-intro__quote em { color: var(--accent); }
.rs-intro__text { display: flex; flex-direction: column; gap: 22px; font-size: 18px; line-height: 1.65; color: var(--text-2); }
.rs-intro__text em { color: var(--text); }
@media (max-width: 900px) { .rs-intro { grid-template-columns: 1fr; } }

/* Insights listing */
.rs-inshead { gap: 28px; }
.rs-inshead__row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: clamp(24px, 5vw, 80px); align-items: end; }
.rs-inshead__lede { font-size: 18px; line-height: 1.6; color: var(--text-3); text-wrap: pretty; max-width: 42ch; padding-bottom: 8px; }
@media (max-width: 800px) { .rs-inshead__row { grid-template-columns: 1fr; } }
.rs-pill { transition: border-color .25s, background .25s, color .25s; }
.rs-pill:not(.is-active):hover { background: oklch(0.74 0.17 300 / .1); }

.rs-insfeat { padding: 0 var(--pad-x) 20px; }
.rs-feature { position: relative; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); border-radius: 28px; overflow: hidden; border: 1px solid var(--hair); background: radial-gradient(ellipse 80% 100% at 100% 0%, oklch(0.36 0.15 300 / .45), transparent 65%), var(--surface); transition: border-color .3s; }
.rs a.rs-feature:hover { border-color: var(--accent); color: inherit; }
.rs-feature__img { position: relative; min-height: 380px; overflow: hidden; background: oklch(0.19 0.02 290); }
.rs-feature__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.rs-feature:hover .rs-feature__img img { transform: scale(1.04); }
.rs-feature__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 60%, oklch(0.17 0.02 290 / .6)); pointer-events: none; }
.rs-feature__body { display: flex; flex-direction: column; justify-content: center; gap: 20px; padding: clamp(28px, 4vw, 60px); }
.rs-feature__title { font-family: var(--serif); font-weight: 400; font-size: clamp(32px, 3.6vw, 54px); line-height: 1.08; letter-spacing: -0.025em; text-wrap: balance; }
.rs-feature__lede { font-size: 17px; line-height: 1.6; color: var(--text-3); text-wrap: pretty; }
@media (max-width: 900px) { .rs-feature { grid-template-columns: 1fr; } .rs-feature__img { min-height: 260px; aspect-ratio: 16/10; } .rs-feature__img::after { display: none; } }

.rs-tag { display: inline-block; margin-right: 12px; padding: 4px 10px; border-radius: 999px; background: oklch(0.74 0.17 300 / .16); color: var(--accent); letter-spacing: .12em; }
.rs-more { margin-top: auto; align-self: flex-start; display: inline-flex; gap: 8px; align-items: center; padding: 0 8px 8px; font-size: 14px; color: var(--text); border-bottom: 1px solid transparent; transition: color .25s, gap .25s; }
.rs-feature .rs-more { margin-top: 8px; padding: 0 0 4px; border-bottom-color: var(--hair-3); }
.rs-post:hover .rs-more, .rs-feature:hover .rs-more { color: var(--accent); gap: 14px; }

.rs-grid--ins { padding-top: 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.rs-post { transition: border-color .3s, transform .4s cubic-bezier(.2,.7,.2,1), background .3s; }
.rs a.rs-post:hover { transform: translateY(-4px); background: oklch(0.19 0.022 290); }
.rs-post__img img { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.rs-post:hover .rs-post__img img { transform: scale(1.05); }
.rs-post__title { font-family: var(--serif); font-weight: 400; font-size: clamp(26px, 2vw, 30px); line-height: 1.12; text-wrap: balance; }
.rs-ph { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--serif); font-style: italic; font-size: 96px; text-transform: uppercase; color: oklch(0.74 0.17 300 / .55); background: radial-gradient(ellipse 70% 70% at 50% 40%, oklch(0.3 0.12 300 / .55), transparent 75%); }
@media (prefers-reduced-motion: reduce) { .rs a.rs-post:hover { transform: none; } .rs-feature__img img, .rs-post__img img { transition: none; } }

/* Single article */
.rs-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 60; pointer-events: none; }
.rs-progress span { display: block; height: 100%; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, oklch(0.86 0.12 310), var(--accent)); }
.rs-articlehead { max-width: 920px; padding-bottom: clamp(32px, 4vw, 56px); gap: 22px; }
.rs-articlehead .rs-h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(40px, 5.6vw, 80px); line-height: 1.03; letter-spacing: -0.03em; text-wrap: balance; }
.rs-articlehead__sub { max-width: 60ch; color: var(--text-3); }
.rs-articlehead__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-4); }
.rs-articlehead__meta .rs-tag { margin: 0 6px 0 0; }
.rs-back { align-self: flex-start; font-size: 14px; color: var(--text-3); display: inline-flex; gap: 8px; transition: color .25s, gap .25s; }
.rs a.rs-back:hover { color: var(--accent); gap: 12px; }
.rs-cover { max-width: 1100px; margin: 0 auto clamp(40px, 6vw, 80px); padding: 0 var(--pad-x); }
.rs-cover img { display: block; width: 100%; max-height: 560px; object-fit: cover; border-radius: 28px; border: 1px solid var(--hair-2); box-shadow: 0 40px 100px -40px oklch(0.74 0.17 300 / .4); }
.rs-article { max-width: 760px; line-height: 1.8; }
.rs-article #blogcontainer > p:first-child { font-family: var(--serif); font-size: clamp(22px, 2.2vw, 28px); line-height: 1.45; color: var(--text); text-wrap: pretty; margin-bottom: 1.6em; }
.rs-article p img, .rs-article img { display: block; margin: 2em auto; border-radius: 20px; }
.rs-article h2, .rs-article h3 { font-family: var(--serif); font-weight: 400; }
.rs-article ul, .rs-article ol { padding-left: 1.3em; }
.rs-article li { margin-bottom: .5em; }
.rs-article li::marker { color: var(--accent); }
.rs-article hr { border: 0; border-top: 1px solid var(--hair-2); margin: 2.5em 0; }
.rs-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 3em; padding-top: 28px; border-top: 1px solid var(--hair-2); }
.rs-share .rs-label { margin-right: 8px; }
.rs-share .rs-pill { font-size: 13px; padding: 8px 14px; border-bottom-width: 1px; font-family: inherit; }
.rs-article .rs-share a { color: var(--text); border-bottom: 1px solid oklch(1 0 0 / 0.2); }
.rs-postnav { max-width: 1100px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.rs-postnav > span:empty { display: none; }
.rs-postnav a.rs-postnav__link { flex-direction: column; align-items: flex-start; gap: 14px; padding: clamp(22px, 3vw, 36px); border-radius: 24px; border: 1px solid var(--hair); background: var(--surface); transition: border-color .3s, transform .4s cubic-bezier(.2,.7,.2,1); }
.rs-postnav__link--next { grid-column: 2; text-align: right; align-items: flex-end !important; }
.rs a.rs-postnav__link:hover { transform: translateY(-3px); }
.rs-postnav__title { font-family: var(--serif); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.15; letter-spacing: -0.02em; text-wrap: balance; }
@media (max-width: 700px) { .rs-postnav { grid-template-columns: 1fr; } .rs-postnav__link--next { grid-column: 1; } }

/* Article text as wide as the cover image */
.rs-articlehead { max-width: 1100px; }
.rs-article { max-width: 1100px; font-size: clamp(18px, 1.5vw, 21px); line-height: 1.75; }
.rs-article #blogcontainer > p:first-child { font-size: clamp(24px, 2.4vw, 32px); }
.rs-article h2 { font-size: clamp(34px, 3.2vw, 44px); }
.rs-article h3 { font-size: clamp(26px, 2.4vw, 32px); }

/* Breadcrumbs */
.rs-crumbs { padding: clamp(20px, 2.5vw, 32px) var(--pad-x) 0; }
.rs-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; margin: 0; padding: 0; list-style: none; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-4); }
.rs-crumbs li { display: inline-flex; align-items: center; min-width: 0; }
.rs-crumbs li + li::before { content: "/"; margin: 0 12px; color: var(--hair-3); }
.rs-crumbs a { color: var(--text-3); transition: color .25s; }
.rs a.rs-crumbs-link:hover, .rs-crumbs a:hover { color: var(--accent); }
.rs-crumbs [aria-current] { color: var(--text); max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-main .rs-crumbs + .rs-pagehead, .rs-main .rs-crumbs + .rs-articlehead { padding-top: clamp(28px, 4vw, 56px); }

/* Case studies: listing + single page */
.rs-cslogo { display: block; width: 100%; height: 100%; background: linear-gradient(120deg, oklch(0.9 0.09 310), oklch(0.7 0.2 295), oklch(0.55 0.21 285), oklch(0.78 0.15 305), oklch(0.9 0.09 310)); background-size: 300% 300%; animation: rs-sheen 9s ease-in-out infinite alternate; -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; }
.rs-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.rs-chips li { padding: 6px 12px; border: 1px solid var(--hair-2); border-radius: 999px; font-size: 13px; color: var(--text-2); }

.rs-grid--cs { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.rs-cscard { position: relative; isolation: isolate; display: flex; flex-direction: column; min-height: 360px; padding: 24px 26px 22px; border-radius: 28px; overflow: hidden;
  background: radial-gradient(ellipse 90% 60% at 0% 100%, oklch(0.32 0.15 300 / .55), transparent 65%), linear-gradient(180deg, oklch(0.19 0.025 290), oklch(0.135 0.02 290));
  box-shadow: inset 0 1px 0 oklch(1 0 0 / .06); transition: transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; }
/* hairline gradient border: bright at the top-left, fading out, with an accent touch at the bottom-right */
.rs-cscard::before { content: ""; position: absolute; inset: 0; z-index: -1; padding: 1px; border-radius: inherit; background: linear-gradient(145deg, oklch(1 0 0 / .22), oklch(1 0 0 / .04) 40%, oklch(0.74 0.17 300 / .4)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); transition: opacity .5s; }
/* glow that rises from the bottom on hover */
.rs-cscard::after { content: ""; position: absolute; left: -20%; right: -20%; bottom: -55%; height: 80%; z-index: -1; background: radial-gradient(closest-side, oklch(0.74 0.17 300 / .38), transparent); opacity: 0; transition: opacity .6s, transform .8s cubic-bezier(.2,.7,.2,1); transform: translateY(20px); }
.rs a.rs-cscard:hover { transform: translateY(-5px); color: inherit; box-shadow: inset 0 1px 0 oklch(1 0 0 / .08), 0 30px 60px -30px oklch(0.74 0.17 300 / .5); }
.rs-cscard:hover::after { opacity: 1; transform: none; }
.rs-cscard__top { display: flex; justify-content: space-between; gap: 12px; font-family: var(--mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--text-4); }
.rs-cscard__logo { flex: 1; display: flex; align-items: center; justify-content: flex-start; min-height: 96px; padding: 18px 0; }
.rs-cscard__logo .rs-cslogo { width: min(62%, 190px); height: 64px; -webkit-mask-position: left center; mask-position: left center; }
.rs-cscard__initial { font-family: var(--serif); font-style: italic; font-size: 64px; line-height: 1; color: var(--accent); }
.rs-cscard__result { padding-top: 18px; border-top: 1px solid var(--hair-2); display: flex; flex-direction: column; gap: 8px; }
.rs-cscard__num { font-family: var(--serif); font-size: clamp(52px, 4.6vw, 68px); line-height: .95; letter-spacing: -0.04em; background: linear-gradient(160deg, oklch(0.94 0.07 310), oklch(0.68 0.21 295) 80%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rs-cscard__result p { min-height: 3em; font-size: 14px; line-height: 1.5; color: var(--text-3); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rs-cscard__result .rs-cscard__headline { min-height: 0; font-family: var(--serif); font-size: 24px; line-height: 1.15; color: var(--text); -webkit-line-clamp: 3; }
.rs-cscard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; }
.rs-cscard__name { font-size: 15px; letter-spacing: -0.01em; color: var(--text); }
.rs-cscard__go { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--hair-3); font-size: 14px; color: var(--text-2); transition: background .3s, color .3s, border-color .3s, transform .4s cubic-bezier(.2,.7,.2,1); }
.rs-cscard:hover .rs-cscard__go { background: var(--accent); border-color: var(--accent); color: var(--bg); transform: rotate(45deg); }

.rs-cshead { padding: clamp(28px, 4vw, 56px) var(--pad-x) clamp(32px, 4vw, 56px); display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: clamp(24px, 5vw, 80px); align-items: center; }
.rs-cshead__text { display: flex; flex-direction: column; gap: 24px; }
.rs-cshead .rs-h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(44px, 6.4vw, 96px); line-height: 1; letter-spacing: -0.03em; }
.rs-cshead__logo { aspect-ratio: 2/1; padding: 10% 14%; border-radius: 28px; border: 1px solid var(--hair-2); background: radial-gradient(ellipse 80% 90% at 100% 0%, oklch(0.36 0.15 300 / .5), transparent 65%), var(--surface); }
@media (max-width: 800px) { .rs-cshead { grid-template-columns: 1fr; } .rs-cshead__logo { max-width: 360px; } }

.rs-csfacts { margin: 0 var(--pad-x) var(--sec-y); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); border-top: 1px solid var(--hair-2); border-bottom: 1px solid var(--hair-2); }
.rs-csfact { display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 3vw, 40px) 0; }
.rs-csfact + .rs-csfact { padding-left: clamp(20px, 3vw, 40px); border-left: 1px solid var(--hair-2); }
.rs-csfact > p { font-family: var(--serif); font-size: clamp(24px, 2.2vw, 32px); line-height: 1.15; }
@media (max-width: 700px) { .rs-csfact + .rs-csfact { padding-left: 0; border-left: 0; border-top: 1px solid var(--hair-2); } }
.rs-cslinks { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; color: var(--text-2); }
.rs-cslinks a { border-bottom: 1px solid var(--hair-3); transition: color .25s, border-color .25s; }
.rs a.rs-cslinks a:hover, .rs-cslinks a:hover { color: var(--accent); border-color: var(--accent); }

.rs-csstrategy .rs-intro__text { gap: 0; }
.rs-csstrategy .rs-split__quote { font-size: clamp(24px, 2.6vw, 38px); }

.rs-csresults { padding: 0 var(--pad-x) var(--sec-y); display: flex; flex-direction: column; gap: 20px; }
.rs-csresults__panel { min-height: 0; justify-content: flex-start; gap: 24px; }
.rs-csresults__panel:hover { border-color: var(--hair); }
.rs-csresults__text { max-width: 70ch; font-size: 18px; line-height: 1.65; color: var(--text-2); }
.rs-csstats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; }
.rs-csstat { padding: clamp(24px, 3vw, 40px); border-radius: 24px; border: 1px solid var(--hair); background: var(--surface); display: flex; flex-direction: column; gap: 14px; }
.rs-csstat__n { font-family: var(--serif); font-size: clamp(56px, 6vw, 88px); line-height: .95; letter-spacing: -0.04em; background: linear-gradient(160deg, oklch(0.92 0.09 310), oklch(0.66 0.22 295) 70%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rs-csstat p { font-size: 16px; line-height: 1.55; color: var(--text-3); }

.rs-cslinksec { padding: 0 var(--pad-x) var(--sec-y); max-width: 1100px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.rs-cslinksec .rs-list { margin: 0; }
.rs-cslinksec .rs-list a { flex: 1; }
@media (prefers-reduced-motion: reduce) { .rs-cslogo { animation: none; } .rs a.rs-cscard:hover { transform: none; } .rs-cscard::after, .rs-cscard__go { transition: none; } }

/* Home: case studies showcase */
.rs-showcase { padding: clamp(40px, 5vw, 72px) var(--pad-x) clamp(56px, 7vw, 96px); display: flex; flex-direction: column; gap: clamp(32px, 4vw, 56px); }
.rs-showcase__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 18px; }
