/* =====================================================================
   Paper and Ink · essays/the-grid-sends-the-bill.css
   "The grid sends the bill.": the figures only this dispatch uses.
   Loaded after the shared stylesheets; everything shared lives in css/.
   ===================================================================== */

/* Layout: one 64ch reading column; a thermal grid-service slip (shared .slip)
   and a hand-inked peak-demand model on graph paper (shared .sheet) break out to 860px.
   Gold = who pays for the wires; blue = who agrees to switch off. */

/* ---- footnote markers -------------------------------------------------- */
sup.ref { font-family: var(--sans); font-size: .62em; line-height: 0; margin-left: 1px; }
sup.ref a { text-decoration: none; color: var(--life); padding: 0 1px; }
sup.ref a:hover { text-decoration: underline; }
.sources li:target { color: var(--ink); background: var(--life-soft); }

/* ---- Figure 1: room for the second stamp under the last line ---------- */
#fig1 .slip .printing { padding-bottom: 52px; }
/* pen arrows: the first lands on the $55B firm-service total, the second on a brace around the two "not published" lines */
#fig1 .slipnote svg { left: -80px; top: 0; width: 76px; height: 90px; }
#fig1 .slipnote path { stroke-dasharray: 220; animation-name: draw-long; }
@keyframes draw-long { from { stroke-dashoffset: 220; } }
@media (min-width: 641px) { #fig1 .margin-notes { gap: 170px; padding-top: 90px; } #fig1 .margin-notes .btn { margin-top: -160px; justify-self: start; } }

/* ---- Figure 2: the peak-demand model, on graph paper ------------------- */
#chart { fill: var(--slip-ink); }
#chart .svgnote { font-size: 15px; }
#chart .svglab { font-size: 16px; }
#chart .lab-pencil { fill: var(--graphite); }
#chart .lab-once { fill: var(--slip-once); }
#chart .lab-life { fill: var(--slip-life); }
#chart .pencil { fill: none; stroke: var(--graphite); stroke-width: 1.6; stroke-linecap: round; stroke-dasharray: 2 6; }
#chart .peak { fill: none; stroke: var(--graphite); stroke-width: 1; stroke-dasharray: 1 4; stroke-linecap: round; }
#chart .loop { fill: none; stroke: var(--graphite); stroke-width: 1.3; stroke-linecap: round; }
#chart .arrow { fill: none; stroke: var(--graphite); stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
#chart .cursor { stroke: var(--graphite); stroke-width: 1.2; stroke-dasharray: 4 4; }
#chart .rule-l { stroke: var(--slip-ink); stroke-width: 1; }
#chart .tick { font-size: 11px; }
#chart .rowlab { font-family: var(--sans); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; fill: var(--graphite); }
#chart .tagtext { font-size: 12px; white-space: pre; }

/* Phone mode: Figure 2 is redrawn by the page script as a narrower, taller sheet (viewBox 400 x 560)
   with the tag fixed above the plot and no circled note; svg text sizes rise so every label renders at 11px or more. */
@media (max-width: 560px) {
  .sheet-scroll { overflow-x: clip; }
  .sheet { min-width: 0; padding: 24px 8px 10px; -webkit-user-select: none; user-select: none; }
  #chart .tick { font-size: 14px; }
  #chart .rowlab { font-size: 13px; }
  #chart .svgnote { font-size: 17px; }
  #chart .svglab { font-size: 18px; }
  #chart .tagtext { font-size: 15px; }
}
