
/* What the handbook says depends on what this site runs (WP11). The frame (how.js servicesVerdict) marks the banner with
   the state it read from GET services: devnet, chain-paused (HR's CHAIN PAUSE), paused, game-only or unknown; and shows
   the account mount only when sign-in is on. data-when lists the states a piece of copy is for, separated by spaces;
   'off' stands for paused, game-only and unknown, the site before its test network, where nothing trades. Copy is hidden
   in every state it does not list, all of it is hidden until the state is known, and a state this page does not know
   is read as unknown, so no chapter is ever left without its copy. audit/fix/WP11/copy-gate.test.mjs checks every
   state servicesVerdict can return against these rules and the TRY IT chapter. */
html:not(:has([data-lp-banner][data-state])) .lp-book [data-when]{display:none!important}
html:has([data-lp-banner][data-state='devnet']) .lp-book [data-when]:not([data-when~='devnet']){display:none!important}
html:has([data-lp-banner][data-state='chain-paused']) .lp-book [data-when]:not([data-when~='chain-paused']){display:none!important}
html:has([data-lp-banner][data-state='paused']) .lp-book [data-when]:not([data-when~='paused'],[data-when~='off']){display:none!important}
html:has([data-lp-banner][data-state='game-only']) .lp-book [data-when]:not([data-when~='game-only'],[data-when~='off']){display:none!important}
html:has([data-lp-banner][data-state]:not([data-state='devnet'],[data-state='chain-paused'],[data-state='paused'],[data-state='game-only'])) .lp-book [data-when]:not([data-when~='unknown'],[data-when~='off']){display:none!important}
html:not(:has([data-lp-account]:not([hidden]))) .lp-book [data-signin='on']{display:none!important}
html:has([data-lp-account]:not([hidden])) .lp-book [data-signin='off']{display:none!important}
/* the owner's decisions that change handbook copy (board items LP-D8, LP-D9, LP-D14, LP-D16). The one switch is the data-d8,
   data-d9, data-d14 and data-d16 attributes on the lp-book section below; changing a letter shows the other sentence.
   The letters are the owner's answers of 17 Oct 2026 (LP-D8, LP-D9, LP-D14, LP-D16): D8 B (open sign-up), D9 A, D14 A,
   D16 A. audit/fix/WP11/copy-gate.test.mjs fails when a letter and that file disagree. data-d14 follows WARS_SCORING in
   the game server (src/server/game/wars.js: A is 'scaled', B is 'raw'); audit/fix/WP11/board.test.mjs fails when the two
   disagree. */
.lp-book[data-d8='A'] [data-if-d8='B'],.lp-book[data-d8='B'] [data-if-d8='A'],
.lp-book[data-d9='A'] [data-if-d9='B'],.lp-book[data-d9='B'] [data-if-d9='A'],
.lp-book[data-d14='A'] [data-if-d14='B'],.lp-book[data-d14='B'] [data-if-d14='A'],
.lp-book[data-d16='A'] [data-if-d16='B'],.lp-book[data-d16='B'] [data-if-d16='A']{display:none!important}
.lp-book .lp-try-note{margin:14px 0 0;padding:10px 14px;border-left:4px solid #953407;background:#efe2c4}
.lp-book .lp-arena-games{margin:12px 0 0}
.lp-book .lp-paper h3{margin:0 0 4px}
/* The book is one column on every width (pages.css), so a sticky chapter list (lp.css) would sit over the chapters as
   the reader scrolls and hide the last one. It stays at the top of the book instead. */
.page-shell .lp-book .lp-toc{position:static}
.handbook-fee-note{position:absolute;z-index:5;box-sizing:border-box;margin:0;display:flex;align-items:center;justify-content:center;white-space:pre-line;text-align:center;background:#ead59a;color:#10120e;font-family:VT323,monospace;line-height:1}
