/* ============================================================
   QUILL & COMPASS — THE CAST'S DRAWING CONTRACT
   The two classes every woodcut symbol in cast.js is authored against.

   A cast symbol is one flat silhouette filled with currentColor. Detail inside it —
   a lute's sound hole and tuning pegs, a skull's eye sockets, a castle's gate arch,
   the spots on a toadstool — is KNOCKED OUT with class="cut", and anything that must
   read as a hole rather than a highlight uses class="deep".

   This file exists because those two rules lived in map.css, which only map.html
   loads. realms.html uses the same cast and never loaded them, so every cut detail
   in every symbol on that page filled with currentColor — i.e. vanished into the
   shape it was supposed to be cut out of. Any page that renders window.QCCast art
   must load this.
   ============================================================ */
.cut{fill:var(--paper-100)}
.deep{fill:var(--ink-900,#1c130a)}

/* The defs host carries width="0" height="0", but an <svg> is an INLINE element, so it still
   generates a LINE BOX — one line-height of the body face, ~22px. realms.js injects it as
   body's first child (mountCast), and index.html document.writes it at the top of body, so
   on both pages everything below was pushed down by that line. On /realms the stage is
   exactly 100svh, so the 22px went straight out of the bottom: the plain-page routes ran
   past the fold and the scenery's ground line sat under it. Out of flow, no box, and <use>
   still resolves — this is the ordinary SVG-sprite pattern. */
.cast-defs{position:absolute;width:0;height:0;overflow:hidden}
