/* Phone Research page (12 Oct 2026). The phone home page's language: the navy ground,
   the raised navy cards, the logo blue and the Terminal greys; headings in the hero
   face, copy in IBM Plex Sans. Compact opening (eyebrow, sentence) → the eight
   research stages down the page, as the Technology dimensions run → the closing
   statement and links → the footer. Desktop is unchanged. */
#mobile-research { display: none; }

@media (max-width: 760px) {
  body[data-page="research"] { --psv-bg-deep-rgb: 13 31 61; background: #132d58; }
  /* a window wider than the phone column (481–760 px, a narrow desktop window or a tablet): the navy runs to both edges, the scrollbar gutter included */
  /* this sheet is loaded by this page alone, so the root can be painted directly (no :has(), which made every
     DOM change re-check the whole page while scrolling) */
  html { background-color: #132d58; }
  /* the site footer's social icons stand once on phones, in the page foot (D-107) */
  .footer-social { display: none; }
  body[data-page="research"] > #main-content { background: transparent; }
  body[data-page="research"] .research-page { width: 100%; max-width: none; margin: 0; padding: 0; display: block; }
  body[data-page="research"] .research-page > :not(#mobile-research) { display: none; }

  /* The legal links and copyright under the page, as on the phone home page. */
  body[data-page="research"] > .site-footer { display: block; padding-block: 22px 32px; background: #132d58; border-top: 0; color: #7f93a8; }
  body[data-page="research"] > .site-footer .footer-inner { flex-direction: column-reverse; align-items: flex-start; gap: 14px; width: 100%; max-width: 480px; margin-inline: auto; padding-inline: 26px; box-sizing: border-box; }
  body[data-page="research"] > .site-footer .footer-links { flex-wrap: wrap; gap: 10px 20px; padding-top: 18px; border-top: 1px solid rgb(145 184 216 / .18); width: 100%; }
  body[data-page="research"] > .site-footer .footer-links a { color: #a9b8c8; text-decoration: none; }
  body[data-page="research"] > .site-footer .footer-company { color: #a9b8c8; } /* the company lines in the legal links' colour (owner, 18 Oct 2026, D-208) */

  #mobile-research {
    --navy: #132d58; --surface: #163567; --blue: #338cff; --blue-text: #8dbbff;
    --text: #e6edf5; --copy: #a9b8c8; --muted: #7f93a8;
    --heading: #f3f7fe; --accent: #8bbcff; --body: #c0cfe3; --action: #174c91;
    --line: rgb(145 184 216 / .18); --line-strong: rgb(151 196 230 / .34);
    --sans: "Inter", "IBM Plex Sans", Arial, sans-serif; --psv-font-hero: "IBM Plex Sans", Arial, sans-serif; --psv-hero-weight: 700; --mono: "IBM Plex Mono", Consolas, monospace;
    --pad: 26px; --gap: 52px; --radius: 12px;
    display: block; width: 100%; max-width: 480px; margin: 0 auto; padding: 0;
    color: var(--text); background: var(--navy);
    font: 400 16px/1.5 var(--sans); font-variant-numeric: tabular-nums;
    -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  }
  #mobile-research * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
  #mobile-research [id] { scroll-margin-top: 70px; }

  /* 1 · The opening: the eyebrow and the sentence, as on the phone Technology page. */
  #mobile-research .mr-open { padding: 52px var(--pad) 0; }
  #mobile-research .mr-hero { margin: 0; color: var(--heading); font: 800 clamp(29px, 8.4vw, 36px)/1.08 var(--psv-font-hero); letter-spacing: -.035em; text-wrap: balance; }
  #mobile-research .mr-hero span { display: block; }
  #mobile-research .mr-hero span + span { color: var(--blue); margin-top: 4px; }

  /* 2 · The eight stages, down the page. */
  #mobile-research .mr-stages { padding: 0 var(--pad); }
  #mobile-research .mr-stage { padding-top: var(--gap); }
  #mobile-research .mr-stage:first-child { padding-top: 52px; }
  #mobile-research .mr-eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 16px; color: var(--copy); font: 600 11px/1.3 var(--sans); letter-spacing: 1.4px; text-transform: uppercase; }
  /* a stage reads as the home page's readings: the label with its blue mark, the
     two-tone heading at the readings' size, the drawing, the copy */
  #mobile-research .mr-stage .mr-eyebrow::before { content: ""; flex: none; width: 6px; height: 6px; background: var(--blue); border-radius: 1px; }
  #mobile-research .mr-no { color: var(--copy); font: inherit; letter-spacing: inherit; }
  #mobile-research .mr-no::after { content: " ·"; }
  #mobile-research .mr-stage .mr-eyebrow .mr-no + span { margin-left: -4px; }
  #mobile-research .mr-h2 { margin: 0; color: var(--heading); font: 800 clamp(29px, 8.4vw, 36px)/1.08 var(--psv-font-hero); letter-spacing: -.035em; text-wrap: balance; }
  #mobile-research .mr-h2 mark { display: block; background: none; color: var(--blue); }
  #mobile-research .mr-fig { position: relative; height: 320px; margin: 20px 0 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
  #mobile-research .mr-fig svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; }
  /* 01 plays the desktop discovery scene: the plane over its candidates */
  #mobile-research .mr-fig[data-mr-visual="0"] { height: 560px; }
  /* 02 plays the desktop relationship scene: the conditions over the ring, the
     relationships bound for modelling under it */
  #mobile-research .mr-fig[data-mr-visual="1"] { height: 600px; }
  /* 03 plays the desktop field of decision trees across the card */
  #mobile-research .mr-fig[data-mr-visual="2"] { height: 400px; }
  /* 04 plays the desktop comparison: six lanes, the leader's lines into the test under them */
  #mobile-research .mr-fig[data-mr-visual="3"] { height: 396px; }
  /* 05 plays the desktop target and hits upright: sources on top, the scale of evidence under it */
  #mobile-research .mr-fig[data-mr-visual="4"] { height: 536px; }
  /* 06 plays the desktop evidence upright: observations on top, the evidence, the validation under it */
  #mobile-research .mr-fig[data-mr-visual="5"] { height: 560px; }
  /* 07 sets the validation diagram moving: cards from the frozen model through three gates */
  #mobile-research .mr-fig[data-mr-visual="6"] { height: 470px; }
  /* 08 sets the production diagram moving: the integration check, its two ways, the live system */
  #mobile-research .mr-fig[data-mr-visual="7"] { height: 380px; }
  #mobile-research .mr-chips { position: absolute; top: 12px; left: 12px; right: 12px; z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 4px; background: #132d58; border: 1px solid var(--line); border-radius: 8px; }
  #mobile-research .mr-chips > button { min-height: 36px; margin: 0; padding: 4px 6px; border: 0; border-radius: 6px; background: none; color: var(--muted); font: 500 11.5px/1.2 var(--sans); text-align: center; cursor: pointer; }
  #mobile-research .mr-chips > button[aria-pressed="true"] { background: rgba(104,194,238,.14); color: var(--text); font-weight: 600; }
  #mobile-research .mr-chips > button:focus-visible { outline: 2px solid var(--blue); outline-offset: 1px; }
  #mobile-research .mr-copy { margin: 16px 0 0; color: var(--body); font: 400 15px/1.55 var(--sans); text-wrap: pretty; }

  /* 3 · The closing, as the System page closes: the statement, then the two links. */
  #mobile-research .mr-next { padding: 76px var(--pad) 0; }
  #mobile-research .mr-close { margin: 0 0 28px; color: var(--heading); font: 500 20px/1.45 var(--sans); letter-spacing: -.01em; text-align: center; text-wrap: balance; }
  #mobile-research .hn-action { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; padding: 11px 16px;
    border: 1px solid #5686bf; border-radius: 8px; color: #fff; background: var(--action); font: 500 16px/1.3 var(--sans); text-align: left; text-decoration: none; }
  #mobile-research .hn-action + .hn-action { margin-top: 12px; }
  #mobile-research .hn-action.mr-quiet { background: none; border-color: var(--line-strong); }
  #mobile-research .mr-next-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  #mobile-research .mr-next-txt strong { font: 600 12px/1.3 var(--sans); letter-spacing: 1.6px; }
  #mobile-research .mr-next-txt > span { color: rgb(230 237 245 / .78); font: 400 13.5px/1.35 var(--sans); }
  #mobile-research .hn-action svg { flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  #mobile-research .hn-action:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
  #mobile-research .end { height: 52px; }
  #mobile-research .hn-foot { padding: 28px var(--pad) 0; border-top: 1px solid var(--line); }
  #mobile-research .hn-pages { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin: 0; padding: 0; list-style: none; }
  #mobile-research .hn-pages a { display: inline-block; padding: 4px 0; font: 500 15px/1.3 var(--sans); color: #c0cfe3; text-decoration: none; }

  /* Sections rise in once, as on the home page. */
  #mobile-research .rv { opacity: 0; transform: translateY(18px); transition: opacity 700ms cubic-bezier(.2,.7,.2,1), transform 700ms cubic-bezier(.2,.7,.2,1); }
  #mobile-research .rv.in { opacity: 1; transform: none; }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  #mobile-research .rv { opacity: 1; transform: none; transition: none; }
}

/* Headings in capitals (owner, 13 Oct 2026, D-125); capitals take a little less negative tracking. */
@media (max-width: 760px) {
  #mobile-research :is(.mr-hero, .mr-h2) { text-transform: uppercase; letter-spacing: -.015em; }
  /* One heading standard on every phone page (owner, 13 Oct 2026, D-126): the page and section headings are
     28 px on a 390 px phone (the card headings reach the same size on their narrower measure), and the first
     line of text sits 52 px under the header: the label where there is one, the heading below it at the same gap. */
  #mobile-research :is(.mr-hero, .mr-h2) { font-size: clamp(22px, calc((100vw - 52px) / 12.07), 29px); line-height: 1.08; }
  /* The page heading at the phone home's poster size, as on the System and Technology pages (owner, 15 Oct 2026):
     one size in every language, words wrap freely into balanced lines and the blue sentence starts its own line. */
  #mobile-research .mr-open #mr-title { font-size: clamp(24px, calc((100vw - 2 * var(--pad)) / 9.1), 44px); line-height: 1.04; letter-spacing: -.025em; }
  #mobile-research #mr-title span { text-wrap: balance; }
  #mobile-research #mr-title span + span { margin-top: 0; }
}
