/* =====================================================================
   OUR APPROACH — page sheet for src/pages/our-approach.html
   No colour value appears here. Everything refers to css/tokens.css.

   SCOPE IS BY SELECTOR THROUGHOUT. Every rule is reached through
   `.a-hero`, `.a-cta`, `.jcol-lead`, or the two dark bands' own `.vm*`
   and `.tlw*`/`.beacon*` families. Nothing here is keyed to a position in
   the document or to a count of anything.

   THE FOUR PAGE-CHROME RULES WERE COPIED AS AUTHORED, not re-derived.
   `.a-hero .kick` and `.a-hero .body` are reached through the hero
   wrapper; `.a-cta` styles the hero's call-to-action paragraph;
   `.jcol-lead` styles the copy column of the join band.

   THE TWO BANDS' RULES ARRIVED BYTE-IDENTICAL and are governed by the
   blocks that precede each of them. **SINCE G3, 2026-08-16, ONLY ONE OF
   THEM IS DARK: `.vm-band` is --cream and `.tlw-band` is --ground-dark.**
   The `--accent`-on-dark surfaces in this sheet are `.beacon-badge` x6 in
   `.tlw-band` and NOTHING ELSE — `.vm-label` left that group when the band
   went sand and is now --accent on --cream. The token warning in the §2
   block below is still load-bearing for this file, but it is now a warning
   about TWO DIFFERENT GROUNDS with two different figures. Read it before
   touching `--accent` anywhere, and read which ground each figure is on.

   `.jcol-lead` IS AUTHORED HERE RATHER THAN IN components/join-form.css
   BECAUSE THE ELEMENT IT STYLES IS NOT IN THAT PARTIAL. join-form.html
   carries no copy column. The paragraph lives in this page's own join
   wrapper, so the rule lives exactly as wide as the element does. A
   page whose sheet omits this rule inherits nothing for that
   paragraph — the shared sheet has never carried it.
   ===================================================================== */

/* ---- PAGE-LOCAL DEVIATION REGISTER ----------------------------------
   Prefix OA-. Numbered from 1 and never renumbered.

   OA-1 · THE JOIN BAND'S COPY IS BORROWED, NOT WRITTEN FOR THIS PAGE.
   partials/components/join-our-approach.html carries the heading and
   lead paragraph of partials/components/join-about.html, character for
   character, on instruction and as a placeholder. It is NOT copy chosen
   for this page and no part of it was authored here. When the client
   supplies per-page join copy, that wrapper is rewritten and this entry
   is closed. Until then the two files say the same thing by borrowing,
   not by design — changing one does not change the other.

   OA-2 · THE FOUR HERO STRINGS ARE DIRECTOR-DRAFTED, NOT CLIENT-SUPPLIED.
   Eyebrow, h1, body and CTA in src/pages/our-approach.html were drafted and
   approved 2026-08-14 and are set exactly as given — no typographic
   correction, no re-wrapping, no smart quotes. Same status as OA-1: they
   stand until the client supplies copy written for this page, and replacing
   them is a copy change. Verified at authoring by codepoint: the body's dash
   is U+2014 and the CTA's arrow is U+2192 preceded by one U+0020.

   OA-3 · THE META DESCRIPTION IS BESPOKE AND DIRECTOR-DRAFTED. It was
   drafted and approved 2026-08-14 and is set exactly as given, with the dash
   as U+2014. It no longer duplicates the hero body — an earlier draft of this
   page repeated that string verbatim, which is the wrong shape for a
   description and roughly twice the useful length. Same status as OA-1 and
   OA-2: director-drafted, not client-supplied.

   AUTHORING WAS THE ONLY PATH, AND THAT WAS ESTABLISHED BY MEASUREMENT
   RATHER THAN ASSUMED. A mechanical derivation was looked for first. Across
   the seven pages that predate this one, NONE opens with its title's
   subject, NONE contains its own h1, and no two share an opening
   construction; lengths run 119 to 181 characters and sentence counts run
   one to three, and even the em dash appears in only some of them. Each is a
   bespoke editorial summary of its own page's argument. There is no pattern
   to follow, so no derivation was available and none was invented.

   A CLIENT-SUPPLIED DESCRIPTION REMAINS OPEN. Replacing this one changes a
   single attribute in src/pages/our-approach.html and this entry with it.

   OA-4 · TWO DARK SECTIONS ARRIVED HERE BYTE-IDENTICAL, 2026-08-14. Moved
   from the about page by director ruling: the Vision/Mission band landed as
   S2, The Longitude Way as S3, both immediately after the hero. Verified by
   sha taken FROM THIS FILE AND FROM src/pages/our-approach.html AFTER
   placement, never carried forward from the cut:

     <section class="vm-band">    895 B   sha 6f50dc73…
     <section class="tlw-band">  2,663 B  sha ff613b36…

   THE THIRTY RULES ARRIVED BYTE-IDENTICAL AT THE DECLARATION LEVEL —
   comments-stripped and whitespace-normalised, §2 1,639 B sha f4708aab… and
   §8 1,650 B sha 12b9d392…, both found verbatim in this file and absent from
   the origin sheet. Block-level shas could not survive, because the ruling
   required several comments inside those blocks to be rewritten; the
   declarations are the part that had to be exact and they are. The
   containment test was validated by mutation — an altered copy is NOT found.

   ALL FOUR FIGURES IN THIS ENTRY ARE AS AT 2026-08-14 AND ARE A RECORD OF
   WHAT ARRIVED, NOT A DESCRIPTION OF CURRENT DISK. **§2's declarations were
   rewritten by G3 on 2026-08-16, so §2 1,639 B / sha f4708aab… NO LONGER
   MATCHES THIS FILE AND IS NOT MEANT TO.** It is not corrected and must not
   be: re-deriving it against today's disk would destroy the only evidence
   that the section arrived unaltered, which is the single thing this entry
   exists to record. §8 / 1,650 B / sha 12b9d392… and both markup shas are
   untouched by G3 and still resolve. Same class as the 9ag lesson — an old
   checkpoint's figure drifts with every unit that lands after it and is
   still history, not drift. **"TWO DARK SECTIONS" likewise describes what
   arrived; since G3 only .tlw-band is dark.**

   THE DOTTED-DIVIDER BLOCK TRAVELLED WITH §2 DESPITE ITS OWN HEADING. It
   sits under "the dotted gold divider" and reads as a separate concern, but
   it styles `.vm-band .vm-item + .vm-item::before` and belongs to the
   Vision/Mission band. Leaving it behind would have stranded a rule with no
   element and removed the divider from the band that needs it.

   THE §53 --accent PAIR MOVED AS A PAIR, WHICH WAS THE NAMED HAZARD. Both
   halves — the markup half in the §2 client-header comment, the sheet half
   in the §2 dark-treatment block below — sat inside slices that move as
   units, so neither could land without the other. All four figures survive
   verbatim: #696FE8 / 3.2204 / #4E65DC / 2.6959. Four pointers were
   repointed at the new filenames and all four resolve. BOTH HALVES NOW
   CARRY THE HAZARD IN-FILE — "if this section ever moves again they move as
   a pair or not at all" — rather than only in this register, because a
   register is read when someone goes looking and a comment is read by
   whoever is already editing.

   THIS SHEET NOW HOLDS BOTH REMAINING --accent-ON-DARK SURFACES IN THE
   TREE: `.vm-label` x2 and `.beacon-badge` x6. **SUPERSEDED BY OA-5 ON
   2026-08-16 — `.vm-label` LEFT THE DARK GROUP WHEN .vm-band WENT SAND. The
   --accent-on-dark set in this sheet is now `.beacon-badge` x6 alone.**

   OA-5 · THE VISION/MISSION BAND WENT SAND AND LOST ITS TEXTURE, 2026-08-16,
   unit G3. Director change. `.vm-band` moves --ground-dark -> --cream, the
   ::before texture layer is REMOVED rather than ported, and three foregrounds
   re-derive. `.tlw-band` DOES NOT CHANGE — it keeps its plum ground and its
   texture, and the two bands must not be reasoned about together any more.

   THE TEXTURE WAS REMOVED BECAUSE NO LIGHT-GROUND RECIPE EXISTS AND
   INVENTING ONE WAS NOT THIS UNIT. Every ::before texture in this tree is
   authored against a dark ground: the layer is --slate at opacity .10, which
   READS AS LIGHTENING on plum and would read as DARKENING on sand. Porting
   it would have been a new recipe, not a move.

   TWO DECLARATIONS DIED WITH IT AND BOTH WERE VERIFIED DEAD BEFORE REMOVAL,
   NOT ASSUMED. `.vm-band{position:relative}` existed only as the containing
   block for the layer's `inset:0`, and `.vm-band > .in{position:relative;
   z-index:1}` existed only to stack content above it. Removed all three
   together and measured at 1440 / 900 / 899 / 768 / 390 — BOTH SIDES OF THE
   DIVIDER'S OWN 900px BREAKPOINT: geometry identical to three decimals,
   document height unchanged, horizontal overflow 0. **`.vm-band .vm-item
   {position:relative}` IS NOT DEAD** — it is the containing block for the
   dotted divider and is independent of the texture. Do not remove it.

   THE ASSET IS NOT ORPHANED. `.tlw-band::before` in this same sheet still
   masks assets/longitude-texture.svg, and four other sheets reference it.
   Confirmed after the removal, not before.

   FOREGROUNDS, RE-DERIVED ON THE BARE SAND GROUND rgb(246,240,230). There is
   no composited ground here any more, so these are the ground's own figures
   and not an inked variant — which is itself the change from the block below:

     h2             --gold -> --accent      8.2161 -> 3.6759  LARGE 3.0  PASS
     h3.vm-label    --accent, UNCHANGED     3.5594 -> 3.6759  LARGE 3.0  PASS
     p.vm-text      --on-dark-body ->
                    --on-page-body          8.6943 -> 7.5580  SMALL 4.5  PASS
     divider        --gold -> --stone       8.2161 -> 1.8550  decorative

   **TWO OF THOSE FOUR ROWS WERE SUPERSEDED THE SAME DAY BY OA-6 AND THE
   FIGURES ABOVE ARE LEFT AS G3's RECORD, NOT CORRECTED.** The h2 is --ink at
   13.0839 and the divider is --gold at 1.5925 since G4. The rows stay because
   this entry records what G3 changed and from what — re-deriving them would
   erase the only account of the ground move. **Read OA-6 for current values;
   read these for what happened.** Same handling as OA-4's arrival shas.

   --on-page-body RATHER THAN --ink-body, THOUGH THEY ARE ONE VALUE
   rgb(78,74,90). Both give 7.5580. This sheet's light-ground vocabulary is
   --on-page-body throughout (`.vm-text` base, `.jcol-lead`), and matching it
   keeps one name for one job on one ground.

   THE INHERITED FOREGROUND WAS A LATENT TRAP WITH NO CURRENT SYMPTOM, AND
   THAT IS WHY IT IS RECORDED RATHER THAN JUST FIXED. `.vm-band` carried
   `color:var(--on-dark)`, and **--on-dark IS --cream — one value.** On the
   new ground that inherits at 1.0000, invisible. NOTHING LOOKS BROKEN TODAY
   AND NOTHING WOULD HAVE: every descendant sets colour explicitly, so the
   band has no element that inherits. Enumerated to confirm it — section,
   .in, h2, .vm, .vm-item x2, .vm-label x2, .vm-text x2, and only the three
   text elements carry text, all three explicit. The trap is for whoever adds
   the fourth. Changed to --on-page in the same edit.

   THE h2 AND THE LABEL PASS FOR DIFFERENT REASONS AND MUST NOT BE REASONED
   ABOUT TOGETHER. The h2 is 46 / 34.952 / 28 / 28 px at 700 and is LARGE BY
   SIZE ALONE, clearing the 24px any-weight boundary by 4px at its floor. The
   label is clamp(21px, 1.4vw + 8px, 28px) — 28 / 22.392 / 21 / 21 — and is
   LARGE ONLY VIA 18.66px AT WEIGHT 700, with 2.34px of headroom at its floor.
   **The label's floor is still the accessibility decision it always was; only
   the ground under it moved.** Lower that floor below 18.66 and the threshold
   flips 3.0 -> 4.5 and 3.6759 becomes a failure, exactly as before.

   THE SEAM AT THE FOOT OF THIS BAND IS NOW A HARD LIGHT/DARK EDGE AND IT
   CARRIES NO RULE. .vm-band's bottom and .tlw-band's top coincide to a
   0.001px subpixel — y=1042.531 at 1440, 1034.672 at 1028, 1227.609 at 768,
   1511.859 at 390, gap 0.000 throughout, unmoved by this unit. The step goes
   1.0000 (plum meeting plum, an invisible seam) to **13.0839**. Ruled
   adequate without a treatment, 2026-08-16: 13.0839 is the largest ground
   step this palette offers, and .tlw-band -> #join already runs plum->paper
   at 13.9920 with no rule immediately below it on this same page. What this
   splits is the 1,416px of continuous dark G1 measured — now 526px sand
   above 889px plum.

   THE HERO SEAM IS THE NEW SOFT ONE. hero -> .vm-band at y=516.266 goes
   13.9920 -> 1.0694. ACCEPTED, director-ruled with the other four this unit
   creates. 9an routed a paper->cream step through plum; that precedent
   governed two argued sections carrying continuous prose and does not bind a
   hero handing off to a labelled band.

   OA-6 · TWO COLOUR CORRECTIONS AFTER SEEING 9bc RENDERED, 2026-08-16, unit
   G4. Director rulings taken on the built page, not on the mock. Colour only:
   no size, weight, spacing or geometry moved, and both changes measured
   metric-free at 1440 / 1028 / 768 / 390.

     .vm-band > .in > h2   --accent -> --ink    3.6759 -> 13.0839  LARGE 3.0
     dotted divider        --stone  -> --gold   1.8550 ->  1.5925  decorative

   THE h2 GAINS HEADROOM AND LOSES NOTHING. --ink on --cream is the same pair
   the Governing Members h2 uses on our-team.html, measured there at 13.0839 in
   this same checkpoint. It is LARGE by size alone at 46/34.952/28/28 @700, so
   it was never resting on the 18.66/700 boundary and still is not. **--accent
   in this band is now `.vm-label` x2 and nothing else.**

   ############################################################
   HAZARD (OA-6) — THE DIVIDER IS GOLD ON A LIGHT GROUND, AND THAT IS A KNOWN
   FLAGGED PATTERN — READ THIS BEFORE ACTING ON EITHER SIDE OF IT.

   Re-headed at C3, 2026-08-17. It read `OA-6 · …`, which MATCHES THE PATTERN
   THAT ENUMERATES ENTRIES IN THIS LOG, so the register counted 7 headings for
   6 entries. Same defect as the two `TEAM-3` headings in our-team.css. A
   sub-heading inside an entry must not wear the entry shape.

   **THIS REVERSES G3's RULING 4 DELIBERATELY. G3 moved this divider --gold ->
   --stone specifically because gold falls to 1.5925 on sand; G4 moves it back,
   on a director ruling taken after seeing the rendered page.** It is not drift
   and it is not an oversight — it is a decision that the fainter gold reads
   better here than --stone's 1.8550, which was barely brighter anyway.

   **GOLD ON A LIGHT GROUND IS FLAGGED FOR RICK UNDER R4 AND THIS UNIT ADDS A
   SECOND DELIBERATE INSTANCE.** R4's flag is the client's gold emphasis on
   "Longitude is changing that." on why-longitude.html, which renders violet
   because --gold measures 1.7030 on --paper and fails even 3.0. That is a
   COPY-EMPHASIS decision on another page; this is a DECORATIVE RULE on this
   one, and the two are different nouns. **They share a cause: --gold has no
   contrast against any light ground in this palette.**

   **IF R4 RULES AGAINST GOLD ON LIGHT GROUNDS, THIS DIVIDER IS IN SCOPE FOR
   THAT RULING.** Whoever executes R4 must sweep for --gold on light grounds
   rather than only revisiting the why-longitude emphasis, and this entry is
   written to be findable from that side: the instances are
   `why-longitude.html`'s gold emphasis (1.7030 on paper) and
   `.vm-band .vm-item + .vm-item::before` here (1.5925 on cream). Reverting
   this one is a two-token edit in the two media queries below.

   **NO SC THRESHOLD BINDS EITHER FIGURE AND THAT IS NOT THE POINT.** The
   divider is decorative — it separates two already-labelled blocks and carries
   no information the labels do not — so 1.5925 is legal and always was. The
   flag is a legibility and brand-consistency question, not a compliance one,
   and it stays open under R4 either way.
   ############################################################
   --------------------------------------------------------------------- 
   OA-7 · A TRUNCATED BRAND NAME IS COMPLETED IN CLIENT-APPROVED COPY.
   DIRECTOR-DIRECTED, C3, 2026-08-17.

   One word appended to the sixth beacon description, in
   `pages/our-approach.html`:

     before  "...share success, and move forward as One"
     after   "...share success, and move forward as One Longitude"

   **+10 bytes. No terminal period added — neither string carries one, and
   that remains deliberate.** The other five descriptions end in U+002E; this
   one does not, and OA-7 does not change that.

   ── PROVENANCE: THIS IS APPROVED COPY, NOT AUTHORED-IN-BUILD.

   The section's copy-provenance block records the six value DESCRIPTIONS as
   **director-approved new copy that SUPERSEDES T04**, and the sixth as
   "deliberate transcription from the approved source". **So this is a directed
   change to approved copy and is logged as a deviation, not as a plain edit.**
   The five FROZEN paragraphs and the six titles are untouched.

   ── ⚠ THE OLD COMMENT DEFENDED THE RIGHT CHARACTER FOR THE WRONG REASON.

   `our-approach.html` carried a standing instruction: the bare capital O in
   "as One" is deliberate, **do not lowercase it.** That instruction was
   correct and is now explained rather than merely asserted — **"One" was the
   first word of the brand name "One Longitude", and the transcription was
   TRUNCATED.** The capital was never a style choice; it was the start of a
   proper noun that got cut.

   **A rule that is right for an unknown reason survives only until someone
   tidies it.** Had a later editor "corrected" `One` to `one` on the grounds
   that a sentence-internal capital looked like a typo, the truncation would
   have become invisible. The comment has been rewritten in place to say what
   the capital is FOR. **The no-terminal-period half of that instruction is
   untouched and still binding.**

   ── THE SIX ITEMS ARE SIX LITERAL STRINGS, NOT A REPEATED PARTIAL.

   `ul.beacon` holds six inline `<li class="beacon-item">` blocks, badges
   B/E/A/C/O/N spelling BEACON. **There is no partial to fork and no loop to
   edit once.** Changing one description leaves the other five untouched;
   a future editor asked to change "the beacon copy" must edit each literal.
   This edit landed in exactly one of the six.

   ── GEOMETRY: NOTHING MOVED, INCLUDING INSIDE THE ITEM.

   Ten characters were expected to risk a reflow at narrow widths. **Measured
   at 1440 / 1028 / 768 / 390 before writing: dH 0.000 on `.beacon-text`,
   `.beacon-item`, `ul.beacon`, the footer and the body at every width.** The
   added word fits the existing line count throughout. Controlled — appending
   36 characters instead moved the item by **+26.391**, one line-height — so
   the zero is a measurement, not a blind probe.

   ── NOT IN SCOPE, AND DELIBERATELY SO.

   `span.beacon-badge` x6 sits in this same list and regressed to **2.5821**
   on plum under C1. **Accepted there as decorative and aria-hidden; C3 does
   not revisit it.** Nothing gold on this page was touched either (see WL-28
   for the `em.g` hook on why-longitude). Both were in the director's
   screenshot alongside this string and both stay as they are.

   
   OA-8 · ONE PERIOD IS APPENDED TO THE SIXTH BEACON DESCRIPTION.
   CLIENT-REQUESTED (BugHerd #24), N4, 2026-08-18.

     before  "…share success, and move forward as One Longitude"
     after   "…share success, and move forward as One Longitude."

   **+1 B. One character, one sentence, one page.** All six descriptions now
   end in U+002E; the sixth was the only exception and no longer is.

   ── ⚠ THIS REVERSES OA-7's RULING, AND OA-7 IS NOT WRONG.

   C3 recorded, at this same sentence: *"The no-terminal-period rule is
   unaffected and still deliberate."* **The client has now asked for the
   period.** OA-7 is left standing — **it did not add or remove punctuation;
   it COMPLETED A TRUNCATED BRAND NAME**, and its finding about the capital O
   is untouched and still correct. Only its punctuation half is superseded.
   The markup comment that carried the no-period instruction has been
   rewritten in place rather than left reading as live.

   ── A SIXTH DIRECTION FOR TERMINAL PERIODS, AND THE SECOND "ADD".

     index.html:167  client dropped it, the build leaves it dropped
     WL-24           client supplied none, the build adds none
     UTIL-3          client supplied one, the build removes it (deviation)
     C3 / OA-7       the string was TRUNCATED; no period was added or removed
     TEAM-4          client REPLACES a terminated string with an unterminated one
     OA-8            client asks that a period be ADDED to a string that had none

   **Six directions, six records. None generalises to another.** The MD chip
   "Snehal Patel, MD., Executive in Residence" is untouched by all six —
   **and it is not on this page**: it lives in our-team.html and
   utilities.html, confirmed by measurement rather than assumed.

   ── ⚠ THE BLAST RADIUS OF A NAIVE REPLACE-ALL, ON RECORD.

   The word "Longitude" occurs **351 times in CODE and 54 times in COMMENTS
   across src/, 405 raw, in 31 files.** This edit touched **one**. **Any
   sweep, replace-all or pattern match on that word is forbidden here** — the
   target is a single sentence, matched on its full text, asserted unique
   before writing.

   **N0 reported 401 and that figure has since moved.** It was a raw count
   taken before N1, N2 and N3, and the register prose those units added
   carries the word too. **A blast-radius figure ages the moment anyone
   writes about the thing it counts** — re-derive it, and split code from
   comments, because a replace-all hits both and only one of them renders.

   ── SCOPE AND PROVENANCE.

   The values band lives **directly in our-approach.html — zero beacon markup
   in any partial**, so there is no propagation. The second textual match at
   `:201` is C3's own comment prose, not an occurrence (§25). **No T-document
   sources this string**: it is director-approved copy that supersedes T04
   for this section, per the provenance block above.

   */

.a-cta{margin-top:32px}
.a-hero .body{max-width:60ch}
.jcol-lead{
  margin-top:22px;
  font-size:17.5px;line-height:1.6;
  color:var(--on-page-body);
  max-width:46ch;
}
.a-hero .kick{font-size:14px}

/* ---- §2 vision / mission --------------------------------------------
   Vision: and Mission: are the CLIENT DOCUMENT'S OWN labels and they
   render, unlike Header:, Body: and CTA:, which name a slot rather than
   a thing and do not. Without these two labels §2 is two unlabelled
   paragraphs of similar length with no way to tell which is which.
   THE TRAILING COLON IS BACK, AND THAT REVERSES THE LOGGED DEVIATION
   THIS COMMENT USED TO RECORD. It was dropped when §2 was built; the
   2026-08-11 mock restores it, and the client document has it. It is
   restored as .vm-band .vm-label::after{content:":"} rather than in the
   markup, because the copy string is frozen for this unit — the h3 text
   node still reads exactly "Vision" and "Mission". A CSS-generated colon
   is not in the accessibility tree the same way as authored text; that
   is acceptable here because the colon carries no meaning the label does
   not already carry, but it is the reason this is a note and not a
   silent one-liner. If the colon is ever wanted as real content, it
   belongs in the markup and this rule should go. */

.vm{margin-top:36px;display:grid;gap:40px}
@media(min-width:900px){.vm{grid-template-columns:1fr 1fr;gap:56px}}
/* min-width:0 is not cosmetic. A GRID ITEM'S DEFAULT min-width IS auto, so a
   long unbroken token in the prose can push the track wider than its 1fr
   share and overflow the column. Any fixed-fraction grid child holding
   arbitrary prose needs this; it is not specific to these two items.
   This rule was added because the class-resolution probe reported .vm-item
   as a class with no rule behind it — the check exists to catch a hook that
   styles nothing, and it caught one of mine. */
.vm-item{min-width:0}
.vm-label{
  font-family:var(--mono);font-size:11px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--on-page-soft);
  margin-bottom:14px;font-weight:400;
}
.vm-text{font-size:17.5px;color:var(--on-page-body);max-width:52ch}

/* ---- §2 SAND TREATMENT — director change, 2026-08-16, unit G3 ---------
   Visual only. Not one character of the vision or mission copy moves. This
   block REPLACES the dark treatment of 2026-08-11; that treatment's own
   figures are gone with the ground they described, and OA-5 records what
   was removed and why.

   THE GROUND IS STILL BUILT HERE, NOT BORROWED, AND STILL NOT .band-cream.
   .vm-band restates its own ground for the same reason it always did — a
   bands.css class would bring `.band-cream .in` layout with it, and
   bands.css is barred to this session. It is also a §46 decision: the
   .band-cream RULE lives in exactly one sheet, components/bands.css:19,
   and the class renders on 11 dist pages, so reusing it would inherit
   every future change to it on a page-local surface.

   THERE IS NO TEXTURE HERE AND NO COMPOSITED GROUND. Every ratio below is
   measured against the bare token, rgb(246,240,230), luminance 0.87626 —
   NOT against an inked variant. The dark treatment's figures were inked
   ones and none of them carries over. The ::before layer was removed
   rather than ported because --slate at opacity .10 lightens plum and
   would darken sand; there is no light-ground recipe in this tree.

     --ink           h2         46/34.952/28/28 @700  LARGE 3.0  13.0839
     --accent        .vm-label  28/22.392/21/21 @700  LARGE 3.0   3.6759
     --on-page-body  .vm-text   19px/400              SMALL 4.5   7.5580
     --gold          divider    2px dotted, decorative            1.5925

   THE h2 AND THE DIVIDER TOOK THEIR CURRENT VALUES IN G4, NOT G3 — see OA-6.
   G3 shipped the h2 as --accent at 3.6759 and the divider as --stone at
   1.8550; both were corrected the same day on a ruling taken from the rendered
   page. **--accent in this band is now `.vm-label` x2 and nothing else.**

   THE h2 AND THE LABEL NO LONGER SHARE A TOKEN, AND ONLY ONE OF THEM IS
   FRAGILE. Since G4 the h2 is --ink at 13.0839 — LARGE by size alone (its
   28px floor clears the 24px any-weight boundary by 4px) and carrying so
   much headroom that its classification stopped mattering. **The label is
   the fragile one and always was:** --accent at 3.6759, LARGE ONLY via
   18.66px at weight 700, with 2.34px of headroom at its 21px floor. **That
   floor is an accessibility decision and remains one.** Lower it below 18.66
   and the threshold flips 3.0 -> 4.5 with no visible symptom: the ratio will
   not move, and 3.6759 will simply stop being enough. **Until G4 both
   elements sat at the same 3.6759 and it was easy to reason about them as a
   pair; they were never one, and now they do not even look like one.**

   THE LABEL'S RATIO WENT UP, NOT DOWN, WHEN THE GROUND WENT LIGHT.
   3.5594 on bare plum -> 3.6759 on sand. Its margin over 3.0 goes +0.5594
   -> +0.6759. The 2026-08-12 resize to 28/700 that closed this label's
   SC 1.4.3 failure is therefore still doing its work and must not be read
   as made redundant by the ground change.

   THE TOKEN WARNING SURVIVES THE GROUND CHANGE BUT ITS FIGURES DO NOT, AND
   THE DIFFERENCE MATTERS. Stated on its own terms for THIS ground: --accent
   is #696FE8 and this label measures 3.6759 on --cream against the 3.0 it
   needs at 21/700. **THE PROPOSED --accent #4E65DC MEASURES 4.3910 HERE —
   a LARGE margin of +1.3910, where on the old plum ground it was 2.9797 and
   FAILED.** Moving this band to sand did not merely preserve the token
   exposure, it substantially reduced it FOR THIS ELEMENT. Two cautions:
   4.3910 still MISSES the SMALL threshold by 0.1090, so the 18.66/700
   classification is what carries it either way; and **this says nothing
   about `.beacon-badge`**, which is still --accent on the plum .tlw-band
   and is where this sheet's real token exposure now lives. Read the §8
   block for that one — do not carry this figure to it.

   THE --accent-ON-DARK SET IN THIS SHEET IS `.beacon-badge` x6 AND
   `.vm-label` IS NOT IN IT. The claim this block used to carry — that
   .vm-label was the only --accent-on-dark instance in the tree — was wrong
   in both directions before G3 even touched it: the tree held ten such
   instances, not one, and two of them were never on this page. It is now
   wrong in a third way, because this label is not on a dark ground at all.
   NO ROSTER IS RESTATED IN ITS PLACE. Count them when you need the number;
   a written count of this has gone stale four times in nine days.

   THIS NOTE HAS A TWIN in the §2 client-header comment of
   src/pages/our-approach.html, which carries the same warning and the same
   figures. R7 corrected one and found the other only by sweeping for it; A4
   moved both together; G3 rewrote both together. The two must say the same
   thing — if you correct one, correct the other, and if this section ever
   moves again they move as a pair or not at all.

   THE COLON after each label is CSS-generated (.vm-label::after) so the
   copy string stays frozen; the h3 text nodes still read exactly "Vision"
   and "Mission". Unaffected by this unit.

   TRACKING IS `normal`, AND THAT IS A MEASURED CHOICE unaffected by the
   ground. The base `.vm-label` rule carries `letter-spacing:.26em`, mono
   display tracking for 11px caps; at 28px that resolves to 7.28px per
   character and Charter's caps do not want it. Measured at 28/700,
   `MISSION:` renders 127.28px at `normal` against 185.52px at .26em, in a
   column 252px at its narrowest. `normal` is the literal removal and
   invents no constant — .02em / .04em measure 131.77 / 136.25.
   --------------------------------------------------------------------- */

/* NO `position:relative` AND NO ::before. Both were removed with the
   texture in G3 and both were verified dead first, not assumed — see OA-5.
   `.vm-band .vm-item{position:relative}` further down IS still needed; it
   is the divider's containing block and has nothing to do with the layer
   that left. */
.vm-band{background:var(--cream);color:var(--on-page)}

.vm-band > .in > h2{color:var(--ink);text-align:center}

/* THE FLOOR IS THE ACCESSIBILITY DECISION, NOT THE CEILING. 21px is not a
   taste value: --accent measures 3.6759 on this ground since G3 took it to
   --cream (3.2204 on the inked plum before it), which clears 3.0 and
   misses 4.5, so the label is legal ONLY while it classifies LARGE — i.e.
   while it stays at or above 18.66px AT WEIGHT 700. The clamp floor is what
   guarantees that at every width, and 21px leaves 2.34px of headroom above
   the boundary. ANY EDIT THAT LOWERS THIS FLOOR BELOW 18.66px SILENTLY
   REINTRODUCES AN SC 1.4.3 FAILURE — the ratio will not move and nothing
   will look broken; only the threshold flips 3.0 -> 4.5.

   The ceiling and slope are the typographic half. h2 is
   clamp(28px,3.4vw,46px) and BOTTOMS OUT AT 28px, so a flat 28px label was
   exactly the h2's size at 768 and below. 1.4vw+8px reaches the 28px
   ceiling at 1440 and sits at the 21px floor from ~930px down, which keeps
   the label subordinate everywhere the h2 is on its floor. */
.vm-band .vm-label{
  font-family:var(--serif);
  font-size:clamp(21px, 1.4vw + 8px, 28px);
  font-weight:700;
  letter-spacing:normal;
  color:var(--accent);
  text-align:center;
}
.vm-band .vm-label::after{content:":"}

/* 19px, NOT 20. At 20px the 52ch cap resolves to 578.24px and exceeds the
   562px track at 1440, so the COLUMN starts governing the measure and the
   cap that was tuned for this copy stops binding. 19px resolves to 549.33px
   and stays inside the track. Line counts are unchanged at 1440 either way —
   a ch-based cap widens with the font (§42) — so the 20px cost would have
   been invisible at the width it was chosen for and paid at the others. */
.vm-band .vm-text{font-size:19px;color:var(--on-page-body);text-align:center;margin-inline:auto}

/* ---- the dotted divider ---------------------------------------------
   ONE MECHANISM, ROTATED, SO THE STACKED STATE IS NOT A SECOND DESIGN.
   .vm is two columns only at >=900px (the breakpoint is .vm's own, 40px
   of gap below it and 56px above). Below 900 the items stack and a
   VERTICAL rule has nothing to divide, so the same absolutely-positioned
   pseudo-element is laid horizontally into the row gap instead.

   Each offset is HALF the gap that applies at that width, so the rule
   lands in the centre of the gutter and NO CONTENT MOVES in either
   state: -28px of 56, -20px of 40. The divider is drawn on the SECOND
   item, so a future third .vm-item would get one too rather than the
   rule being pinned to a count.

   Decorative: it separates two already-labelled blocks and carries no
   information the labels do not. Reported regardless.

   --gold, AND IT WENT --gold -> --stone -> --gold IN ONE DAY. It was gold
   against the dark ground, where it measured 8.2161. G3 moved it to --stone
   when the band went sand, because gold falls to 1.5925 there. **G4 moved it
   back on a director ruling taken from the rendered page — the fainter gold
   reads better here, and --stone's 1.8550 was barely brighter anyway.** Both
   swaps are recorded rather than one overwriting the other, so the next
   reader sees a decision that was made twice and not a value that drifted.

   No threshold binds either figure — this rule is decorative and carries no
   information the labels do not — so 1.5925 is legal, and so was 1.8550. The
   requirement is a hairline, not a rule that competes with the two labels
   either side of it. For the record, the alternatives measured on --cream:
   --ink-soft 4.6361 and --accent 3.6759, both of which would draw a divider
   heavier than anything else in the band, and --stone 1.8550.

   **GOLD ON A LIGHT GROUND IS FLAGGED FOR RICK UNDER R4 AND THIS IS A SECOND
   DELIBERATE INSTANCE OF IT. If R4 rules against gold on light grounds, this
   divider is in scope for that ruling** — reverting it is a two-token edit in
   the two media queries directly below. OA-6 carries the full entry and names
   both instances so the sweep can be run from the R4 side. Do not read this
   swap as closing that flag; it widens it. */

.vm-band .vm-item{position:relative}

@media(min-width:900px){
  .vm-band .vm-item + .vm-item::before{
    content:"";position:absolute;pointer-events:none;
    top:0;bottom:0;left:-28px;
    border-left:2px dotted var(--gold);
  }
}

@media(max-width:899.98px){
  .vm-band .vm-item + .vm-item::before{
    content:"";position:absolute;pointer-events:none;
    left:0;right:0;top:-20px;
    border-top:2px dotted var(--gold);
  }
}


/* ---- §8 the longitude way -------------------------------------------
   The row of asterisks between the six values and the closing three
   paragraphs is a MANUSCRIPT DIVIDER in the source and is NOT RENDERED —
   not as text, not as an <hr>, not as a decorative rule. There is
   deliberately no rule here to style one. */

/* ---- §8 DARK TWO-COLUMN + BEACON CONNECTOR — 2026-08-12 --------------
   THE GROUND IS BUILT HERE, AND THIS IS THE FOURTH LOCAL RESTATEMENT OF A
   bands.css GROUND ON THIS PROJECT. `.band-plum` would have imported
   `.band-plum .in{display:flex;gap:5vw;align-items:center}`, and this
   section's `.in` holds one block-level grid child — a lone flex item at
   `flex:0 1 auto` sizes to content and can exceed the track. The ground is
   restated locally instead. **RECORDED, NOT SILENT: this is one of four
   places on the project where a ground is re-declared locally rather than
   reached from a component sheet, each for the same reason — reaching the
   component would have crossed a write grant or imported a layout contract.
   The other three are elsewhere in the tree; the count is a consolidation
   backlog scheduled post-launch, and it is deliberately NOT restated as a
   roster here, because a roster of files goes stale the moment one of them
   moves.** The two on THIS page are the band above and this one.

   ################################################################
   FLAGGED FOR RICK — THE PLUM-ON-PLUM SEAM. This band and the one above it
   are BOTH --ground-dark and they abut: measured on the built page, the
   upper band's bottom edge and this band's top edge are both at y=1043, and
   the join is 220px of continuous dark (110 + 110 of section padding, flat
   at every width). NOTHING MARKS THE BOUNDARY BUT THIS BAND'S GOLD h2 — no
   rule, no border, no ground change.

   AND THE TEXTURE DOES NOT RUN CONTINUOUSLY ACROSS THE JOIN. Each band
   paints its own ::before at inset:0 with mask-position 0% 0%, so the 18px
   tile grid restarts at each band's own top edge. The upper band measured
   526px tall = 29.22 tiles, so the phase RESETS mid-surface rather than
   coincidentally aligning. A continuous-texture treatment across stacked
   bands is a BRAND decision, not a build one. Shipped as-is by ruling.
   ################################################################

   TEXTURE IS #fragmentation's RECIPE, unchanged: --slate masked by
   longitude-texture.svg at 18px, opacity .10. Every ratio in this block was
   measured against the COMPOSITED ground rgb(46.3,45.8,57.3), never bare
   plum — the texture LIGHTENS plum, so the inked end binds for every
   foreground here.

   EVERY COLOUR IS AUTHORED. A new dark section inherits NONE of the four
   hand-rolled `.band-plum .body{color:var(--on-dark-body)}` overrides, and
   `--ink-body` on this ground is **1.5663**. Nothing here is left to
   inherit its colour: the h2, the five paragraphs, the six titles, the six
   descriptions and the badge letters each carry an explicit rule.

   THE BADGE FILL IS --accent AND THAT ADDS SIX INSTANCES TO A HELD
   EXPOSURE GROUP. --accent on this ground measures 3.2204. The badge is a
   non-text UI shape judged at 3.0, so it clears by 0.2204 — the same thin
   margin the other seven --accent-on-plum sites carry. Under the deferred
   --accent #4E65DC the fill would fall to 2.6959 and drop BELOW 3.0.
   Counted and reported; not acted on.

   THE LETTER-ON-FILL RATIO IS A SEPARATE MEASUREMENT from the
   fill-on-ground ratio, and it is the one that governs the glyph. White on
   --accent is measured in the report; the letter is 24px so it classifies
   LARGE whatever its weight.

   NO MOTION. The utilities connector animates its nodes and rule on a `.on`
   class; this one does not, so there is no selector for a
   prefers-reduced-motion block to restate and none is authored. Adding a
   transition later would require restating EVERY selector in full.
   --------------------------------------------------------------------- */

.tlw-band{background:var(--ground-dark);color:var(--on-dark);position:relative}
.tlw-band::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:var(--slate);
  -webkit-mask-image:url(../../assets/longitude-texture.svg);
          mask-image:url(../../assets/longitude-texture.svg);
  -webkit-mask-size:18px 18px;     mask-size:18px 18px;
  -webkit-mask-repeat:repeat;      mask-repeat:repeat;
  -webkit-mask-position:top left;  mask-position:top left;
  opacity:.10;
}
.tlw-band > .in{position:relative;z-index:1}

.tlw{display:grid;gap:48px}
@media(min-width:1000px){
  .tlw{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;align-items:start}
}

.tlw-main{min-width:0}
.tlw-band .tlw-h2{color:var(--gold);margin:0}
.tlw-band .tlw-main p{
  margin-top:20px;
  font-size:16.5px;line-height:1.7;
  color:var(--on-dark-body);
  max-width:62ch;
}

.beacon{list-style:none;padding:0;margin:0;min-width:0}
.beacon-item{position:relative;padding:0 0 40px 76px}
.beacon-item:last-child{padding-bottom:0}

.beacon-badge{
  position:absolute;left:0;top:0;
  width:52px;height:52px;border-radius:50%;
  background:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:24px;font-weight:700;line-height:1;
  color:var(--on-pill);
}
/* The rule runs badge-to-badge and stops at the last node, so there is no
   dangling tail below the sixth. */
.beacon-item:not(:last-child)::after{
  content:"";position:absolute;left:25px;top:52px;
  width:2px;height:calc(100% - 52px);
  background:var(--gold);
}

.beacon-title{
  margin:0;
  font-family:var(--serif);font-size:21px;line-height:1.25;font-weight:700;
  color:var(--on-dark);
}
.beacon-text{
  margin:8px 0 0;
  font-size:16.5px;line-height:1.6;
  color:var(--on-dark-body);
  max-width:46ch;
}
