/* ============================================================
   Work — Cover intro (desktop, >=900px only; mobile keeps its own
   static .wk__head). Real two-plane slide-in, per refer/cover-uncover_1.html's
   "Cover" transition — not the earlier simplified wipe (see EXCEPTIONS.md).

   Panel A: Quote 01's three lines (see quote01.css), left-aligned the
   same way Quote 02 is — the quote the visitor was just reading.
   Owner correction Aug 2026: Panel A does NOT counter-drift. It stays
   completely still; Panel B slides in on top of it, like a window
   passing over fixed text, not two planes moving in parallax. This is
   a deliberate departure from system_2.md's "counter-drift 18%" —
   logged in EXCEPTIONS.md.
   Panel B: the Work section's actual intro text, slides in from the
   right and comes to rest centred. No mask/fade on this text at all —
   owner decision: text in both planes is simply present, never animated
   in on its own.

   Once this stage releases, .work__origin (an invisible marker,
   position:relative to #work like every other point in the thread
   system) picks up as the first node the braided thread draws from —
   see work-thread.js.
   ============================================================ */

/* 240vh, not 200vh — work-cover.js spends the first ~28% of the scroll
   distance on a deliberate hold before Panel B starts moving (see that
   file). Bumped so the actual slide still covers about the same scroll
   distance it did before the hold was added, rather than the hold
   compressing the move into a shorter, faster remainder. */
#wcov{ display:none; }
@media (min-width:900px){ #wcov{ display:block; position:relative; height:240vh; } }

.wcov__stick{ position:sticky; top:0; height:100vh; overflow:hidden; }

.wcov__pan{
  position:absolute; inset:0;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  text-align:center; padding-inline:var(--pad-inline);
  background:var(--bg); will-change:transform;
}

.wcov__pan--a{
  z-index:1;
  /* left-aligned, like Quote 02 — not the centred treatment Panel B
     (the Work intro) uses. */
  align-items:flex-start; text-align:left;
}
.wcov__pan--b{
  z-index:2;
  border-left:1px solid var(--border); /* the leading edge — without it two panels read as one surface */
  /* Overrides the shared justify-content:center: .wcov__spacer and
     .wcov__loader (both flex:1) do the centring instead, so the text
     block still lands in the middle of the screen but the loader
     below it can stretch all the way to the panel's own bottom edge —
     see work-loader.css. */
  justify-content:flex-start;
}
.wcov__spacer{ flex:1 1 0; }

/* --fs-d2 (Quote 01/02's size), not the shared --fs-d3 every other
   section header uses. Owner correction Aug 2026: at --fs-d3 this
   read as too small for a moment that gets an entire pinned 100vh
   stage to itself — every other --fs-d3 header sits directly above
   real content, this one sits alone. Scoped to .wcov__display only,
   so Method/Skills/About/Contact's own headers are untouched. */
.wcov__display{
  font-family:var(--font-display); font-weight:400;
  font-size:var(--fs-d2); line-height:1.05; margin:0;
}

/* Rhythm scaled up to match — the shared .eyebrow/.sub gaps (site.css)
   were tuned for the smaller --fs-d3 headers; kept scoped to this
   panel so nothing else on the page shifts. */
.wcov__pan--b .eyebrow{ margin-bottom:var(--sp-5); }
.wcov__pan--b .sub{ margin-top:var(--sp-5); }

@media (prefers-reduced-motion:reduce){
  #wcov{ height:auto; }
  .wcov__stick{ position:static; height:auto; overflow:visible; }
  .wcov__pan{ position:static; transform:none !important; padding-block:var(--sp-9); }
  .wcov__pan--a{ display:none; }
  .wcov__pan--b{ border-left:0; }
}
