
  @page { size: 11in 8.5in; margin: 0; }
  /* The book's type scale. Six tiers, and every rule below picks one rather
     than inventing a size: the page inventory had reached 29 distinct
     font-sizes, so "the same kind of copy" no longer looked the same from one
     page to the next. Sizes stay close to the old majority values on purpose,
     because these are fixed pages and several sit near zero ink budget. */
  :root {
    --type-display:21px;   /* page titles */
    --type-heading:14px;   /* section headings */
    --type-body:12px;      /* main instruction copy */
    --type-note:10.5px;    /* annotations, panel prose, callouts */
    --type-caption:9.5px;  /* figure captions and table furniture */
    --type-label:8px;      /* uppercase chips, folios, strip labels */
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html, body { background:#15151a; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body { font-family:"Avenir Next", Avenir, "Helvetica Neue", sans-serif; color:#e8e6df; }
  .page { width:11in; height:8.5in; position:relative; overflow:hidden; background:#15151a;
           page-break-after:always; padding:0.42in 0.5in 0.55in; display:flex; flex-direction:column; }
  .page:last-child { page-break-after:auto; }
  .grow { flex:1; min-height:0; }
  .bottom { margin-top:auto; }

  h1,h2,h3 { font-family:"Avenir Next Condensed","Avenir Next",sans-serif; text-transform:uppercase; letter-spacing:0.06em; }
  h2 { font-size:var(--type-display); color:#C9A227; border-bottom:2px solid #C9A227; padding-bottom:5px; margin-bottom:12px; font-weight:700; }
  h3 { font-size:var(--type-heading); color:#e8e6df; margin:10px 0 6px; font-weight:600; }
  p, li { font-size:var(--type-body); line-height:1.52; color:#c9c7bf; }
  b { color:#e8e6df; }
  .gold { color:#E6B94D; font-weight:600; }

  .cover { display:flex; flex-direction:row; align-items:center; gap:0.5in; padding:0.6in 0.8in;
            background:radial-gradient(ellipse at 62% 45%, #23232e 0%, #15151a 60%); }
  .cover-left { flex:1.15; }
  .cover-kicker { font-size:var(--type-body); letter-spacing:0.42em; color:#8a8794; text-transform:uppercase; }
  /* Off the scale on purpose: the cover title and its subtitle are the book's
     one display setting, sized to the jacket rather than to a tier. */
  .cover h1 { font-size:88px; font-weight:800; color:#C9A227; letter-spacing:0.03em; margin-top:8px; line-height:1;
               text-shadow:0 0 40px rgba(201,162,39,0.35); }
  .cover-sub { font-size:17px; letter-spacing:0.3em; color:#e8e6df; text-transform:uppercase; margin-top:10px; }
  .cover-rule { width:2.6in; height:2px; background:linear-gradient(90deg,#C9A227,transparent); margin:24px 0; }
  .cover-chips { display:flex; gap:12px; flex-wrap:wrap; }
  .chip { border:1.5px solid #C9A227; border-radius:20px; padding:7px 18px; font-size:var(--type-body);
           letter-spacing:0.12em; text-transform:uppercase; color:#e8e6df; }
  .cover-tag { margin-top:0.42in; font-size:var(--type-caption); color:#8a8794; letter-spacing:0.2em; text-transform:uppercase; }
  .cover-right { flex:1; position:relative; height:5.6in; }
  /* Apple Preview rasterizes shadows on transformed images as opaque black rectangles. */
  .fan-card { position:absolute; width:2.45in; top:0.55in; left:50%; border-radius:12px; }
  .fan-0 { transform:translateX(-92%) rotate(-11deg); }
  .fan-2 { transform:translateX(-8%) rotate(11deg); }
  .fan-1 { transform:translateX(-50%) translateY(-0.28in); z-index:2; }

  .cols { display:flex; gap:0.34in; }
  .col { flex:1; min-width:0; }
  .panel { background:#1b1b22; border:1px solid #2c2c36; border-radius:10px; padding:13px 15px; margin-bottom:12px; }
  .panel h3 { margin-top:0; }
  .steps { counter-reset:step; list-style:none; }
  .steps li { counter-increment:step; position:relative; padding-left:32px; margin-bottom:15px; }
  /* Badge numerals are sized to their own circle, not to a copy tier. */
  .steps li::before { content:counter(step); position:absolute; left:0; top:1px; width:21px; height:21px;
      border-radius:50%; background:#C9A227; color:#15151a; font-weight:700; font-size:11.5px;
      display:flex; align-items:center; justify-content:center; }
  ul.plain { list-style:none; }
  ul.plain li { padding-left:15px; position:relative; margin-bottom:6px; }
  ul.plain li::before { content:"\25B8"; position:absolute; left:0; color:#C9A227; }
  .callout { border-left:3px solid #E4483A; background:#221a1c; border-radius:0 8px 8px 0; padding:10px 13px; margin:14px 0; }
  .callout.blue { border-color:#3E8EDE; background:#181d24; }
  .callout.gold { border-color:#E6B94D; background:#221f16; }
  .callout p { font-size:var(--type-note); }

  .basics-suit-band { margin-top:auto; padding-top:0.14in; border-top:1px solid #2c2c36; }
  .basics-suit-head { display:flex; align-items:baseline; gap:0.22in; margin-bottom:0.1in; }
  .basics-suit-head h3 { margin:0; white-space:nowrap; }
  .basics-suit-head p { font-size:var(--type-caption); line-height:1.35; }
  .basics-suit-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0.2in; }
  .basics-suit-example { min-width:0; display:grid; grid-template-columns:1.04in minmax(0,1fr); gap:0.11in;
      align-items:center; border-top:3px solid; padding:0.11in 0.12in 0.09in; background:#1b1b22; border-radius:7px; }
  .basics-suit-card { display:block; width:0.98in; height:1.372in; object-fit:contain;
      filter:drop-shadow(0 4px 5px #0007); }
  .basics-suit-copy h3 { margin:0 0 0.05in; color:color-mix(in srgb,var(--suit-color) 52%,white);
      font-size:var(--type-heading); }
  .basics-suit-copy strong { display:block; color:#e8e6df; font-size:var(--type-caption); line-height:1.28; }
  .basics-suit-copy p { margin-top:0.06in; color:#aaa7b2; font-size:var(--type-caption); line-height:1.36; }

  .count-table { width:100%; border-collapse:collapse; margin:4px 0 10px; }
  .count-table td, .count-table th { font-size:var(--type-note); padding:7px 9px; border-bottom:1px solid #2c2c36; text-align:left; color:#c9c7bf; }
  .count-table th { color:#C9A227; text-transform:uppercase; font-size:var(--type-caption); letter-spacing:0.1em; }

  .demand-row { display:grid; grid-template-columns:1.28in 0.62in minmax(0,1fr); gap:0.08in;
      align-items:baseline; margin-top:0.07in; padding-top:0.06in; border-top:1px solid #2c2c36; }
  .demand-row b { color:#e8e6df; font-size:var(--type-caption); }
  .demand-row span { color:#C9A227; font-size:var(--type-caption); font-weight:700; white-space:nowrap; }
  .demand-row p { font-size:var(--type-caption); line-height:1.34; }
  .allowance { color:#C9A227; font-size:var(--type-label); letter-spacing:0.06em; text-transform:uppercase;
      font-weight:600; white-space:nowrap; }
  .beat { display:flex; gap:12px; margin-bottom:17px; }
  .beat-badge { flex:none; width:26px; height:26px; border-radius:50%; background:#26262e; border:1.5px solid #C9A227;
      color:#C9A227; font-weight:700; font-size:12px; display:flex; align-items:center; justify-content:center; margin-top:1px; }
  .beat p { font-size:var(--type-body); }
  .beat .who { color:#C9A227; font-weight:700; }
  .step-badge { flex:none; width:0.15in; height:0.15in; border-radius:50%; background:#26262e;
      border:1px solid #C9A227; color:#C9A227; font-size:7.4px; line-height:0.14in; text-align:center; }

  /* One tableau pile, posed like the live table's tower: the card that is
     playing sits square with the box and every buried rung steps down behind
     it, showing only its course band.

     The 0.12 advance is the client's own PILE_TOWER_ADVANCE_RATIO — its
     COURSE_ROW_PERCENT of 11 plus a 1% ring reveal — so the book and the table
     agree about how much of a buried card a player can see. Card size comes
     from the CONTAINER, so one helper draws the page's big annotated tower,
     its plot row, and its move panels at three scales without three sets of
     markup; the box grows with --pile-depth so a figure reserves exactly the
     tower it is drawing. */
  .pile-figure { position:relative; width:var(--placement-card-w);
      --pile-rung-advance:calc(var(--placement-card-h) * 0.12);
      height:calc(var(--placement-card-h) + var(--pile-rung-advance) * var(--pile-depth,0)); }
  .pile-figure-card { display:block; width:var(--placement-card-w); height:var(--placement-card-h);
      object-fit:contain; filter:drop-shadow(0 4px 5px #0007); }
  .pile-figure > div { position:absolute; top:0; left:0; }
  .pile-figure-rung { filter:saturate(0.42); }
  /* The rung a SELL just handed the pile back to. It is playing again, so it
     loses the drain — the same exemption the live table's RungDrain makes for
     its data-card-rung-live attribute. */
  .pile-figure-rung-live { filter:none; }
  /* The card a SELL is removing: on its way to the discard, so it is drawn as
     a departure rather than as part of the tower. Without it the SELL panel
     would reprint the second panel's picture exactly, since selling a climb
     hands the plot back to the very tower that climb was built on. */
  .pile-figure-departing { opacity:0.26; }
  /* Ground nothing stands on yet. Drawn at card size so the FOUND move's
     before-and-after are the same shape, which is what makes the arrow
     between them read as one card arriving rather than the box changing. */
  .pile-figure-empty { width:var(--placement-card-w); height:var(--placement-card-h);
      border:1.5px dashed #4a4a58; border-radius:5px; display:flex; align-items:center;
      justify-content:center; text-align:center; box-sizing:border-box; padding:0 0.05in; }
  .pile-figure-empty span { font-size:var(--type-label); letter-spacing:0.06em; text-transform:uppercase; color:#6f6c7a; }

  /* One round-event face under the Veilturn column, dealt onto the page rather
     than filed into it: a few degrees of tilt and the same drop shadow the
     book's other card figures carry. Landscape 7:5, the shape the table frame
     captures an event at. Apple Preview rasterises a shadow on a transformed
     image as an opaque black rectangle, so the tilt rides on the FIGURE and the
     shadow on the image inside it. */
  .twist-face-figure { display:flex; justify-content:center; margin-top:0.15in;
      transform:rotate(-3.5deg); }
  .twist-face { display:block; width:2.3in; height:1.643in; object-fit:contain; border-radius:6px;
      filter:drop-shadow(0 5px 7px #0008); }

  /* ---- the table page ---- */
  .table-page-top { display:flex; gap:0.36in; margin-bottom:0.12in; }
  /* The anatomy tower is four cards tall, so its card size sets the height of
     this whole band and therefore how much of the page is left for the four
     moves below it. It was re-cut (2026-08-07) when the strips note started
     drawing its three chips and the ladder box became six rows: at the old
     1.56in the moves band overflowed into the footer in pt-BR, which had in
     fact been true since before either change. */
  .tower-anatomy { flex:none; display:grid; grid-template-columns:auto minmax(0,1fr); gap:0.26in;
      --placement-card-w:1.4in; --placement-card-h:1.96in; }
  /* The annotations are absolutely placed against the TOWER's own geometry, in
     multiples of one card height, so each sits beside the part it names — the
     live top, the buried rungs, the exposed feet — rather than merely near the
     picture. Retuning the card size moves the notes with it. */
  .tower-anatomy-notes { position:relative; min-width:3.1in; }
  .tower-anatomy-note { position:absolute; left:0; right:0; padding-left:0.17in;
      border-left:2px solid #C9A227; }
  .tower-anatomy-note:nth-child(1) { top:calc(var(--placement-card-h) * 0.08); }
  .tower-anatomy-note:nth-child(2) { top:calc(var(--placement-card-h) * 0.58); }
  .tower-anatomy-note:nth-child(3) { top:calc(var(--placement-card-h) * 1.08); }
  .tower-anatomy-note p { font-size:var(--type-note); line-height:1.42; }
  .tower-anatomy-strips-title { margin-bottom:0.04in; }
  .tower-anatomy-strips { display:grid; gap:0.035in; }
  /* Chip then gloss: the chip is a miniature of the strip a card face prints
     above its rules text, so the note SHOWS the three persistence words rather
     than listing them mid-sentence. The chip column is fixed so the three
     glosses start on one edge, and wide enough for the longest label any
     locale's persistenceLabels carries. */
  .tower-anatomy-strip { display:grid; grid-template-columns:0.92in minmax(0,1fr); gap:0.09in;
      align-items:center; }
  .tower-anatomy-strip p { font-size:var(--type-caption); line-height:1.3; }
  .card-band { display:block; padding:1px 3px; border-radius:2px; background:#26262e;
      border:1px solid #C9A227; color:#E6B94D; text-align:center;
      font-family:"Avenir Next Condensed","Avenir Next",sans-serif; font-size:var(--type-label);
      font-weight:700; letter-spacing:0.07em; text-transform:uppercase; line-height:1.24; }
  .table-plots { flex:1; min-width:0; display:flex; flex-direction:column; }
  /* Bottom-aligned: the towers stand on a shared surface rather than hanging
     from one, so their feet line up however tall each is — which is also what
     puts the slot numbers on a single line beneath them. */
  .table-plots-row { display:flex; align-items:flex-end; gap:0.15in; margin:0.12in 0 0.16in;
      --placement-card-w:0.74in; --placement-card-h:1.036in; }
  .table-plots-slot { display:flex; flex-direction:column; align-items:center; gap:0.05in; }
  .table-plots-slot span { font-size:var(--type-label); letter-spacing:0.08em; color:#6f6c7a; text-transform:uppercase; }
  .table-moves { border-top:1px solid #2c2c36; padding-top:0.12in; }
  .table-moves-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0.17in; margin-top:0.1in;
      --placement-card-w:0.78in; --placement-card-h:1.092in; }
  .table-move-head { display:flex; align-items:baseline; gap:0.07in; margin-bottom:0.08in; }
  .table-move-head span { color:#C9A227; font-size:var(--type-caption); letter-spacing:0.08em; text-transform:uppercase; }
  .table-move { min-width:0; padding:0.1in 0.11in; background:#1b1b22; border:1px solid #2c2c36;
      border-radius:7px; }
  .table-move-figures { display:flex; align-items:flex-start; justify-content:center; gap:0.08in; }
  /* Off the scale on purpose: a glyph sized to the two card figures it sits
     between, not a piece of copy. */
  .table-move-arrow { align-self:center; color:#C9A227; font-size:16px; line-height:1; }
  .table-move p { font-size:var(--type-caption); line-height:1.38; margin-top:0.1in; }
  /* Six ceilings as six rows rather than one paragraph. Three columns keeps
     the box the height the old paragraph was while making each rule its own
     scannable line; a locale whose lines run to two is why the rows are
     baseline-aligned rather than stretched. */
  .ladder-rules-title { margin-bottom:0.05in; }
  .ladder-rules { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
      gap:0.02in 0.2in; align-items:start; }
  .ladder-rules li { position:relative; padding-left:0.13in; font-size:var(--type-caption); line-height:1.32; }
  .ladder-rules li::before { content:"\25B8"; position:absolute; left:0; color:#C9A227; }

  .role-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px 0.24in; }
  .role-reference-table { table-layout:fixed; }
  .role-reference-draft { width:0.52in; }
  .role-reference-suit { width:0.78in; }
  .role-reference-listing { display:block; margin-top:2px; color:#8a8794; font-size:var(--type-caption); font-style:italic; }
  .role-reference-table th { padding:4px 7px; color:#C9A227; font-size:var(--type-caption); letter-spacing:0.1em;
      text-transform:uppercase; }
  .role-reference-table td { padding:7px 8px; font-size:var(--type-note); line-height:1.3; vertical-align:top; }
  .role-reference-turn { width:0.56in; text-align:center; color:#C9A227; font-weight:800; }
  .role-reference-name { width:1.38in; color:#e8e6df; font-weight:700; }
  .suit-head { display:flex; align-items:center; gap:11px; border-left:4px solid; padding-left:11px; margin-bottom:9px; }
  .suit-sigil { width:0.5in; height:0.5in; }
  .suit-name { color:color-mix(in srgb,var(--suit-color) 52%,white); font-size:var(--type-heading); font-weight:700; text-transform:uppercase; letter-spacing:0.08em;
                font-family:"Avenir Next Condensed",sans-serif; }
  .suit-count { font-size:var(--type-caption); color:#8a8794; letter-spacing:0.1em; text-transform:uppercase; }
  .card-art { flex:none; border-radius:6px; }
  .catalogue-page { padding:0.24in 0.32in 0.28in; display:grid; grid-template-columns:1.02in minmax(0,1fr);
      gap:0.14in; }
  .catalogue-rail { min-height:0; display:flex; flex-direction:column; border-right:1px solid #45434f;
      padding-right:0.12in; }
  .catalogue-rail .phase-tag { font-size:var(--type-label); line-height:1.35; margin:0; }
  .catalogue-rail h2 { flex:1; align-self:center; writing-mode:vertical-rl; transform:rotate(180deg);
      white-space:nowrap; border:0; padding:0; margin:0.12in 0; font-size:var(--type-heading); line-height:1; }
  .catalogue-rail .suit-head { flex-direction:column; align-items:flex-start; gap:6px; margin:0; padding-left:7px; }
  .catalogue-rail .suit-sigil { width:0.42in; height:0.42in; }
  .catalogue-rail .suit-count { font-size:var(--type-label); line-height:1.25; }
  .catalogue-folio { display:flex; justify-content:flex-end; gap:5px; margin-top:0.12in;
      color:#716e7c; font-size:var(--type-label); line-height:1.2; letter-spacing:0.08em; text-transform:uppercase; }
  /* The catalogue prints the REFERENCE face (8:7, no illustration), and the
     gutters are set so that shape fills its cell rather than letterboxing in
     it. A 5x5 grid on this page hands each card a cell of about 171x150px:
     the portrait face this page used to print could only take 107px of that
     width, and since every measurement on a face — type included — derives
     from its WIDTH, the blank third of each cell was being paid for in
     legibility. Retuning either gutter without re-deriving them together is
     how the cards go back to floating in their cells. */
  .catalogue-card-grid { min-width:0; min-height:0; display:grid;
      grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:repeat(5,minmax(0,1fr));
      gap:4px 7px; }
  .catalogue-card { width:100%; height:100%; min-width:0; min-height:0; object-fit:contain; }
  .event-intro { width:78%; margin:0 auto; text-align:center; color:#aaa7b2; font-size:var(--type-body); line-height:1.5; }
  .event-pool-list { display:flex; flex-direction:column; gap:1px; }
  .event-pool-row { display:grid; grid-template-columns:1.35in minmax(0,1fr); gap:0 10px; align-items:start;
      background:#1b1b22; border:1px solid #2c2c36; border-left:3px solid #C9A227; border-radius:6px;
      padding:5px 9px; }
  .event-pool-name { color:#e8e6df; font-weight:700; font-size:var(--type-caption); line-height:1.25; }
  .event-pool-text { font-size:var(--type-caption); line-height:1.3; color:#c9c7bf; }
  .event-profile-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.15in; }
  .event-profile { min-height:1.28in; padding:0.15in 0.17in; background:#1b1b22; border:1px solid #2c2c36;
      border-top:4px solid #C9A227; border-radius:8px; }
  .event-profile h3 { margin-bottom:0.05in; }
  .event-profile p { color:#aaa7b2; font-size:var(--type-note); line-height:1.48; }
  .goal-intro { width:82%; margin:0 auto; text-align:center; color:#aaa7b2; font-size:var(--type-body); line-height:1.5; }
  .public-pressure-page { gap:0.16in; }
  .public-pressure-page.engine-public-pressure-page { gap:0.12in; }
  .public-pressure-band { min-height:0; }
  .public-pressure-band + .public-pressure-band { border-top:1px solid #45434f; padding-top:0.16in; }
  .public-pressure-head { display:flex; align-items:baseline; justify-content:space-between; gap:0.2in;
                          margin-bottom:0.08in; }
  .public-pressure-head h2 { flex:1; margin:0; }
  .public-pressure-head p { width:5.6in; font-size:var(--type-note); line-height:1.4; color:#aaa7b2; }
  .public-pressure-layout { display:grid; grid-template-columns:6.65in 1fr; gap:0.2in; align-items:stretch; }
  .public-pressure-notes { display:grid; gap:6px; }
  .public-pressure-note { border-left:3px solid #c9a227; background:#1b1b22; padding:7px 9px; }
  .public-pressure-note h3 { margin:0 0 2px; font-size:var(--type-note); }
  .public-pressure-note p { font-size:var(--type-caption); line-height:1.35; }
  .combined-contract-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:0.1in; }
  .combined-contract-cards:has(.contract-text-list) { display:block; }
  .contract-text-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0.1in; }
  .contract-text-row { min-height:1.42in; padding:0.12in 0.14in; border:1px solid #45434f;
                   border-top:4px solid #C9A227; border-radius:8px; background:#1b1b22; }
  .contract-text-row h3 { margin:0.05in 0 0.06in; font-size:var(--type-heading); }
  .contract-text-row p { font-size:var(--type-caption); line-height:1.4; color:#aaa7b2; }
  .goal-progress { display:flex; gap:5px; margin-top:0.12in; }
  .goal-pip { height:6px; flex:1; border-radius:4px; background:#34323c; }
  .goal-pip.on { background:#C9A227; }
  .goal-rules { display:grid; grid-template-columns:repeat(3,1fr); gap:0.15in; }
  .goal-rule { min-height:1.16in; padding:0.13in 0.15in; background:#1b1b22; border:1px solid #2c2c36;
      border-radius:8px; }
  .goal-rule h3 { margin-bottom:0.05in; }
  .goal-rule p { color:#aaa7b2; font-size:var(--type-note); line-height:1.45; }
  /* The 24-contract appendix splits into two side-by-side tables by tier
     (see contractAppendixColumn above) rather than one wide table, so each
     column's row count stays at or under the single-column budget the
     retired goal appendix was already proven to fit. */
  .contract-reference-columns { display:grid; grid-template-columns:1fr 1fr; gap:0.2in; align-items:start; }
  .contract-reference-table { table-layout:fixed; border:1px solid #2c2c36; border-radius:10px;
      overflow:hidden; background:#1b1b22; }
  .contract-reference-table th { padding:7px 10px; color:#C9A227; background:#15151a; border-color:#45434f;
      font-family:"Avenir Next Condensed",sans-serif; font-size:var(--type-caption); font-weight:700;
      letter-spacing:0.12em; text-transform:uppercase; }
  /* Sixteen rows in the taller column (Tier II and III combined) on a fixed
     page, so these rows sit tighter than the book's other tables — the same
     concession the glossary already makes. At the book's default 7px the
     pt-BR appendix clipped 34.5px past the page box; the type scale took half
     of that and this takes the rest. */
  .contract-reference-table td { padding:5px 10px; font-size:var(--type-note); line-height:1.28; }
  .contract-reference-tier-col { width:1.1in; }
  .contract-reference-name-col { width:1.9in; }
  .contract-reference-tier { vertical-align:top; border-right:3px solid #C9A227;
      background:#202028; color:#E6B94D; }
  .contract-reference-tier strong { display:block; font-family:"Avenir Next Condensed",sans-serif;
      font-size:var(--type-body); letter-spacing:0.08em; text-transform:uppercase; }
  .contract-reference-tier span { display:block; margin-top:3px; color:#8a8794; font-size:var(--type-label); }
  .contract-reference-name { width:1.7in; color:#e8e6df; font-weight:700; }
  .contract-reference-requirement { color:#aaa7b2; }
  table { width:100%; border-collapse:collapse; }
  td, th { font-size:var(--type-note); padding:6px 9px; border-bottom:1px solid #2c2c36; text-align:left; vertical-align:middle; color:#c9c7bf; }
  .gloss-term { color:#e8e6df; font-weight:700; white-space:nowrap; }
  /* Twenty glossary rows since the Reveal entry (2026-08-06): the default 6px
     row padding printed the table's tail into the footer band in BOTH locales,
     so this page's rows sit tighter than the book's other tables. */
  .glossary-page td, .glossary-page th { padding:4.5px 9px; }
  /* Off the scale on purpose: the endgame numerals are the figure, not copy. */
  .score-big { font-size:28px; font-weight:800; color:#E6B94D; font-family:"Avenir Next Condensed",sans-serif; }
  .bonus-row { display:flex; gap:10px; margin:12px 0; }
  .bonus { flex:1; background:#1b1b22; border:1px solid #2c2c36; border-radius:10px; padding:12px 10px; text-align:center; }
  .bonus .score-big { display:block; white-space:nowrap; }
  .bonus .b-label { font-size:var(--type-caption); text-transform:uppercase; letter-spacing:0.07em; color:#c9c7bf; margin-top:4px; line-height:1.35; }

  .phase-tag { font-size:var(--type-caption); font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:#8a8794; margin-bottom:6px; }
  .phase-tag b { color:#C9A227; }

  /* The running title was dropped (2026-08-07); the folio is all that is
     left, so it keeps the right edge it always sat on. */
  .footer { position:absolute; bottom:0.26in; left:0.5in; right:0.5in; display:flex; justify-content:flex-end;
             font-size:var(--type-label); color:#5f5c68; letter-spacing:0.14em; text-transform:uppercase; }

  body.print-surface-parchment,
  body.print-surface-parchment .page { background:var(--print-bg); color:var(--print-ink); }
  body.print-surface-parchment .page {
      background-image:radial-gradient(circle at 15% 8%,#fff7df70,transparent 28%),
        radial-gradient(circle at 84% 92%,#765c3322,transparent 34%),
        repeating-linear-gradient(7deg,#00000008 0 1px,transparent 1px 7px); }
  body.print-surface-parchment { font-family:var(--print-body); }
  body.print-surface-parchment h1,
  body.print-surface-parchment h2,
  body.print-surface-parchment h3 { font-family:var(--print-display); color:var(--print-ink); }
  body.print-surface-parchment h2 { color:var(--print-accent); border-color:var(--print-accent-strong); }
  body.print-surface-parchment p,
  body.print-surface-parchment li,
  body.print-surface-parchment td,
  body.print-surface-parchment .event-pool-text,
  body.print-surface-parchment .basics-suit-copy p,
  body.print-surface-parchment .goal-rule p,
  body.print-surface-parchment .contract-reference-requirement,
  body.print-surface-parchment .public-pressure-head p { color:var(--print-muted); }
  body.print-surface-parchment b,
  body.print-surface-parchment .event-pool-name,
  body.print-surface-parchment .basics-suit-copy strong,
  body.print-surface-parchment .contract-text-row h3,
  body.print-surface-parchment .contract-reference-name,
  body.print-surface-parchment .gloss-term { color:var(--print-ink); }
  body.print-surface-parchment .role-reference-table td,
  body.print-surface-parchment .role-reference-table th { border-color:var(--print-line); }
  body.print-surface-parchment .role-reference-table td { color:var(--print-muted); }
  body.print-surface-parchment .role-reference-table .role-reference-name { color:var(--print-ink); }
  body.print-surface-parchment .role-reference-listing { color:var(--print-muted); }
  body.print-surface-parchment .role-reference-table th,
  body.print-surface-parchment .role-reference-turn { color:var(--print-accent); }
  body.print-surface-parchment .panel,
  body.print-surface-parchment .basics-suit-example,
  body.print-surface-parchment .table-move,
  body.print-surface-parchment .role-cell,
  body.print-surface-parchment .event-pool-row,
  body.print-surface-parchment .event-profile,
  body.print-surface-parchment .contract-text-row,
  body.print-surface-parchment .goal-rule,
  body.print-surface-parchment .public-pressure-note,
  body.print-surface-parchment .bonus { background:color-mix(in srgb,var(--print-panel) 92%,white); border-color:var(--print-line); }
  body.print-surface-parchment .callout { background:color-mix(in srgb,#9d4a3d 12%,var(--print-panel)); }
  body.print-surface-parchment .callout.blue { border-color:var(--print-accent); background:color-mix(in srgb,var(--print-accent) 12%,var(--print-panel)); }
  body.print-surface-parchment .callout.gold { border-color:var(--print-accent-strong); background:color-mix(in srgb,var(--print-accent-strong) 14%,var(--print-panel)); }
  body.print-surface-parchment .phase-tag,
  body.print-surface-parchment .suit-count,
  body.print-surface-parchment .footer { color:var(--print-muted); }
  body.print-surface-parchment .contract-text-row p { color:var(--print-muted); }
  body.print-surface-parchment .phase-tag b,
  body.print-surface-parchment .score-big,
  body.print-surface-parchment .beat .who,
  body.print-surface-parchment .contract-tier { color:var(--print-accent); }
  body.print-surface-parchment .bonus .b-label { color:var(--print-muted); }
  body.print-surface-parchment .chip { border-color:var(--print-accent-strong); color:var(--print-ink); }
  body.print-surface-parchment .cover { background:radial-gradient(ellipse at 68% 42%,#f5ead0 0%,var(--print-bg) 62%,#b9a378 100%); }
  body.print-surface-parchment .cover h1 { color:var(--print-accent); text-shadow:0 2px #fff8,0 12px 35px #6b522b33; }
  body.print-surface-parchment .cover-rule { background:linear-gradient(90deg,var(--print-accent-strong),transparent); }
  body.print-surface-parchment .cover-kicker,
  body.print-surface-parchment .cover-tag { color:var(--print-muted); }
  body.print-surface-parchment .steps li::before { background:var(--print-accent); color:#f6ebd2; }
  body.print-surface-parchment .demand-row { border-top-color:var(--print-line); }
  body.print-surface-parchment .demand-row b { color:var(--print-ink); }
  body.print-surface-parchment .demand-row span,
  body.print-surface-parchment .allowance { color:var(--print-accent); }
  body.print-surface-parchment .beat-badge,
  body.print-surface-parchment .step-badge { background:var(--print-panel); border-color:var(--print-accent); color:var(--print-accent); }
  body.print-surface-parchment .table-move-head span,
  body.print-surface-parchment .table-move-arrow { color:var(--print-accent); }
  body.print-surface-parchment .tower-anatomy-note { border-left-color:var(--print-accent); }
  body.print-surface-parchment .tower-anatomy-strip p { color:var(--print-muted); }
  body.print-surface-parchment .card-band { background:color-mix(in srgb,var(--print-accent-strong) 14%,var(--print-panel));
      border-color:var(--print-accent-strong); color:var(--print-ink); font-family:var(--print-utility); }
  body.print-surface-parchment .ladder-rules li { color:var(--print-muted); }
  body.print-surface-parchment .ladder-rules li::before { color:var(--print-accent); }
  body.print-surface-parchment .pile-figure-empty { border-color:var(--print-line); }
  body.print-surface-parchment .pile-figure-empty span,
  body.print-surface-parchment .table-plots-slot span { color:var(--print-muted); }
  body.print-surface-parchment .public-pressure-band + .public-pressure-band,
  body.print-surface-parchment td,
  body.print-surface-parchment th,
  body.print-surface-parchment .contract-reference-table {
      border-color:var(--print-line); background:color-mix(in srgb,var(--print-panel) 92%,white); }
  body.print-surface-parchment .contract-reference-table th {
      color:var(--print-accent); background:color-mix(in srgb,var(--print-accent) 10%,var(--print-panel)); }
  body.print-surface-parchment .contract-reference-tier {
      border-color:var(--print-accent-strong); background:color-mix(in srgb,var(--print-accent-strong) 10%,var(--print-panel));
      color:var(--print-accent); }
  body.print-surface-parchment .contract-reference-tier span { color:var(--print-muted); }
  body.print-surface-parchment .suit-name,
  body.print-surface-parchment .basics-suit-copy h3 { color:var(--suit-color); }
