/* ==========================================================================
   Lake Oswego Finance Almanac
   An engraved-certificate stylesheet: guilloche borders, symmetrical
   composition, ledger tables. System fonts only. Single colour scheme.
   ========================================================================== */

:root {
  color-scheme: light;

  /* palette (see contrast notes beside each pairing) */
  --paper: #EFECF4;        /* certificate stock */
  --paper-2: #F7F5FB;      /* lighter ledger band, ink on it > 15:1 */
  --mist: #D9D3E8;
  --white: #FFFFFF;
  --violet: #3A2A70;       /* engraving ink; 12:1 vs white, 10:1 vs paper */
  --violet-deep: #2A1E55;
  --ink: #1A1530;
  --muted: #4A4268;        /* 7.9:1 on paper, 6.4:1 on mist */
  --gold-text: #7A5A0E;    /* text only on paper or white: 5.4:1 / 6.4:1 */
  --gold: #A87F1E;         /* art, rules and non-text marks */
  --gold-lite: #E6C877;    /* on ink or violet: 10.8:1 */
  --gold-soft: #F4E7BF;
  --wine: #8B1A2E;         /* error text, paired with words and icons */
  --rule: #B8AED2;
  --focus: #3A2A70;

  --font: "Hoefler Text", Cochin, Georgia, "Times New Roman", serif;

  --s1: .25rem; --s2: .5rem; --s3: .75rem; --s4: 1rem; --s5: 1.5rem; --s6: 2.25rem; --s7: 3.5rem; --s8: 5.5rem;
  --gutter: clamp(14px, 3.4vw, 48px);
  --frame: clamp(14px, 2.4vw, 28px);

  --strip-h: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='28' viewBox='0 0 96 28'%3E%3Cpath d='M0 14 L2 15.2 L4 16.3 L6 17.4 L8 18.5 L10 19.5 L12 20.4 L14 21.1 L16 21.8 L18 22.3 L20 22.7 L22 22.9 L24 23 L26 22.9 L28 22.7 L30 22.3 L32 21.8 L34 21.1 L36 20.4 L38 19.5 L40 18.5 L42 17.4 L44 16.3 L46 15.2 L48 14 L50 12.8 L52 11.7 L54 10.6 L56 9.5 L58 8.5 L60 7.6 L62 6.9 L64 6.2 L66 5.7 L68 5.3 L70 5.1 L72 5 L74 5.1 L76 5.3 L78 5.7 L80 6.2 L82 6.9 L84 7.6 L86 8.5 L88 9.5 L90 10.6 L92 11.7 L94 12.8 L96 14' fill='none' stroke='%233A2A70' stroke-width='0.9' opacity='0.9'/%3E%3Cpath d='M0 23 L2 22.9 L4 22.7 L6 22.3 L8 21.8 L10 21.1 L12 20.4 L14 19.5 L16 18.5 L18 17.4 L20 16.3 L22 15.2 L24 14 L26 12.8 L28 11.7 L30 10.6 L32 9.5 L34 8.5 L36 7.6 L38 6.9 L40 6.2 L42 5.7 L44 5.3 L46 5.1 L48 5 L50 5.1 L52 5.3 L54 5.7 L56 6.2 L58 6.9 L60 7.6 L62 8.5 L64 9.5 L66 10.6 L68 11.7 L70 12.8 L72 14 L74 15.2 L76 16.3 L78 17.4 L80 18.5 L82 19.5 L84 20.4 L86 21.1 L88 21.8 L90 22.3 L92 22.7 L94 22.9 L96 23' fill='none' stroke='%233A2A70' stroke-width='0.9' opacity='0.9'/%3E%3Cpath d='M0 14 L2 12.8 L4 11.7 L6 10.6 L8 9.5 L10 8.5 L12 7.6 L14 6.9 L16 6.2 L18 5.7 L20 5.3 L22 5.1 L24 5 L26 5.1 L28 5.3 L30 5.7 L32 6.2 L34 6.9 L36 7.6 L38 8.5 L40 9.5 L42 10.6 L44 11.7 L46 12.8 L48 14 L50 15.2 L52 16.3 L54 17.4 L56 18.5 L58 19.5 L60 20.4 L62 21.1 L64 21.8 L66 22.3 L68 22.7 L70 22.9 L72 23 L74 22.9 L76 22.7 L78 22.3 L80 21.8 L82 21.1 L84 20.4 L86 19.5 L88 18.5 L90 17.4 L92 16.3 L94 15.2 L96 14' fill='none' stroke='%233A2A70' stroke-width='0.9' opacity='0.9'/%3E%3Cpath d='M0 5 L2 5.1 L4 5.3 L6 5.7 L8 6.2 L10 6.9 L12 7.6 L14 8.5 L16 9.5 L18 10.6 L20 11.7 L22 12.8 L24 14 L26 15.2 L28 16.3 L30 17.4 L32 18.5 L34 19.5 L36 20.4 L38 21.1 L40 21.8 L42 22.3 L44 22.7 L46 22.9 L48 23 L50 22.9 L52 22.7 L54 22.3 L56 21.8 L58 21.1 L60 20.4 L62 19.5 L64 18.5 L66 17.4 L68 16.3 L70 15.2 L72 14 L74 12.8 L76 11.7 L78 10.6 L80 9.5 L82 8.5 L84 7.6 L86 6.9 L88 6.2 L90 5.7 L92 5.3 L94 5.1 L96 5' fill='none' stroke='%233A2A70' stroke-width='0.9' opacity='0.9'/%3E%3Cpath d='M0 16.6 L2 17.8 L4 18.7 L6 19.3 L8 19.5 L10 19.3 L12 18.8 L14 18 L16 16.9 L18 15.5 L20 14.1 L22 12.7 L24 11.4 L26 10.2 L28 9.3 L30 8.7 L32 8.5 L34 8.7 L36 9.2 L38 10 L40 11.1 L42 12.5 L44 13.9 L46 15.3 L48 16.6 L50 17.8 L52 18.7 L54 19.3 L56 19.5 L58 19.3 L60 18.8 L62 18 L64 16.9 L66 15.5 L68 14.1 L70 12.7 L72 11.4 L74 10.2 L76 9.3 L78 8.7 L80 8.5 L82 8.7 L84 9.2 L86 10 L88 11.1 L90 12.5 L92 13.9 L94 15.3 L96 16.6' fill='none' stroke='%23A87F1E' stroke-width='0.8' opacity='0.9'/%3E%3Cpath d='M0 16.9 L2 15.5 L4 14.1 L6 12.7 L8 11.4 L10 10.2 L12 9.3 L14 8.7 L16 8.5 L18 8.7 L20 9.2 L22 10 L24 11.1 L26 12.5 L28 13.9 L30 15.3 L32 16.6 L34 17.8 L36 18.7 L38 19.3 L40 19.5 L42 19.3 L44 18.8 L46 18 L48 16.9 L50 15.5 L52 14.1 L54 12.7 L56 11.4 L58 10.2 L60 9.3 L62 8.7 L64 8.5 L66 8.7 L68 9.2 L70 10 L72 11.1 L74 12.5 L76 13.9 L78 15.3 L80 16.6 L82 17.8 L84 18.7 L86 19.3 L88 19.5 L90 19.3 L92 18.8 L94 18 L96 16.9' fill='none' stroke='%23A87F1E' stroke-width='0.8' opacity='0.9'/%3E%3Cpath d='M0 8.5 L2 8.7 L4 9.2 L6 10 L8 11.1 L10 12.5 L12 13.9 L14 15.3 L16 16.6 L18 17.8 L20 18.7 L22 19.3 L24 19.5 L26 19.3 L28 18.8 L30 18 L32 16.9 L34 15.5 L36 14.1 L38 12.7 L40 11.4 L42 10.2 L44 9.3 L46 8.7 L48 8.5 L50 8.7 L52 9.2 L54 10 L56 11.1 L58 12.5 L60 13.9 L62 15.3 L64 16.6 L66 17.8 L68 18.7 L70 19.3 L72 19.5 L74 19.3 L76 18.8 L78 18 L80 16.9 L82 15.5 L84 14.1 L86 12.7 L88 11.4 L90 10.2 L92 9.3 L94 8.7 L96 8.5' fill='none' stroke='%23A87F1E' stroke-width='0.8' opacity='0.9'/%3E%3Cpath d='M0 1.5H96M0 26.5H96' stroke='%233A2A70' stroke-width='1.2' fill='none'/%3E%3Cpath d='M0 4H96M0 24H96' stroke='%23A87F1E' stroke-width='0.6' fill='none'/%3E%3C/svg%3E");
  --strip-v: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='96' viewBox='0 0 28 96'%3E%3Cg transform='translate(28 0) rotate(90)'%3E%3Cpath d='M0 14 L2 15.2 L4 16.3 L6 17.4 L8 18.5 L10 19.5 L12 20.4 L14 21.1 L16 21.8 L18 22.3 L20 22.7 L22 22.9 L24 23 L26 22.9 L28 22.7 L30 22.3 L32 21.8 L34 21.1 L36 20.4 L38 19.5 L40 18.5 L42 17.4 L44 16.3 L46 15.2 L48 14 L50 12.8 L52 11.7 L54 10.6 L56 9.5 L58 8.5 L60 7.6 L62 6.9 L64 6.2 L66 5.7 L68 5.3 L70 5.1 L72 5 L74 5.1 L76 5.3 L78 5.7 L80 6.2 L82 6.9 L84 7.6 L86 8.5 L88 9.5 L90 10.6 L92 11.7 L94 12.8 L96 14' fill='none' stroke='%233A2A70' stroke-width='0.9' opacity='0.9'/%3E%3Cpath d='M0 23 L2 22.9 L4 22.7 L6 22.3 L8 21.8 L10 21.1 L12 20.4 L14 19.5 L16 18.5 L18 17.4 L20 16.3 L22 15.2 L24 14 L26 12.8 L28 11.7 L30 10.6 L32 9.5 L34 8.5 L36 7.6 L38 6.9 L40 6.2 L42 5.7 L44 5.3 L46 5.1 L48 5 L50 5.1 L52 5.3 L54 5.7 L56 6.2 L58 6.9 L60 7.6 L62 8.5 L64 9.5 L66 10.6 L68 11.7 L70 12.8 L72 14 L74 15.2 L76 16.3 L78 17.4 L80 18.5 L82 19.5 L84 20.4 L86 21.1 L88 21.8 L90 22.3 L92 22.7 L94 22.9 L96 23' fill='none' stroke='%233A2A70' stroke-width='0.9' opacity='0.9'/%3E%3Cpath d='M0 14 L2 12.8 L4 11.7 L6 10.6 L8 9.5 L10 8.5 L12 7.6 L14 6.9 L16 6.2 L18 5.7 L20 5.3 L22 5.1 L24 5 L26 5.1 L28 5.3 L30 5.7 L32 6.2 L34 6.9 L36 7.6 L38 8.5 L40 9.5 L42 10.6 L44 11.7 L46 12.8 L48 14 L50 15.2 L52 16.3 L54 17.4 L56 18.5 L58 19.5 L60 20.4 L62 21.1 L64 21.8 L66 22.3 L68 22.7 L70 22.9 L72 23 L74 22.9 L76 22.7 L78 22.3 L80 21.8 L82 21.1 L84 20.4 L86 19.5 L88 18.5 L90 17.4 L92 16.3 L94 15.2 L96 14' fill='none' stroke='%233A2A70' stroke-width='0.9' opacity='0.9'/%3E%3Cpath d='M0 5 L2 5.1 L4 5.3 L6 5.7 L8 6.2 L10 6.9 L12 7.6 L14 8.5 L16 9.5 L18 10.6 L20 11.7 L22 12.8 L24 14 L26 15.2 L28 16.3 L30 17.4 L32 18.5 L34 19.5 L36 20.4 L38 21.1 L40 21.8 L42 22.3 L44 22.7 L46 22.9 L48 23 L50 22.9 L52 22.7 L54 22.3 L56 21.8 L58 21.1 L60 20.4 L62 19.5 L64 18.5 L66 17.4 L68 16.3 L70 15.2 L72 14 L74 12.8 L76 11.7 L78 10.6 L80 9.5 L82 8.5 L84 7.6 L86 6.9 L88 6.2 L90 5.7 L92 5.3 L94 5.1 L96 5' fill='none' stroke='%233A2A70' stroke-width='0.9' opacity='0.9'/%3E%3Cpath d='M0 16.6 L2 17.8 L4 18.7 L6 19.3 L8 19.5 L10 19.3 L12 18.8 L14 18 L16 16.9 L18 15.5 L20 14.1 L22 12.7 L24 11.4 L26 10.2 L28 9.3 L30 8.7 L32 8.5 L34 8.7 L36 9.2 L38 10 L40 11.1 L42 12.5 L44 13.9 L46 15.3 L48 16.6 L50 17.8 L52 18.7 L54 19.3 L56 19.5 L58 19.3 L60 18.8 L62 18 L64 16.9 L66 15.5 L68 14.1 L70 12.7 L72 11.4 L74 10.2 L76 9.3 L78 8.7 L80 8.5 L82 8.7 L84 9.2 L86 10 L88 11.1 L90 12.5 L92 13.9 L94 15.3 L96 16.6' fill='none' stroke='%23A87F1E' stroke-width='0.8' opacity='0.9'/%3E%3Cpath d='M0 16.9 L2 15.5 L4 14.1 L6 12.7 L8 11.4 L10 10.2 L12 9.3 L14 8.7 L16 8.5 L18 8.7 L20 9.2 L22 10 L24 11.1 L26 12.5 L28 13.9 L30 15.3 L32 16.6 L34 17.8 L36 18.7 L38 19.3 L40 19.5 L42 19.3 L44 18.8 L46 18 L48 16.9 L50 15.5 L52 14.1 L54 12.7 L56 11.4 L58 10.2 L60 9.3 L62 8.7 L64 8.5 L66 8.7 L68 9.2 L70 10 L72 11.1 L74 12.5 L76 13.9 L78 15.3 L80 16.6 L82 17.8 L84 18.7 L86 19.3 L88 19.5 L90 19.3 L92 18.8 L94 18 L96 16.9' fill='none' stroke='%23A87F1E' stroke-width='0.8' opacity='0.9'/%3E%3Cpath d='M0 8.5 L2 8.7 L4 9.2 L6 10 L8 11.1 L10 12.5 L12 13.9 L14 15.3 L16 16.6 L18 17.8 L20 18.7 L22 19.3 L24 19.5 L26 19.3 L28 18.8 L30 18 L32 16.9 L34 15.5 L36 14.1 L38 12.7 L40 11.4 L42 10.2 L44 9.3 L46 8.7 L48 8.5 L50 8.7 L52 9.2 L54 10 L56 11.1 L58 12.5 L60 13.9 L62 15.3 L64 16.6 L66 17.8 L68 18.7 L70 19.3 L72 19.5 L74 19.3 L76 18.8 L78 18 L80 16.9 L82 15.5 L84 14.1 L86 12.7 L88 11.4 L90 10.2 L92 9.3 L94 8.7 L96 8.5' fill='none' stroke='%23A87F1E' stroke-width='0.8' opacity='0.9'/%3E%3Cpath d='M0 1.5H96M0 26.5H96' stroke='%233A2A70' stroke-width='1.2' fill='none'/%3E%3Cpath d='M0 4H96M0 24H96' stroke='%23A87F1E' stroke-width='0.6' fill='none'/%3E%3C/g%3E%3C/svg%3E");
  --corner: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Crect width='56' height='56' fill='%23EFECF4'/%3E%3Crect x='1.5' y='1.5' width='53' height='53' fill='none' stroke='%233A2A70' stroke-width='1.4'/%3E%3Crect x='4.5' y='4.5' width='47' height='47' fill='none' stroke='%23A87F1E' stroke-width='0.7'/%3E%3Cg transform='translate(4 4)'%3E%3Cpath d='M46 24 L41.8 20.4 L32.8 23.1 L26.8 32.4 L27.9 41.7 L32.9 44.1 L34.6 38.8 L28.4 31.7 L17.4 30 L9.4 34.8 L9.3 40.3 L14.8 39.6 L18.7 31.1 L15.9 20.4 L8.2 15 L3.1 17.2 L6 22 L15.3 22.1 L23.9 15.1 L25.8 5.9 L21.7 2.1 L18.5 6.7 L22.2 15.3 L32.1 20.3 L41.2 18.3 L43.1 13 L37.6 12 L31.2 18.8 L30.6 29.9 L36.2 37.4 L41.8 36.9 L40.5 31.5 L31.7 28.5 L21.3 32.5 L16.7 40.6 L19.4 45.5 L23.9 42.1 L23 32.8 L15.2 25 L5.9 24.1 L2.5 28.6 L7.4 31.3 L15.5 26.7 L19.5 16.3 L16.5 7.5 L11.1 6.2 L10.6 11.8 L18.1 17.4 L29.2 16.8 L36 10.4 L35 4.9 L29.7 6.8 L27.7 15.9 L32.7 25.8 L41.3 29.5 L45.9 26.3 L42.1 22.2 L32.9 24.1 L25.9 32.7 L26 42 L30.8 44.9 L33 39.8 L27.6 32.1 L16.9 29.3 L8.4 33.2 L7.7 38.7 L13.2 38.6 L18 30.6 L16.3 19.6 L9.2 13.4 L3.9 15.1 L6.3 20.1 L15.6 21.2 L24.9 15.2 L27.6 6.2 L24 2 L20.4 6.2 L23.1 15.2 L32.4 21.2 L41.7 20.1 L44.1 15.1 L38.8 13.4 L31.7 19.6 L30 30.6 L34.8 38.6 L40.3 38.7 L39.6 33.2 L31.1 29.3 L20.4 32.1 L15 39.8 L17.2 44.9 L22 42 L22.1 32.7 L15.1 24.1 L5.9 22.2 L2.1 26.3 L6.7 29.5 L15.3 25.8 L20.3 15.9 L18.3 6.8 L13 4.9 L12 10.4 L18.8 16.8 L29.9 17.4 L37.4 11.8 L36.9 6.2 L31.5 7.5 L28.5 16.3 L32.5 26.7 L40.6 31.3 L45.5 28.6 L42.1 24.1 L32.8 25 L25 32.8 L24.1 42.1 L28.6 45.5 L31.3 40.6 L26.7 32.5 L16.3 28.5 L7.5 31.5 L6.2 36.9 L11.8 37.4 L17.4 29.9 L16.8 18.8 L10.4 12 L4.9 13 L6.8 18.3 L15.9 20.3 L25.8 15.3 L29.5 6.7 L26.3 2.1 L22.2 5.9 L24.1 15.1 L32.7 22.1 L42 22 L44.9 17.2 L39.8 15 L32.1 20.4 L29.3 31.1 L33.2 39.6 L38.7 40.3 L38.6 34.8 L30.6 30 L19.6 31.7 L13.4 38.8 L15.1 44.1 L20.1 41.7 L21.2 32.4 L15.2 23.1 L6.2 20.4 L2 24 L6.2 27.6 L15.2 24.9 L21.2 15.6 L20.1 6.3 L15.1 3.9 L13.4 9.2 L19.6 16.3 L30.6 18 L38.6 13.2 L38.7 7.7 L33.2 8.4 L29.3 16.9 L32.1 27.6 L39.8 33 L44.9 30.8 L42 26 L32.7 25.9 L24.1 32.9 L22.2 42.1 L26.3 45.9 L29.5 41.3 L25.8 32.7 L15.9 27.7 L6.8 29.7 L4.9 35 L10.4 36 L16.8 29.2 L17.4 18.1 L11.8 10.6 L6.2 11.1 L7.5 16.5 L16.3 19.5 L26.7 15.5 L31.3 7.4 L28.6 2.5 L24.1 5.9 L25 15.2 L32.8 23 L42.1 23.9 L45.5 19.4 L40.6 16.7 L32.5 21.3 L28.5 31.7 L31.5 40.5 L36.9 41.8 L37.4 36.2 L29.9 30.6 L18.8 31.2 L12 37.6 L13 43.1 L18.3 41.2 L20.3 32.1 L15.3 22.2 L6.7 18.5 L2.1 21.7 L5.9 25.8 L15.1 23.9 L22.1 15.3 L22 6 L17.2 3.1 L15 8.2 L20.4 15.9 L31.1 18.7 L39.6 14.8 L40.3 9.3 L34.8 9.4 L30 17.4 L31.7 28.4 L38.8 34.6 L44.1 32.9 L41.7 27.9 L32.4 26.8 L23.1 32.8 L20.4 41.8 L24 46 L27.6 41.8 L24.9 32.8 L15.6 26.8 L6.3 27.9 L3.9 32.9 L9.2 34.6 L16.3 28.4 L18 17.4 L13.2 9.4 L7.7 9.3 L8.4 14.8 L16.9 18.7 L27.6 15.9 L33 8.2 L30.8 3.1 L26 6 L25.9 15.3 L32.9 23.9 L42.1 25.8 L45.9 21.7 L41.3 18.5 L32.7 22.2 L27.7 32.1 L29.7 41.2 L35 43.1 L36 37.6 L29.2 31.2 L18.1 30.6 L10.6 36.2 L11.1 41.8 L16.5 40.5 L19.5 31.7 L15.5 21.3 L7.4 16.7 L2.5 19.4 L5.9 23.9 L15.2 23 L23 15.2 L23.9 5.9 L19.4 2.5 L16.7 7.4 L21.3 15.5 L31.7 19.5 L40.5 16.5 L41.8 11.1 L36.2 10.6 L30.6 18.1 L31.2 29.2 L37.6 36 L43.1 35 L41.2 29.7 L32.1 27.7 L22.2 32.7 L18.5 41.3 L21.7 45.9 L25.8 42.1 L23.9 32.9 L15.3 25.9 L6 26 L3.1 30.8 L8.2 33 L15.9 27.6 L18.7 16.9 L14.8 8.4 L9.3 7.7 L9.4 13.2 L17.4 18 L28.4 16.3 L34.6 9.2 L32.9 3.9 L27.9 6.3 L26.8 15.6 L32.8 24.9 L41.8 27.6 L46 24Z' fill='none' stroke='%233A2A70' stroke-width='0.7'/%3E%3Cpath d='M45 30.5 L42.4 25.6 L34.2 26 L28.4 33.4 L29.9 41.5 L35.3 42.9 L36.6 37.5 L30.2 32.3 L20.9 33.9 L16.6 40.9 L19.7 45.6 L24.4 42.4 L23.1 34.4 L15.1 29.3 L7.2 31.7 L6.4 37.2 L11.9 37.9 L16.4 31.1 L13.8 22 L6.4 18.5 L2.1 22 L5.7 26.3 L13.6 24.1 L17.8 15.7 L14.6 8.1 L9 7.9 L8.9 13.4 L16.2 17.1 L24.9 13.6 L27.7 5.9 L23.7 2 L19.8 6 L22.8 13.7 L31.6 16.9 L38.8 13 L38.5 7.4 L32.9 7.8 L30 15.5 L34.4 23.8 L42.4 25.8 L45.8 21.4 L41.4 18 L34.1 21.7 L31.8 30.9 L36.5 37.6 L42 36.7 L41 31.2 L33.1 29.1 L25.2 34.3 L24.2 42.5 L28.9 45.5 L31.8 40.7 L27.4 33.9 L18 32.5 L11.8 37.8 L13.3 43.2 L18.6 41.7 L19.9 33.6 L13.9 26.3 L5.7 26.1 L3.2 31.1 L8.2 33.5 L14.6 28.4 L14.9 18.9 L9 13.3 L3.8 15.3 L5.9 20.5 L14.1 20.9 L20.6 14.1 L20 6 L14.8 4 L12.9 9.3 L18.7 15.1 L28.1 14.4 L33.1 7.9 L30.5 3 L25.6 5.6 L26 13.8 L33.4 19.6 L41.5 18.1 L42.9 12.7 L37.5 11.4 L32.3 17.8 L33.9 27.1 L40.9 31.4 L45.6 28.3 L42.4 23.6 L34.4 24.9 L29.3 32.9 L31.7 40.8 L37.2 41.6 L37.9 36.1 L31.1 31.6 L22 34.2 L18.5 41.6 L22 45.9 L26.3 42.3 L24.1 34.4 L15.7 30.2 L8.1 33.4 L7.9 39 L13.4 39.1 L17.1 31.8 L13.6 23.1 L5.9 20.3 L2 24.3 L6 28.2 L13.7 25.2 L16.9 16.4 L13 9.2 L7.4 9.5 L7.8 15.1 L15.5 18 L23.8 13.6 L25.8 5.6 L21.4 2.2 L18 6.6 L21.7 13.9 L30.9 16.2 L37.6 11.5 L36.7 6 L31.2 7 L29.1 14.9 L34.3 22.8 L42.5 23.8 L45.5 19.1 L40.7 16.2 L33.9 20.6 L32.5 30 L37.8 36.2 L43.2 34.7 L41.7 29.4 L33.6 28.1 L26.3 34.1 L26.1 42.3 L31.1 44.8 L33.5 39.8 L28.4 33.4 L18.9 33.1 L13.3 39 L15.3 44.2 L20.5 42.1 L20.9 33.9 L14.1 27.4 L6 28 L4 33.2 L9.3 35.1 L15.1 29.3 L14.4 19.9 L7.9 14.9 L3 17.5 L5.6 22.4 L13.8 22 L19.6 14.6 L18.1 6.5 L12.7 5.1 L11.4 10.5 L17.8 15.7 L27.1 14.1 L31.4 7.1 L28.3 2.4 L23.6 5.6 L24.9 13.6 L32.9 18.7 L40.8 16.3 L41.6 10.8 L36.1 10.1 L31.6 16.9 L34.2 26 L41.6 29.5 L45.9 26 L42.3 21.7 L34.4 23.9 L30.2 32.3 L33.4 39.9 L39 40.1 L39.1 34.6 L31.8 30.9 L23.1 34.4 L20.3 42.1 L24.3 46 L28.2 42 L25.2 34.3 L16.4 31.1 L9.2 35 L9.5 40.6 L15.1 40.2 L18 32.5 L13.6 24.2 L5.6 22.2 L2.2 26.6 L6.6 30 L13.9 26.3 L16.2 17.1 L11.5 10.4 L6 11.3 L7 16.8 L14.9 18.9 L22.8 13.7 L23.8 5.5 L19.1 2.5 L16.2 7.3 L20.6 14.1 L30 15.5 L36.2 10.2 L34.7 4.8 L29.4 6.3 L28.1 14.4 L34.1 21.7 L42.3 21.9 L44.8 16.9 L39.8 14.5 L33.4 19.6 L33.1 29.1 L39 34.7 L44.2 32.7 L42.1 27.5 L33.9 27.1 L27.4 33.9 L28 42 L33.2 44 L35.1 38.7 L29.3 32.9 L19.9 33.6 L14.9 40.1 L17.5 45 L22.4 42.4 L22 34.2 L14.6 28.4 L6.5 29.9 L5.1 35.3 L10.5 36.6 L15.7 30.2 L14.1 20.9 L7.1 16.6 L2.4 19.7 L5.6 24.4 L13.6 23.1 L18.7 15.1 L16.3 7.2 L10.8 6.4 L10.1 11.9 L16.9 16.4 L26 13.8 L29.5 6.4 L26 2.1 L21.7 5.7 L23.9 13.6 L32.3 17.8 L39.9 14.6 L40.1 9 L34.6 8.9 L30.9 16.2 L34.4 24.9 L42.1 27.7 L46 23.7 L42 19.8 L34.3 22.8 L31.1 31.6 L35 38.8 L40.6 38.5 L40.2 32.9 L32.5 30 L24.2 34.4 L22.2 42.4 L26.6 45.8 L30 41.4 L26.3 34.1 L17.1 31.8 L10.4 36.5 L11.3 42 L16.8 41 L18.9 33.1 L13.7 25.2 L5.5 24.2 L2.5 28.9 L7.3 31.8 L14.1 27.4 L15.5 18 L10.2 11.8 L4.8 13.3 L6.3 18.6 L14.4 19.9 L21.7 13.9 L21.9 5.7 L16.9 3.2 L14.5 8.2 L19.6 14.6 L29.1 14.9 L34.7 9 L32.7 3.8 L27.5 5.9 L27.1 14.1 L33.9 20.6 L42 20 L44 14.8 L38.7 12.9 L32.9 18.7 L33.6 28.1 L40.1 33.1 L45 30.5Z' fill='none' stroke='%233A2A70' stroke-width='0.6'/%3E%3Cpath d='M42.2 36.4 L40 33.4 L31.7 31.6 L21.7 34.6 L15.7 40.6 L15.6 44.3 L18.2 41.6 L18.1 33.1 L13.2 24 L6 19.4 L2.4 20 L5.6 22 L13.9 20.2 L21.8 13.4 L24.8 5.5 L23.4 2 L22.2 5.5 L25.6 13.3 L33.9 19.6 L42.3 20.9 L45.4 18.8 L41.7 18.4 L34.8 23.4 L30.4 32.8 L30.8 41.3 L33.5 43.8 L33.2 40.1 L26.9 34.4 L16.7 32 L8.5 34.2 L6.6 37.4 L10.2 36.3 L14.4 29 L14.6 18.6 L10.8 11 L7.2 9.7 L9.1 13 L17.1 15.6 L27.4 13.7 L34 8.4 L34.5 4.6 L31.6 7.1 L30.8 15.5 L34.8 25.1 L41.4 30.5 L45.1 30.2 L42.1 27.9 L33.7 28.9 L25.1 34.8 L21.3 42.3 L22.3 45.9 L23.9 42.5 L21.3 34.5 L13.7 27.3 L5.5 25.1 L2.2 26.9 L5.8 27.8 L13.2 23.5 L18.6 14.6 L19 6.1 L16.6 3.3 L16.5 7 L22.2 13.3 L32.1 16.8 L40.4 15.4 L42.7 12.5 L39.1 13.2 L34.1 20.1 L32.8 30.4 L35.8 38.3 L39.2 39.9 L37.7 36.5 L29.9 33.1 L19.6 33.9 L12.5 38.5 L11.6 42.2 L14.6 40 L16.4 31.7 L13.4 21.7 L7.4 15.7 L3.7 15.6 L6.4 18.2 L14.9 18.1 L24 13.2 L28.6 6 L28 2.4 L26 5.6 L27.8 13.9 L34.6 21.8 L42.5 24.8 L46 23.4 L42.5 22.2 L34.7 25.6 L28.4 33.9 L27.1 42.3 L29.2 45.4 L29.6 41.7 L24.6 34.8 L15.2 30.4 L6.7 30.8 L4.2 33.5 L7.9 33.2 L13.6 26.9 L16 16.7 L13.8 8.5 L10.6 6.6 L11.7 10.2 L19 14.4 L29.4 14.6 L37 10.8 L38.3 7.2 L35 9.1 L32.4 17.1 L34.3 27.4 L39.6 34 L43.4 34.5 L40.9 31.6 L32.5 30.8 L22.9 34.8 L17.5 41.4 L17.8 45.1 L20.1 42.1 L19.1 33.7 L13.2 25.1 L5.7 21.3 L2.1 22.3 L5.5 23.9 L13.5 21.3 L20.7 13.7 L22.9 5.5 L21.1 2.2 L20.2 5.8 L24.5 13.2 L33.4 18.6 L41.9 19 L44.7 16.6 L41 16.5 L34.7 22.2 L31.2 32.1 L32.6 40.4 L35.5 42.7 L34.8 39.1 L27.9 34.1 L17.6 32.8 L9.7 35.8 L8.1 39.2 L11.5 37.7 L14.9 29.9 L14.1 19.6 L9.5 12.5 L5.8 11.6 L8 14.6 L16.3 16.4 L26.3 13.4 L32.3 7.4 L32.4 3.7 L29.8 6.4 L29.9 14.9 L34.8 24 L42 28.6 L45.6 28 L42.4 26 L34.1 27.8 L26.2 34.6 L23.2 42.5 L24.6 46 L25.8 42.5 L22.4 34.7 L14.1 28.4 L5.7 27.1 L2.6 29.2 L6.3 29.6 L13.2 24.6 L17.6 15.2 L17.2 6.7 L14.5 4.2 L14.8 7.9 L21.1 13.6 L31.3 16 L39.5 13.8 L41.4 10.6 L37.8 11.7 L33.6 19 L33.4 29.4 L37.2 37 L40.8 38.3 L38.9 35 L30.9 32.4 L20.6 34.3 L14 39.6 L13.5 43.4 L16.4 40.9 L17.2 32.5 L13.2 22.9 L6.6 17.5 L2.9 17.8 L5.9 20.1 L14.3 19.1 L22.9 13.2 L26.7 5.7 L25.7 2.1 L24.1 5.5 L26.7 13.5 L34.3 20.7 L42.5 22.9 L45.8 21.1 L42.2 20.2 L34.8 24.5 L29.4 33.4 L29 41.9 L31.4 44.7 L31.5 41 L25.8 34.7 L15.9 31.2 L7.6 32.6 L5.3 35.5 L8.9 34.8 L13.9 27.9 L15.2 17.6 L12.2 9.7 L8.8 8.1 L10.3 11.5 L18.1 14.9 L28.4 14.1 L35.5 9.5 L36.4 5.8 L33.4 8 L31.6 16.3 L34.6 26.3 L40.6 32.3 L44.3 32.4 L41.6 29.8 L33.1 29.9 L24 34.8 L19.4 42 L20 45.6 L22 42.4 L20.2 34.1 L13.4 26.2 L5.5 23.2 L2 24.6 L5.5 25.8 L13.3 22.4 L19.6 14.1 L20.9 5.7 L18.8 2.6 L18.4 6.3 L23.4 13.2 L32.8 17.6 L41.3 17.2 L43.8 14.5 L40.1 14.8 L34.4 21.1 L32 31.3 L34.2 39.5 L37.4 41.4 L36.3 37.8 L29 33.6 L18.6 33.4 L11 37.2 L9.7 40.8 L13 38.9 L15.6 30.9 L13.7 20.6 L8.4 14 L4.6 13.5 L7.1 16.4 L15.5 17.2 L25.1 13.2 L30.5 6.6 L30.2 2.9 L27.9 5.9 L28.9 14.3 L34.8 22.9 L42.3 26.7 L45.9 25.7 L42.5 24.1 L34.5 26.7 L27.3 34.3 L25.1 42.5 L26.9 45.8 L27.8 42.2 L23.5 34.8 L14.6 29.4 L6.1 29 L3.3 31.4 L7 31.5 L13.3 25.8 L16.8 15.9 L15.4 7.6 L12.5 5.3 L13.2 8.9 L20.1 13.9 L30.4 15.2 L38.3 12.2 L39.9 8.8 L36.5 10.3 L33.1 18.1 L33.9 28.4 L38.5 35.5 L42.2 36.4Z' fill='none' stroke='%23A87F1E' stroke-width='0.7'/%3E%3C/g%3E%3Ccircle cx='28.0' cy='28.0' r='3' fill='%23A87F1E'/%3E%3C/svg%3E");
  --bg-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Ccircle cx='0' cy='0' r='14' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='0' cy='0' r='28' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='0' cy='0' r='42' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='96' cy='0' r='14' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='96' cy='0' r='28' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='96' cy='0' r='42' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='0' cy='96' r='14' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='0' cy='96' r='28' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='0' cy='96' r='42' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='96' cy='96' r='14' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='96' cy='96' r='28' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='96' cy='96' r='42' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='48' cy='48' r='14' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='48' cy='48' r='28' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3Ccircle cx='48' cy='48' r='42' fill='none' stroke='%233A2A70' stroke-width='0.7' opacity='0.16'/%3E%3C/svg%3E");
  --divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='18' viewBox='0 0 240 18'%3E%3Cpath d='M0 9 L3 10.5 L6 12 L9 13.2 L12 14.3 L15 15 L18 15.4 L21 15.5 L24 15.2 L27 14.5 L30 13.6 L33 12.4 L36 11 L39 9.5 L42 8 L45 6.5 L48 5.2 L51 4.1 L54 3.2 L57 2.7 L60 2.5 L63 2.7 L66 3.2 L69 4.1 L72 5.2 L75 6.5 L78 8 L81 9.5 L84 11 L87 12.4 L90 13.6 L93 14.5 L96 15.2 L99 15.5 L102 15.4 L105 15 L108 14.3 L111 13.2 L114 12 L117 10.5 L120 9 L123 7.5 L126 6 L129 4.8 L132 3.7 L135 3 L138 2.6 L141 2.5 L144 2.8 L147 3.5 L150 4.4 L153 5.6 L156 7 L159 8.5 L162 10 L165 11.5 L168 12.8 L171 13.9 L174 14.8 L177 15.3 L180 15.5 L183 15.3 L186 14.8 L189 13.9 L192 12.8 L195 11.5 L198 10 L201 8.5 L204 7 L207 5.6 L210 4.4 L213 3.5 L216 2.8 L219 2.5 L222 2.6 L225 3 L228 3.7 L231 4.8 L234 6 L237 7.5 L240 9' fill='none' stroke='%233A2A70' stroke-width='0.9'/%3E%3Cpath d='M0 14.6 L3 13.7 L6 12.5 L9 11.2 L12 9.7 L15 8.2 L18 6.7 L21 5.3 L24 4.2 L27 3.3 L30 2.7 L33 2.5 L36 2.6 L39 3.1 L42 3.9 L45 5 L48 6.4 L51 7.8 L54 9.3 L57 10.8 L60 12.2 L63 13.5 L66 14.5 L69 15.1 L72 15.5 L75 15.4 L78 15.1 L81 14.4 L84 13.3 L87 12.1 L90 10.7 L93 9.2 L96 7.6 L99 6.2 L102 4.9 L105 3.8 L108 3.1 L111 2.6 L114 2.5 L117 2.8 L120 3.4 L123 4.3 L126 5.5 L129 6.8 L132 8.3 L135 9.8 L138 11.3 L141 12.7 L144 13.8 L147 14.7 L150 15.3 L153 15.5 L156 15.4 L159 14.9 L162 14.1 L165 13 L168 11.6 L171 10.2 L174 8.7 L177 7.2 L180 5.8 L183 4.5 L186 3.5 L189 2.9 L192 2.5 L195 2.6 L198 2.9 L201 3.6 L204 4.7 L207 5.9 L210 7.3 L213 8.8 L216 10.4 L219 11.8 L222 13.1 L225 14.2 L228 14.9 L231 15.4 L234 15.5 L237 15.2 L240 14.6' fill='none' stroke='%233A2A70' stroke-width='0.9'/%3E%3Cpath d='M0 3.4 L3 2.8 L6 2.5 L9 2.6 L12 3.1 L15 3.8 L18 4.9 L21 6.2 L24 7.6 L27 9.2 L30 10.7 L33 12.1 L36 13.3 L39 14.4 L42 15.1 L45 15.4 L48 15.5 L51 15.1 L54 14.5 L57 13.5 L60 12.2 L63 10.8 L66 9.3 L69 7.8 L72 6.4 L75 5 L78 3.9 L81 3.1 L84 2.6 L87 2.5 L90 2.7 L93 3.3 L96 4.2 L99 5.3 L102 6.7 L105 8.2 L108 9.7 L111 11.2 L114 12.5 L117 13.7 L120 14.6 L123 15.2 L126 15.5 L129 15.4 L132 14.9 L135 14.2 L138 13.1 L141 11.8 L144 10.4 L147 8.8 L150 7.3 L153 5.9 L156 4.7 L159 3.6 L162 2.9 L165 2.6 L168 2.5 L171 2.9 L174 3.5 L177 4.5 L180 5.7 L183 7.2 L186 8.7 L189 10.2 L192 11.6 L195 13 L198 14.1 L201 14.9 L204 15.4 L207 15.5 L210 15.3 L213 14.7 L216 13.8 L219 12.7 L222 11.3 L225 9.8 L228 8.3 L231 6.8 L234 5.5 L237 4.3 L240 3.4' fill='none' stroke='%23A87F1E' stroke-width='0.9'/%3E%3C/svg%3E");

  --shadow-card: 0 1px 0 rgba(255,255,255,.9) inset, 0 2px 0 var(--mist), 0 14px 28px -16px rgba(26,21,48,.55);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html:focus-within { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font);
  font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem);
  line-height: 1.62;
  color: var(--ink);
  background-color: var(--mist);
  background-image: var(--bg-tile);
  font-variant-numeric: lining-nums tabular-nums;
  overflow-wrap: break-word;
}

img, svg { max-width: 100%; }
a { color: var(--violet); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--violet-deep); text-decoration-thickness: 2px; }
p { margin: 0 0 var(--s4); }
ul, ol { margin: 0 0 var(--s4); padding-left: 1.3em; }
li { margin-bottom: .4em; }
h1, h2, h3 { font-family: var(--font); margin: 0 0 var(--s3); line-height: 1.15; color: var(--violet); text-wrap: balance; }
h1 { font-size: clamp(2rem, 1.2rem + 3.6vw, 3.9rem); font-weight: 700; letter-spacing: .01em; }
h2 { font-size: clamp(1.55rem, 1.2rem + 1.5vw, 2.3rem); font-weight: 700; font-variant: small-caps; letter-spacing: .05em; }
h3 { font-size: clamp(1.2rem, 1.1rem + .5vw, 1.45rem); font-weight: 700; font-style: italic; }
strong { font-weight: 700; }
[hidden] { display: none !important; }
.smcp { font-variant: small-caps; letter-spacing: .12em; font-weight: 700; }

.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.skip-link {
  position: absolute; left: var(--s3); top: -100px; z-index: 100;
  background: var(--violet); color: #fff; padding: .75rem 1.1rem; min-height: 44px;
  font-weight: 700; text-decoration: none; border: 2px solid var(--gold-lite);
}
.skip-link:focus { top: var(--s3); }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 1px; }
.band :focus-visible, .foot :focus-visible { outline-color: var(--gold-lite); }

/* ------------------------------------------------------------ the sheet */
.sheet {
  position: relative;
  max-width: 1240px;
  margin: clamp(6px, 2.2vw, 40px) auto clamp(6px, 2.2vw, 40px);
  width: calc(100% - 2 * clamp(6px, 2.2vw, 40px));
  padding: var(--frame);
  background-color: var(--paper);
  background-image: var(--corner), var(--corner), var(--corner), var(--corner), var(--strip-h), var(--strip-h), var(--strip-v), var(--strip-v);
  background-position: left top, right top, left bottom, right bottom, left top, left bottom, left top, right top;
  background-size: var(--frame) var(--frame), var(--frame) var(--frame), var(--frame) var(--frame), var(--frame) var(--frame), auto var(--frame), auto var(--frame), var(--frame) auto, var(--frame) auto;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, round no-repeat, round no-repeat, no-repeat round, no-repeat round;
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 2px 3px rgba(26,21,48,.18), 0 22px 44px -18px rgba(26,21,48,.5), 0 50px 90px -40px rgba(26,21,48,.45);
}
.sheet-in {
  position: relative;
  background-color: var(--paper);
  background-image: repeating-linear-gradient(0deg, rgba(58,42,112,.028) 0 1px, transparent 1px 5px);
  box-shadow: 0 0 0 1px var(--violet), 0 0 0 4px var(--paper), 0 0 0 5px var(--gold);
  padding: 0 var(--gutter) 0;
}
main { padding: clamp(1.25rem, 3vw, 2.5rem) 0 clamp(2rem, 5vw, 4rem); max-width: 1080px; margin: 0 auto; }
main > * + * { margin-top: clamp(1.75rem, 4vw, 3.25rem); }
main > .orn { margin-top: clamp(1rem, 2vw, 1.75rem); }
[id] { scroll-margin-top: 1rem; }

/* ------------------------------------------------------------ masthead */
.masthead { text-align: center; padding-top: clamp(1rem, 2.4vw, 1.75rem); }
.masthead-top {
  margin: 0 0 var(--s3); font-variant: small-caps; letter-spacing: .16em; color: var(--muted);
  font-size: .95rem; padding-bottom: var(--s2); border-bottom: 1px solid var(--rule);
}
.brand { display: inline-flex; flex-direction: column; align-items: center; gap: .3rem; text-decoration: none; color: var(--violet); padding: .25rem 1rem; }
.brand:hover { color: var(--violet-deep); }
.seal { width: clamp(68px, 9vw, 92px); height: auto; filter: drop-shadow(0 2px 2px rgba(26,21,48,.3)); }
.brand-name { font-variant: small-caps; letter-spacing: .13em; font-size: clamp(1.25rem, 1rem + 1.7vw, 2.15rem); font-weight: 700; line-height: 1.1; text-wrap: balance; }
.brand-sub { font-style: italic; color: var(--muted); font-size: 1rem; letter-spacing: .04em; }

.primary-nav { margin-top: var(--s4); border-top: 3px double var(--violet); border-bottom: 3px double var(--violet); }
.primary-nav ul, .foot-nav ul { list-style: none; margin: 0; padding: .3rem 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .1rem .35rem; }
.primary-nav li, .foot-nav li { margin: 0; }
.primary-nav a {
  display: inline-flex; align-items: center; min-height: 44px; padding: .4rem 1rem;
  font-variant: small-caps; letter-spacing: .1em; font-size: 1.12rem; font-weight: 700;
  color: var(--violet); text-decoration: none; border-bottom: 3px solid transparent;
  transition: background-color .18s ease, border-color .18s ease;
}
.primary-nav a:hover { background: var(--mist); border-bottom-color: var(--violet); }
.primary-nav a[aria-current="page"] { background: var(--white); border-bottom-color: var(--gold); box-shadow: inset 0 0 0 1px var(--rule); }
.primary-nav a[aria-current="page"]::before { content: "\25C6"; font-size: .6em; margin-right: .55em; color: var(--violet); }

.nav-toggle { display: none; }

/* ------------------------------------------------------------ buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 48px; padding: .55rem 1.5rem;
  font: inherit; font-variant: small-caps; letter-spacing: .1em; font-size: 1.12rem; font-weight: 700; line-height: 1.2;
  color: #fff; background: var(--violet); border: 2px solid var(--violet); text-decoration: none; cursor: pointer;
  box-shadow: inset 0 0 0 2px var(--violet), inset 0 0 0 3px rgba(230,200,119,.65), 0 3px 0 var(--ink);
  transition: transform .12s ease, box-shadow .12s ease, background-color .15s ease;
}
.btn:hover { background: var(--violet-deep); color: #fff; transform: translateY(-1px); box-shadow: inset 0 0 0 2px var(--violet-deep), inset 0 0 0 3px var(--gold-lite), 0 4px 0 var(--ink); }
.btn:active { transform: translateY(2px); box-shadow: inset 0 0 0 2px var(--violet-deep), inset 0 0 0 3px var(--gold-lite), 0 1px 0 var(--ink); }
.btn-ghost { background: var(--white); color: var(--violet); box-shadow: inset 0 0 0 2px var(--white), inset 0 0 0 3px var(--rule), 0 3px 0 var(--mist); }
.btn-ghost:hover { background: var(--mist); color: var(--violet-deep); box-shadow: inset 0 0 0 2px var(--mist), inset 0 0 0 3px var(--violet), 0 4px 0 var(--rule); }
.btn-ghost:active { box-shadow: inset 0 0 0 2px var(--mist), inset 0 0 0 3px var(--violet), 0 1px 0 var(--rule); }
.btn-small { min-height: 44px; padding: .4rem 1.1rem; font-size: 1.05rem; }
.btn[disabled] { cursor: not-allowed; background: var(--mist); color: var(--muted); border-color: var(--muted); box-shadow: none; }

/* ------------------------------------------------------------ headings and ornaments */
.eyebrow { font-variant: small-caps; letter-spacing: .2em; font-weight: 700; font-size: 1.1rem; color: var(--gold-text); margin: 0 0 var(--s3); }
.eyebrow-lite { color: var(--gold-lite); }
.roman { display: inline-grid; place-items: center; min-width: 2.1em; height: 2.1em; padding: 0 .3em; margin-right: .5em; border: 1.5px solid var(--gold); border-radius: 50%; font-variant: normal; letter-spacing: 0; font-size: .85em; color: var(--violet); background: var(--white); }
.lede { font-size: clamp(1.15rem, 1.05rem + .6vw, 1.4rem); line-height: 1.55; max-width: 44rem; margin-inline: auto; color: var(--ink); }
.lede-sm { max-width: 40rem; margin-inline: auto; color: var(--muted); }
.page-head { text-align: center; }
.page-head .lede { margin-bottom: 0; }
.page-head-split { display: grid; grid-template-columns: 1fr auto; gap: var(--s5); align-items: center; text-align: left; }
.page-head-split .lede { margin-inline: 0; }
.section-head { text-align: center; margin-bottom: var(--s5); }

.orn { display: flex; align-items: center; gap: var(--s4); max-width: 640px; margin-inline: auto; }
.orn::before, .orn::after { content: ""; flex: 1; height: 18px; background-image: var(--divider); background-repeat: repeat-x; background-size: auto 18px; background-position: center; }
.orn span { width: 14px; height: 14px; background: var(--gold); transform: rotate(45deg); box-shadow: 0 0 0 3px var(--paper), 0 0 0 4px var(--violet); flex: none; }

/* ------------------------------------------------------------ hero (home) */
.hero { text-align: center; padding-top: var(--s4); }
.hero-seal { display: block; width: min(400px, 94%); height: auto; margin: 0 auto var(--s3); filter: drop-shadow(0 6px 8px rgba(26,21,48,.28)); overflow: visible; }
.arc-text { fill: var(--violet); font-family: var(--font); font-weight: 700; }
.hero h1 { max-width: 16ch; margin-inline: auto; }
.cta-row { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s4); margin: var(--s5) 0 var(--s6); }
.certify { max-width: 40rem; margin: var(--s5) auto; font-style: italic; font-size: 1.2rem; }
.facts { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 720px; margin: var(--s5) auto 0; border: 1px solid var(--violet); background: var(--white); box-shadow: var(--shadow-card); }
.facts > div { padding: var(--s4) var(--s3); border-left: 1px solid var(--rule); }
.facts > div:first-child { border-left: 0; }
.facts dt { font-variant: small-caps; letter-spacing: .12em; color: var(--muted); font-size: 1rem; }
.facts dd { margin: 0; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); font-weight: 700; color: var(--violet); line-height: 1.2; }

.section { text-align: left; }
.section-head h2, .section-head p { margin-inline: auto; }

/* share cards */
.shares { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.share {
  position: relative; display: flex; flex-direction: column; align-items: center; text-align: center;
  background: var(--white); border: 1px solid var(--violet); padding: var(--s5) var(--s5) var(--s5);
  box-shadow: var(--shadow-card);
  transition: transform .2s ease, box-shadow .2s ease;
}
.share::before { content: ""; position: absolute; inset: 6px; border: 1px solid var(--gold); pointer-events: none; }
.share:hover { transform: translateY(-3px); box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 3px 0 var(--mist), 0 22px 34px -16px rgba(26,21,48,.6); }
.share-art { width: 100%; max-width: 220px; background: var(--paper); border: 1px solid var(--rule); padding: var(--s2); margin-bottom: var(--s3); }
.share-art svg { display: block; width: 100%; height: auto; }
.numeral { margin: 0; font-size: 2.1rem; line-height: 1; font-weight: 700; color: var(--gold-text); letter-spacing: .1em; }
.share h3 { margin-top: var(--s2); font-style: normal; font-variant: small-caps; letter-spacing: .06em; font-size: 1.4rem; }
.share p:not(.numeral) { color: var(--ink); }
.share .btn { margin-top: auto; }

/* dark band */
.band {
  position: relative; --focus: var(--gold-lite);
  padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 4vw, 3rem);
  color: #fff; text-align: center;
  background-color: var(--violet);
  background-image: repeating-radial-gradient(circle at 12% 130%, transparent 0 16px, rgba(255,255,255,.06) 16px 17px), repeating-radial-gradient(circle at 92% -30%, transparent 0 22px, rgba(230,200,119,.1) 22px 23px);
  box-shadow: inset 0 4px 0 var(--ink), inset 0 6px 0 var(--gold), inset 0 -6px 0 var(--gold), inset 0 -4px 0 var(--ink);
}
.band-in { max-width: 1000px; margin: 0 auto; }
.band h2 { color: #fff; }
.plates { list-style: none; padding: 0; margin: var(--s6) 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); text-align: center; counter-reset: plate; }
.plates li { margin: 0; padding: var(--s5) var(--s4); background: rgba(26,21,48,.35); border: 1px solid rgba(230,200,119,.7); }
.plates h3 { color: #fff; margin-top: var(--s3); }
.plates p { margin: 0; color: var(--mist); }
.medal {
  display: inline-grid; place-items: center; width: 58px; height: 58px; border-radius: 50%;
  font-size: 1.6rem; font-weight: 700; color: var(--ink);
  background: radial-gradient(circle at 35% 30%, #F2DC9E 0, #D4AC52 45%, #B88A28 100%);
  box-shadow: 0 0 0 3px var(--violet), 0 0 0 4px var(--gold-lite), 0 6px 10px rgba(0,0,0,.35);
}

/* glance + notice */
.glance { max-width: 760px; margin: 0 auto; text-align: center; background: var(--white); border: 1px solid var(--violet); padding: var(--s5); box-shadow: var(--shadow-card); outline: 1px solid var(--mist); outline-offset: -7px; }
.glance-empty { color: var(--muted); font-style: italic; max-width: 34rem; margin-inline: auto; }
.glance-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 0 0 var(--s4); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.glance-grid > div { padding: var(--s3); border-left: 1px solid var(--rule); }
.glance-grid > div:first-child { border-left: 0; }
.glance-grid dt { font-variant: small-caps; letter-spacing: .1em; color: var(--muted); }
.glance-grid dd { margin: 0; font-size: clamp(1.3rem, 1.1rem + 1vw, 1.9rem); font-weight: 700; color: var(--violet); }
.glance-note { color: var(--muted); font-style: italic; }

.notice { max-width: 920px; margin: 0 auto; background: var(--white); border: 3px double var(--violet); padding: clamp(1.25rem, 3vw, 2.25rem); box-shadow: var(--shadow-card); }
.notice h2 { text-align: center; font-size: 1.6rem; }
.terms { list-style: none; padding: 0; margin: var(--s4) 0 0; display: grid; gap: var(--s3); }
.terms li { position: relative; padding-left: 1.7rem; margin: 0; }
.terms li::before { content: ""; position: absolute; left: .25rem; top: .62em; width: .6rem; height: .6rem; background: var(--gold); transform: rotate(45deg); }
.closing { text-align: center; font-style: italic; margin-top: var(--s5); }

/* ------------------------------------------------------------ panels and forms */
.panel {
  position: relative; background: var(--white); border: 1px solid var(--violet);
  padding: clamp(1rem, 2.4vw, 1.9rem); box-shadow: var(--shadow-card);
  outline: 1px solid var(--mist); outline-offset: -6px; min-width: 0;
}
.panel-title { font-size: 1.3rem; padding-bottom: var(--s2); margin-bottom: var(--s4); border-bottom: 3px double var(--violet); }
.panel-lede { max-width: 52rem; color: var(--muted); }
.fine { font-size: .95rem; color: var(--muted); font-style: italic; margin-top: var(--s3); margin-bottom: 0; }
.fine-center { text-align: center; }
.bench { display: grid; grid-template-columns: minmax(280px, 390px) 1fr; gap: var(--s5); align-items: start; }
.results { display: grid; gap: var(--s4); min-width: 0; }

.field { margin-bottom: var(--s4); min-width: 0; }
.field label, .inspect label { display: block; font-variant: small-caps; letter-spacing: .09em; font-weight: 700; color: var(--violet); font-size: 1.08rem; margin-bottom: .3rem; }
.unit { font-variant: normal; letter-spacing: 0; font-weight: 400; font-style: italic; color: var(--muted); font-size: .95rem; margin-left: .35em; }
input[type="text"], input[type="date"], select, textarea {
  display: block; width: 100%; min-height: 48px; padding: .5rem .8rem;
  font: inherit; font-size: 1.1rem; font-variant-numeric: lining-nums tabular-nums;
  color: var(--ink); background: var(--paper-2); border: 2px solid var(--violet); border-radius: 0;
  box-shadow: inset 0 2px 0 rgba(58,42,112,.1);
  transition: background-color .15s ease, border-color .15s ease;
}
textarea { resize: vertical; line-height: 1.5; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
input:hover, select:hover, textarea:hover { background: var(--white); }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; background: var(--white); }
input[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--wine); border-style: dashed; background: #FFF; }
.hint { margin: .3rem 0 0; font-size: .95rem; color: var(--muted); }
.err { margin: .35rem 0 0; font-size: 1rem; font-weight: 700; color: var(--wine); }
.err::before { content: "\26A0\FE0E  "; }
.form-actions { display: flex; flex-wrap: wrap; gap: var(--s3); margin: var(--s4) 0 var(--s3); }
.form-msg { min-height: 1.6em; margin: var(--s2) 0 0; font-weight: 700; color: var(--violet); }
.form-msg.is-error { color: var(--wine); }
.check { display: flex !important; align-items: flex-start; gap: .65rem; font-variant: normal !important; letter-spacing: 0 !important; font-weight: 400 !important; font-size: 1.05rem !important; color: var(--ink) !important; cursor: pointer; min-height: 44px; padding: .4rem 0; margin: 0 !important; }
.check input { width: 22px; height: 22px; margin: .15rem 0 0; accent-color: var(--violet); flex: none; }

.inline-form { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 var(--s4); }
.inline-form .form-row-end, .inline-form .form-msg, .inline-form .fine { grid-column: 1 / -1; }
.form-row-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s3); padding-top: var(--s3); border-top: 1px dotted var(--violet); }

/* ------------------------------------------------------------ payment stub and figures */
.stub {
  text-align: center; background: var(--white); border: 2px solid var(--violet); padding: var(--s5) var(--s4);
  box-shadow: var(--shadow-card); outline: 2px dashed var(--gold); outline-offset: -10px;
  background-image: linear-gradient(180deg, var(--paper-2), var(--white) 60%);
}
.stub-label { font-variant: small-caps; letter-spacing: .14em; font-weight: 700; color: var(--violet); font-size: 1.15rem; margin-bottom: var(--s2); }
.stub-sub { display: block; font-variant: normal; letter-spacing: 0; font-weight: 400; font-style: italic; color: var(--muted); font-size: .98rem; }
.stub-figure { font-size: clamp(2.7rem, 1.8rem + 4.6vw, 4.8rem); line-height: 1.05; font-weight: 700; color: var(--violet); margin: var(--s2) 0; letter-spacing: -.01em; }
.stub-line { margin: 0; color: var(--muted); font-style: italic; min-height: 1.5em; }
.figures { margin: 0; padding: var(--s3) var(--s5); background: var(--white); border: 1px solid var(--violet); box-shadow: var(--shadow-card); }
.fig { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s4); padding: .65rem 0; border-bottom: 1px dotted var(--violet); }
.fig:last-child { border-bottom: 0; }
.fig dt { color: var(--ink); }
.fig dd { margin: 0; font-weight: 700; text-align: right; color: var(--ink); white-space: nowrap; }
.fig-key { background: var(--gold-soft); margin: 0 calc(-1 * var(--s5)) var(--s2); padding: .9rem var(--s5); border-bottom: 0; border-top: 1px solid var(--gold); border-bottom: 1px solid var(--gold); }
.fig-key dd { font-size: 1.5rem; color: var(--violet); }
.fig-key dt::before { content: "\25C6  "; font-size: .65em; vertical-align: .15em; }

/* ------------------------------------------------------------ charts */
.chart { position: relative; width: 100%; margin-top: var(--s4); background: var(--paper-2); border: 1px solid var(--rule); }
.chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.chart-empty { margin: 0; padding: var(--s6) var(--s4); text-align: center; color: var(--muted); font-style: italic; }
.chart .grid { stroke: var(--rule); stroke-width: 1; }
.chart .axis { stroke: var(--violet); stroke-width: 1.4; }
.chart .tick { fill: var(--muted); font-size: 12.5px; font-family: var(--font); font-variant-numeric: tabular-nums; }
.chart .axis-title { fill: var(--violet); font-size: 12.5px; font-variant: small-caps; letter-spacing: .08em; font-family: var(--font); font-weight: 700; }
.chart .line { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.chart .s-main { stroke: var(--violet); stroke-width: 3; }
.chart .s-alt { stroke: var(--gold); stroke-width: 3; stroke-dasharray: 9 6; }
.chart .s-contrib { stroke: var(--gold); stroke-width: 2.4; stroke-dasharray: 9 6; }
.chart .s-band { stroke: var(--violet); stroke-width: 1.8; stroke-dasharray: 2 5; }
.chart .area-growth { fill: rgba(58,42,112,.12); stroke: none; }
.chart .area-contrib { fill: url(#hatch); stroke: none; }
.chart .marker-line { stroke: var(--ink); stroke-width: 1.5; }
.chart .marker-dot { stroke: var(--white); stroke-width: 2; }
.chart .marker-box { fill: var(--white); stroke: var(--violet); stroke-width: 1; }
.chart .marker-text { fill: var(--ink); font-size: 12.5px; font-family: var(--font); font-weight: 700; }
.chart .hit { fill: transparent; cursor: crosshair; }
.chart.animate .draw { stroke-dasharray: 1; animation: draw 1.1s cubic-bezier(.4,.1,.2,1) backwards; }
.chart.animate .fade { animation: fade .7s ease .6s backwards; }

.legend { list-style: none; margin: var(--s3) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem var(--s5); font-size: 1rem; }
.legend li { display: inline-flex; align-items: center; gap: .6rem; margin: 0; }
.legend svg { width: 44px; height: 14px; flex: none; }
.legend .s-main { stroke: var(--violet); stroke-width: 3; }
.legend .s-alt, .legend .s-contrib { stroke: var(--gold); stroke-width: 3; stroke-dasharray: 9 6; }
.legend .s-band { stroke: var(--violet); stroke-width: 2; stroke-dasharray: 2 5; }
.legend .sw-growth { fill: rgba(58,42,112,.2); stroke: var(--violet); stroke-width: 1; }
.legend .sw-contrib { fill: url(#hatch); stroke: var(--gold); stroke-width: 1; }

.inspect { margin-top: var(--s4); }
.inspect label output { font-variant: normal; letter-spacing: 0; color: var(--ink); margin-left: .5em; }
input[type="range"] { width: 100%; min-height: 44px; accent-color: var(--violet); background: transparent; cursor: pointer; margin: 0; }
.readout { margin: var(--s2) 0 0; padding: .75rem 1rem; background: var(--paper); border-left: 4px solid var(--gold); min-height: 3.2em; }

/* ------------------------------------------------------------ tables */
.toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s3); margin-bottom: var(--s3); }
.toolbar-end { display: flex; flex-wrap: wrap; gap: var(--s3); }
.toolbar-note { margin: 0; color: var(--muted); font-style: italic; }
.toolbar-center { justify-content: center; }
.seg { display: inline-flex; border: 2px solid var(--violet); background: var(--white); }
.seg-btn {
  min-height: 44px; padding: .4rem 1.1rem; font: inherit; font-variant: small-caps; letter-spacing: .09em; font-size: 1.08rem; font-weight: 700;
  color: var(--violet); background: var(--white); border: 0; border-left: 1px solid var(--violet); cursor: pointer;
}
.seg-btn:first-child { border-left: 0; }
.seg-btn:hover { background: var(--mist); }
.seg-btn[aria-pressed="true"] { background: var(--violet); color: #fff; }
.seg-btn[aria-pressed="true"]::before { content: "\2713\00a0"; }
.seg-btn:focus-visible { outline-offset: -5px; outline-color: var(--gold-lite); }
.seg-btn:not([aria-pressed="true"]):focus-visible { outline-color: var(--violet); }

.table-wrap { overflow: auto; max-height: 560px; border: 1px solid var(--violet); background: var(--white); -webkit-overflow-scrolling: touch; }
.table-wrap-short { max-height: none; }
.table-wrap:focus-visible { outline-offset: 2px; }
.ledger { width: 100%; min-width: 540px; border-collapse: separate; border-spacing: 0; font-variant-numeric: lining-nums tabular-nums; }
.ledger caption { text-align: left; padding: var(--s2); }
.ledger th, .ledger td { padding: .55rem .9rem; text-align: right; border-bottom: 1px solid var(--mist); white-space: nowrap; }
.ledger thead th { position: sticky; top: 0; z-index: 2; background: var(--violet); color: #fff; font-variant: small-caps; letter-spacing: .09em; font-size: 1.02rem; border-bottom: 3px double var(--gold-lite); }
.ledger thead th:first-child, .ledger tbody th, .ledger td:first-child { text-align: left; }
.ledger tbody th { font-weight: 700; color: var(--violet); background: transparent; }
.ledger tbody tr:nth-child(even) { background: var(--paper-2); }
.ledger tbody tr:hover { background: var(--gold-soft); }
.ledger tr.yr-end td, .ledger tr.yr-end th { border-bottom: 2px solid var(--violet); }
.ledger tr.is-final { background: var(--gold-soft) !important; font-weight: 700; }
.ledger tr.is-final td:first-child::after { content: "  \2014 balance cleared"; font-weight: 400; font-style: italic; font-size: .9em; }
.glossary { min-width: 0; }
.glossary td, .glossary th { white-space: normal; text-align: left; vertical-align: top; }
.glossary tbody th { width: 11rem; }

/* ------------------------------------------------------------ compound extras */
.stamp { width: clamp(118px, 15vw, 164px); transform: rotate(-8deg); color: var(--violet); filter: drop-shadow(0 2px 0 rgba(26,21,48,.12)); }
.stamp svg { display: block; width: 100%; height: auto; }
.denoms { display: grid; grid-template-columns: 1fr 1.25fr 1fr; gap: var(--s5); align-items: stretch; }
.denom { position: relative; text-align: center; background: var(--white); border: 3px double var(--violet); padding: calc(var(--s5) + 14px) var(--s4) var(--s5); box-shadow: var(--shadow-card); display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.denom::before { content: ""; position: absolute; left: 6px; right: 6px; top: 6px; height: 14px; background: var(--strip-h) repeat-x center / auto 14px; opacity: .9; }
.denom-main { border-color: var(--gold); background: linear-gradient(180deg, var(--gold-soft), var(--white) 70%); outline: 1px solid var(--violet); outline-offset: 3px; }
.denom-label { font-variant: small-caps; letter-spacing: .12em; font-weight: 700; color: var(--violet); margin-bottom: var(--s2); }
.denom-figure { font-size: clamp(1.7rem, 1.2rem + 2.4vw, 3rem); font-weight: 700; line-height: 1.1; color: var(--violet); margin: 0; overflow-wrap: anywhere; }
.denom-main .denom-figure { font-size: clamp(2rem, 1.3rem + 3.4vw, 4rem); }
.denom-sub { margin: var(--s2) 0 0; color: var(--muted); font-style: italic; font-size: 1rem; min-height: 1.5em; }
.duo { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--s5); align-items: start; }
.rule72 { font-size: 1.35rem; font-weight: 700; color: var(--violet); text-align: center; padding: var(--s3); background: var(--paper); border: 1px dashed var(--violet); margin-bottom: 0; }

/* ------------------------------------------------------------ reading notes */
.notes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.notes-two { grid-template-columns: repeat(2, 1fr); }
.note { background: var(--white); border: 1px solid var(--violet); padding: var(--s5); box-shadow: var(--shadow-card); position: relative; }
.note::before { content: ""; position: absolute; inset: 5px; border: 1px solid var(--mist); pointer-events: none; }
.note h3 { font-style: normal; font-variant: small-caps; letter-spacing: .07em; font-size: 1.3rem; padding-bottom: var(--s2); border-bottom: 1px solid var(--gold); }
.note ul, .note ol { margin-bottom: 0; }
.note p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------ net-worth statement */
.statement { background: var(--white); border: 1px solid var(--violet); padding: clamp(1rem, 3vw, 2.5rem); box-shadow: var(--shadow-card); outline: 1px solid var(--gold); outline-offset: -8px; background-image: linear-gradient(180deg, var(--paper-2), var(--white) 220px); }
.statement-top { text-align: center; margin-bottom: var(--s5); padding-bottom: var(--s4); border-bottom: 3px double var(--violet); }
.statement-title { font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.6rem); letter-spacing: .08em; }
.statement-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s4) var(--s5); text-align: left; }
.field-inline { margin: 0; flex: 1 1 220px; max-width: 320px; }
.ledger-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--violet); }
.col { padding: clamp(.9rem, 2vw, 1.6rem); min-width: 0; display: flex; flex-direction: column; }
.col + .col { border-left: 3px double var(--violet); }
.col-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; font-style: normal; font-variant: small-caps; letter-spacing: .1em; font-size: 1.5rem; padding-bottom: var(--s2); border-bottom: 1px solid var(--violet); margin-bottom: var(--s3); }
.col-mark { display: inline-grid; place-items: center; width: 1.5em; height: 1.5em; border: 1.5px solid var(--violet); border-radius: 50%; font-size: .8em; font-variant: normal; line-height: 1; }
.col-sub { font-variant: normal; letter-spacing: 0; font-weight: 400; font-size: 1rem; color: var(--muted); }
.lines { list-style: none; padding: 0; margin: 0 0 var(--s3); flex: 1; }
.line { display: grid; grid-template-columns: 1fr minmax(8.5rem, 10.5rem) 44px; gap: .4rem .5rem; align-items: center; margin: 0; padding: .45rem 0; border-bottom: 1px dotted var(--violet); }
.line .line-label, .line .line-amount { min-height: 44px; padding: .3rem .6rem; font-size: 1.05rem; background: var(--paper-2); }
.line .line-amount { text-align: right; padding-left: 1.6rem; }
.money { position: relative; display: block; }
.money::before { content: "$"; position: absolute; left: .7rem; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; z-index: 1; }
.line-remove { width: 44px; height: 44px; display: inline-grid; place-items: center; font: inherit; font-size: 1.4rem; line-height: 1; color: var(--violet); background: var(--white); border: 1px solid var(--violet); cursor: pointer; padding: 0; }
.line-remove:hover { background: var(--mist); }
.line-err { grid-column: 1 / -1; margin: 0; }
.subtotal { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s3); margin: var(--s4) 0 0; padding-top: var(--s3); border-top: 3px double var(--violet); font-size: 1.25rem; font-variant: small-caps; letter-spacing: .06em; font-weight: 700; color: var(--violet); }
.subtotal strong { font-variant: normal; letter-spacing: 0; color: var(--ink); font-size: 1.4rem; }
.col .btn { align-self: flex-start; }

.net-position { display: flex; align-items: center; justify-content: center; gap: var(--s5); margin: var(--s5) auto 0; padding: var(--s4) var(--s5); max-width: 720px; border: 2px solid var(--violet); background: var(--paper); box-shadow: inset 0 0 0 4px var(--white), inset 0 0 0 5px var(--gold); text-align: left; }
.net-seal { width: clamp(76px, 12vw, 110px); height: auto; flex: none; filter: drop-shadow(0 2px 2px rgba(26,21,48,.3)); }
.net-label { font-variant: small-caps; letter-spacing: .16em; font-weight: 700; color: var(--violet); font-size: 1.2rem; margin: 0; }
.net-figure { font-size: clamp(2.2rem, 1.4rem + 4vw, 4.2rem); font-weight: 700; line-height: 1.05; margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.net-note { margin: .25rem 0 0; color: var(--muted); font-style: italic; }

.proportion { max-width: 720px; margin: var(--s5) auto 0; }
.prop-bar { display: flex; height: 30px; border: 1px solid var(--violet); background: var(--white); }
.prop-bar span { display: block; height: 100%; min-width: 0; }
.prop-a { background: var(--violet); }
.prop-l, .swatch-l { background: repeating-linear-gradient(135deg, var(--gold) 0 5px, var(--gold-soft) 5px 10px); }
.prop-a, .swatch-a { background-color: var(--violet); }
.prop-key { list-style: none; padding: 0; margin: var(--s3) 0 0; display: flex; flex-wrap: wrap; gap: .25rem var(--s5); justify-content: center; }
.prop-key li { display: inline-flex; align-items: center; gap: .5rem; margin: 0; }
.swatch { display: inline-block; width: 22px; height: 16px; border: 1px solid var(--violet); }

/* ------------------------------------------------------------ FAQ */
.faq-layout { display: grid; grid-template-columns: 220px 1fr; gap: var(--s6); align-items: start; }
.faq-index { position: sticky; top: 1rem; background: var(--white); border: 1px solid var(--violet); padding: var(--s4); box-shadow: var(--shadow-card); }
.faq-index-title { font-variant: small-caps; letter-spacing: .14em; font-weight: 700; color: var(--violet); margin-bottom: var(--s2); padding-bottom: var(--s2); border-bottom: 3px double var(--violet); }
.faq-index ol { list-style: upper-roman; padding-left: 1.6em; margin: 0; }
.faq-index li { margin: 0; padding-left: .3em; }
.faq-index li::marker { color: var(--gold-text); font-weight: 700; }
.faq-index a { display: block; min-height: 44px; padding: .55rem 0; text-decoration: none; }
.faq-index a:hover { text-decoration: underline; }
.faq-group + .faq-group { margin-top: var(--s6); }
.faq-group h2 { font-size: 1.6rem; padding-bottom: var(--s2); border-bottom: 3px double var(--violet); margin-bottom: var(--s4); }
.qa { background: var(--white); border: 1px solid var(--violet); margin: 0 0 .7rem; box-shadow: 0 2px 0 var(--mist); }
.qa summary { position: relative; display: flex; align-items: center; min-height: 52px; padding: .8rem 3.4rem .8rem 1.1rem; font-weight: 700; font-size: 1.12rem; color: var(--violet); cursor: pointer; list-style: none; line-height: 1.35; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after { content: "+"; position: absolute; right: .85rem; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; display: grid; place-items: center; font-size: 1.4rem; line-height: 1; border: 1.5px solid var(--violet); border-radius: 50%; background: var(--paper); }
.qa[open] summary::after { content: "\2212"; background: var(--violet); color: #fff; }
.qa summary:hover { background: var(--paper-2); }
.qa summary:focus-visible { outline-offset: -4px; }
.qa-body { padding: .2rem 1.1rem 1rem; border-top: 1px dotted var(--violet); }
.qa-body p { margin: .8rem 0 0; max-width: 62ch; }

/* ------------------------------------------------------------ contact */
.envelope { display: block; width: clamp(130px, 20vw, 190px); height: auto; margin: 0 auto var(--s3); filter: drop-shadow(0 6px 6px rgba(26,21,48,.25)); }
.letter-layout { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--s5); align-items: start; }
.side-notes { background: var(--paper); border: 1px dashed var(--violet); padding: var(--s5); }
.side-notes h2 { font-size: 1.3rem; }
.side-notes h3 { font-size: 1.15rem; margin-top: var(--s4); }
.side-notes ul { margin-bottom: 0; }
.side-notes p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------ footer */
.foot { --focus: var(--gold-lite); background: var(--ink); color: var(--mist); padding: clamp(2rem, 5vw, 3.25rem) var(--gutter) clamp(2rem, 4vw, 3rem); border-top: 6px double var(--gold); margin-top: clamp(8px, 2vw, 32px); }
.foot-in { max-width: 920px; margin: 0 auto; text-align: center; display: grid; justify-items: center; gap: var(--s3); }
.foot-brand { display: flex; align-items: center; gap: var(--s3); }
.seal-sm { width: 56px; }
.foot-name { margin: 0; font-variant: small-caps; letter-spacing: .13em; font-weight: 700; font-size: 1.45rem; color: #fff; }
.foot-nav ul { padding: 0; }
.foot a { color: var(--gold-lite); text-underline-offset: .22em; }
.foot a:hover { color: #fff; }
.foot-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: .3rem .8rem; font-variant: small-caps; letter-spacing: .1em; font-size: 1.1rem; font-weight: 700; }
.foot-nav a[aria-current="page"] { color: #fff; text-decoration: underline; text-decoration-thickness: 2px; }
.foot-mail { margin: 0; font-size: 1.15rem; }
.foot-mail a { display: inline-flex; align-items: center; min-height: 44px; }
.foot-line { margin: 0; color: #fff; max-width: 40rem; }
.foot-fine { margin: 0; font-size: .95rem; max-width: 44rem; color: var(--mist); }

/* ------------------------------------------------------------ animation */
@keyframes draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes fade { from { opacity: 0; } }

/* ------------------------------------------------------------ responsive */
@media (max-width: 1000px) {
  .bench { grid-template-columns: 1fr; }
  .shares { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  .plates { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .inline-form { grid-template-columns: repeat(2, 1fr); }
  .denoms { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .duo, .letter-layout, .notes-grid, .notes-two { grid-template-columns: 1fr; }
  .faq-layout { grid-template-columns: 1fr; }
  .faq-index { position: static; }
  .faq-index ol { columns: 2; column-gap: var(--s5); }
}
@media (max-width: 820px) {
  .ledger-cols { grid-template-columns: 1fr; }
  .col + .col { border-left: 0; border-top: 3px double var(--violet); }
}
@media (max-width: 760px) {
  .js .nav-toggle {
    display: inline-flex; align-items: center; justify-content: center; margin: var(--s3) auto 0; min-height: 46px; min-width: 140px; padding: .4rem 1.3rem;
    font: inherit; font-variant: small-caps; letter-spacing: .14em; font-weight: 700; font-size: 1.15rem; color: var(--violet); background: var(--white);
    border: 2px solid var(--violet); cursor: pointer;
  }
  .js .nav-toggle::after { content: "\25BE"; margin-left: .6em; }
  .js .nav-toggle[aria-expanded="true"]::after { content: "\25B4"; }
  .js .primary-nav { display: none; }
  .js .primary-nav.open { display: block; }
  .primary-nav ul { flex-direction: column; align-items: stretch; }
  .primary-nav a { width: 100%; justify-content: center; }
  .page-head-split { grid-template-columns: 1fr; text-align: center; }
  .page-head-split .lede { margin-inline: auto; }
  .page-head-split .stamp { margin: 0 auto; order: -1; }
}
@media (max-width: 560px) {
  .inline-form { grid-template-columns: 1fr; }
  .facts { grid-template-columns: 1fr; }
  .facts > div { border-left: 0; border-top: 1px solid var(--rule); }
  .facts > div:first-child { border-top: 0; }
  .glance-grid { grid-template-columns: 1fr; }
  .glance-grid > div { border-left: 0; border-top: 1px solid var(--rule); }
  .glance-grid > div:first-child { border-top: 0; }
  .line { grid-template-columns: 1fr 44px; }
  .line .money { grid-column: 1; grid-row: 2; }
  .line .line-remove { grid-column: 2; grid-row: 2; }
  .line .line-label { grid-column: 1 / -1; }
  .fig { flex-direction: column; gap: .1rem; align-items: flex-start; }
  .fig dd { text-align: left; white-space: normal; }
  .fig-key { margin-inline: calc(-1 * var(--s4)); padding-inline: var(--s4); }
  .figures { padding-inline: var(--s4); }
  .net-position { flex-direction: column; text-align: center; padding: var(--s4); }
  .faq-index ol { columns: 1; }
  .toolbar-end .btn, .toolbar .seg { flex: 1 1 auto; }
  .seg { display: flex; width: 100%; }
  .seg-btn { flex: 1; }
  .ledger th, .ledger td { padding: .5rem .65rem; }
}
@media (min-width: 1500px) {
  body { font-size: 1.1875rem; }
  main { max-width: 1120px; }
}

/* ------------------------------------------------------------ print */
@media print {
  :root { --paper: #fff; }
  body { background: #fff !important; color: #000; font-size: 11pt; }
  .skip-link, .nav-toggle, .primary-nav, .foot-nav, .masthead-top, .toolbar, .inspect, .btn, .cta-row, .orn, .stamp, .form-actions, .form-row-end, .faq-index, .band, .legend + .inspect { display: none !important; }
  .sheet { background: none !important; box-shadow: none !important; margin: 0; padding: 0; width: auto; max-width: none; }
  .sheet-in { box-shadow: none !important; background: none !important; padding: 0; }
  .panel, .statement, .note, .denom, .stub, .figures { box-shadow: none !important; outline: none !important; break-inside: avoid; }
  .table-wrap { max-height: none !important; overflow: visible !important; border: 1px solid #000; }
  .ledger { min-width: 0; font-size: 9.5pt; }
  .ledger thead { display: table-header-group; }
  .ledger thead th { position: static; background: #fff !important; color: #000 !important; border-bottom: 2px solid #000; }
  .ledger tr { break-inside: avoid; }
  .foot { background: #fff !important; color: #000 !important; border-top: 1px solid #000; padding: 1rem 0; }
  .foot a, .foot-name, .foot-line, .foot-fine { color: #000 !important; }
  .foot-brand .seal, .foot-nav { display: none; }
  .chart { break-inside: avoid; border: 1px solid #000; }
  a { color: #000; text-decoration: none; }
  .line-remove { display: none; }
  .col .btn { display: none; }
}

/* ------------------------------------------------------------ reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .share:hover, .btn:hover, .btn:active { transform: none; }
}
