  /* Base */
  *, *::before, *::after { box-sizing: border-box; }
  html { font-family: var(--font-sans); color: var(--text-primary); background: var(--bg-page); }
  @media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
  }
  body {
    margin: 0;
    background: var(--bg-page);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-weight: var(--fw-light);
    font-size: var(--fs-body-md);
    line-height: var(--lh-body-md);
    -webkit-font-smoothing: antialiased;
    text-wrap: pretty;
  }
  ::selection {
    background: var(--lc-beige-500);
    color: #fff;
  }
  /* Only break unbreakable strings when there is genuinely no other option.
     `anywhere` breaks mid-word even when a wrap would fit on the next line,
     which reads as torn words — especially in Russian. `break-word` keeps
     normal whitespace wrapping and only splits oversized tokens. */
  h1, h2, h3, h4, p, li, blockquote,
  .rb-pillar__w, .rb-patent__name, .rb-aud, .rb-result,
  .rb-fcell__v, .rb-asscell, .rb-author__stats .lc-mono,
  .rb-author__stats .rb-bignum, .rb-form__legal {
    overflow-wrap: break-word;
    hyphens: manual;
  }
  /* Stop min-content of long unbreakable words/&nbsp; runs from forcing grid/flex items wider than the viewport */
  .rb-section--statement, .rb-list,
  .rb-twocol, .rb-progress, .rb-pillars, .rb-negspace,
  .rb-patents, .rb-audience, .rb-results, .rb-format__grid,
  .rb-assessment, .rb-author, .rb-author__body, .rb-author__stats,
  .rb-when, .rb-whenrow, .rb-form__rows,
  .rb-footer__top, .lc-header__inner, .rb-hero__inner, .rb-cta__inner,
  .rb-symptoms, .rb-goodresult, .rb-measure, .rb-limits, .rb-final, .rb-final__lines {
    min-width: 0;
  }
  .rb-section--statement > *, .rb-list > *,
  .rb-twocol > *, .rb-progress > *, .rb-pillars > *, .rb-negspace > *,
  .rb-patents > *, .rb-audience > *, .rb-results > *, .rb-format__grid > *,
  .rb-assessment > *, .rb-author > *, .rb-author__body > *, .rb-author__stats > *,
  .rb-when > *, .rb-whenrow > *, .rb-form__rows > *,
  .rb-footer__top > * {
    min-width: 0;
  }
  h1, h2, h3, h4 { font-weight: var(--fw-medium); text-transform: uppercase; letter-spacing: var(--tracking-heading); margin: 0; }
  h1 { font-size: var(--fs-display-xl); line-height: var(--lh-display-xl); }
  h2 { font-size: var(--fs-heading-lg); line-height: var(--lh-heading-lg); }
  h3 { font-size: var(--fs-heading-md); line-height: var(--lh-heading-md); }
  h4 { font-size: var(--fs-heading-sm); line-height: var(--lh-heading-sm); letter-spacing: var(--tracking-eyebrow); }
  p { margin: 0; }
  a { color: inherit; text-decoration: none; cursor: pointer; }
  img, svg { display: block; max-width: 100%; }

  /* Components */
  .lc-eyebrow {
    font-size: 11px; font-weight: var(--fw-medium);
    letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--text-secondary);
  }
  .lc-eyebrow--inverse { color: rgba(255,255,255,0.65); }
  .lc-mono { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; }

  .lc-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    padding: 14px 24px;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: var(--fw-medium);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius: 0;
    border: 1px solid transparent;
    cursor: pointer;
    transition-property: background, color, opacity, transform, border-color;
    transition-duration: var(--dur-press);
    transition-timing-function: var(--ease-out-strong);
  }
  .lc-btn--sm { padding: 10px 18px; font-size: 11px; }
  .lc-btn--block { width: 100%; }
  .lc-btn--primary    { background: var(--lc-ink-900); color: #fff; border-color: var(--lc-ink-900); }
  .lc-btn--primary:hover { background: #2b2b2c; }
  .lc-btn--secondary  { background: transparent; color: var(--lc-ink-900); border-color: var(--lc-ink-900); }
  .lc-btn--secondary:hover { background: var(--lc-ink-900); color: #fff; }
  .lc-btn--primary-on-dark { background: #fff; color: var(--lc-ink-900); border-color: #fff; }
  .lc-btn--primary-on-dark:hover { background: var(--lc-gray-200); }
  .lc-btn--ghost-on-dark { background: transparent; color: #fff; border-color: rgba(255,255,255,0.4); }
  .lc-btn--ghost-on-dark:hover { border-color: #fff; }
  .lc-btn:active {
    transform: scale(var(--scale-press));
  }
  @media (prefers-reduced-motion: reduce) {
    .lc-btn:active {
      transform: none;
    }
  }

  /* Logo — rendered from packaged PNG artwork; inner spans kept for a11y, visually hidden */
  .lc-logo {
    display: inline-block;
    width: 132px;
    aspect-ratio: 1685 / 485;            /* wordmark + descriptor */
    background: url("../public/LC_logo_2.png") no-repeat left center / contain;
    line-height: 0; font-size: 0; color: transparent;
  }
  .lc-logo__word, .lc-logo__desc {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
  }
  .lc-logo--mark   { aspect-ratio: 1 / 1; width: 32px; background-image: url("../public/LC_logo_4.png"); }
  .lc-logo--lockup { aspect-ratio: 1685 / 814; }
  .lc-logo--lockup[data-inverse="1"] { background-image: url("../public/LC_logo_5.png"); }

  /* Header brand lockup (mark + wordmark) and footer lockup */
  .co-brand { display: inline-flex; align-items: center; gap: 12px; }
  .co-brand__mark { width: 28px; flex: 0 0 28px; }
  .co-brand__word { width: 132px; }
  .co-footer__lockup { width: 168px !important; display: block; margin-bottom: 18px; }

  .lc-header {
    position: sticky; top: 0; z-index: 50;
    background: var(--bg-page);
    border-bottom: 1px solid var(--lc-ink-900);
    transition: background var(--dur-ui) var(--ease-out-strong),
                backdrop-filter var(--dur-ui) var(--ease-out-strong),
                border-bottom-color var(--dur-ui) var(--ease-out-strong),
                box-shadow var(--dur-ui) var(--ease-out-strong);
  }
  .lc-header[data-scrolled="true"] {
    background: rgba(230, 231, 232, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom-color: transparent;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
  }
  .lc-header__inner {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 22px var(--grid-margin);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 32px;
  }
  .lc-header__brand { justify-self: start; }
  .lc-header__nav { display: flex; gap: 28px; justify-self: center; }
  .lc-nav__link {
    position: relative;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-primary);
    padding: 4px 0;
    transition: opacity var(--dur-ui) var(--ease-out-strong);
  }
  .lc-nav__link::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: currentColor;
    clip-path: inset(0 100% 0 0);
    transition: clip-path var(--dur-ui) var(--ease-out-strong);
  }
  .lc-nav__link:hover::after,
  .lc-nav__link:focus-visible::after {
    clip-path: inset(0 0 0 0);
  }
  .lc-nav__link:focus-visible {
    outline: none;
  }
  .lc-header__cta { justify-self: end; display: inline-flex; align-items: center; gap: 18px; }

  /* Language switcher */
  .lc-lang { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; }
  .lc-lang__opt { color: var(--text-tertiary); padding: 4px 0; transition: color .15s ease; }
  .lc-lang__opt:hover { color: var(--text-primary); }
  .lc-lang__opt--current { color: var(--text-primary); }
  .lc-lang__sep { color: var(--text-tertiary); opacity: 0.6; }

  .lc-field { display: flex; flex-direction: column; gap: 8px; }
  .lc-field__label { font-size: 10px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--text-secondary); }
  .lc-field__input {
    border: 0; border-bottom: 1px solid var(--lc-ink-900);
    background: transparent; padding: 6px 0 10px;
    font-family: var(--font-sans); font-size: 16px; font-weight: 300;
    color: var(--text-primary); outline: none; border-radius: 0;
  }
  .lc-field__input:focus { border-bottom-width: 2px; padding-bottom: 9px; }

  /* Page sections */
  .rb-section { max-width: var(--content-max); margin: 0 auto; padding: 120px var(--grid-margin); }
  .rb-section--ink  { background: var(--bg-ink-mid); color: #fff; max-width: none; }
  .rb-section--warm { background: var(--lc-warm-700); color: #fff; max-width: none; }
  .rb-section--gray { background: var(--lc-gray-200); max-width: none; }
  .rb-section--ink > .rb-sectionhead, .rb-section--ink > .rb-format,
  .rb-section--ink > .rb-pillars, .rb-section--ink > .rb-negspace,
  .rb-section--ink > .rb-conclusion, .rb-section--ink > .rb-gallery,
  .rb-section--ink > .rb-twocol, .rb-section--ink > .rb-prose,
  .rb-section--ink > .rb-progress, .rb-section--ink > .rb-symptoms,
  .rb-section--ink > .rb-goodresult, .rb-section--ink > .rb-measure,
  .rb-section--ink > .rb-limits, .rb-section--ink > .rb-author,
  .rb-section--ink > .rb-when, .rb-section--ink > .rb-aside,
  .rb-section--ink > .rb-testimonials, .rb-section--ink > .rb-videos,
  .rb-section--warm > * { max-width: var(--content-max); margin-left: auto; margin-right: auto; }
  .rb-section--gray > * { max-width: var(--content-max); margin-left: auto; margin-right: auto; }

  .rb-h2 {
    font-size: clamp(28px, 4vw, 56px);
    line-height: 1.08;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0;
    text-wrap: balance;
  }
  .rb-h2--inverse { color: #fff; }
  .rb-lede { font-size: 18px; line-height: 28px; font-weight: 300; max-width: 620px; text-wrap: pretty; }
  .rb-lede--inverse { color: var(--text-on-inverse-soft); }
  .rb-sectionhead { display: flex; flex-direction: column; gap: 18px; max-width: 880px; margin-bottom: 64px; }
  .rb-sectionhead--inverse .lc-eyebrow { color: rgba(255,255,255,0.6); }

  /* Consistent eyebrow→title and title→lede spacing in non-flex wrappers */
  .rb-twocol > div > .lc-eyebrow + .rb-h2,
  .rb-goodresult > div > .lc-eyebrow + .rb-h2,
  .rb-measure > div > .lc-eyebrow + .rb-h2,
  .rb-limits > div > .lc-eyebrow + .rb-h2,
  .rb-final__inner > div > .lc-eyebrow + .rb-final__title { margin-top: 18px; }
  .rb-twocol > div > .rb-h2 + .rb-lede,
  .rb-goodresult > div > .rb-h2 + .rb-lede,
  .rb-measure > div > .rb-h2 + .rb-lede,
  .rb-limits > div > .rb-h2 + .rb-lede { margin-top: 18px; }

  .rb-prose__p { font-size: 17px; line-height: 28px; font-weight: 300; margin-bottom: 18px; }
  .rb-prose p  { font-size: 17px; line-height: 28px; font-weight: 300; text-wrap: pretty; }
  .rb-prose p + p { margin-top: 16px; }
  .rb-prose--inverse p { color: var(--text-on-inverse-soft); }

  /* HERO */
  .rb-hero {
    background: var(--lc-ink-900); color: #fff;
    padding: 140px var(--grid-margin) 110px;
    position: relative; overflow: hidden;
    isolation: isolate;
    border-bottom: 1px solid #000;
  }
  /* Atmospheric layered gradient — slow Ken Burns drift */
  .rb-hero::before {
    content: ""; position: absolute; inset: -10%;
    z-index: -2;
    background:
      radial-gradient(ellipse 50% 42% at 18% 26%, rgba(93,85,78,0.45), transparent 62%),
      radial-gradient(ellipse 60% 55% at 82% 30%, rgba(92,98,91,0.55), transparent 66%),
      radial-gradient(ellipse 45% 55% at 58% 88%, rgba(42,42,43,0.92), transparent 72%),
      linear-gradient(160deg, #2A2A2B 0%, #353537 55%, #404041 100%);
    filter: blur(48px) saturate(0.55);
    transform-origin: 52% 48%;
    animation: rb-kenburns 28s ease-in-out infinite alternate;
    pointer-events: none;
  }
  /* Veil — keeps text legible over the colourful gradient */
  .rb-hero::after {
    content: ""; position: absolute; inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(42,42,43,0.82) 0%, rgba(64,64,65,0.78) 50%, rgba(42,42,43,0.90) 100%);
    pointer-events: none;
  }
  .rb-hero__inner { max-width: var(--content-max); margin: 0 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 28px; position: relative; }
  .rb-hero__title {
    font-size: clamp(40px, 5.2vw, 76px);
    line-height: 1.02;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-wrap: balance;
    hyphens: manual;
    max-width: 18ch;
    margin: 0;
  }
  .rb-hero__rb {
    font-family: var(--font-mono);
    font-size: clamp(40px, 6vw, 96px);
    line-height: 1;
    letter-spacing: -0.02em;
    margin: -8px 0 0;
    color: #fff;
    font-weight: 300;
  }
  .rb-hero__rb span { color: var(--lc-beige-500); }
  .rb-hero__lede { font-size: 18px; line-height: 28px; font-weight: 300; max-width: 620px; opacity: 0.85; }
  .rb-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 12px; }
  .rb-hero__meta {
    position: absolute; left: var(--grid-margin); right: var(--grid-margin); bottom: 26px;
    display: flex; justify-content: space-between;
    color: rgba(255,255,255,0.55);
  }

  .rb-hero [data-reveal-on-load] {
    opacity: 1;
    transform: translateY(0);
    transition: opacity var(--dur-reveal) var(--ease-out-strong),
                transform var(--dur-reveal) var(--ease-out-strong);
  }
  @starting-style {
    .rb-hero [data-reveal-on-load] {
      opacity: 0;
      transform: translateY(8px);
    }
  }
  /* Fallback for browsers without @starting-style support */
  html:not([data-mounted]) .rb-hero [data-reveal-on-load] {
    opacity: 0;
    transform: translateY(8px);
    transition: none;
  }
  /* Stagger by sibling index */
  .rb-hero [data-reveal-on-load]:nth-child(1) { transition-delay: 0ms; }
  .rb-hero [data-reveal-on-load]:nth-child(2) { transition-delay: 60ms; }
  .rb-hero [data-reveal-on-load]:nth-child(3) { transition-delay: 120ms; }
  .rb-hero [data-reveal-on-load]:nth-child(4) { transition-delay: 180ms; }
  .rb-hero [data-reveal-on-load]:nth-child(5) { transition-delay: 240ms; }
  @media (prefers-reduced-motion: reduce) {
    .rb-hero [data-reveal-on-load] {
      opacity: 1;
      transform: none;
      transition: none;
    }
  }

  /* ─── Scroll-triggered reveals ──────────────────────────── */
  [data-reveal] {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity var(--dur-reveal) var(--ease-out-strong),
                transform var(--dur-reveal) var(--ease-out-strong);
  }
  [data-reveal][data-revealed="true"] {
    opacity: 1;
    transform: translateY(0);
  }
  /* Stagger for grid groups (max 6 visible cells) */
  [data-reveal-group] [data-reveal]:nth-child(1) { transition-delay: 0ms; }
  [data-reveal-group] [data-reveal]:nth-child(2) { transition-delay: 60ms; }
  [data-reveal-group] [data-reveal]:nth-child(3) { transition-delay: 120ms; }
  [data-reveal-group] [data-reveal]:nth-child(4) { transition-delay: 180ms; }
  [data-reveal-group] [data-reveal]:nth-child(5) { transition-delay: 240ms; }
  [data-reveal-group] [data-reveal]:nth-child(6) { transition-delay: 300ms; }
  [data-reveal-group] [data-reveal]:nth-child(n+7) { transition-delay: 300ms; }
  @media (prefers-reduced-motion: reduce) {
    [data-reveal] {
      opacity: 1;
      transform: none;
      transition: none;
    }
  }

  /* Statement */
  .rb-section--statement {
    display: flex;
    flex-direction: column;
    gap: 32px;
  }
  .rb-statement__lead { display: flex; flex-direction: column; gap: 18px; }
  .rb-statement__rest { display: flex; flex-direction: column; gap: 18px; }
  .rb-statement__title {
    font-size: clamp(28px, 3.6vw, 48px); line-height: 1.1; letter-spacing: 0.06em;
    text-transform: uppercase; font-weight: 500; margin: 0;
    text-wrap: balance;
  }
  .rb-statement__listwrap { display: flex; flex-direction: column; gap: 14px; }
  .rb-statement__listlabel { color: var(--text-tertiary); }
  .rb-statement__lede  { font-size: 17px; line-height: 28px; font-weight: 300; max-width: 540px; margin: 0; }
  .rb-statement__close { font-size: 15px; line-height: 24px; font-weight: 300; max-width: 540px; color: var(--text-secondary); padding-top: 18px; border-top: 1px solid var(--lc-ink-900); margin: 6px 0 0; }

  .rb-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--lc-ink-900);
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .rb-list > li {
    display: grid; grid-template-columns: 64px 1fr;
    gap: 16px; padding: 22px 4px;
    border-bottom: 1px solid var(--lc-ink-900);
    font-size: 17px; line-height: 24px; font-weight: 300;
    align-items: center;
  }
  .rb-list > li .lc-mono { color: var(--text-secondary); }

  /* Two-col */
  .rb-twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
  .rb-twocol--narrow { gap: 56px; align-items: start; }

  /* Progression */
  .rb-progress { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--lc-ink-900); }
  .rb-progress--inverse { background: rgba(255,255,255,0.18); }
  .rb-progress__step { padding: 28px 22px; min-height: 180px; display: flex; flex-direction: column; gap: 18px; background: var(--bg-page); }
  .rb-section--gray .rb-progress__step { background: var(--lc-gray-200); }
  .rb-progress--inverse .rb-progress__step { background: var(--bg-ink-mid); }
  .rb-progress__num { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.06em; color: var(--text-secondary); }
  .rb-progress--inverse .rb-progress__num { color: rgba(255,255,255,0.5); }
  .rb-progress__step p { font-size: 16px; line-height: 24px; font-weight: 300; }
  .rb-progress--inverse .rb-progress__step p { color: var(--text-on-inverse-soft); }

  .rb-aside { margin-top: 56px; padding: 32px 0; border-top: 1px solid var(--lc-ink-900); border-bottom: 1px solid var(--lc-ink-900); font-size: 18px; line-height: 28px; font-weight: 300; max-width: 800px; }
  .rb-aside--center { margin-left: auto; margin-right: auto; text-align: center; max-width: 720px; margin-top: 64px; }
  .rb-aside--inverse { border-top-color: rgba(255,255,255,0.18); border-bottom-color: rgba(255,255,255,0.18); color: var(--text-on-inverse-soft); }

  /* Method pillars */
  .rb-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,0.18); margin: 0 auto 64px; }
  .rb-pillar { padding: 30px 26px; min-height: 140px; display: flex; flex-direction: column; gap: 18px; background: var(--bg-ink-mid); }
  .rb-pillar__n { font-family: var(--font-mono); font-size: 12px; color: rgba(255,255,255,0.5); letter-spacing: 0.08em; }
  .rb-pillar__w { font-size: 22px; line-height: 28px; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 500; text-wrap: balance; }

  .rb-negspace { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-bottom: 56px; }
  .rb-neg { padding: 24px 0; font-size: 16px; line-height: 24px; font-weight: 300; color: rgba(255,255,255,0.7); border-top: 1px solid rgba(255,255,255,0.18); }

  .rb-conclusion { font-size: clamp(20px, 2.4vw, 28px); line-height: 1.4; font-weight: 300; max-width: 820px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,0.18); }
  .rb-conclusion--dark { border-top-color: var(--lc-ink-900); margin-top: 56px; }

  .rb-pillarsmall { display: flex; flex-direction: column; gap: 14px; padding-top: 6px; }
  .rb-pillarsmall > div { font-size: 17px; letter-spacing: 0.04em; padding-bottom: 14px; border-bottom: 1px solid var(--lc-ink-900); }

  /* Patents */
  .rb-patents { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--lc-ink-900); border: 1px solid var(--lc-ink-900); margin-bottom: 64px; }
  .rb-patent {
    position: relative;
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: var(--bg-page);
    min-height: 140px;
    overflow: hidden;
  }
  .rb-patent::before {
    content: attr(data-code);
    position: absolute;
    right: 16px;
    top: 12px;
    font-family: var(--font-mono);
    font-size: 72px;
    font-weight: 300;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--lc-ink-900);
    opacity: 0.06;
    pointer-events: none;
    user-select: none;
  }
  @media (max-width: 760px) {
    .rb-patent::before {
      font-size: 48px;
      right: 10px;
      top: 8px;
    }
  }
  .rb-patent__name { font-size: 22px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 500; text-wrap: balance; }

  /* Audience */
  .rb-audience { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--lc-ink-900); }
  .rb-aud { padding: 22px 16px 22px calc(16px + 1.2em); text-indent: -1.2em; background: var(--bg-page); font-size: 16px; letter-spacing: 0.04em; font-weight: 300; -webkit-hyphens: auto; hyphens: auto; }
  .rb-section--gray .rb-aud { background: var(--lc-gray-200); }

  /* Results */
  .rb-results { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--lc-ink-900); }
  .rb-result { padding: 24px 18px; background: var(--bg-page); font-size: 17px; letter-spacing: 0.02em; font-weight: 300; min-height: 88px; display: flex; align-items: center; }
  .rb-section--gray .rb-result { background: var(--lc-gray-200); }
  .rb-fineprint { margin-top: 32px; font-size: 13px; line-height: 20px; color: var(--text-secondary); max-width: 760px; font-weight: 300; }
  .rb-fineprint--inverse { color: rgba(255,255,255,0.55); }

  /* Symptoms (BLOCK 4 — emotional sub-list) */
  .rb-symptoms { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--lc-ink-900); }
  .rb-symptom { padding: 28px 22px 26px; background: var(--bg-page); display: flex; flex-direction: column; gap: 14px; min-height: 150px; }
  .rb-section--gray .rb-symptom { background: var(--lc-gray-200); }
  .rb-symptom .lc-mono { color: var(--text-secondary); }
  .rb-symptom p { font-size: 16px; line-height: 24px; font-weight: 300; }

  /* Format (ink) */
  .rb-format__head { margin-bottom: 64px; max-width: 880px; display: flex; flex-direction: column; gap: 18px; }
  .rb-format__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,0.18); }
  .rb-fcell { padding: 32px 26px; background: var(--bg-ink-mid); display: flex; flex-direction: column; gap: 18px; min-height: 220px; }
  .rb-fcell .lc-mono { color: rgba(255,255,255,0.5); }
  .rb-fcell__v { font-size: 36px; line-height: 1.1; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; text-wrap: balance; }
  .rb-fcell p { font-size: 14px; line-height: 22px; font-weight: 300; color: rgba(255,255,255,0.75); }

  /* Assessment */
  .rb-assessment { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--lc-ink-900); }
  .rb-asscell { padding: 22px 18px; display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; background: var(--bg-page); font-size: 17px; font-weight: 300; }
  .rb-section--gray .rb-asscell { background: var(--lc-gray-200); }
  .rb-asscell .lc-mono { color: var(--text-secondary); }

  /* Author */
  .rb-author { display: grid; grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
  .rb-author__photo {
    aspect-ratio: 4 / 5;
    background: var(--bg-page);
    box-shadow: 0 0 0 1px var(--lc-ink-900),
                0 32px 60px -32px rgba(64, 64, 65, 0.25);
    overflow: hidden;
  }
  .rb-author__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
  .rb-author__body { display: flex; flex-direction: column; gap: 18px; padding-top: 4px; }
  .rb-author__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--lc-ink-900); margin-top: 24px; padding-top: 1px; }
  .rb-author__stats > div { padding: 20px 16px; display: flex; flex-direction: column; gap: 8px; background: var(--bg-page); }
  .rb-bignum { font-size: 48px; font-weight: 400; line-height: 1; letter-spacing: 0.02em; font-variant-numeric: tabular-nums; }
  .rb-author__stats .lc-mono { color: var(--text-secondary); }

  /* Good result + Measurement (lists with rule) */
  .rb-goodresult, .rb-measure, .rb-limits { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
  .rb-checklist { border-top: 1px solid var(--lc-ink-900); }
  .rb-checklist--inverse { border-top-color: rgba(255,255,255,0.18); }
  .rb-checklist__item { display: grid; grid-template-columns: 56px 1fr; gap: 16px; padding: 20px 4px; border-bottom: 1px solid var(--lc-ink-900); font-size: 16px; line-height: 24px; font-weight: 300; }
  .rb-checklist--inverse .rb-checklist__item { border-bottom-color: rgba(255,255,255,0.18); color: var(--text-on-inverse-soft); }
  .rb-checklist__item .lc-mono { color: var(--text-secondary); }
  .rb-checklist--inverse .rb-checklist__item .lc-mono { color: rgba(255,255,255,0.5); }

  /* When */
  .rb-when { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--lc-ink-900); }
  .rb-whenrow { display: grid; grid-template-columns: 100px 1fr; gap: 32px; padding: 32px 4px; border-bottom: 1px solid var(--lc-ink-900); align-items: baseline; }
  .rb-whenrow .lc-mono { color: var(--text-secondary); }
  .rb-whenrow p { font-size: clamp(18px, 2vw, 24px); line-height: 1.4; font-weight: 300; }

  /* CTA */
  .rb-cta { background: var(--bg-ink-deep); color: #fff; padding: 120px var(--grid-margin); border-bottom: 1px solid #000; }
  .rb-cta__inner { max-width: 920px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
  .rb-cta__title { font-size: clamp(36px, 5vw, 72px); line-height: 1.05; letter-spacing: 0.05em; text-transform: uppercase; font-weight: 500; margin: 0; text-wrap: balance; }
  .rb-cta__lede { font-size: 18px; line-height: 28px; font-weight: 300; opacity: 0.85; max-width: 680px; }

  .rb-form { display: flex; flex-direction: column; gap: 28px; margin-top: 24px; }
  .rb-form__rows { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 32px; }
  .rb-field__label--inv { color: rgba(255,255,255,0.55) !important; }
  .rb-field__input--inv { color: #fff !important; border-bottom-color: rgba(255,255,255,0.5) !important; }
  .rb-field__input--inv:focus { border-bottom-color: #fff !important; }
  .rb-form__legal { font-size: 11px; line-height: 18px; color: rgba(255,255,255,0.5); }
  .rb-form__ack { padding: 32px 0; border-top: 1px solid rgba(255,255,255,0.3); border-bottom: 1px solid rgba(255,255,255,0.3); }
  .rb-form__ack p { margin-top: 12px; font-size: 16px; line-height: 24px; font-weight: 300; }

  .rb-callout--italic {
    font-style: italic;
    color: var(--text-secondary);
  }

  .rb-cta__list {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 32px;
  }
  .rb-cta__list li {
    font-size: 15px;
    line-height: 24px;
    font-weight: 300;
    color: var(--text-on-inverse-soft);
  }
  .rb-cta__list .lc-mono {
    color: rgba(255,255,255,0.5);
    margin-right: 10px;
  }
  @media (max-width: 760px) {
    .rb-cta__list {
      grid-template-columns: 1fr;
    }
  }

  /* Final block */
  .rb-final { background: linear-gradient(180deg, var(--bg-ink-deep), var(--bg-ink-near-black)); color: #fff; padding: 120px var(--grid-margin); }
  .rb-final__inner { max-width: var(--content-max); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
  .rb-final__title { font-size: clamp(36px, 5.4vw, 80px); line-height: 1.04; letter-spacing: 0.04em; text-transform: uppercase; font-weight: 500; margin: 0; text-wrap: balance; }
  .rb-final__lines { display: flex; flex-direction: column; gap: 12px; padding-top: 8px; }
  .rb-final__lines > span { font-size: clamp(18px, 1.8vw, 22px); line-height: 1.3; font-weight: 300; color: var(--text-on-inverse-soft); padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.14); }
  .rb-final__close { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 18px; padding-top: 48px; border-top: 1px solid rgba(255,255,255,0.18); margin-top: 24px; }
  .rb-final__close p { font-size: 18px; line-height: 28px; font-weight: 300; max-width: 700px; }
  .rb-final__id { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.08em; color: rgba(255,255,255,0.6); text-transform: uppercase; }
  .rb-final__id span { display: block; }
  .rb-final__cta { margin-top: 16px; align-self: flex-start; }

  /* Gallery */
  .rb-gallery { display: flex; flex-direction: column; }
  .rb-gallery__head {
    display: flex; justify-content: space-between; align-items: flex-end;
    gap: 32px; margin-bottom: 32px; flex-wrap: wrap;
  }
  .rb-gallery__title { display: flex; flex-direction: column; gap: 14px; max-width: 600px; }
  .rb-gallery__nav { display: inline-flex; gap: 8px; align-self: flex-end; }
  .rb-gallery__btn {
    min-width: 44px;
    min-height: 44px;
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--lc-ink-900);
    background: transparent;
    color: var(--lc-ink-900);
    cursor: pointer;
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 300;
    border-radius: 0;
    padding: 0;
    transition-property: background, color, opacity, transform, border-color, outline-offset;
    transition-duration: var(--dur-press);
    transition-timing-function: var(--ease-out-strong);
  }
  .rb-gallery__btn:focus-visible {
    outline: 2px solid var(--lc-ink-900);
    outline-offset: 2px;
  }
  .rb-section--ink .rb-gallery__btn:focus-visible,
  .rb-section--warm .rb-gallery__btn:focus-visible {
    outline-color: #fff;
  }
  .rb-gallery__btn:hover:not(:disabled) { background: var(--lc-ink-900); color: #fff; }
  .rb-gallery__btn:disabled { opacity: .25; cursor: not-allowed; }
  .rb-gallery__btn:active:not(:disabled) {
    transform: scale(0.94);
  }
  @media (prefers-reduced-motion: reduce) {
    .rb-gallery__btn:active:not(:disabled) {
      transform: none;
    }
  }
  .rb-section--ink .rb-gallery__btn,
  .rb-section--warm .rb-gallery__btn { border-color: rgba(255,255,255,0.5); color: #fff; }
  .rb-section--ink .rb-gallery__btn:hover,
  .rb-section--warm .rb-gallery__btn:hover { background: #fff; color: var(--lc-ink-900); }
  .rb-gallery__viewport {
    position: relative;
    border: 1px solid var(--lc-ink-900);
    background: transparent;
    overflow: hidden;
  }
  .rb-section--ink .rb-gallery__viewport,
  .rb-section--warm .rb-gallery__viewport { border-color: rgba(255,255,255,0.18); }
  .rb-gallery__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .rb-gallery__track::-webkit-scrollbar { display: none; }
  .rb-gallery__slide {
    scroll-snap-align: start;
    aspect-ratio: 16 / 9;
    background: transparent;
    overflow: hidden;
    position: relative;
  }
  .rb-gallery__slide img {
    width: 100%; height: 100%; object-fit: cover; display: block;
  }
  .rb-gallery__meta {
    margin-top: 18px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.08em;
    color: var(--text-secondary);
    text-transform: uppercase;
  }
  .rb-section--ink .rb-gallery__meta,
  .rb-section--warm .rb-gallery__meta { color: rgba(255,255,255,0.55); }
  .rb-gallery__counter { font-feature-settings: "tnum"; }

  /* Footer */
  .rb-footer { background: var(--lc-ink-900); color: #fff; padding: 80px var(--grid-margin) 32px; }
  .rb-footer__top { max-width: var(--content-max); margin: 0 auto; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 48px; padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,0.18); }
  .rb-footer__col h4 { color: rgba(255,255,255,0.55); margin-bottom: 14px; }
  .rb-footer__col p  { font-size: 14px; line-height: 22px; font-weight: 300; margin-top: 12px; }
  .rb-footer__tagline { font-size: 14px; line-height: 22px; font-weight: 300; opacity: 0.7; max-width: 320px; margin-top: 18px; }
  .rb-footer__base { max-width: var(--content-max); margin: 0 auto; display: flex; justify-content: space-between; padding-top: 24px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.5); }

  /* Testimonials */
  .rb-videos { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin: 0 0 16px; }
  .rb-videos figure {
    margin: 0;
    aspect-ratio: 16 / 9;
    background: #000;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.18), 0 24px 48px -16px rgba(0,0,0,0.6);
    overflow: hidden;
  }
  .rb-videos video {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    background: #000;
  }
  .rb-testimonials { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,0.18); margin-top: 64px; }
  .rb-quote { padding: 28px 24px; display: flex; flex-direction: column; gap: 16px; background: var(--bg-ink-mid); min-height: 280px; position: relative; transition: background .25s ease; }
  .rb-quote .lc-mono { color: rgba(255,255,255,0.5); }
  .rb-quote blockquote { margin: 0; font-size: 15px; line-height: 24px; font-weight: 300; color: var(--text-on-inverse-soft); }
  .rb-quote footer { margin-top: auto; font-family: var(--font-mono); font-size: 11px; line-height: 18px; letter-spacing: 0.06em; color: rgba(255,255,255,0.55); padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.12); }
  .rb-quote__link { color: inherit; text-decoration: none; transition: color .25s ease; }
  .rb-quote__link::after { content: ""; position: absolute; inset: 0; }
  .rb-quote__link:focus-visible::after { outline: 2px solid rgba(255,255,255,0.5); outline-offset: -4px; }
  .rb-quote:hover { background: var(--bg-ink-deep, #0a0a0a); }
  .rb-quote:hover .rb-quote__link { color: rgba(255,255,255,0.85); }
  .rb-quote__arrow { position: absolute; top: 24px; right: 24px; font-size: 14px; line-height: 1; color: rgba(255,255,255,0.4); transition: color .25s ease, transform .25s ease; pointer-events: none; }
  .rb-quote:hover .rb-quote__arrow { color: #fff; transform: translate(2px, -2px); }
  .rb-pullquote__link { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; text-decoration-color: rgba(0,0,0,0.3); transition: text-decoration-color .25s ease; }
  .rb-pullquote__link:hover { text-decoration-color: currentColor; }
  .rb-pullquote__link::after { content: " ↗"; display: inline-block; transition: transform .25s ease; }
  .rb-pullquote__link:hover::after { transform: translate(2px, -2px); }
  .rb-pullquote--ink .rb-pullquote__link,
  .rb-pullquote--warm .rb-pullquote__link { text-decoration-color: rgba(255,255,255,0.35); }

  /* Tablet */
  @media (max-width: 920px) {
    .lc-header__inner { grid-template-columns: 1fr auto; }
    .lc-header__nav { display: none; }
    .rb-testimonials { grid-template-columns: 1fr 1fr; }
    .rb-videos { grid-template-columns: 1fr; gap: 32px; }
  }

  /* Mobile */
  @media (min-width: 600px) and (max-width: 760px) {
    .rb-pillars { grid-template-columns: 1fr 1fr; }
    .rb-patents { grid-template-columns: 1fr 1fr; }
    .rb-audience { grid-template-columns: 1fr 1fr; }
    .rb-results { grid-template-columns: 1fr 1fr; }
    .rb-format__grid { grid-template-columns: 1fr 1fr; }
    .rb-symptoms { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 760px) {
    :root { --grid-margin: 20px; }
    .lc-header__inner { grid-template-columns: 1fr auto; padding: 16px var(--grid-margin); gap: 12px; }
    .lc-header__nav { display: none; }
    .lc-header__cta { gap: 12px; }
    .lc-header__cta .lc-btn { display: none; }
    .lc-btn { white-space: normal; text-align: center; }

    .rb-hero { padding: 64px 20px 96px; }
    .rb-hero__title { font-size: clamp(28px, 8.5vw, 44px); line-height: 1.05; letter-spacing: 0.02em; }
    .rb-hero__rb { font-size: 36px; }
    .rb-hero__lede { font-size: 16px; line-height: 24px; }
    .rb-hero__actions { flex-direction: column; align-items: stretch; gap: 10px; width: 100%; }
    .rb-hero__actions .lc-btn { width: 100%; }
    .rb-hero__meta { position: static; padding: 32px 0 0; flex-direction: column; gap: 6px; align-items: flex-start; }

    .rb-section { padding: 64px 20px; }
    .rb-section--statement { gap: 28px; }
    .rb-statement__title { font-size: 26px; }

    .rb-list { grid-template-columns: 1fr; }
    .rb-list > li { grid-template-columns: 44px 1fr; padding: 16px 0; font-size: 15px; }

    .rb-twocol, .rb-twocol--narrow { grid-template-columns: 1fr; gap: 28px; }
    .rb-goodresult, .rb-measure, .rb-limits { grid-template-columns: 1fr; gap: 28px; }

    .rb-progress { grid-template-columns: 1fr; }
    .rb-progress__step { min-height: 0; padding: 20px 0; }

    .rb-symptoms { grid-template-columns: 1fr; }
    .rb-symptom { padding: 18px 0; min-height: 0; }

    .rb-pillars { grid-template-columns: 1fr 1fr; }
    .rb-pillar { padding: 22px 18px; min-height: 110px; }
    .rb-pillar__w { font-size: 16px; }

    .rb-negspace { grid-template-columns: 1fr; gap: 0; }
    .rb-neg { font-size: 15px; padding: 16px 0; }

    .rb-patents { grid-template-columns: 1fr 1fr; }
    .rb-patent { padding: 22px 16px; min-height: 100px; }
    .rb-patent__name { font-size: 16px; }

    .rb-audience { grid-template-columns: 1fr 1fr; }
    .rb-aud { padding: 16px 12px 16px calc(12px + 1.2em); font-size: 14px; }

    .rb-results { grid-template-columns: 1fr 1fr; }
    .rb-result { padding: 18px 12px; font-size: 14px; min-height: 70px; }

    .rb-format__grid { grid-template-columns: 1fr 1fr; }
    .rb-fcell { padding: 20px 16px; min-height: 160px; }
    .rb-fcell__v { font-size: 22px; }

    .rb-assessment { grid-template-columns: 1fr; }

    .rb-author { grid-template-columns: 1fr; gap: 28px; }
    .rb-author__stats { grid-template-columns: 1fr 1fr 1fr; }
    .rb-bignum { font-size: 32px; }

    .rb-when { border-top: 1px solid var(--lc-ink-900); }
    .rb-whenrow { grid-template-columns: 60px 1fr; gap: 12px; padding: 22px 0; }
    .rb-whenrow p { font-size: 17px; }

    .rb-cta { padding: 64px 20px; }
    .rb-cta__title { font-size: 30px; }
    .rb-form__rows { grid-template-columns: 1fr; gap: 22px; }

    .rb-final { padding: 64px 20px; }
    .rb-final__inner { grid-template-columns: 1fr; gap: 28px; }
    .rb-final__title { font-size: 32px; }

    .rb-footer { padding: 56px 20px 28px; }
    .rb-footer__top { grid-template-columns: 1fr; gap: 28px; padding-bottom: 28px; }
    .rb-footer__base { flex-direction: column; gap: 8px; align-items: flex-start; }

    .rb-gallery__head { gap: 18px; margin-bottom: 22px; }
    .rb-gallery__btn { width: 44px; height: 44px; font-size: 16px; }
    /* Slide keeps its full-track-width 4/3 box (so scroll-snap and the counter
       logic in script.js stay intact); the photo is absolutely centered inside
       it with breathing room on each side instead of bleeding edge-to-edge. */
    /* width:100% pins the slide to its full grid column — without it a grid
       item that has aspect-ratio but only an out-of-flow (absolute) child
       collapses to a ratio-derived size. */
    .rb-gallery__slide { width: 100%; aspect-ratio: 4 / 3; }
    .rb-gallery__slide img {
      position: absolute;
      inset: 0;
      margin: auto;
      width: auto;
      height: auto;
      max-width: calc(100% - 40px);
      max-height: calc(100% - 24px);
      object-fit: contain;
    }
    .rb-gallery__meta { margin-top: 12px; font-size: 10px; }

    .rb-testimonials { grid-template-columns: 1fr; margin-top: 40px; }
    .rb-quote { min-height: 0; padding: 22px 18px; }
  }

  /* Very small phones: stack tight 2-col grids to a single column so long words fit */
  @media (max-width: 480px) {
    .rb-pillars { grid-template-columns: 1fr; }
    .rb-pillar { min-height: 0; }
    .rb-format__grid { grid-template-columns: 1fr; }
    .rb-fcell { min-height: 0; }
  }

  /* Track record — block 07. Visual rhythm: numeric stats on warm bg. */
  .rb-track {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.18);
  }
  .rb-trackcell {
    background: var(--lc-warm-700);
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-height: 160px;
  }
  .rb-trackcell .lc-mono { color: rgba(255,255,255,0.55); }
  .rb-trackcell__v {
    font-size: clamp(20px, 2.2vw, 28px);
    line-height: 1.15;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: #fff;
    text-wrap: balance;
    margin-top: auto;
  }
  @media (min-width: 600px) and (max-width: 760px) {
    .rb-track { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 760px) {
    .rb-track { grid-template-columns: 1fr 1fr; }
    .rb-trackcell { padding: 22px 18px; min-height: 120px; gap: 12px; }
    .rb-trackcell__v { font-size: 18px; }
  }

  /* Pull-quote — patient voice callout between sections.
     Italic by design — signals "another voice" inside the medical-restrained body copy.
     Surface variants (--gray / --ink / --warm) let each callout pick a contrasting
     background relative to the sections it sits between. */
  .rb-pullquote {
    padding: 96px var(--grid-margin);
    text-align: center;
    background: var(--bg-page);
    border-top: 1px solid var(--lc-ink-900);
    border-bottom: 1px solid var(--lc-ink-900);
  }
  .rb-pullquote__q {
    font-size: clamp(22px, 2.8vw, 36px);
    line-height: 1.3;
    font-weight: 300;
    font-style: italic;
    max-width: 880px;
    margin: 0 auto;
    text-wrap: balance;
    color: var(--text-primary);
  }
  .rb-pullquote__cite {
    display: block;
    margin-top: 28px;
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 18px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-secondary);
    font-style: normal;
  }
  .rb-pullquote--gray { background: var(--lc-gray-200); border-color: var(--lc-ink-900); }
  .rb-pullquote--ink {
    background: var(--lc-ink-900);
    border-top-color: rgba(255,255,255,0.12);
    border-bottom-color: rgba(255,255,255,0.12);
  }
  .rb-pullquote--ink .rb-pullquote__q { color: #fff; }
  .rb-pullquote--ink .rb-pullquote__cite { color: rgba(255,255,255,0.55); }
  .rb-pullquote--warm {
    background: var(--lc-warm-700);
    border-top-color: rgba(255,255,255,0.12);
    border-bottom-color: rgba(255,255,255,0.12);
  }
  .rb-pullquote--warm .rb-pullquote__q { color: #fff; }
  .rb-pullquote--warm .rb-pullquote__cite { color: rgba(255,255,255,0.55); }
  @media (max-width: 760px) {
    .rb-pullquote { padding: 56px 20px; }
    .rb-pullquote__q { font-size: 20px; line-height: 1.35; }
    .rb-pullquote__cite { margin-top: 20px; font-size: 10px; }
  }

  /* Russian-locale typography. Inter renders Cyrillic uppercase visibly lighter
     than Latin uppercase at the same weight — compensate with weight + size + tracking. */
  html[lang="ru"] .rb-hero__title { font-weight: 600; }
  html[lang="ru"] .rb-h2 {
    font-weight: 600;
    font-size: clamp(30px, 4.3vw, 60px);
    letter-spacing: 0.05em;
  }
  html[lang="ru"] .rb-lede { font-weight: 400; }

  /* Background pattern utilities — additive decorative layers for visual diversification.
     Each attaches via ::before; `isolation: isolate` keeps content above the pseudo
     without per-element z-index plumbing. Patterns are static; no motion concerns. */
  .rb-bg-aurora,
  .rb-bg-mesh,
  .rb-bg-sweep {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }

  /* Aurora — soft warm radial blobs that glow against dark surfaces.
     Tuned brighter than the brand warm-700 because dark-on-near-black has no contrast;
     aurora needs to ADD light, not echo the base. */
  .rb-bg-aurora::before {
    content: "";
    position: absolute;
    inset: -10%;
    z-index: -1;
    background:
      radial-gradient(ellipse 58% 52% at 14% 24%, rgba(196,168,132,0.55), transparent 62%),
      radial-gradient(ellipse 62% 56% at 86% 78%, rgba(214,182,142,0.48), transparent 65%),
      radial-gradient(circle at 50% 50%, rgba(240,212,170,0.14), transparent 55%);
    filter: blur(42px);
    pointer-events: none;
  }

  /* Mesh — fine dot grid faded at the edges so it doesn't butt against adjacent
     blocks. Reads as scientific paper / measurement grid. Dark dots on light surfaces. */
  .rb-bg-mesh::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: radial-gradient(circle at 1px 1px, rgba(0,0,0,0.10) 1px, transparent 1.5px);
    background-size: 28px 28px;
    pointer-events: none;
    -webkit-mask-image: radial-gradient(ellipse 80% 90% at 50% 50%, black 50%, transparent 100%);
    mask-image: radial-gradient(ellipse 80% 90% at 50% 50%, black 50%, transparent 100%);
  }

  /* Sweep — soft conic accent, heavily blurred. Gentler than aurora.
     Works on white surfaces — adds a faint warm directional cast. */
  .rb-bg-sweep::before {
    content: "";
    position: absolute;
    inset: -12%;
    z-index: -1;
    background: conic-gradient(
      from 200deg at 28% 32%,
      transparent 0deg,
      rgba(143,130,114,0.18) 70deg,
      transparent 200deg
    );
    filter: blur(72px);
    pointer-events: none;
  }

  /* Pull-quote dark/warm variants get an aurora baked in — adds depth without
     adding utility classes to every callout. */
  .rb-pullquote--ink,
  .rb-pullquote--warm {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }
  .rb-pullquote--ink::before,
  .rb-pullquote--warm::before {
    content: "";
    position: absolute;
    inset: -12%;
    z-index: -1;
    background:
      radial-gradient(ellipse 55% 50% at 12% 24%, rgba(196,168,132,0.52), transparent 62%),
      radial-gradient(ellipse 60% 55% at 88% 76%, rgba(214,182,142,0.42), transparent 65%),
      radial-gradient(circle at 50% 50%, rgba(240,212,170,0.10), transparent 55%);
    filter: blur(38px);
    pointer-events: none;
  }

  /* ============================================================
     ATMOSPHERIC ANIMATED BACKGROUNDS
     Ken Burns drift over layered radial gradients for ink / warm
     / cream / final sections. Adapted from the combined landing
     prototype. Each section keeps its solid base color as fallback;
     the gradient and veil sit BETWEEN the base and content via
     negative-z pseudo-elements inside an isolation context.
     ============================================================ */
  @keyframes rb-kenburns {
    0%   { transform: scale(1.04) translate(0%, 0%); }
    100% { transform: scale(1.10) translate(-1.5%, -1.5%); }
  }
  @keyframes co-rise-block {
    from { transform: translateY(110%); }
    to   { transform: translateY(0); }
  }

  /* Stacking context + clipping for the pseudo-layered backgrounds */
  .rb-section--ink,
  .rb-section--warm,
  .rb-section--gray,
  .rb-cta,
  .rb-final {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }

  /* INK sections — method, format, testimonials. Deep ink + warm/olive lobes. */
  .rb-section--ink::before {
    content: ""; position: absolute; inset: -10%;
    z-index: -2;
    background:
      radial-gradient(ellipse 55% 45% at 76% 24%, rgba(93,85,78,0.45), transparent 62%),
      radial-gradient(ellipse 65% 55% at 22% 34%, rgba(92,98,91,0.55), transparent 66%),
      radial-gradient(ellipse 50% 55% at 60% 90%, rgba(42,42,43,0.94), transparent 72%),
      linear-gradient(170deg, #2A2A2B 0%, #353537 55%, #404041 100%);
    filter: blur(48px) saturate(0.55);
    transform-origin: 48% 52%;
    animation: rb-kenburns 32s ease-in-out infinite alternate;
    pointer-events: none;
  }
  .rb-section--ink::after {
    content: ""; position: absolute; inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(42,42,43,0.78) 0%, rgba(64,64,65,0.78) 50%, rgba(42,42,43,0.88) 100%);
    pointer-events: none;
  }

  /* WARM sections — track record, gallery. Clay/sand layered. */
  .rb-section--warm::before {
    content: ""; position: absolute; inset: -10%;
    z-index: -2;
    background:
      radial-gradient(ellipse 60% 50% at 30% 70%, rgba(196,168,132,0.30), transparent 62%),
      radial-gradient(ellipse 55% 50% at 80% 24%, rgba(143,130,114,0.45), transparent 66%),
      radial-gradient(ellipse 45% 55% at 50% 50%, rgba(74,67,61,0.55), transparent 72%),
      linear-gradient(150deg, #5D554E 0%, #6A6056 55%, #8F8272 100%);
    filter: blur(48px) saturate(0.7);
    transform-origin: 50% 50%;
    animation: rb-kenburns 30s ease-in-out infinite alternate;
    pointer-events: none;
  }
  .rb-section--warm::after {
    content: ""; position: absolute; inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(93,85,78,0.55) 0%, rgba(74,67,61,0.45) 50%, rgba(93,85,78,0.62) 100%);
    pointer-events: none;
  }

  /* GRAY sections take on a cream paper atmosphere (no yellow, brand palette) */
  .rb-section--gray::before {
    content: ""; position: absolute; inset: -10%;
    z-index: -2;
    background:
      radial-gradient(ellipse 55% 45% at 24% 30%, rgba(245,240,229,0.95), transparent 62%),
      radial-gradient(ellipse 60% 55% at 80% 34%, rgba(209,210,212,0.65), transparent 66%),
      radial-gradient(ellipse 50% 55% at 60% 88%, rgba(143,130,114,0.30), transparent 72%),
      linear-gradient(160deg, #EFE8DA 0%, #E6E2D4 55%, #D6CFBE 100%);
    filter: blur(48px) saturate(0.55);
    transform-origin: 50% 50%;
    animation: rb-kenburns 34s ease-in-out infinite alternate;
    pointer-events: none;
  }
  .rb-section--gray::after {
    content: ""; position: absolute; inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(230,231,232,0.82) 0%, rgba(239,239,239,0.86) 50%, rgba(230,231,232,0.90) 100%);
    pointer-events: none;
  }

  /* CTA — same ink family, slightly more central glow */
  .rb-cta::before {
    content: ""; position: absolute; inset: -10%;
    z-index: -2;
    background:
      radial-gradient(ellipse 50% 50% at 50% 30%, rgba(93,85,78,0.48), transparent 62%),
      radial-gradient(ellipse 60% 55% at 18% 80%, rgba(92,98,91,0.50), transparent 66%),
      radial-gradient(ellipse 60% 55% at 82% 88%, rgba(42,42,43,0.92), transparent 72%),
      linear-gradient(180deg, #2A2A2B 0%, #353537 55%, #404041 100%);
    filter: blur(48px) saturate(0.55);
    transform-origin: 50% 50%;
    animation: rb-kenburns 30s ease-in-out infinite alternate;
    pointer-events: none;
  }
  .rb-cta::after {
    content: ""; position: absolute; inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(42,42,43,0.78) 0%, rgba(64,64,65,0.80) 50%, rgba(42,42,43,0.90) 100%);
    pointer-events: none;
  }

  /* FINAL — diagonal ink gradient with the same Ken Burns drift */
  .rb-final::before {
    content: ""; position: absolute; inset: -10%;
    z-index: -2;
    background:
      radial-gradient(ellipse 50% 50% at 50% 30%, rgba(93,85,78,0.48), transparent 62%),
      radial-gradient(ellipse 60% 55% at 18% 80%, rgba(92,98,91,0.50), transparent 66%),
      radial-gradient(ellipse 60% 55% at 82% 88%, rgba(42,42,43,0.92), transparent 72%),
      linear-gradient(165deg, #2A2A2B 0%, #353537 55%, #404041 100%);
    filter: blur(48px) saturate(0.55);
    transform-origin: 50% 50%;
    animation: rb-kenburns 34s ease-in-out infinite alternate;
    pointer-events: none;
  }
  .rb-final::after {
    content: ""; position: absolute; inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(42,42,43,0.78) 0%, rgba(64,64,65,0.82) 50%, rgba(42,42,43,0.92) 100%);
    pointer-events: none;
  }

  /* ============================================================
     KINETIC TYPE — line-by-line rise reveal for hero h1 and section h2s
     Wrap structure (added by JS):
       <heading class="co-h1|co-h2"><span class="ln"><span>text</span></span>…</heading>
     ============================================================ */
  .co-h1 .ln, .co-h2 .ln { display: block; overflow: hidden; }
  .co-h1 .ln > span,
  .co-h2 .ln > span {
    display: inline-block;
    transform: translateY(110%);
    transition: transform 1s cubic-bezier(.16,.84,.3,1);
    will-change: transform;
  }
  .co-h2.is-visible .ln > span { transform: translateY(0); }
  .co-h2.is-visible .ln:nth-child(1) > span { transition-delay: 0.05s; }
  .co-h2.is-visible .ln:nth-child(2) > span { transition-delay: 0.15s; }
  .co-h2.is-visible .ln:nth-child(3) > span { transition-delay: 0.25s; }
  .co-h2.is-visible .ln:nth-child(4) > span { transition-delay: 0.35s; }
  .co-h2.is-visible .ln:nth-child(5) > span { transition-delay: 0.45s; }

  /* Hero h1 — animation-driven, plays once on load */
  .co-h1 .ln > span {
    animation: co-rise-block 1.2s cubic-bezier(.16,.84,.3,1) both;
  }
  .co-h1 .ln:nth-child(1) > span { animation-delay: 0.18s; }
  .co-h1 .ln:nth-child(2) > span { animation-delay: 0.32s; }
  .co-h1 .ln:nth-child(3) > span { animation-delay: 0.46s; }
  .co-h1 .ln:nth-child(4) > span { animation-delay: 0.60s; }
  .co-h1 .ln:nth-child(5) > span { animation-delay: 0.74s; }

  /* ============================================================
     EYEBROW UNDERLINE WIPE — a 60px hairline next to the eyebrow
     that scales in from the left when the section comes into view.
     ============================================================ */
  .rb-sectionhead .lc-eyebrow,
  .rb-format__head .lc-eyebrow,
  .rb-cta__inner > .lc-eyebrow,
  .rb-final__inner .lc-eyebrow {
    position: relative;
    display: inline-block;
    padding-right: 80px;
  }
  .rb-sectionhead .lc-eyebrow::after,
  .rb-format__head .lc-eyebrow::after,
  .rb-cta__inner > .lc-eyebrow::after,
  .rb-final__inner .lc-eyebrow::after {
    content: "";
    position: absolute;
    right: 0; top: 50%;
    height: 1px;
    width: 60px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 1s cubic-bezier(.16,.84,.3,1) 0.2s;
    opacity: 0.6;
  }
  .rb-sectionhead[data-revealed="true"] .lc-eyebrow::after,
  .rb-format__head[data-revealed="true"] .lc-eyebrow::after { transform: scaleX(1); }
  /* CTA + final eyebrows aren't wrapped in a [data-reveal] — wipe on mount */
  html[data-mounted] .rb-cta__inner > .lc-eyebrow::after,
  html[data-mounted] .rb-final__inner .lc-eyebrow::after { transform: scaleX(1); transition-delay: 0.5s; }

  /* Reduced-motion — flatten everything */
  @media (prefers-reduced-motion: reduce) {
    .rb-hero::before, .rb-section--ink::before, .rb-section--warm::before,
    .rb-section--gray::before, .rb-cta::before, .rb-final::before {
      animation: none;
    }
    .co-h1 .ln > span, .co-h2 .ln > span {
      transform: none !important;
      animation: none !important;
    }
    .rb-sectionhead .lc-eyebrow::after,
    .rb-format__head .lc-eyebrow::after,
    .rb-cta__inner > .lc-eyebrow::after,
    .rb-final__inner .lc-eyebrow::after { transform: scaleX(1) !important; }
  }

  /* Mobile — pull the eyebrow wipe in so it doesn't push titles around */
  @media (max-width: 760px) {
    .rb-sectionhead .lc-eyebrow,
    .rb-format__head .lc-eyebrow,
    .rb-cta__inner > .lc-eyebrow,
    .rb-final__inner .lc-eyebrow { padding-right: 56px; }
    .rb-sectionhead .lc-eyebrow::after,
    .rb-format__head .lc-eyebrow::after,
    .rb-cta__inner > .lc-eyebrow::after,
    .rb-final__inner .lc-eyebrow::after { width: 40px; }
  }

  /* ─── Lightbox (fullscreen image viewer) ─────────────────── */
  .rb-gallery__slide img.is-zoomable { cursor: zoom-in; }

  .lc-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(16px, 5vw, 64px);
    opacity: 0;
    transition: opacity var(--dur-ui) var(--ease-out-strong);
  }
  .lc-lightbox[data-open="true"] { opacity: 1; }
  .lc-lightbox[hidden] { display: none; }

  .lc-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(28, 28, 29, 0.94);
    cursor: zoom-out;
  }

  .lc-lightbox__stage {
    position: relative;
    margin: 0;
    display: flex;
    max-width: 100%;
    max-height: 100%;
  }
  .lc-lightbox__img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100vh - clamp(32px, 12vw, 128px));
    object-fit: contain;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
  }

  .lc-lightbox__btn {
    position: absolute;
    z-index: 1;
    min-width: 44px;
    min-height: 44px;
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.5);
    background: transparent;
    color: #fff;
    cursor: pointer;
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 300;
    border-radius: 0;
    padding: 0;
    transition-property: background, color, transform, border-color;
    transition-duration: var(--dur-press);
    transition-timing-function: var(--ease-out-strong);
  }
  .lc-lightbox__btn:hover { background: #fff; color: var(--lc-ink-900); }
  .lc-lightbox__btn:active { transform: scale(0.94); }
  .lc-lightbox__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

  .lc-lightbox__btn--close { top: clamp(12px, 3vw, 28px); right: clamp(12px, 3vw, 28px); font-size: 22px; }
  .lc-lightbox__btn--prev { left: clamp(12px, 3vw, 28px); top: 50%; transform: translateY(-50%); }
  .lc-lightbox__btn--next { right: clamp(12px, 3vw, 28px); top: 50%; transform: translateY(-50%); }
  .lc-lightbox__btn--prev:active { transform: translateY(-50%) scale(0.94); }
  .lc-lightbox__btn--next:active { transform: translateY(-50%) scale(0.94); }

  .lc-lightbox__counter {
    position: absolute;
    bottom: clamp(12px, 3vw, 28px);
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.06em;
    color: rgba(255, 255, 255, 0.7);
  }

  html[data-lightbox="open"] { overflow: hidden; }

  @media (prefers-reduced-motion: reduce) {
    .lc-lightbox, .lc-lightbox__btn { transition: none; }
    .lc-lightbox__btn:active { transform: none; }
    .lc-lightbox__btn--prev:active, .lc-lightbox__btn--next:active { transform: translateY(-50%); }
  }
