/* 29-desktop-stagger.css — Desktop Studio · staggered conversation
   ─────────────────────────────────────────────────────────────────────
   Founder (2026-06-16): on a wide monitor the conversation read as a "fat
   centre pole" — cards spanned the whole reading lane, so there was no
   back-and-forth rhythm. Fix: cap each conversation TURN well under the
   lane and let it hug its side — assistant LEFT, the user RIGHT — so the
   whitespace carries the stagger (the classic chat feel he described:
   "card width slightly over half ... staggered user / assistant").

   SIZING ONLY. No skin / colour / type / radius change, no markup change.
   The cap is a % of the reading lane, so it adapts to every monitor
   (1440 → 2560) without per-screen tuning — and it stacks on top of the
   wide-screen lane scaling, since both are relative.

   Scope: desktop session only (>=1024 + body.session-active). Mobile keeps
   its own near-full-width bubbles. Linked LAST so it wins the 85% / 65%
   desktop defaults at equal specificity.

   Opt-out (stays full-width): .v9-ai-flw (the full lyrics display) and
   #songSoFarCard (the running song-so-far) — surfaces that legitimately
   need the full lane. Concept / sound-prompt / structure / version cards
   DO narrow + stagger (~82% of the lane — wide + legible, gentle stagger).

   Plain static CSS — no prompts/schemas/model-facing content. */

@media (min-width: 1024px) {

  /* Stagger width as a share of the reading lane — tune here. 82% matches
     the handoff's message width: a GENTLE stagger — content stays wide and
     legible, short messages still hug their side, the turns overlap through
     the middle so it reads as conversation, not two columns. (62% split too
     hard — founder, 2026-06-16.) */
  body.session-active {
    --dt-turn-max: 82%;
  }

  /* Assistant turns hug LEFT, capped to the stagger width. Whatever is the
     direct flex child of the thread for an assistant turn is covered:
     `.v9-ai` (text turns) and the bare `.v9-ai-bubble` (artifact/concept
     groups). Cards INSIDE the bubble (concepts, sound prompts) inherit the
     cap, so they no longer span the lane. `.v9-ai-flw` opts out (stays
     full-width for lyrics / structure / full-bleed surfaces). */
  body.session-active .v9-thread > .v9-ai:not(.v9-ai-flw):not(#songSoFarCard),
  body.session-active .v9-thread > .v9-ai-bubble {
    max-width: var(--dt-turn-max);
    align-self: flex-start;
  }

  /* User turns hug RIGHT, same cap (was 65% + flex-end already). */
  body.session-active .v9-thread > .v9-user {
    max-width: var(--dt-turn-max);
    align-self: flex-end;
  }
}
