/* ==========================================================================
   campaign.css — THE OCTOBER CAMPAIGN, ON THE HOME PAGE.

   Adam, 2026-09-08: "2ndbrain homepage does not appear redesigned vs.
   campaign." He was right. The page had taken a COPY SWAP: October words
   poured into the old layout. The campaign is a LOOK, and the look is the
   approved one-pager v15, which he ratified after fourteen rejected versions.

   NOTHING HERE IS INVENTED. Every token, rule, kicker, yard line, board and
   ribbon below is lifted from
   "00 Inbox/Claude Outputs/(C) One-Pager v15 - 2026-09-08.html"
   and made fluid so it survives 390px as well as 1440px. The v15 spine is:

     deep purple masthead  ->  deep purple cover well  ->  ink flash bar
     ->  CREAM body (four ways in, the October board, the proof ribbon)
     ->  deep purple bands for #PutThemUp and the phone.

   Gold is ONE accent used sparingly, never a background block. Burnt orange
   is a second accent in five places only. Kickers are letterspaced mono caps
   with a hairline running off to the right. Marks are placed files, never
   redrawn. All of that is TASTE.md, and none of it is re-litigated here.

   Scoped to .camp* so it cannot reach the other twenty-five pages of this
   site, which are not campaign surfaces and were not asked to change.
   ========================================================================== */

.camp {
  --c-ink:#1D1430; --c-lav:#7A5FA6; --c-lav2:#563F82; --c-gold:#F5D77E;
  --c-cream:#FBF7EE; --c-deep:#1A1229; --c-body:#3A2F50;
  --c-line:rgba(29,20,48,.13); --c-rust:#B4542A;
  --c-pad: clamp(1.15rem, 4vw, 3rem);
  font-family: var(--font-body);
}
.camp *,
.camp *::before,
.camp *::after { box-sizing: border-box; }
.camp h1, .camp h2, .camp h3, .camp h4 { letter-spacing:-.022em; margin:0; text-wrap:balance; }
.camp p { margin:0; max-width:none; }
.camp a { text-decoration:none; }
.camp .nb { white-space:nowrap; }

/* THE YARD LINE. v15's one structural rule, and the reason fall reads as
   structure rather than decoration: a 2px ink rule with hash marks hanging
   under it and one burnt-orange tick where the eye enters. */
.camp .yard { position:relative; border-top:2px solid var(--c-ink); }
.camp .yard::before {
  content:""; position:absolute; left:0; right:0; top:0; height:4.5px; pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(29,20,48,.22) 0 1.2px,transparent 1.2px 18px);
}
.camp .yard::after {
  content:""; position:absolute; left:0; top:0; width:2px; height:8px;
  background:var(--c-rust); pointer-events:none;
}

/* the shared kicker. Sits ABOVE its yard line, per v15. */
.camp .ck {
  padding-top:0;
  font-family: var(--font-mono); font-size:clamp(.5rem,1.1vw,.58rem); font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--c-lav);
  display:flex; align-items:center; gap:10px; margin:0 0 .35rem;
}
.camp .ck::after {
  content:""; flex:1; height:1px;
  background:linear-gradient(90deg,rgba(122,95,166,.4),rgba(122,95,166,0));
}
.camp .ck .note {
  font:600 clamp(.53rem,1.1vw,.6rem)/1.3 var(--font-body); letter-spacing:0;
  text-transform:none; color:#6B6386;
}
.camp .ck--gold { color:var(--c-gold); }
.camp .ck--gold::after { background:linear-gradient(90deg,rgba(245,215,126,.6),rgba(245,215,126,0)); }

.camp .inner { max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }

/* =========================================================================
   REGION 1 : THE MASTHEAD
   FAULT 5. "need to see my big ole brian logo on that dang one pager, cmon
   now...and the phone number, big and fun like the logo." The brain was a
   24px nav mark and the number was a footnote. Here they are a PAIR, edge to
   edge, so the bar carries no dead middle.
   ========================================================================= */
/* =====================================================================
   THE THREE-HEADER FIX. 2026-09-09.

   Adam: "i'm annoyed that the site looks like it has literally, 3 headers.
   yet i somehow like the version it is becomming."

   MEASURED BEFORE TOUCHING ANYTHING, on production at 1440x900:
     nav        133px
     wire        76px
     campmast   140px
     h1 top     420px of a 900px viewport

   47 PERCENT OF THE FIRST SCREEN WAS CHROME, and it carried the 2ndBrain
   mark TWICE and the phone number twice before a single word of the pitch.

   WHERE IT CAME FROM, because the cause is a good instruction applied to the
   wrong surface. On 2026-09-08 he ruled: "need to see my big ole brian logo
   on that dang ONE PAGER, cmon now...and the phone number, big and fun like
   the logo." That is a one-pager ruling. It was applied to the home page too,
   which already had a nav carrying a small mark and a small phone. Nobody
   removed the small pair, so the page ended up wearing both.

   THE RESOLUTION HONOURS BOTH RULINGS RATHER THAN PICKING ONE. He asked for
   big. So the BIG mark and BIG number stay and the small duplicates go, and
   the nav and the masthead become one band instead of two stacked ones.
   Home page only: .campmast exists on no other page, so nothing else moves.
   ===================================================================== */

/* One band. The nav loses its ground and its border so it reads as the top
   row of the masthead rather than as a separate bar sitting on top of it. */
/* The nav takes the masthead's OWN ground rather than going transparent.
   Transparent was the first attempt and it was wrong: the body under this
   nav is #FFFFFF, so inverting the link ink to #EDE6F8 put light text on
   white and the whole menu went unreadable. Caught by looking at the render
   rather than at the rule. The gradient below is lifted from .campmast's
   ::before so the two rows are one continuous band with no visible seam. */
body:has(.campmast) header.nav {
  background:
    radial-gradient(120% 400% at 2% 0%, #3A2A66 0%, rgba(58,42,102,0) 62%),
    linear-gradient(100deg, #2C1F52 0%, #1D1430 46%, #17101F 100%);
  border-bottom: 0;
  box-shadow: none;
  position: relative;
  z-index: 3;
}
/* The small mark and the small phone. Removed, not hidden from layout only:
   both are duplicates of a larger element sitting directly beneath them. */
body:has(.campmast) header.nav .nav__brand,
body:has(.campmast) header.nav .navphone { display: none; }

/* With the brand gone the links would jam left against the viewport edge. */
body:has(.campmast) header.nav .nav__links { margin-left: 0; }

/* The nav sits ON the masthead's dark ground now, so its ink has to invert.
   Contrast checked against the masthead ground rather than assumed. */
body:has(.campmast) header.nav a { color: #EDE6F8; }
body:has(.campmast) header.nav a:hover { color: #FFC933; }
/* The mobile MENU toggle is a <button>, not an <a>, so the rule above missed
   it and it sat at oklch(0.42 0.11 300) on a near-black band: effectively
   invisible, and it is the ONLY way to navigate on a phone. Found at 390px
   by looking, not by reading the rule. */
body:has(.campmast) header.nav .nav__toggle { color: #EDE6F8; border-color: rgba(237,230,248,.34); }
body:has(.campmast) header.nav .nav__toggle:hover { color: #FFC933; border-color: rgba(255,201,51,.5); }

/* The masthead loses its own top rule: it is no longer a separate band. */
body:has(.campmast) .campmast::before { display: none; }

.campmast {
  position:relative; overflow:hidden; background:var(--c-deep);
  border-bottom:2px solid var(--c-gold);
}
.campmast::before {
  content:""; position:absolute; inset:0; background:
    radial-gradient(120% 220% at 2% 0%,#3A2A66 0%,rgba(58,42,102,0) 62%),
    linear-gradient(100deg,#2C1F52 0%,#1D1430 46%,#17101F 100%);
}
.campmast::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(rgba(251,247,238,.055) 1px,transparent 1.2px);
  background-size:16px 16px;
}
.campmast .inner {
  position:relative; z-index:2; display:flex; align-items:center;
  gap:clamp(.9rem,2.4vw,1.6rem); padding-block:clamp(.7rem,1.6vw,1rem);
}
.campmast__brand { display:flex; align-items:center; gap:clamp(.5rem,1.3vw,.85rem); flex:0 0 auto; }
.campmast__mark { height:clamp(58px,8.2vw,106px); width:auto; display:block; }
.campmast__word {
  font-weight:900; font-size:clamp(1.5rem,3.6vw,2.7rem); line-height:1;
  color:#fff; letter-spacing:-.038em;
}
.campmast__call { margin-left:auto; display:flex; align-items:center; gap:clamp(.6rem,1.6vw,1.25rem); }
.campmast__k {
  font-family:var(--font-mono); font-size:.52rem; font-weight:700; line-height:1.5;
  letter-spacing:.19em; text-transform:uppercase; color:rgba(245,215,126,.78);
  text-align:right; width:4.2em; flex:0 0 auto;
}
.campmast__num {
  font-weight:900; font-size:clamp(1.35rem,3.6vw,2.35rem); line-height:1;
  color:#fff; letter-spacing:-.045em; white-space:nowrap; display:block;
  transition:transform .15s var(--ease);
}
.campmast__num i { font-style:normal; color:var(--c-gold); }
.campmast__num:hover { transform:translateY(-2px); }
.campmast__issue {
  flex:0 0 auto; border-left:1px solid rgba(245,215,126,.3);
  padding-left:clamp(.7rem,1.6vw,1.25rem); text-align:right;
  display:flex; flex-direction:column; align-items:flex-end; gap:3px;
}
.campmast__issue b {
  font-weight:900; font-size:clamp(1.05rem,2.6vw,1.85rem); line-height:1;
  color:var(--c-gold); letter-spacing:-.035em; display:flex; align-items:center; gap:.45em;
}
.campmast__issue span {
  font-family:var(--font-mono); font-size:.5rem; font-weight:600; line-height:1.4;
  letter-spacing:.18em; text-transform:uppercase; color:rgba(251,247,238,.6);
}
.camp .leaf { width:1em; height:1em; display:block; flex:0 0 1em; }

/* =========================================================================
   REGION 2 : THE COVER WELL
   The cover lines run down the left in a fixed order, one photographic panel
   bled right, and behind the type the field itself: yard lines and two rows
   of hash marks at an opacity that reads as texture, never as illustration.
   ========================================================================= */
.campwell { position:relative; overflow:hidden; background:var(--c-deep); }
.campwell::before {
  content:""; position:absolute; inset:0; background:
    radial-gradient(58% 74% at 76% 40%,rgba(122,95,166,.40) 0%,rgba(122,95,166,0) 66%),
    radial-gradient(80% 90% at 0% 8%,rgba(58,42,102,.75) 0%,rgba(58,42,102,0) 60%),
    linear-gradient(168deg,#241A44 0%,#1D1430 44%,#17101F 100%);
}
.campwell__field {
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background-image:
    repeating-linear-gradient(90deg,rgba(251,247,238,.06) 0 1.2px,transparent 1.2px 46px),
    repeating-linear-gradient(90deg,rgba(251,247,238,.095) 0 1.2px,transparent 1.2px 11.5px),
    repeating-linear-gradient(90deg,rgba(251,247,238,.095) 0 1.2px,transparent 1.2px 11.5px);
  background-size:100% 100%,100% 5px,100% 5px;
  background-position:0 0,0 31%,0 67%;
  background-repeat:no-repeat,no-repeat,no-repeat;
}
.campwell .inner {
  position:relative; z-index:3; display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);
  gap:clamp(1.4rem,3.4vw,3rem); align-items:stretch;
  padding-block:clamp(1.6rem,3.4vw,2.6rem);
}
.campwell__col { display:flex; flex-direction:column; min-width:0; }
.campwell__eye {
  font-family:var(--font-mono); font-size:clamp(.53rem,1.15vw,.62rem); font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--c-gold);
  margin-bottom:.7rem; line-height:1.5;
}
.campwell h1 {
  font-size:clamp(2.5rem,6.2vw,4.4rem); line-height:.94; font-weight:900;
  color:var(--c-cream); letter-spacing:-.042em;
}
.campwell h1 em { font-style:normal; color:var(--c-gold); display:block; }
.campwell__deck {
  font-size:clamp(.95rem,1.35vw,1.12rem); line-height:1.42; font-weight:500;
  color:rgba(251,247,238,.82); margin-top:.85rem; max-width:34em;
}
.campwell__deck b { color:var(--c-cream); font-weight:700; }

/* THE ONE ACTION ON THE FIRST SCREEN. Added 2026-09-10 by the FUNNEL desk
   against a measured 82% one-page bounce on this landing page: 73 of 89
   sessions in seven days left without a second page. Everything above the
   fold was a statement and the only pressable things were a phone number and
   a link to a price list. This is the door, and there is deliberately only
   one of it: four ways in is the argument, not the ask. */
.campwell__act { margin-top:1.15rem; display:flex; flex-wrap:wrap; align-items:center; gap:.6rem .9rem; }
.campwell__btn {
  display:inline-block; background:var(--c-gold); color:var(--c-ink);
  font-weight:900; font-size:clamp(.9rem,1.3vw,1.02rem); letter-spacing:-.015em;
  padding:.72rem 1.35rem; border-radius:2rem; text-decoration:none;
  box-shadow:0 6px 20px rgba(0,0,0,.22); transition:transform .14s ease, box-shadow .14s ease;
}
.campwell__btn:hover { transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,.3); color:var(--c-ink); }
.campwell__btn:focus-visible { outline:3px solid var(--c-cream); outline-offset:3px; }
.campwell__actnote {
  font-size:clamp(.78rem,1.05vw,.86rem); font-weight:600; line-height:1.3;
  color:rgba(251,247,238,.72); max-width:22em;
}

/* THE AFTER. Cover lines, not bullets, and the bullet is a football drawn as
   one path at type scale. It does the job the gold ring did before it, which
   is the only reason a drawn mark is allowed on this sheet at all. */
.campwell__after { margin-top:auto; padding-top:1.15rem; }
.campwell__after .ck { color:var(--c-gold); }
.campwell__after .ck::after { background:linear-gradient(90deg,rgba(245,215,126,.6),rgba(245,215,126,0)); }
.campwell__line {
  display:flex; align-items:flex-start; gap:.65rem; padding:.4rem 0;
  font-weight:700; font-size:clamp(.9rem,1.28vw,1.06rem); line-height:1.22;
  color:var(--c-cream); letter-spacing:-.02em;
}
.campwell__line + .campwell__line { border-top:1px solid rgba(251,247,238,.13); }
.campwell__line .ball { width:1.35em; height:1em; flex:0 0 1.35em; display:block; margin-top:.1em; }
.campwell__line i { font-style:normal; font-weight:500; color:rgba(251,247,238,.7); }

.campwell__said {
  margin-top:1.1rem; padding-top:1rem; position:relative;
  border-top:1px solid rgba(245,215,126,.34);
}
.campwell__said .qm {
  position:absolute; left:-.05em; top:.1em; font-weight:900;
  font-size:clamp(2.6rem,4.6vw,3.5rem); line-height:1; color:rgba(245,215,126,.36);
}
.campwell__said p {
  font-weight:800; font-size:clamp(1.1rem,1.9vw,1.5rem); line-height:1.16;
  color:var(--c-cream); letter-spacing:-.034em; padding-left:1.55em; max-width:22em;
}
.campwell__said p b { color:var(--c-gold); font-weight:800; }
.campwell__said .by {
  font-family:var(--font-mono); font-size:.55rem; font-weight:600; line-height:1;
  letter-spacing:.18em; text-transform:uppercase; color:rgba(251,247,238,.56);
  padding-left:1.9em; margin-top:.5rem;
}

/* THE COVER IMAGE. A photographic panel, nothing stuck on top of it except
   the stamp. A thin gold hairline down the meeting edge is the advertorial
   device that stops it reading as a stock rectangle dropped into a layout. */
.campwell__fig {
  position:relative; overflow:hidden; min-height:clamp(300px,34vw,520px);
  border-radius:2px; align-self:stretch;
}
.campwell__fig img {
  position:absolute; left:50%; top:47%; transform:translate(-50%,-50%);
  width:104%; height:auto; min-height:104%; object-fit:cover; display:block;
  filter:contrast(1.07) saturate(.93);
}
.campwell__fig::before {
  content:""; position:absolute; left:0; top:0; bottom:0; width:2px; z-index:4;
  background:linear-gradient(180deg,rgba(245,215,126,0),rgba(245,215,126,.55),rgba(245,215,126,0));
}
.campwell__fig::after {
  content:""; position:absolute; inset:0; z-index:3; pointer-events:none; background:
    linear-gradient(90deg,#241A3F 0%,rgba(36,26,63,.42) 7%,rgba(36,26,63,0) 16%),
    radial-gradient(58% 56% at 50% 46%,rgba(26,18,41,0) 0%,rgba(26,18,41,0) 62%,rgba(26,18,41,.2) 86%,rgba(20,14,28,.44) 100%);
}

/* THE COVER STAMP. Bottom right of the photo, the way a magazine puts its
   coverline flash: it carries the one fact that makes the month scarce. */
.campstamp {
  position:absolute; right:clamp(.7rem,1.6vw,1.5rem); bottom:clamp(.7rem,1.6vw,1.4rem);
  z-index:5; background:var(--c-gold); color:var(--c-ink);
  padding:.6rem .9rem .55rem; border-radius:3px; max-width:min(19rem,74%);
  box-shadow:0 10px 26px rgba(10,6,20,.5);
}
.campstamp .k {
  font-family:var(--font-mono); font-size:.5rem; font-weight:700; line-height:1;
  letter-spacing:.2em; text-transform:uppercase; color:#6C5310;
}
.campstamp b {
  display:block; font-weight:900; font-size:clamp(.95rem,1.55vw,1.18rem);
  line-height:1.06; letter-spacing:-.032em; margin-top:.3rem;
}
.campstamp span {
  display:block; font-weight:600; font-size:clamp(.62rem,.95vw,.72rem);
  line-height:1.28; color:#4A3A12; margin-top:.2rem;
}

.campwell .hero__slots {
  font-family:var(--font-mono); font-size:clamp(.55rem,1vw,.63rem); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--c-gold);
  background:none; border:0; border-left:2px solid var(--c-gold);
  padding:.1rem 0 .1rem .7rem; margin:.9rem 0 0; border-radius:0; box-shadow:none;
  display:block; width:auto;
}

/* =========================================================================
   REGION 3 : THE FLASH BAR. One line, one job.
   ========================================================================= */
.campflash { background:var(--c-ink); color:var(--c-cream); }
.campflash .inner {
  display:flex; align-items:center; flex-wrap:wrap; gap:.35rem .9rem;
  padding-block:.7rem;
}
.campflash .k {
  font-family:var(--font-mono); font-size:.53rem; font-weight:700; letter-spacing:.19em;
  text-transform:uppercase; color:var(--c-gold); flex:0 0 auto;
}
.campflash .v { font-size:clamp(.85rem,1.2vw,1rem); font-weight:800; letter-spacing:-.02em; }
.campflash .u {
  font-family:var(--font-mono); font-size:clamp(.7rem,1.05vw,.83rem); font-weight:600;
  color:var(--c-gold); margin-left:auto; flex:0 0 auto;
}
.campflash .u:hover { text-decoration:underline; }

/* =========================================================================
   REGION 4 : THE FOUR WAYS IN
   FAULT 4. The positioning was buried in a run-on hero paragraph. It is the
   reason this page exists: the promise is TIME BACK and there are four doors
   to it, ranked left to right, and a reader takes whichever one is theirs.
   Never numbered 01-04, because the board below owns those numerals and two
   numbered sets on one page read as one list.
   ========================================================================= */
.campcream { background:var(--c-cream); color:var(--c-body); }
.campcream .inner { padding-block:clamp(1.1rem,2.2vw,1.6rem); }
.campcream + .campcream .inner { padding-top:0; }
.campways .cols {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  padding-top:.55rem;
}
.campways .col {
  padding:.85rem clamp(.6rem,1.3vw,1.1rem) .4rem;
  border-left:1px solid var(--c-line); display:flex; flex-direction:column; min-width:0;
}
.campways .col:first-child { padding-left:0; border-left:0; }
.campways .col:last-child { padding-right:0; }
.campways .wk {
  font-family:var(--font-mono); font-size:.5rem; font-weight:700; line-height:1;
  letter-spacing:.19em; text-transform:uppercase; color:var(--c-lav); margin-bottom:.4rem;
}
.campways h3 {
  font-weight:900; font-size:clamp(1rem,1.5vw,1.28rem); line-height:1.06;
  color:var(--c-ink); letter-spacing:-.038em;
}
.campways h3 em { font-style:normal; color:var(--c-lav2); }
.campways .col p {
  font-weight:400; font-size:clamp(.78rem,1.05vw,.87rem); line-height:1.32;
  color:#3a3450; margin-top:.4rem;
}
.campways .col p b { font-weight:800; color:var(--c-ink); }
.campways .go {
  font-family:var(--font-mono); font-size:clamp(.66rem,.95vw,.75rem); font-weight:600;
  color:var(--c-lav2); margin-top:auto; padding-top:.55rem;
}
.campways .go:hover { text-decoration:underline; }

/* THE WRAPPER. The answer a stranger actually needs before any of the four
   doors mean anything. It was the one line on the old hero written for
   somebody who has never heard of any of this, and it does not get lost with
   the layout that used to hold it. Set the way v15 sets it on page two. */
.campwhatis {
  display:flex; flex-wrap:wrap; background:#F4EFE3; border-left:4px solid var(--c-gold);
  border-radius:3px; padding:.75rem clamp(.9rem,2vw,1.3rem);
  gap:clamp(.9rem,2.4vw,1.6rem); margin-top:1rem;
}
.campwhatis .wi { flex:1 1 18rem; min-width:0; }
.campwhatis .wi + .wi { border-left:1px solid var(--c-line); padding-left:clamp(.9rem,2.4vw,1.6rem); }
.campwhatis h3 {
  font-weight:900; font-size:clamp(1rem,1.5vw,1.24rem); line-height:1.06;
  color:var(--c-ink); letter-spacing:-.035em;
}
.campwhatis h3 em { font-style:normal; color:var(--c-lav2); }
.campwhatis p {
  font-weight:400; font-size:clamp(.78rem,1.05vw,.86rem); line-height:1.36;
  color:#3a3450; margin-top:.35rem;
}
.campwhatis p b { font-weight:800; color:var(--c-ink); }

/* =========================================================================
   REGION 5 : THE OCTOBER BOARD
   FAULT 1. The campaign IS a board and the live page had it as a grey pill
   reading "two spots remain for october", eleven screens down. This is the
   board, the way v15 draws it, high on the page.

   The .slot__s spans and the data-slot / data-slotboard / data-slot-month
   hooks are UNTOUCHED so the FUNNEL desk's /api/seats feed keeps driving
   rows one and two. Row three carries no data-slot on purpose: "by
   nomination" is a policy, not a scarcity claim, and a live count must never
   rewrite it.
   ========================================================================= */
.campboard .cols {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding-top:.55rem;
}
.campboard .cslot {
  padding:.85rem clamp(.7rem,1.4vw,1.2rem) .4rem;
  border-left:1px solid var(--c-line); display:flex; flex-direction:column; min-width:0;
}
.campboard .cslot:first-child { padding-left:0; border-left:0; }
.campboard .cslot:last-child { padding-right:0; }
.campboard .top { display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; }
.campboard .n {
  font-weight:900; font-size:clamp(1.7rem,3.1vw,2.35rem); line-height:1;
  letter-spacing:-.05em; color:var(--c-ink);
}
.campboard .slot__s {
  font-family:var(--font-mono); font-size:clamp(.5rem,.85vw,.56rem); font-weight:700;
  line-height:1; letter-spacing:.18em; text-transform:uppercase; color:var(--c-lav2);
  border:1px solid rgba(86,63,130,.45); border-radius:20px; padding:.28rem .55rem .22rem;
}
.campboard h3 {
  font-weight:800; font-size:clamp(.95rem,1.45vw,1.2rem); line-height:1.1;
  color:var(--c-ink); margin-top:.45rem; letter-spacing:-.028em;
}
.campboard .cslot p {
  font-weight:400; font-size:clamp(.78rem,1.05vw,.87rem); line-height:1.32;
  color:#3a3450; margin-top:.35rem;
}
.campboard .cslot p b { font-weight:800; color:var(--c-ink); }
.campboard .fine {
  font-family:var(--font-mono); font-size:clamp(.63rem,.92vw,.72rem); font-weight:600;
  line-height:1.3; color:#6B6386; margin-top:auto; padding-top:.5rem;
}
.campboard .fine a { color:var(--c-lav2); }
.campboard .cslot--p .n { color:var(--c-lav2); }
.campboard .cslot--p .slot__s {
  color:#7a5b1d; border-color:rgba(214,168,45,.8); background:rgba(245,215,126,.32);
}
/* A row the live feed reports sold reads sold, without touching its markup. */
.campboard .cslot.slot--taken { opacity:.62; }
.campboard .cslot.slot--taken .slot__s { text-decoration:line-through; }

.campboard__acts {
  display:flex; flex-wrap:wrap; gap:.7rem 1.1rem; align-items:center;
  margin-top:1.1rem; padding-top:.9rem; border-top:1px solid var(--c-line);
}
.campbtn {
  display:inline-flex; align-items:center; justify-content:center; min-height:46px;
  padding:.55rem 1.05rem; border-radius:4px; font-family:var(--font-mono);
  font-size:clamp(.7rem,1vw,.8rem); font-weight:700; letter-spacing:.03em;
  background:var(--c-ink); color:var(--c-cream); border:2px solid var(--c-ink);
  transition:transform .14s var(--ease), box-shadow .14s var(--ease);
}
.campbtn:hover { transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--c-gold); }
.campbtn--ghost { background:transparent; color:var(--c-ink); }
.campbtn--gold { background:var(--c-gold); color:var(--c-ink); border-color:var(--c-gold); }
.campbtn--gold:hover { box-shadow:4px 4px 0 var(--c-ink); }
.campboard__acts .side {
  font-family:var(--font-mono); font-size:clamp(.68rem,.95vw,.76rem); font-weight:600;
  color:var(--c-lav2);
}

/* =========================================================================
   REGION 6 : #PutThemUp
   FAULT 2. The hashtag appeared ZERO times on the rendered home page and slot
   03 is the campaign's whole viral mechanic. Adam: "the putthemup piece needs
   to be more in your face and GO HERE to PUTTHEMUP."

   LOUD IS SIZE, WEIGHT, CONTRAST AND POSITION, NEVER PUNCTUATION. He wrote
   that note with four exclamation points and there is not one on this page,
   per root section 5.

   The hashtag is ONE text node. Setting it as #PutThem<em>Up</em> renders
   identically and fails preflight, because the stripper turns any inline
   element into a space and reads the page as saying "#PutThem Up". The accent
   goes on a rule under it, never inside it.
   ========================================================================= */
.campputup { position:relative; overflow:hidden; background:var(--c-deep); border-top:3px solid var(--c-gold); }
.campputup::before {
  content:""; position:absolute; inset:0; background:
    radial-gradient(78% 200% at 6% 52%,rgba(180,84,42,.44) 0%,rgba(180,84,42,0) 60%),
    linear-gradient(96deg,#241835 0%,#1A1229 60%,#17101F 100%);
}
.campputup::after {
  content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(245,215,126,.13) 0 1px,rgba(245,215,126,0) 1px 34px);
}
.campputup .inner {
  position:relative; z-index:2; display:flex; align-items:center; flex-wrap:wrap;
  gap:clamp(1rem,2.6vw,2rem); padding-block:clamp(1.2rem,2.6vw,1.9rem);
}
.campputup__l { flex:1 1 22rem; min-width:0; }
.campputup__k {
  font-family:var(--font-mono); font-size:clamp(.52rem,1vw,.6rem); font-weight:700; line-height:1;
  letter-spacing:.22em; text-transform:uppercase; color:var(--c-gold);
  display:flex; align-items:center; gap:.6rem;
}
.camp .posts { width:1.7em; height:1.45em; flex:0 0 1.7em; display:block; color:var(--c-gold); }
.campputup__h {
  display:inline-block; font-weight:900; font-size:clamp(2.4rem,6.4vw,4.1rem); line-height:.9;
  color:var(--c-cream); letter-spacing:-.052em; margin-top:.35rem; padding-bottom:.14em;
  background:linear-gradient(90deg,var(--c-gold),var(--c-rust)) bottom/100% 5px no-repeat;
}
.campputup__sub {
  font-weight:500; font-size:clamp(.85rem,1.2vw,.98rem); line-height:1.32;
  color:rgba(251,247,238,.8); margin-top:.7rem; max-width:38em;
}
.campputup__sub b { font-weight:800; color:var(--c-gold); }
.campputup__go {
  flex:0 1 auto; border-left:1px solid rgba(245,215,126,.34);
  padding-left:clamp(1rem,2.2vw,1.6rem); display:flex; flex-direction:column; justify-content:center;
}
.campputup__go .gk {
  font-family:var(--font-mono); font-size:clamp(.55rem,1vw,.62rem); font-weight:700; line-height:1;
  letter-spacing:.26em; text-transform:uppercase; color:rgba(251,247,238,.62);
}
.campputup__go .gu {
  font-weight:800; font-size:clamp(.95rem,1.5vw,1.15rem); line-height:1;
  color:rgba(251,247,238,.86); letter-spacing:-.02em; margin-top:.5rem; white-space:nowrap;
  display:block;
}
.campputup__go .gu em {
  display:block; font-style:normal; color:var(--c-gold);
  font-size:clamp(1.85rem,4.4vw,2.9rem); font-weight:900; letter-spacing:-.05em; margin-top:.05em;
}
.campputup__go .gu:hover em { text-decoration:underline; }
.campputup__go .gs {
  font-family:var(--font-mono); font-size:clamp(.6rem,.95vw,.68rem); font-weight:600;
  color:rgba(251,247,238,.6); margin-top:.6rem;
}
.campputup__go .gs a { color:rgba(251,247,238,.85); }

/* =========================================================================
   REGION 7 : THE PROOF RIBBON
   FAULT 7. It was a thin grey line of text. v15 gives it real weight: a white
   card, marks at real size, room to breathe, Wovely FIRST at the full site
   lockup reading wovely.app.

   NEVER A BLANKET FILTER, ruled 2026-09-08 after it cost two passes: one
   silhouette or brightness pass across the row turns PGA TOUR, the NEFL seal
   and Birdy into white blobs. Every mark is treated on its own and checked by
   LOOKING at the render. Yellow Ribbon Fund is a cream wordmark and gets the
   ink pill; everything else keeps the white ground.
   ========================================================================= */
.campribbon .inner { padding-block:clamp(1rem,2.2vw,1.6rem); }
.campribbon .rail-wrap { padding-top:.55rem; }
.campribbon .rail {
  background:#fff; border:1px solid var(--c-line); border-radius:12px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  gap:clamp(.7rem,2vw,1.4rem); padding:clamp(.7rem,1.6vw,1rem) clamp(.9rem,2vw,1.4rem);
}
.campribbon .m { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; color:var(--c-ink); }
.campribbon .m img, .campribbon .m svg { display:block; height:clamp(34px,3.9vw,48px); width:auto; }
.campribbon .m--lead { gap:.6rem; }
.campribbon .m--lead img.badge { height:clamp(36px,4.1vw,50px); }
.campribbon .m--lead .wl { display:flex; flex-direction:column; }
.campribbon .m--lead .wl img { height:clamp(24px,2.8vw,35px); }
.campribbon .m--lead .wl span {
  font-family:var(--font-mono); font-size:clamp(.55rem,.85vw,.66rem); font-weight:600;
  color:#6B6386; letter-spacing:.02em; margin-top:.15rem;
}
.campribbon .m--tall img, .campribbon .m--tall svg { height:clamp(40px,4.7vw,58px); }
.campribbon .m--seal img { height:clamp(42px,4.9vw,60px); }
.campribbon .m--sq img { height:clamp(40px,4.6vw,56px); }
.campribbon .m--wide img { height:clamp(32px,3.7vw,45px); }
.campribbon .m--pill {
  background:var(--c-ink); border-radius:8px; padding:.4rem .7rem;
}
/* Yellow Ribbon Fund is a CREAM wordmark. On the white rail it disappears, so
   it gets the ink pill and nothing else on this row does. */
.campribbon .m--pill img { height:clamp(22px,2.6vw,31px); }
.campribbon .m--type { flex-direction:column; align-items:flex-start; }
.campribbon .m--type b {
  font-weight:900; font-size:clamp(1.25rem,2.3vw,1.75rem); line-height:1;
  color:var(--c-ink); letter-spacing:-.04em;
}
.campribbon .m--type span {
  font-family:var(--font-mono); font-size:clamp(.5rem,.8vw,.6rem); font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:#6B6386; margin-top:.2rem;
}

/* =========================================================================
   REGION 8 : THE PHONE, PAIRED WITH THE MARK AT THE OPPOSITE CORNER
   ========================================================================= */
.campfoot { position:relative; overflow:hidden; background:var(--c-deep); border-top:2px solid var(--c-gold); }
.campfoot::before {
  content:""; position:absolute; inset:0; background:
    radial-gradient(90% 230% at 84% 50%,rgba(122,95,166,.36) 0%,rgba(122,95,166,0) 62%),
    linear-gradient(100deg,#1D1430 0%,#1A1229 60%,#17101F 100%);
}
.campfoot .inner {
  position:relative; z-index:2; display:flex; align-items:center; flex-wrap:wrap;
  gap:clamp(1rem,2.6vw,2rem); padding-block:clamp(1.3rem,2.8vw,2rem);
}
.campfoot__l { flex:1 1 24rem; min-width:0; }
.campfoot__l .k {
  font-family:var(--font-mono); font-size:clamp(.55rem,1vw,.62rem); font-weight:700; line-height:1;
  letter-spacing:.2em; text-transform:uppercase; color:var(--c-gold); margin-bottom:.5rem;
}
.campfoot__num {
  font-weight:900; font-size:clamp(2.1rem,5.6vw,3.5rem); line-height:1; color:#fff;
  letter-spacing:-.045em; white-space:nowrap; display:block;
  transition:transform .15s var(--ease);
}
.campfoot__num i { font-style:normal; color:var(--c-gold); }
.campfoot__num:hover { transform:translateY(-2px); }
.campfoot__l p {
  font-size:clamp(.8rem,1.1vw,.9rem); line-height:1.36; color:rgba(251,247,238,.74);
  margin-top:.55rem; max-width:38em;
}
.campfoot__l p b { color:var(--c-cream); font-weight:700; }
.campfoot__r {
  flex:0 1 auto; display:flex; align-items:center; gap:clamp(.8rem,1.8vw,1.2rem);
  border-left:1px solid rgba(245,215,126,.24); padding-left:clamp(1rem,2.2vw,1.5rem);
}
.campfoot__mark { height:clamp(64px,7.6vw,104px); width:auto; display:block; flex:0 0 auto; opacity:.95; }
.campfoot__r .fcol { min-width:0; }
.campfoot__r .u {
  font-family:var(--font-mono); font-size:clamp(.78rem,1.15vw,.92rem); font-weight:600;
  line-height:1.3; color:var(--c-gold); display:block;
}
.campfoot__r .u:hover { text-decoration:underline; }
.campfoot__r .who { font-size:.85rem; font-weight:700; color:var(--c-cream); margin-top:.3rem; line-height:1.3; }
.campfoot__r .alt { font-size:.78rem; line-height:1.36; color:rgba(251,247,238,.6); margin-top:.3rem; }
.campfoot__r .alt a { color:rgba(251,247,238,.85); }

/* =========================================================================
   FAULT 3 : THE PRICES CAME OFF THE HERO.
   Nothing was deleted. The whole ladder, every link and every figure, moved
   verbatim into the section that already exists to answer what it costs, and
   the hero keeps one quiet link to the page that carries all of them.
   ========================================================================= */
.camp__pricelink {
  font-family:var(--font-mono); font-size:clamp(.68rem,1vw,.78rem); font-weight:600;
  letter-spacing:.06em; color:rgba(251,247,238,.72); margin-top:.9rem; display:inline-block;
}
.camp__pricelink:hover { color:var(--c-gold); }
.hero__prices--moved { margin-top:1.6rem; }

/* =========================================================================
   FAULT 6 : THE FLOATING WIDGETS.
   Three of them collided at the bottom of this page: a "Text (904) 478-0440"
   pill floating mid-page left, the ASK S.A.M.M. pill bottom-left, and the
   HOLD UP capture panel bottom-right. It read cluttered and amateur.

   THE HOTLINE PILL STANDS DOWN ON THE HOME PAGE ONLY, and it stands down
   because it is now REDUNDANT rather than because it was in the way: the same
   number is set at clamp(1.35rem, 3.6vw, 2.35rem) in the masthead and again at
   clamp(2.1rem, 5.6vw, 3.5rem) in the campaign foot. Its markup and its JS
   hooks are left exactly where they are, and every other page still floats it.

   ASK S.A.M.M. IS NOT TOUCHED. Another desk is wiring it to a live chat right
   now. Its element, its id and its classes are its own. It is not moved, not
   restyled, and not referenced by any selector in this file.
   ========================================================================= */
body.home .hotline { display:none; }

/* =========================================================================
   RESPONSIVE. Checked at 390 and at 1440, by looking at both renders.
   ========================================================================= */
@media (max-width: 1000px) {
  .campways .cols { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .campways .col { padding-top:1rem; }
  .campways .col:nth-child(-n+2) { border-top:0; }
  .campways .col:nth-child(3) { padding-left:0; border-left:0; }
  .campways .col:nth-child(n+3) { border-top:1px solid var(--c-line); margin-top:.5rem; }
  .campboard .cols { grid-template-columns:1fr; }
  .campboard .cslot { padding:.9rem 0; border-left:0; border-top:1px solid var(--c-line); }
  .campboard .cslot:first-child { border-top:0; padding-top:.6rem; }
}
@media (max-width: 860px) {
  .campwell .inner { grid-template-columns:1fr; }
  /* 2026-09-14 FUNNEL desk: on a phone the photo used to come first, which
     put the headline at 684px and the one button at 899px on a 390x844
     screen, below the fold. The ask now leads and the photo follows it. */
  .campwell__fig { min-height:clamp(220px,56vw,360px); order:1; margin-top:1.4rem; }
  .campwell__fig::after {
    background:
      linear-gradient(180deg,rgba(36,26,63,0) 72%,rgba(26,18,41,.55) 100%),
      radial-gradient(58% 56% at 50% 46%,rgba(26,18,41,0) 0%,rgba(26,18,41,0) 66%,rgba(20,14,28,.4) 100%);
  }
  .campwell__fig::before { left:0; right:0; top:auto; bottom:0; width:auto; height:2px;
    background:linear-gradient(90deg,rgba(245,215,126,0),rgba(245,215,126,.55),rgba(245,215,126,0)); }
  .campwell__after { margin-top:1.2rem; }
  .campputup__go, .campfoot__r { border-left:0; padding-left:0; padding-top:1rem;
    border-top:1px solid rgba(245,215,126,.28); flex-basis:100%; }
}
@media (max-width: 720px) {
  .campmast .inner { flex-wrap:wrap; row-gap:.7rem; }
  .campmast__call { margin-left:0; order:3; flex-basis:100%; }
  .campmast__k { text-align:left; }
  .campmast__issue { margin-left:auto; }
  .campflash .u { margin-left:0; flex-basis:100%; }
  .campribbon .rail { justify-content:flex-start; row-gap:1rem; }
}
@media (max-width: 700px) {
  .campwhatis .wi + .wi { border-left:0; padding-left:0; border-top:1px solid var(--c-line); padding-top:.7rem; }
}
@media (max-width: 560px) {
  .campways .cols { grid-template-columns:1fr; }
  .campways .col { padding:.85rem 0; border-left:0; border-top:1px solid var(--c-line); margin-top:0; }
  .campways .col:first-child { border-top:0; padding-top:.6rem; }
  .campwell__said p { padding-left:1.25em; }
  .campfoot__r { gap:.8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .campbtn:hover, .campmast__num:hover, .campfoot__num:hover { transform:none; }
}

/* =====================================================================
   MOTION. 2026-09-09.

   Adam: "i want to see motion graphics and enhancements that truly
   showcase our abilities."

   THE STARTING POINT, measured rather than assumed: 37 pages on this
   property carried ZERO video, zero mp4, zero gif, zero Lottie. The only
   motion anywhere was hover transitions. That was never a taste decision.
   The art department was RAY, HEDY and MARGO, all three print directors,
   so nothing that moves was ever staffed. NELL and BASIL were hired today.

   THE RULE THIS FOLLOWS, and it is the reason none of the below is a
   floating gradient blob. Root section 5c: the competitor is the vendor who
   ran a slick demo, handed over logins and left. MOTION THAT LOOKS
   EXPENSIVE ARGUES FOR THAT VENDOR. So every moment here is an ARGUMENT,
   not decoration: it shows work happening without Adam, which is the actual
   product, and it costs zero credits because it is CSS rather than
   generated video.

   ONE authored moment per screen, never a scattering of effects.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. THE COVER LINES. "What Monday looks like after" is a list of things
   that happened while the owner slept. Motion makes the sequence literal:
   they arrive in order, as a schedule executing, not as a fade-in.

   Starts from an ALREADY-VISIBLE default so a failed script or a blocked
   animation can never leave the pitch invisible. --------------------- */
.campwell__line {
  animation: campLineIn .62s cubic-bezier(.16,.84,.36,1) backwards;
}
.campwell__line:nth-of-type(1) { animation-delay: .18s; }
.campwell__line:nth-of-type(2) { animation-delay: .40s; }
.campwell__line:nth-of-type(3) { animation-delay: .62s; }
@keyframes campLineIn {
  from { opacity: 0; transform: translate3d(-10px, 6px, 0); filter: blur(3px); }
  to   { opacity: 1; transform: none; filter: none; }
}

/* The tick mark draws itself, so each line reads as a job COMPLETING
   rather than a bullet appearing. This is the single most on-message
   moment on the page: the work finished without him. */
.campwell__line .ball { animation: campTick .5s cubic-bezier(.16,.84,.36,1) backwards; }
.campwell__line:nth-of-type(1) .ball { animation-delay: .30s; }
.campwell__line:nth-of-type(2) .ball { animation-delay: .52s; }
.campwell__line:nth-of-type(3) .ball { animation-delay: .74s; }
@keyframes campTick {
  from { opacity: 0; transform: scale(.62) rotate(-14deg); }
  60%  { opacity: 1; transform: scale(1.07) rotate(2deg); }
  to   { opacity: 1; transform: none; }
}

/* ---------------------------------------------------------------------
   2. THE OCTOBER STAMP. Scarcity is the offer (TASTE.md: "sold on
   SCARCITY, never on price"), so the stamp behaves like a stamp: it lands
   once, with weight, and then holds still. It never loops. A looping
   scarcity badge reads as a decoration and stops being believed.
   ------------------------------------------------------------------- */
.campstamp { animation: campStamp .54s cubic-bezier(.2,1.5,.4,1) .9s backwards; }
@keyframes campStamp {
  from { opacity: 0; transform: translate3d(0, 14px, 0) rotate(-1.4deg) scale(.96); }
  to   { opacity: 1; transform: none; }
}

/* ---------------------------------------------------------------------
   3. THE OFFER WIRE. It moved below the hero today. Each card lifts on
   approach rather than sitting flat, so the rail reads as live inventory.
   Transform and shadow only, both compositor-friendly.
   ------------------------------------------------------------------- */
.wire__rail > * {
  transition: transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease;
}
.wire__rail > *:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px -16px rgba(0,0,0,.55);
}

/* ---------------------------------------------------------------------
   4. THE MASTHEAD NUMBER. He asked for the phone "big and fun like the
   logo" on 2026-09-08. It now has a pulse on hover that reads as a line
   ringing, once, rather than a button growing.
   ------------------------------------------------------------------- */
.campmast__num:hover { animation: campRing .42s cubic-bezier(.36,.07,.19,.97); }
@keyframes campRing {
  10%, 90% { transform: translate3d(-1px, 0, 0); }
  30%, 70% { transform: translate3d(2px, 0, 0); }
  50%      { transform: translate3d(-2px, 0, 0); }
}

/* ---------------------------------------------------------------------
   REDUCED MOTION. Everything above resolves to its finished state. The
   page loses the argument, never the content, and nothing is left mid
   animation or invisible. This is a house rule, not a nicety.
   ------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .campwell__line,
  .campwell__line .ball,
  .campstamp { animation: none; opacity: 1; transform: none; filter: none; }
  .wire__rail > *, .wire__rail > *:hover { transition: none; transform: none; }
  .campmast__num:hover { animation: none; }
}

/* THE MOVEMENT BLOCK, 2026-09-14. Adam: "there should be 'join the 2ndBrain Way
   Movement'... this should be the front door to the education part of our
   system and learning." Same anatomy as .campputup (one line of intent, one
   door), lavender where that one is rust, because this is the room and not the
   nomination. The count is read live off Discord's widget JSON in the page;
   when it cannot be read the number is simply absent, never invented. */
.campmove { position:relative; overflow:hidden; background:var(--c-deep); border-top:3px solid var(--c-lav); }
.campmove::before {
  content:""; position:absolute; inset:0; background:
    radial-gradient(70% 180% at 92% 40%,rgba(122,95,166,.42) 0%,rgba(122,95,166,0) 62%),
    linear-gradient(96deg,#1A1229 0%,#221A38 55%,#17101F 100%);
}
.campmove::after {
  content:""; position:absolute; inset:0; opacity:.45; pointer-events:none;
  background:radial-gradient(rgba(251,247,238,.06) 1px,transparent 1.2px); background-size:16px 16px;
}
.campmove .inner {
  position:relative; z-index:2; display:flex; align-items:center; flex-wrap:wrap;
  gap:clamp(1rem,2.6vw,2rem); padding-block:clamp(1.2rem,2.6vw,1.9rem);
  width:min(1120px,calc(100% - 2rem)); margin-inline:auto;
}
.campmove__l { flex:1 1 22rem; min-width:0; }
.campmove__k { margin:0 0 .35rem; font-family:var(--font-mono,ui-monospace,monospace); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--c-gold); }
.campmove__h { margin:0; font-size:clamp(1.5rem,3.2vw,2.2rem); font-weight:900; letter-spacing:-.03em; line-height:1.02; color:var(--c-cream); }
.campmove__h em { font-style:normal; color:var(--c-gold); }
.campmove__sub { margin:.6rem 0 0; max-width:44rem; font-size:1rem; line-height:1.45; color:rgba(251,247,238,.82); }
.campmove__sub b { font-weight:800; color:var(--c-cream); }
.campmove__go { flex:0 0 auto; display:flex; flex-direction:column; gap:.35rem; align-items:flex-start; }
.campmove__go .gk { font-family:var(--font-mono,ui-monospace,monospace); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(251,247,238,.6); }
.campmove__go .gu { display:inline-block; background:var(--c-gold); color:#1D1430; font-weight:800; text-decoration:none; padding:.7rem 1.1rem; border-radius:8px; font-size:1.02rem; }
.campmove__go .gu:hover { filter:brightness(1.06); }
.campmove__go .gs { font-size:.86rem; color:rgba(251,247,238,.7); }
.campmove__go .gs b { color:var(--c-cream); font-weight:800; }
.campmove__go .gs[hidden] { display:none; }
.campmove__go .gw { font-size:.86rem; color:var(--c-gold); text-decoration:none; border-bottom:1px solid rgba(245,215,126,.4); }  /* 2026-09-14: the door to /way under the movement block */
@media (max-width:640px) { .campmove .inner { flex-direction:column; align-items:stretch; } .campmove__go { align-items:stretch; } .campmove__go .gu { text-align:center; } }

/* THE MOTION GROUND (2026-09-14). Adam, on the show's Starting Soon screen:
   "I love these screens. Love the moving graphics... I want it on the website."
   The same nebula field plays under the two dark heroes. Behind a flag: it only
   shows once it can play, reduced-motion users and slow connections keep the
   CSS gradient exactly as before. The poster is the first frame. */
.motion-ground { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:0; transition:opacity 1.4s ease; pointer-events:none; }
.motion-ground.on { opacity:.55; }
.campwell > .inner, .campwell > .campwell__field { position:relative; z-index:1; }
.way-hero > .wrap { position:relative; z-index:1; }
@media (prefers-reduced-motion: reduce) { .motion-ground { display:none; } }
