/*
IC SHIP PASS — generated by icpass.py from the map. edit the CODE; rerun to refresh this.

══════════════════════════════════════════════════════════════════════
 PAGE 0 — TABLE OF CONTENTS  (goldfish pointers)
 jump by SEARCHING the anchor phrase — line numbers drift, names don't.
══════════════════════════════════════════════════════════════════════
  CLEAN TIER (clinical + corporate): NO PNG. ... search: "CLEAN TIER (clinical +"
══════════════════════════════════════════════════════════════════════

 FOR AI
 ───────
   **OWNS** — The visual theme for the "muskett" skin: a Mars estate aesthetic with serif fonts,
   **butterscotch/rust palette, and a PNG photograph header. Exports the `[data-skin="muskett"]`
   **selector and its color/font rules to `.convo`, `.agent-bar`, and their children. The
   **`[data-tier="clean"]` override (lines 47–55) replaces the PNG with a gradient for
   **clinical/corporate contexts.
   
   **TOUCH HERE**
   - Change message colors (bot/user) → `.msg.bot` and `.msg.u` L21–22
   - Change conversation background or border → `.convo[data-skin="muskett"]` L13–16
   - Change agent-bar background or border → `.agent-bar[data-skin="muskett"]` L30
   - Change serif font family → `font-family` declarations L19, 32, 41
   - Change header image → `background-image: url()` L25, 38
   - Change clean-tier gradient colors → `linear-gradient()` L49
   - Change clean-tier background/border → L52, 55
   - Change text shadow or letter-spacing → L33, 34, 41
   
   **TRAPS**
   - The PNG filename `'muskett-topbar.png'` appears twice (L25, L38) — both must match or the
   - agent-bar and conversation headers will look different.
   - The color `#5e6b4a` (border) and `#e9dfae` (text) are repeated across lines 15, 27, 30, 32,
   - 33, 34, 36, 41 — changing one without the others breaks visual coherence.
   - The clean-tier rules (L47–55) override the PNG rules silently when `data-tier="clean"` is
   - set; a user on clean tier will never see the PNG, so testing both paths is required.
   - The `box-shadow: inset 0 -30px 24px -20px rgba(0,0,0,.55)` (L28, 39) is load-bearing for the
   - photograph's depth; removing it flattens the header.
   
   **DO NOT**
   - Rename `[data-skin="muskett"]` or `[data-tier="clean"]` — these are contract selectors used
   - by the HTML layer.
   - Add opacity to text (line 11 comment forbids it; use solid hex only).
   - Move the clean-tier section to another file — it must stay here to override the PNG rules.
   - Change the serif font to sans-serif (line 19 comment: "he would not be caught in a sans").
   - Add a `-vert` variant (line 10 comment explains why: "A photograph has an up").
   
   
   
   ---

END IC SHIP PASS
*/

/* muskett.css — OLD MONEY ON A DEAD PLANET. (Sum 2026-07-29: "its under a dome with a peacock
   and a bomb shelter.") The manor with its lit windows at one end, the geodesic dome, topiary and a
   rolled lawn in mower stripes, the peacock at centre, and a riveted blast-shelter with a brass sign
   at the other end. Butterscotch sky, rust-red hills beyond the glass.

   The whole character in one frame: he brought the English estate to Mars, kept the peacock, and dug
   a bunker under the lawn. The dome does the job a ha-ha does — an invisible fence that makes the
   lawn look endless — except this one is keeping the air in.

   No -vert twin: same reason as the cave. A photograph has an up.
   Opacity on text banned; solid hex throughout. Apply via [data-skin="muskett"]. */

.convo[data-skin="muskett"] {
  background: #12140f;
  border: 2px solid #5e6b4a; border-radius: 6px;
}
.convo[data-skin="muskett"] .convo-screen {
  background: transparent; color: #e8e6da;
  font-family: 'Baskerville', 'Palatino', Georgia, serif;   /* he would not be caught in a sans */
}
.convo[data-skin="muskett"] .msg.bot { border-inline-start: 4px solid #b9a46a; color: #f0eee2; }
.convo[data-skin="muskett"] .msg.u   { border-inline-start: 4px solid #6e7a55; color: #e6e4d8; }

.agent-bar[data-skin="muskett"] .ab-head {
  background-image: url('muskett-topbar.png');
  background-position: center; background-size: cover; background-repeat: no-repeat;
  border-bottom: 2px solid #5e6b4a;
  box-shadow: inset 0 -30px 24px -20px rgba(0,0,0,.55);
}
.agent-bar[data-skin="muskett"] { background: #12140f; border-color: #5e6b4a; }
.agent-bar[data-skin="muskett"] .ab-name {
  color: #e9dfae; font-family: 'Baskerville', 'Palatino', Georgia, serif;
  letter-spacing: .8px; text-shadow: 0 1px 4px #000;
}
.agent-bar[data-skin="muskett"] .ab-grip,
.agent-bar[data-skin="muskett"] .ab-add { color: #e9dfae; text-shadow: 0 1px 4px #000; }
.convo[data-skin="muskett"] .convo-head {
  background: url('muskett-topbar.png') center / cover no-repeat;
  border-bottom: 2px solid #5e6b4a; box-shadow: inset 0 -30px 24px -20px rgba(0,0,0,.55);
}
.convo[data-skin="muskett"] .head-title { color: #e9dfae; font-family: 'Baskerville', Georgia, serif; text-shadow: 0 1px 4px #000; }

/* ── CLEAN TIER (clinical + corporate): NO PNG. clinical.css's own header says "no png top bars",
      and Sum's icon rule says drawn for clin/corp. But drawn must not mean BLACK — the bot keeps its
      colour, it just stops being a photograph. MONEY GREEN / LAWN GREEN — the same green, which is the joke.
      One gradient, two stops, no image. Solid hex throughout; opacity on text stays banned. ── */
html[data-tier="clean"] .agent-bar[data-skin="muskett"] .ab-head,
html[data-tier="clean"] .convo[data-skin="muskett"] .convo-head {
  background: linear-gradient(100deg, #1e2a18 0%, #4e7a3f 46%, #1e2a18 100%);
  box-shadow: none;
}
html[data-tier="clean"] .agent-bar[data-skin="muskett"] { background: #1e2a18; border-color: #4e7a3f; }
html[data-tier="clean"] .agent-bar[data-skin="muskett"] .ab-name,
html[data-tier="clean"] .convo[data-skin="muskett"] .head-title { color: #cfe0b8; text-shadow: none; }
html[data-tier="clean"] .convo[data-skin="muskett"] { background: #1e2a18; border-color: #4e7a3f; }
