/* ============================================================
   FIXIONARY · STYLES
   Colours come from config.js (written into these variables at load);
   the values below are the same and only cover the first paint.
   ============================================================ */
:root {
  --green: #004040;
  --ivory: #FFFFFF;
  --paper: #FFFFFF;
  --ink: #0B2626;
  --muted: #5A6E6C;
  --line: #DCD5C5;
  --brass: #3E7370;
  --logo: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgLTEgOTEyIDEyNyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTIxLjg5IDEyNC43N0M1MjYuMDEgMTI0LjQ5IDUyOC40NSAxMjQuMDYgNTMyLjg5IDEyMi44MkM1MzguMTggMTIxLjM1IDU0NC41MiAxMTcuNjcgNTQ4LjY1IDExMy42OEM1NTAuMTkgMTEyLjE5IDU1My40OCAxMDcuOTYgNTU0LjY4IDEwNS45MkM1NTUuNDYgMTA0LjYwIDU1Ny4zNSAxMDAuNzkgNTU3LjM1IDEwMC41NEM1NTcuMzUgMTAwLjQ1IDU1Ny41MCAxMDAuMDQgNTU3LjY4IDk5LjY0QzU1OS4yMyA5Ni4xOSA1NjEuMzggODUuMzcgNTYwLjgzIDgzLjg2TDU2MC42NCA4My4zM0w1NDYuNTUgODMuMzlMNTMyLjQ2IDgzLjQ1TDUzMi4wMSA4NS45MUM1MzAuMzkgOTQuODAgNTI3LjY0IDk4LjQ5IDUyMS41MCAxMDAuMDNDNTE5LjczIDEwMC40NyA1MTcuMTkgMTAwLjUzIDUxNS44MCAxMDAuMTZDNTE1LjI5IDEwMC4wMyA1MTQuNTcgOTkuODYgNTE0LjIyIDk5Ljc5QzUxMi44OCA5OS41MyA1MTAuNTkgOTguMDkgNTA5LjIyIDk2LjY0QzUwNi43MSA5NC4wMSA1MDUuNDYgOTEuMzEgNTA0LjA2IDg1LjU2QzUwMy40OSA4My4yNCA1MDMuMzcgNzUuMTAgNTAzLjg1IDcyLjEwQzUwNS41MiA2MS43MCA1MDguODQgNTYuNDUgNTE0LjkwIDU0LjY1QzUxNi45MCA1NC4wNSA1MjAuOTAgNTQuMTAgNTIzLjA2IDU0Ljc0QzUyNS43MiA1NS41MyA1MjcuODYgNTcuMTcgNTI5LjIwIDU5LjQyQzUzMC4wMSA2MC44MCA1MzAuMjggNjEuNjQgNTMxLjAyIDY1LjE5QzUzMS4zNyA2Ni44NyA1MzEuNzYgNjguMzcgNTMxLjg5IDY4LjUzQzUzMi4wNyA2OC43NiA1MzUuMDYgNjguNzkgNTQ1Ljg1IDY4LjY5QzU1My40MCA2OC42MiA1NTkuNzIgNjguNTEgNTU5LjkwIDY4LjQ1QzU2MC4xNyA2OC4zNiA1NjAuMjEgNjcuNjcgNTYwLjA5IDY0LjUxQzU2MC4wMiA2Mi40MCA1NTkuODUgNjAuMjcgNTU5LjcyIDU5Ljc3QzU1OS41OSA1OS4yOCA1NTkuMzEgNTguMTMgNTU5LjEwIDU3LjIzQzU1Ny4wMyA0OC41MSA1NTAuODUgNDAuMjYgNTQyLjk1IDM1LjY2QzU0Mi43MCAzNS41MSA1NDEuNDkgMzQuOTAgNTQwLjI2IDM0LjI5QzUzNS41MSAzMS45MyA1MzEuNTAgMzAuNzYgNTI0LjU4IDI5LjcwQzUyMS45NiAyOS4zMCA1MTUuMTEgMjkuMzggNTExLjgyIDI5Ljg2QzUwNi42NSAzMC42MCA1MDAuMzAgMzIuNTggNDk3LjE2IDM0LjQzQzQ5Ni41MiAzNC44MCA0OTUuOTUgMzUuMTEgNDk1Ljg5IDM1LjExQzQ5NS43MCAzNS4xMSA0OTEuMjUgMzguMTkgNDkwLjA1IDM5LjE2QzQ4NS4yMyA0My4wNSA0ODAuNDQgNDkuNjcgNDc4LjAwIDU1LjgzQzQ3Ni4zMiA2MC4wNiA0NzQuOTUgNjUuMzYgNDc0LjIwIDcwLjU4QzQ3My44MCA3My4zNiA0NzMuODAgODIuNzkgNDc0LjIxIDg1LjU2QzQ3NC43NCA4OS4yMSA0NzUuOTAgOTMuODggNDc3LjA3IDk3LjAzQzQ4MC4yOCAxMDUuNjggNDg1LjgxIDExMi44MyA0OTIuOTggMTE3LjYwQzQ5NS40MSAxMTkuMjIgNDk4LjYyIDEyMC45MyA1MDAuNDcgMTIxLjYwQzUwNi4zNCAxMjMuNzAgNTA5LjYxIDEyNC40NCA1MTQuNTEgMTI0Ljc2QzUxOC4zNiAxMjUuMDEgNTE4LjUzIDEyNS4wMSA1MjEuODkgMTI0Ljc3Wk04MzYuODQgMTI0LjM4Qzg0MC40MCAxMjMuODcgODQ0LjcwIDEyMi44MCA4NDYuNTggMTIxLjk3Qzg0Ny4xOCAxMjEuNzEgODQ3Ljc2IDEyMS40OSA4NDcuODcgMTIxLjQ5Qzg0OC4xMiAxMjEuNDkgODUxLjE2IDEyMC4wMCA4NTIuNTMgMTE5LjIxQzg2MS43MyAxMTMuODkgODY3LjkzIDEwNC43NSA4NzEuNDkgOTEuMjRDODcyLjAwIDg5LjI4IDg3Mi45NiA4OS40MSA4NTguMDcgODkuNDhMODQ0Ljk0IDg5LjU0TDg0NC40OSA5MC43MUM4NDMuMzcgOTMuNjUgODQzLjAwIDk0LjI2IDg0MS40MSA5NS44NkM4MzkuNDQgOTcuODQgODM2Ljg5IDk5LjIwIDgzMy42OCA5OS45NkM4MzEuOTYgMTAwLjM4IDgzMS4xMSAxMDAuNDUgODI5LjAwIDEwMC4zNkM4MjUuOTAgMTAwLjIzIDgyNC42OSA5OS45NCA4MjIuMTUgOTguNzNDODE4Ljc5IDk3LjEzIDgxNi44MCA5NC44MCA4MTUuNzAgOTEuMThDODE1LjE4IDg5LjQ0IDgxNC41NCA4NS43NCA4MTQuNzIgODUuNDVDODE0LjgyIDg1LjI4IDgyMy41NSA4NS4yMSA4NDMuMTcgODUuMjFMODcxLjQ4IDg1LjIxTDg3MS44NyA4NC42MUM4NzIuNDcgODMuNjkgODcyLjYxIDc2LjI3IDg3Mi4xMCA3Mi4xMEM4NzAuODggNjIuMTAgODY4Ljc1IDU1LjYxIDg2NC40MSA0OC42OUM4NjEuMzQgNDMuNzkgODU4LjMzIDQwLjQ4IDg1My44OSAzNy4xNUM4NDguNTIgMzMuMTIgODQyLjc5IDMwLjg1IDgzNS4yNiAyOS43NEM4MzMuMDQgMjkuNDIgODI2LjMwIDI5LjQyIDgyMy43NSAyOS43NUM4MTUuMTggMzAuODUgODA4LjAyIDMzLjkzIDgwMS4xMSAzOS40OEM3OTQuNjggNDQuNjUgNzg5LjEyIDUzLjEwIDc4Ny4wOCA2MC44MEM3ODYuOTAgNjEuNDggNzg2LjU5IDYyLjY0IDc4Ni4zOSA2My4zOEM3ODUuNTUgNjYuNTUgNzg1LjE5IDY4Ljk0IDc4NC42MyA3NS4wMkM3ODQuMzggNzcuNzcgNzg0LjQxIDc4LjU1IDc4NC45MCA4My41N0M3ODUuODcgOTMuNTQgNzg5LjQzIDEwMi43NyA3OTQuODMgMTA5LjMwQzc5OC41NSAxMTMuODEgODAwLjg5IDExNS44OSA4MDUuMTggMTE4LjUyQzgwNy44NCAxMjAuMTUgODEwLjQzIDEyMS40MCA4MTIuOTcgMTIyLjI3QzgyMC4wNiAxMjQuNjkgODI5LjE0IDEyNS41MCA4MzYuODQgMTI0LjM4Wk00MjQuODYgMTI0LjMyQzQyNi4zNCAxMjQuMDcgNDI4LjA4IDEyMy43NCA0MjguNzIgMTIzLjU5QzQzMC40NiAxMjMuMTcgNDM1LjQ2IDEyMS40OCA0MzYuMjcgMTIxLjAzQzQzNy4yNiAxMjAuNDkgNDQxLjA5IDExOC42OCA0NDEuMjUgMTE4LjY4QzQ0MS4zNSAxMTguNjggNDQxLjcyIDExOS40NiA0NDIuMDcgMTIwLjQyQzQ0Mi40MiAxMjEuMzggNDQyLjkwIDEyMi4zNSA0NDMuMTQgMTIyLjU2QzQ0My41NSAxMjIuOTMgNDQ0LjY3IDEyMi45NSA0NTguNjIgMTIyLjc5QzQ2Ni45MCAxMjIuNzAgNDczLjc2IDEyMi41MyA0NzMuODcgMTIyLjQyQzQ3My45OSAxMjIuMzEgNDczLjc4IDEyMS43NCA0NzMuNDAgMTIxLjEwQzQ3Mi41NSAxMTkuNjkgNDcwLjUxIDExNS41MSA0NzAuNTEgMTE1LjE5QzQ3MC41MSAxMTUuMDYgNDcwLjM2IDExNC42MCA0NzAuMTggMTE0LjE4QzQ2OS45OSAxMTMuNzYgNDY5LjY2IDExMi42MiA0NjkuNDMgMTExLjY2QzQ2OS4wNCAxMTAuMDQgNDY4Ljk5IDEwNy42OCA0NjguODUgODEuMTFDNDY4Ljc3IDY1LjI3IDQ2OC42MiA1Mi4wMCA0NjguNTMgNTEuNjJDNDY4LjQ0IDUxLjIzIDQ2OC4yMSA1MC4yNCA0NjguMDEgNDkuNDJDNDY3LjgyIDQ4LjU5IDQ2Ny41OCA0Ny43NSA0NjcuNDggNDcuNTRDNDY3LjM4IDQ3LjM0IDQ2Ni45NSA0Ni40MyA0NjYuNTQgNDUuNTNDNDY0LjQ3IDQxLjAzIDQ2MC42MCAzNy4xNiA0NTUuNDEgMzQuMzlDNDUyLjAyIDMyLjU4IDQ0OC4wNyAzMS4zMSA0NDMuMDAgMzAuNDJDNDM4LjcyIDI5LjY2IDQyOS4yMSAyOS4zMCA0MjQuNTEgMjkuNzJDNDE0Ljc4IDMwLjU3IDQwOC4zNCAzMi40OCA0MDIuMDQgMzYuMzVDNDAwLjgwIDM3LjExIDM5Ny4wNSA0MC4yOCAzOTUuOTAgNDEuNTRDMzkzLjU3IDQ0LjEwIDM5MC45NiA0OC41NiAzODkuODggNTEuODVDMzg5LjY3IDUyLjQ5IDM4OS40MyA1My4xOCAzODkuMzUgNTMuMzdDMzg4Ljg1IDU0LjUzIDM4OC41MSA1Ny4xNCAzODguNDkgNjAuMDRMMzg4LjQ2IDYzLjMyTDQwMi43NCA2My4zOEM0MTEuMTkgNjMuNDEgNDE3LjE2IDYzLjM0IDQxNy4zNiA2My4yMUM0MTcuNTcgNjMuMDggNDE3Ljc3IDYyLjM4IDQxNy44OCA2MS40MEM0MTguMTUgNTkuMDUgNDE4LjYyIDU2Ljk1IDQxOC45NSA1Ni42MUM0MTkuMTEgNTYuNDUgNDE5LjI0IDU2LjE5IDQxOS4yNCA1Ni4wNEM0MTkuMjQgNTUuMzEgNDIxLjk4IDUzLjU5IDQyNC42MyA1Mi42N0M0MjYuMDMgNTIuMTggNDMyLjQxIDUyLjA4IDQzNC41MSA1Mi41MkM0MzguNjMgNTMuMzcgNDM5LjU3IDU0LjQyIDQzOS41OSA1OC4yNEM0MzkuNjEgNjAuODYgNDM5LjE5IDYxLjg5IDQzNy42NSA2Mi45NEM0MzUuNjMgNjQuMzQgNDMzLjI0IDY0Ljk1IDQyNy4wOCA2NS42NUM0MjUuMjggNjUuODYgNDIyLjkxIDY2LjE4IDQyMS44MiA2Ni4zN0M0MjAuNzIgNjYuNTYgNDE5LjU5IDY2LjcyIDQxOS4zMCA2Ni43MkM0MTguNzcgNjYuNzEgNDE1LjgzIDY3LjIzIDQxMy43NCA2Ny42OUM0MTMuMTAgNjcuODMgNDEyLjEwIDY4LjAzIDQxMS41MiA2OC4xM0M0MDkuMTUgNjguNTYgNDA0LjUyIDY5LjgzIDQwMi41MCA3MC42MkMzOTUuOTAgNzMuMTkgMzkxLjM4IDc3LjMyIDM4OC40NyA4My40NUMzODYuOTIgODYuNzIgMzg2LjQyIDg4LjQzIDM4NS44NyA5Mi4zNUMzODUuMDQgOTguMjQgMzg2LjE5IDEwNS4wOSAzODguODMgMTEwLjA1QzM4OS4wOCAxMTAuNTIgMzg5LjQzIDExMS4xOSAzODkuNjEgMTExLjUzQzM5MC41MSAxMTMuMjcgMzkzLjU4IDExNi44NSAzOTUuNDMgMTE4LjMyQzM5Ny42MyAxMjAuMDcgMzk3LjY5IDEyMC4xMSA0MDAuNjMgMTIxLjU2QzQwMy4zNCAxMjIuODkgNDA2LjI3IDEyMy43NyA0MDkuNzYgMTI0LjI5QzQxMC43OSAxMjQuNDQgNDExLjc5IDEyNC42MCA0MTEuOTkgMTI0LjY0QzQxMi4xOCAxMjQuNjggNDE0LjU1IDEyNC43MiA0MTcuMjUgMTI0Ljc0QzQyMS4xMCAxMjQuNzYgNDIyLjc1IDEyNC42NyA0MjQuODYgMTI0LjMyWk00Mi43OCA4OC45MkM0Mi44MyA2Mi4yMyA0Mi45MCA1NS4wMSA0My4xMyA1NC44MkM0My4zMSA1NC42OCA0Ni4zMSA1NC41MSA1MC43NCA1NC40MUM1NC43NyA1NC4zMiA1OC4xMiA1NC4xNSA1OC4xOSA1NC4wM0M1OC4zNiA1My43NiA1OC4zMSAzMi42MyA1OC4xNCAzMi4xOEM1OC4wMiAzMS44OSA1Ni45OSAzMS44MyA1MS4zMCAzMS44MUM0Ny42MSAzMS43OSA0NC4yOCAzMS43MSA0My44OSAzMS42M0M0My4wNiAzMS40NSA0Mi44NSAzMC43MyA0My4xMSAyOC45MUM0My40NSAyNi40NiA0My45MCAyNS41MSA0NS4wMiAyNC44OEM0NS43MyAyNC40OCA1MS4yOSAyNC41MSA1NC4xOSAyNC45M0M1Ni4yMSAyNS4yMyA1OS40MSAyNS40MCA1OS40OCAyNS4yMkM1OS40OSAyNS4xOSA1OS41NiAxOS45MiA1OS42MiAxMy41MkM1OS43MyAzLjM1IDU5LjcwIDEuODEgNTkuMzkgMS4zM0M1OS4wNyAwLjg1IDU4Ljc1IDAuNzYgNTYuMjYgMC41MkM0Mi42NiAtMC44MiAzNC44NCAtMC4xNCAyOC41NSAyLjk0QzI1Ljk1IDQuMjEgMjUuODQgNC4yOCAyMy43NCA1Ljk1QzE5LjY2IDkuMjAgMTcuMTIgMTIuODkgMTUuMTAgMTguNDlDMTQuMjMgMjAuOTEgMTMuNTcgMjQuODYgMTMuNDIgMjguNTZDMTMuMzQgMzAuNjggMTMuMjMgMzEuMzEgMTIuOTMgMzEuNTRDMTIuNjUgMzEuNzYgMTAuOTkgMzEuODQgNi41MiAzMS44NEMxLjAwIDMxLjg0IDAuNDcgMzEuODcgMC4zMCAzMi4yNEMwLjIwIDMyLjQ3IDAuMTUgMzcuNDYgMC4xOCA0My4zNEMwLjI0IDUyLjQ2IDAuMzAgNTQuMDUgMC41OSA1NC4xNkMwLjc4IDU0LjIzIDMuNjUgNTQuMzYgNi45NiA1NC40NUMxMC45MiA1NC41NiAxMy4wNSA1NC43MCAxMy4xNiA1NC44N0MxMy4yNiA1NS4wMSAxMy4zNCA3MC4yNSAxMy4zNCA4OC43M0MxMy4zNCAxMTQuNjYgMTMuNDEgMTIyLjQwIDEzLjYzIDEyMi42MUMxMy44NCAxMjIuODMgMTcuMzEgMTIyLjg4IDI4LjMxIDEyMi44NEw0Mi43MiAxMjIuNzhMNDIuNzggODguOTJaTTk1LjY5IDEyMi42MUM5Ni4wNyAxMjIuMjQgOTYuMTAgMzIuOTkgOTUuNzMgMzIuMjlDOTUuNTAgMzEuODUgOTUuMDkgMzEuODQgODEuMTUgMzEuODRDNzAuMzEgMzEuODQgNjYuNzQgMzEuOTAgNjYuNTMgMzIuMTJDNjYuMTIgMzIuNTIgNjYuMTIgMTIyLjIwIDY2LjUzIDEyMi42MUM2Ni45MyAxMjMuMDIgOTUuMjkgMTIzLjAyIDk1LjY5IDEyMi42MVpNMTM1Ljk3IDEyMi43OUMxMzYuMzcgMTIyLjY2IDEzOC4zNCAxMjAuMTIgMTM4LjM0IDExOS43M0MxMzguMzQgMTE5LjY5IDEzOC45OSAxMTguNjcgMTM5Ljc5IDExNy40N0MxNDEuMzQgMTE1LjEyIDE0Mi42NiAxMTMuMDcgMTQ0LjA2IDExMC44NEMxNDcuNDUgMTA1LjQ0IDE1MS4wMyAxMDAuMTkgMTUxLjMxIDEwMC4xOUMxNTEuNTAgMTAwLjE5IDE1MS45MCAxMDAuNjEgMTUyLjE5IDEwMS4xM0MxNTIuNjkgMTAyLjAwIDE1Ny41NCAxMDkuNTkgMTYwLjE2IDExMy42MEMxNjAuNzYgMTE0LjUzIDE2Mi4yNyAxMTYuODkgMTYzLjUxIDExOC44NkMxNjQuNzUgMTIwLjgyIDE2NS45NiAxMjIuNTMgMTY2LjIwIDEyMi42NkMxNjYuNDggMTIyLjgxIDE3Mi4yNSAxMjIuODUgMTgyLjc0IDEyMi43NkMxOTEuNjAgMTIyLjY5IDE5OS4wNCAxMjIuNjQgMTk5LjI2IDEyMi42NEMxOTkuNDkgMTIyLjY1IDE5OS42NyAxMjIuNTUgMTk5LjY3IDEyMi40MUMxOTkuNjcgMTIyLjExIDE5Ni4yMiAxMTYuODMgMTg3LjgwIDEwNC4yOEMxODYuNzcgMTAyLjc0IDE4NC44NyA5OS44OSAxODMuNTkgOTcuOTZDMTgyLjMyIDk2LjAzIDE3OS45NiA5Mi41MCAxNzguMzYgOTAuMTJDMTc2Ljc1IDg3Ljc0IDE3NC4yMyA4My45NiAxNzIuNzUgODEuNzJDMTcxLjI3IDc5LjQ4IDE2OS42NyA3Ny4wNiAxNjkuMTggNzYuMzRDMTY4LjcwIDc1LjYyIDE2OC4zMSA3NC44NiAxNjguMzEgNzQuNjRDMTY4LjMxIDc0LjQyIDE2OS40OSA3Mi40OSAxNzAuOTQgNzAuMzZDMTcyLjM5IDY4LjIyIDE3NC4xNSA2NS41OSAxNzQuODYgNjQuNTFDMTc1LjU3IDYzLjQzIDE3Ny40MiA2MC42NyAxNzguOTggNTguMzdDMTgwLjUzIDU2LjA3IDE4My42NSA1MS40NSAxODUuOTAgNDguMTBDMTg4LjE1IDQ0Ljc2IDE5MS40MyAzOS44OCAxOTMuMTkgMzcuMjdDMTk0Ljk1IDM0LjY1IDE5Ni40MCAzMi4zNiAxOTYuNDAgMzIuMTdDMTk2LjQwIDMxLjg4IDE5NC4xNyAzMS44NCAxODAuMDUgMzEuODRDMTY0Ljc3IDMxLjg0IDE2My42NyAzMS44NiAxNjMuMzMgMzIuMjRDMTYyLjk1IDMyLjY4IDE2MC44MSAzNS44MiAxNjAuODEgMzUuOTZDMTYwLjgxIDM2LjAwIDE2MC4zMCAzNi44MCAxNTkuNjcgMzcuNzRDMTU4LjQ2IDM5LjU1IDE1NS41MCA0NC4xMCAxNTMuMjEgNDcuNjlDMTUyLjQ1IDQ4Ljg5IDE1MS43MCA0OS44NiAxNTEuNTQgNDkuODZDMTUxLjMxIDQ5Ljg2IDE0OS41OCA0Ny43MiAxNDkuNTggNDcuNDJDMTQ5LjU4IDQ3LjM3IDE0OC4yMyA0NS4yOSAxNDYuNTcgNDIuNzlDMTQ0LjkyIDQwLjMwIDE0My40MyAzOC4wMCAxNDMuMjYgMzcuNjhDMTQzLjA5IDM3LjM2IDE0Mi4xNyAzNS45MiAxNDEuMjEgMzQuNDdMMTM5LjQ4IDMxLjg0TDEyMi42MiAzMS44NEwxMDUuNzUgMzEuODRMMTA1Ljg2IDMyLjM2QzEwNS45MiAzMi42NSAxMDYuNjIgMzMuODQgMTA3LjQxIDM1LjAwQzEwOC43OCAzNi45OSAxMTguNzAgNTEuODUgMTIxLjAwIDU1LjM1QzEyMS41OSA1Ni4yNSAxMjMuMzggNTguOTQgMTI0Ljk4IDYxLjMyQzEyOC4wNSA2NS45MCAxMzEuODggNzEuNjcgMTMzLjE0IDczLjYwQzEzMy41NiA3NC4yMyAxMzMuOTAgNzQuOTEgMTMzLjkwIDc1LjEwQzEzMy45MCA3NS4yOSAxMzMuNTYgNzUuOTkgMTMzLjE0IDc2LjY0QzEzMi4yMSA3OC4xMiAxMjYuNjkgODYuNDcgMTI2LjAxIDg3LjQzQzEyNS43NCA4Ny44MiAxMjQuMDIgOTAuNDUgMTIyLjE5IDkzLjI4QzEyMC4zNiA5Ni4xMSAxMTguNjUgOTguNzQgMTE4LjM4IDk5LjEyQzExNy44NSA5OS44OCAxMTUuOTkgMTAyLjY4IDExMy40MCAxMDYuNjJDMTEyLjQ4IDEwOC4wNCAxMDkuODUgMTEyLjAyIDEwNy41NyAxMTUuNDZDMTA1LjI5IDExOC45MSAxMDMuMzcgMTIxLjkzIDEwMy4zMCAxMjIuMTdDMTAzLjIyIDEyMi41MSAxMDMuMzMgMTIyLjY0IDEwMy43MyAxMjIuNzBDMTA0Ljg2IDEyMi44NiAxMzUuNDggMTIyLjk0IDEzNS45NyAxMjIuNzlaTTI3OC4xNCAxMjIuNDVDMjc4LjI0IDEyMi4zNiAyNzguMzQgMTA5LjU1IDI3OC4zOCA5My45OEwyNzguNDQgNjUuNjZMMjc5LjE4IDYzLjYyQzI4MC45OSA1OC42MyAyODMuMjMgNTYuNDAgMjg3LjQ1IDU1LjQwQzI5MC4xNSA1NC43NiAyOTAuODQgNTQuNzIgMjkyLjUyIDU1LjE0QzI5NS45NiA1NS45OSAyOTcuNTYgNTcuNTQgMjk4LjUxIDYwLjkzQzI5OC45NyA2Mi41NiAyOTguOTkgNjMuNTYgMjk5LjE2IDkyLjQzQzI5OS4yOCAxMTEuODAgMjk5LjQyIDEyMi4zMiAyOTkuNTggMTIyLjQ3QzI5OS45MiAxMjIuODEgMzI3LjcyIDEyMy4wMyAzMjguMzQgMTIyLjcwQzMyOC44MCAxMjIuNDUgMzI4LjgxIDEyMi4xMCAzMjguOTUgOTQuMjlDMzI5LjA5IDY3LjAwIDMyOS4xMSA2Ni4wNiAzMjkuNTcgNjQuMDhDMzMwLjczIDU5LjExIDMzMi44NCA1Ni41OSAzMzYuOTQgNTUuMjVDMzM4LjIzIDU0LjgzIDM0MS42MyA1NC44NiAzNDMuMDUgNTUuMzBDMzQ1LjA4IDU1LjkzIDM0Ni41NSA1Ni44NCAzNDcuNDEgNTguMDFDMzQ4LjU1IDU5LjU1IDM0OC43NiA2MC4xNCAzNDkuMjcgNjMuMjBDMzQ5LjY5IDY1Ljc1IDM0OS43MiA2Ny40MyAzNDkuNzIgOTQuMjdMMzQ5LjcyIDEyMi42NUwzNTAuMjUgMTIyLjc4QzM1MC41NCAxMjIuODUgMzU3LjE1IDEyMi44OCAzNjQuOTMgMTIyLjg0TDM3OS4xMCAxMjIuNzhMMzc5LjEwIDg5LjU0QzM3OS4xMCA1My43MyAzNzkuMTUgNTUuMzcgMzc3Ljk0IDUxLjE1QzM3Ni40NCA0NS44OCAzNzMuODcgNDEuNDQgMzcwLjIyIDM3Ljc4QzM2Ny45OCAzNS41MiAzNjYuMzMgMzQuMzQgMzYzLjY1IDMzLjA0QzM1OS4xOCAzMC44OSAzNTIuNTcgMjkuNTAgMzQ2LjU0IDI5LjQ2QzM0My43NCAyOS40NCAzNDIuNjEgMjkuNTYgMzM5LjE5IDMwLjIzQzMzNi4xNyAzMC44MyAzMzIuNzIgMzIuMjUgMzI5LjQ4IDM0LjI0QzMyOC4zMCAzNC45NiAzMjYuMjAgMzYuNjYgMzI0LjQ5IDM4LjI3QzMyMy40NiAzOS4yMyAzMjIuNTYgNDAuMDMgMzIyLjUwIDQwLjAzQzMyMi40MyA0MC4wMyAzMjEuMTggMzguODMgMzE5LjcyIDM3LjM3QzMxNi45MSAzNC41NSAzMTUuMTggMzMuNDAgMzExLjU2IDMxLjkwQzMwMS40OSAyNy43NSAyODguMjYgMjkuMDUgMjc5LjgwIDM1LjAzQzI3Ny42OCAzNi41MyAyNzcuNTggMzYuNDggMjc3LjI1IDMzLjY0QzI3Ny4xNiAzMi45MSAyNzYuOTYgMzIuMjAgMjc2LjgwIDMyLjA3QzI3Ni42MSAzMS45MSAyNzEuODIgMzEuODUgMjYyLjczIDMxLjg5TDI0OC45NSAzMS45NUwyNDguODkgNzcuMjNDMjQ4Ljg0IDExMy4zMCAyNDguODkgMTIyLjU1IDI0OS4xMiAxMjIuNzFDMjQ5LjQ2IDEyMi45NCAyNzcuODkgMTIyLjY4IDI3OC4xNCAxMjIuNDVaTTU5Ni45MiA5Ni4wOUM1OTcuMDIgNzUuODggNTk3LjEyIDY5LjAxIDU5Ny4zNSA2Ny43N0M1OTguNDAgNjIuMDIgNTk5LjA5IDYwLjMxIDYwMS4yMyA1OC4xNkM2MDMuNDUgNTUuOTQgNjA1Ljk3IDU0Ljk5IDYwOS43OCA1NC45M0M2MTIuMTcgNTQuODkgNjEzLjMzIDU1LjE0IDYxNS40MCA1Ni4xNEM2MTguMDcgNTcuNDMgNjE5LjE5IDU5LjIyIDYyMC4wMyA2My41NUM2MjAuMzQgNjUuMTYgNjIwLjQyIDY5LjQ2IDYyMC41MyA5My45M0M2MjAuNjUgMTE4LjkxIDYyMC43MSAxMjIuNDcgNjIxLjAyIDEyMi42OEM2MjEuNDIgMTIyLjk1IDY0OS44MSAxMjIuNzIgNjUwLjExIDEyMi40NEM2NTAuMjEgMTIyLjM1IDY1MC4yNiAxMDguMzIgNjUwLjIyIDkxLjI3QzY1MC4xNSA1OC43MiA2NTAuMTggNTkuNjUgNjQ5LjA4IDUzLjk2QzY0OC41MSA1MC45NCA2NDguMjAgNDkuNjkgNjQ3LjgwIDQ4Ljc0QzY0Ny42MiA0OC4zMiA2NDcuNDcgNDcuODMgNjQ3LjQ3IDQ3LjY1QzY0Ny40NyA0Ny40NyA2NDcuMzIgNDcuMDIgNjQ3LjE0IDQ2LjY2QzY0Ni45NiA0Ni4zMCA2NDYuNjIgNDUuNTggNjQ2LjM4IDQ1LjA2QzY0Mi45OSAzNy42OCA2MzYuMDggMzIuMzcgNjI3LjM0IDMwLjQ0QzYxNy4xNyAyOC4yMCA2MDYuODUgMjkuOTcgNTk4Ljg0IDM1LjMyQzU5OC4wMyAzNS44NiA1OTcuMjcgMzYuMjQgNTk3LjE0IDM2LjE2QzU5Ni45OSAzNi4wNyA1OTYuOTEgMjkuNjAgNTk2LjkxIDE4LjI2QzU5Ni45MSA4LjUwIDU5Ni44NSAwLjM0IDU5Ni43NyAwLjE0QzU5Ni42NCAtMC4yMCA1OTUuMTUgLTAuMjMgNTgyLjMwIC0wLjIzQzU3MS40NyAtMC4yMyA1NjcuOTEgLTAuMTcgNTY3LjcwIDAuMDVDNTY3LjI4IDAuNDcgNTY3LjI5IDEyMi41NyA1NjcuNzEgMTIyLjc0QzU2Ny44NyAxMjIuODAgNTc0LjQ4IDEyMi44NCA1ODIuNDAgMTIyLjgyTDU5Ni43OSAxMjIuNzhMNTk2LjkyIDk2LjA5Wk02ODYuNjggNzcuMzZMNjg2LjY4IDMxLjk1TDY3Mi4wNSAzMS45NUw2NTcuNDIgMzEuOTVMNjU3LjM2IDc3LjEzQzY1Ny4zMyAxMDEuOTggNjU3LjM1IDEyMi40NCA2NTcuNDEgMTIyLjYwQzY1Ny41MCAxMjIuODQgNjYwLjU2IDEyMi44OCA2NzIuMTAgMTIyLjg0TDY4Ni42OCAxMjIuNzhMNjg2LjY4IDc3LjM2Wk03MjMuNzQgMTIyLjYxQzcyMy45NSAxMjIuNDAgNzI0LjAyIDExNi42MCA3MjQuMDIgOTcuOTVDNzI0LjAyIDgzLjA4IDcyNC4xMSA3Mi4zNSA3MjQuMjYgNzAuNDNDNzI1LjAwIDYxLjA4IDcyNy42NCA1Ni43MSA3MzMuMzggNTUuMzNDNzM2LjA5IDU0LjY5IDc0MC45NiA1NS4wNCA3NDIuODcgNTYuMDNDNzQ1LjI5IDU3LjI4IDc0Ny4xNyA2MS41MCA3NDcuNjMgNjYuNzFDNzQ3Ljc3IDY4LjMyIDc0Ny44OCA4MC4wOSA3NDcuODkgOTUuODRDNzQ3LjkxIDExNS44NCA3NDcuOTggMTIyLjM2IDc0OC4xOSAxMjIuNjFDNzQ4LjQyIDEyMi45MCA3NTAuNTIgMTIyLjkyIDc2Mi43NSAxMjIuNzhDNzcwLjYxIDEyMi42OSA3NzcuMTIgMTIyLjUzIDc3Ny4yMiAxMjIuNDRDNzc3LjMyIDEyMi4zNCA3NzcuMzcgMTA4LjAwIDc3Ny4zMyA5MC41N0M3NzcuMjUgNTkuMzQgNzc3LjI0IDU4LjgzIDc3Ni43NSA1Ni4xOEM3NzUuNjMgNTAuMTcgNzc0LjMxIDQ2LjE3IDc3Mi4zOCA0Mi45NUM3NjguMjQgMzYuMDggNzYyLjM5IDMyLjAxIDc1NC4yMSAzMC4zNUM3NDMuODQgMjguMjQgNzMzLjExIDMwLjAxIDcyNS41NSAzNS4wOUM3MjQuNTcgMzUuNzQgNzIzLjY4IDM2LjI4IDcyMy41OCAzNi4yOEM3MjMuNDcgMzYuMjggNzIzLjI2IDM1LjM4IDcyMy4xMiAzNC4yOEM3MjIuOTggMzMuMTggNzIyLjgwIDMyLjE4IDcyMi43MiAzMi4wNkM3MjIuNTcgMzEuODEgNjk1LjUyIDMxLjczIDY5NC44OSAzMS45OEM2OTQuNTYgMzIuMTEgNjk0LjUyIDM2LjMxIDY5NC41MiA3Ny4yM0M2OTQuNTIgMTEyLjAwIDY5NC41OSAxMjIuNDAgNjk0LjgwIDEyMi42MUM2OTUuMjEgMTIzLjAyIDcyMy4zMyAxMjMuMDIgNzIzLjc0IDEyMi42MVpNOTEwLjU1IDEyMi41N0M5MTAuNzUgMTIyLjM0IDkxMC44MCAxMTcuOTQgOTEwLjc2IDEwNi40OEw5MTAuNzAgOTAuNzFMODk0LjkwIDkwLjcxTDg3OS4xMCA5MC43MUw4NzkuMDQgMTA2LjQ4Qzg3OC45OSAxMTcuOTQgODc5LjA1IDEyMi4zNCA4NzkuMjQgMTIyLjU3Qzg3OS40NiAxMjIuODQgODgyLjIwIDEyMi44OSA4OTQuOTAgMTIyLjg5QzkwNy41OSAxMjIuODkgOTEwLjM0IDEyMi44NCA5MTAuNTUgMTIyLjU3Wk00MjAuODggMTAxLjgzQzQxOC42NSAxMDEuMjQgNDE3Ljc4IDEwMC44MSA0MTYuODUgOTkuODVDNDE1LjI4IDk4LjI0IDQxNC43OCA5NC45MyA0MTUuNzMgOTIuNDFDNDE2LjE5IDkxLjE4IDQxOC4xMyA4OS4wMiA0MTkuNDMgODguMzBDNDIwLjM0IDg3Ljc5IDQyMi44MiA4Ny4wOCA0MjMuNzEgODcuMDhDNDI0LjE4IDg3LjA4IDQyNC44NiA4Ni45NyA0MjUuMjMgODYuODVDNDI1LjYxIDg2LjcyIDQyNi42MCA4Ni41MSA0MjcuNDMgODYuMzhDNDI4LjI3IDg2LjI2IDQyOS44NSA4Ni4wMCA0MzAuOTUgODUuODFDNDM1LjUwIDg1LjAzIDQzNy40MyA4NC43MSA0MzguMjQgODQuNThDNDM5LjAzIDg0LjQ2IDQzOS4xMCA4NC40OSA0MzkuMjEgODUuMTJDNDM5LjI4IDg1LjQ5IDQzOS4zMCA4Ni4zNyA0MzkuMjUgODcuMDhDNDM4LjgwIDkzLjk4IDQzNy45MyA5Ni41NSA0MzUuMjAgOTkuMDVDNDMzLjY2IDEwMC40NiA0MzEuNjMgMTAxLjQ1IDQyOS4yOSAxMDEuOTVDNDI3LjA3IDEwMi40MSA0MjIuODUgMTAyLjM1IDQyMC44OCAxMDEuODNaTTgxNS4yOCA2NC4zMUM4MTUuMjEgNjMuNDYgODE1LjQyIDYyLjY5IDgxNi4xNSA2MS4yMUM4MTcuNzggNTcuOTIgODIwLjcxIDU1LjY0IDgyNC42NiA1NC42MUM4MjYuNTQgNTQuMTEgODMxLjM1IDU0LjA1IDgzMi43NSA1NC41MEM4MzcuMjkgNTUuOTcgODM5Ljg0IDU4LjU1IDg0MC45NyA2Mi44NEM4NDEuMTkgNjMuNjcgODQxLjIwIDY0LjA4IDg0MS4wMiA2NC4zMEM4NDAuNjYgNjQuNzQgODE1LjMyIDY0Ljc1IDgxNS4yOCA2NC4zMVpNOTUuNTEgMjUuOThDOTUuOTYgMjUuNzQgOTUuOTcgMjUuNDQgOTUuOTcgMTMuMjBDOTUuOTcgNS4wMSA5NS44OSAwLjUxIDk1LjczIDAuMjJDOTUuNTAgLTAuMjIgOTUuMDkgLTAuMjMgODEuMTUgLTAuMjNDNzAuMzEgLTAuMjMgNjYuNzQgLTAuMTcgNjYuNTMgMC4wNUM2Ni4zMSAwLjI2IDY2LjI1IDMuNDYgNjYuMjUgMTMuMDNDNjYuMjUgMjQuODggNjYuMjcgMjUuNzQgNjYuNjUgMjUuOTZDNjcuMjQgMjYuMjkgOTQuOTAgMjYuMzEgOTUuNTEgMjUuOThaTTY4Ni4wNyAyNi4wN0w2ODYuODAgMjUuOTJMNjg2LjgwIDEzLjExQzY4Ni44MCAyLjU4IDY4Ni43NCAwLjI0IDY4Ni40OCAwLjAzQzY4Ni4yNSAtMC4xNiA2ODIuMjEgLTAuMjIgNjcxLjc5IC0wLjE4TDY1Ny40MiAtMC4xMkw2NTcuMzAgMTIuNjRDNjU3LjI0IDE5LjY2IDY1Ny4yNyAyNS41OCA2NTcuMzcgMjUuODFDNjU3LjU0IDI2LjE5IDY1OC40NCAyNi4yMiA2NzEuNDQgMjYuMjJDNjc5LjA4IDI2LjIyIDY4NS42NiAyNi4xNSA2ODYuMDcgMjYuMDdaIi8+PC9zdmc+");

  --sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --gutter: max(16px, env(safe-area-inset-left, 0px));
  --gutter-r: max(16px, env(safe-area-inset-right, 0px));
  --H: clamp(260px, 44vh, 400px);      /* shelf spine height (desktop) */
  --cw: min(62vw, 250px);              /* cover width in the mobile carousel */
  color-scheme: light;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--ivory); }
body { margin: 0; background: var(--ivory); color: var(--green); font-family: var(--sans); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
.fx-lock, .fx-lock body { overflow: hidden; }
a { color: inherit; }
button { font-family: inherit; }
:focus-visible { outline: 1.5px solid var(--green); outline-offset: 3px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wordmark { display: block; background: currentColor; -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; }

/* ── Site bar (same as the home page) ───────────────────── */
.nav { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 12px); z-index: 20; margin: 12px max(12px, env(safe-area-inset-right, 0px)) 0 max(12px, env(safe-area-inset-left, 0px)); background: var(--green); color: var(--ivory); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; padding: .55rem .6rem .55rem 1.2rem; border-radius: 3px; }
.nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.3rem; }
.nav ul a { text-decoration: none; text-transform: uppercase; font-size: 12px; letter-spacing: .08em; opacity: .85; }
.nav ul a:hover, .nav ul a[aria-current="page"] { opacity: 1; }
.nav ul a[aria-current="page"] { text-decoration: underline; text-underline-offset: 5px; }
.nav .logo { width: 132px; aspect-ratio: 862 / 125; }
.nav .logo .wordmark { width: 100%; height: 100%; }
.nav-r { display: flex; justify-content: flex-end; }
.nav .contact { border: 1px solid var(--ivory); padding: .5rem .85rem; border-radius: 3px; text-decoration: none; text-transform: uppercase; font-size: 12px; letter-spacing: .08em; }
@media (max-width: 760px) { .nav { grid-template-columns: auto 1fr; } .nav ul { display: none; } .nav .logo { width: 116px; } }

/* ── Page header ────────────────────────────────────────── */
.intro { padding: calc(env(safe-area-inset-top, 0px) + clamp(96px, 11vw, 130px)) var(--gutter-r) 0 var(--gutter); text-align: center; display: grid; justify-items: center; gap: 14px; }
.eyebrow { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
.intro h1 { margin: 0; font-weight: 400; font-stretch: 125%; font-size: clamp(26px, 3.6vw, 40px); letter-spacing: .34em; text-transform: uppercase; padding-left: .34em; }
.intro .rule { width: 44px; height: 1px; background: var(--brass); }
.intro p { margin: 0; max-width: 34rem; color: var(--muted); font-family: var(--serif); font-size: 17px; line-height: 1.5; }
.stats { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

/* ── Shelf ──────────────────────────────────────────────── */
.shelf { position: relative; margin-top: 18px; }
.shelf-tools { display: flex; justify-content: center; align-items: center; gap: 10px; flex-wrap: wrap; padding: 0 var(--gutter-r) 0 var(--gutter); }
.shelf-find { width: min(260px, 60vw); font: 400 13px var(--sans); color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 8px 2px; border-radius: 0; text-align: center; }
.shelf-find:focus { outline: none; border-bottom-color: var(--green); }
.shelf-find::placeholder { color: #9AA6A3; }
.shelf-find-msg { flex-basis: 100%; text-align: center; font-size: 12px; color: var(--muted); min-height: 1.2em; margin: 0; font-family: var(--serif); font-style: italic; }
.shelf-arrow { position: absolute; top: 50%; z-index: 3; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: var(--ivory); color: var(--green); font-size: 16px; cursor: pointer; display: grid; place-items: center; transition: opacity .25s, border-color .2s; }
.shelf-arrow:hover { border-color: var(--green); }
.shelf-prev { left: max(14px, env(safe-area-inset-left, 0px)); }
.shelf-next { right: max(14px, env(safe-area-inset-right, 0px)); }
.shelf.at-start .shelf-prev, .shelf.at-end .shelf-next { opacity: .3; pointer-events: none; }
.shelf-track { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 70px, #000 calc(100% - 70px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 70px, #000 calc(100% - 70px), transparent 100%); }
.bk.is-found .bk-btn { transform: translateY(-14px); }
.bk.is-found .bk-tip { opacity: 1; transform: translate(-50%, 0); }
.shelf-track { overflow-x: auto; overflow-y: hidden; padding-top: 60px; padding-bottom: 34px; scrollbar-width: none; cursor: grab; }
.shelf-track::-webkit-scrollbar { display: none; }
.shelf.is-dragging .shelf-track { cursor: grabbing; }
.shelf.is-dragging .bk-btn { pointer-events: none; }
.shelf-row { list-style: none; margin: 0 auto; padding: 0 110px; display: flex; align-items: flex-end; gap: 4px; width: max-content; position: relative; }
.shelf-row::after { content: ""; position: absolute; left: 40px; right: 40px; bottom: -1px; height: 1px; background: var(--green); opacity: .35; }
.shelf-row::before { content: ""; position: absolute; left: 60px; right: 60px; bottom: -22px; height: 22px; background: radial-gradient(50% 100% at 50% 0, rgba(0,40,40,.12), rgba(0,40,40,0)); pointer-events: none; }
.bk { position: relative; flex: none; }
.bk-btn { display: block; padding: 0; border: 0; background: none; cursor: pointer; color: var(--ink-on); width: var(--t); height: calc(var(--H) * var(--hf)); transition: transform .35s cubic-bezier(.2,.7,.1,1), box-shadow .35s; box-shadow: 0 1px 0 rgba(0,0,0,.06), 8px 10px 18px -14px rgba(0,40,40,.55); }
.bk-spine { display: block; width: 100%; height: 100%; --u: calc(var(--H) * var(--hf) / 100); }
.bk-cover { display: none; }
.bk-tip { position: absolute; left: 50%; bottom: calc(100% + 26px); transform: translate(-50%, 6px); white-space: nowrap; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--green); opacity: 0; transition: opacity .3s, transform .35s cubic-bezier(.2,.7,.1,1); pointer-events: none; display: flex; gap: .5em; align-items: baseline; }
.bk-tip b { font-weight: 600; }
.bk-tip i { font-style: normal; color: var(--muted); }
@media (hover: hover) {
  .bk:hover .bk-btn { transform: translateY(-14px); box-shadow: 0 1px 0 rgba(0,0,0,.06), 10px 24px 26px -18px rgba(0,40,40,.55); }
  .bk:hover .bk-tip { opacity: 1; transform: translate(-50%, 0); }
}
.bk-btn:focus-visible { transform: translateY(-14px); outline-offset: 6px; }
.bk:focus-within .bk-tip { opacity: 1; transform: translate(-50%, 0); }
.fx-busy .bk-btn { transform: none !important; transition: none; }
.fx-busy .bk-tip { opacity: 0 !important; }
.hint { text-align: center; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding: 0 var(--gutter-r) 0 var(--gutter); }
.hint .m { display: none; }
.legend { display: flex; justify-content: center; gap: 22px; flex-wrap: wrap; margin-top: 10px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.legend span { display: inline-flex; align-items: center; gap: 7px; }
.legend .tag-pending { font-size: 9.5px; }

/* ── Spine face (shelf + 3D book share it) ──────────────── */
.sp { position: relative; display: flex; flex-direction: column; align-items: center; width: 100%; height: 100%; background: var(--tone); color: var(--ink-on); padding: calc(var(--u) * 4) 0 calc(var(--u) * 3.6); gap: calc(var(--u) * 2.2); overflow: hidden; }
.sp::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.16), rgba(255,255,255,.07) 22%, rgba(255,255,255,0) 52%, rgba(0,0,0,.08) 86%, rgba(0,0,0,.18)); pointer-events: none; }
.sp-num { font-size: calc(var(--u) * 2.5); font-weight: 500; font-stretch: 112%; letter-spacing: .06em; line-height: 1; }
.sp-rule { width: 44%; height: 1px; background: var(--brass); flex: none; }
.sp-word { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; writing-mode: vertical-rl; font-size: min(calc(var(--u) * 2.9), calc(var(--tw) * 0.36)); font-weight: 600; font-stretch: 112%; letter-spacing: .14em; text-transform: uppercase; line-height: 1; white-space: nowrap; overflow: hidden; }
.sp-logo-box { position: relative; width: calc(var(--u) * 2.1); height: calc(var(--u) * 15); flex: none; }
.sp-logo { position: absolute; left: 50%; top: 50%; width: calc(var(--u) * 15); height: calc(var(--u) * 2.1); transform: translate(-50%, -50%) rotate(90deg); }

/* ── Cover face ─────────────────────────────────────────── */
.cv { position: relative; display: flex; flex-direction: column; justify-content: space-between; width: 100%; height: 100%; background: var(--tone); color: var(--ink-on); padding: calc(var(--u) * 7) calc(var(--u) * 6) calc(var(--u) * 5); text-align: left; overflow: hidden; }
.cv::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.2), rgba(0,0,0,0) 5%, rgba(255,255,255,.06) 7%, rgba(255,255,255,0) 14%); pointer-events: none; }
.cv-logo { width: 34%; aspect-ratio: 862 / 125; }
.cv-mid { display: grid; gap: calc(var(--u) * 2.1); justify-items: start; }
.cv-coll { font-size: calc(var(--u) * 3.3); font-weight: 400; font-stretch: 125%; letter-spacing: .46em; text-transform: uppercase; line-height: 1; }
.cv-rule { width: calc(var(--u) * 8); height: 1px; background: var(--brass); }
.cv-vol { font-size: calc(var(--u) * 1.6); letter-spacing: .24em; text-transform: uppercase; opacity: .8; }
.cv-title { font-size: calc(var(--u) * 4.6); font-weight: 700; letter-spacing: -.02em; line-height: 1.05; text-transform: uppercase; overflow-wrap: anywhere; }
.cv-foot { display: flex; justify-content: space-between; font-size: calc(var(--u) * 1.45); letter-spacing: .16em; text-transform: uppercase; opacity: .75; border-top: 1px solid color-mix(in srgb, currentColor 28%, transparent); padding-top: calc(var(--u) * 1.6); }

/* ── 3D stage (desktop) ─────────────────────────────────── */
.stage { position: fixed; inset: 0; z-index: 50; perspective: 2200px; perspective-origin: 50% 50%; }
.stage { --wall: var(--ivory); --table: var(--green); --horizon: 62%; }
/* the room: soft light on an off-white wall, then the green table the book stands on */
.stage-bg { position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 55% 42% at 50% 36%, rgba(255,255,255,.42), rgba(255,255,255,0) 72%),
    linear-gradient(to bottom,
      var(--wall) 0,
      color-mix(in srgb, var(--wall) 93%, #000) var(--horizon),
      color-mix(in srgb, var(--table) 78%, #fff) var(--horizon),
      var(--table) calc(var(--horizon) + 3px),
      color-mix(in srgb, var(--table) 82%, #000) 100%); }
.stage-close { position: absolute; z-index: 3; top: calc(env(safe-area-inset-top, 0px) + 22px); right: max(22px, env(safe-area-inset-right, 0px)); background: var(--ivory); color: var(--green); border: 1px solid var(--green); border-radius: 3px; padding: .5rem .8rem; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.b3d-shadow { position: absolute; left: 0; top: 0; height: 30px; border-radius: 50%; background: radial-gradient(closest-side, rgba(0,18,18,.62), rgba(0,18,18,0)); filter: blur(6px); opacity: 0; pointer-events: none; }
.b3d-shadow::after { content: ""; position: absolute; left: 8%; right: 8%; top: 9px; height: 10px; border-radius: 50%; background: rgba(0,12,12,.55); filter: blur(4px); }
.b3d { position: absolute; left: 0; top: 0; transform-style: preserve-3d; transform-origin: 50% 50%; will-change: transform; }
.f { position: absolute; top: 0; height: 100%; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.f-spine { width: var(--T); left: calc(50% - var(--T) / 2); transform: rotateY(-90deg) translateZ(calc(var(--W) / 2)); }
.f-back { left: 0; width: 100%; background: var(--tone); transform: translateZ(calc(var(--T) / -2)); box-shadow: inset 0 0 0 1px rgba(0,0,0,.08), 14px 18px 26px -8px rgba(0,20,20,.38); }
/* right-hand page block: gutter shade, paper curve and the stacked page edges */
.f-page { left: 0; top: 3px; width: calc(100% - 7px); height: calc(100% - 9px); transform: translateZ(calc(var(--T) / 2 - 1px));
  background: linear-gradient(90deg, rgba(0,30,30,.14), rgba(0,30,30,0) 9%, rgba(255,255,255,0) 80%, rgba(0,30,30,.05)), var(--paper);
  box-shadow: inset 14px 0 20px -16px rgba(0,30,30,.35),
    1px 1px 0 #F1ECDF, 2px 2px 0 #DCD4C1, 3px 3px 0 #EEE8DA, 4px 4px 0 #D8CFBB, 5px 5px 0 #ECE5D5, 6px 6px 0 #D3CAB5, 7px 7px 0 #E6DECB,
    10px 12px 18px -6px rgba(0,25,25,.28); }
/* 3D book cover (own class name: the home page already uses .cover for the magazine cover) */
.b3d-cover { position: absolute; inset: 0; transform-style: preserve-3d; transform-origin: 0 50%; }
.cover-out, .cover-in { position: absolute; inset: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.cover-in { transform: rotateY(180deg); background: var(--tone); padding: 3px 0 9px 7px; box-shadow: -14px 18px 26px -8px rgba(0,20,20,.38); }  /* board shows on the outer edge and foot */
.cover-in .pg { background: linear-gradient(270deg, rgba(0,30,30,.14), rgba(0,30,30,0) 9%, rgba(255,255,255,0) 80%, rgba(0,30,30,.05)), var(--paper);
  box-shadow: inset -14px 0 20px -16px rgba(0,30,30,.35),
    -1px 1px 0 #F1ECDF, -2px 2px 0 #DCD4C1, -3px 3px 0 #EEE8DA, -4px 4px 0 #D8CFBB, -5px 5px 0 #ECE5D5, -6px 6px 0 #D3CAB5, -7px 7px 0 #E6DECB; }

/* ── Pages: index + entry ───────────────────────────────── */
.pg { height: 100%; overflow: hidden; color: var(--ink); }
.pg-in { height: 100%; display: flex; flex-direction: column; gap: 12px; padding: 30px 30px 22px; }
.pg-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.idx-title { margin: 6px 0 0; font-size: 22px; font-weight: 800; letter-spacing: -.045em; line-height: 1; color: var(--green); text-transform: lowercase; }
.idx-q { width: 100%; font: 400 13px var(--sans); color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 8px 0; border-radius: 0; }
.idx-q:focus { outline: none; border-bottom-color: var(--green); }
.idx-q::placeholder { color: #9AA6A3; }
.idx { list-style: none; margin: 0; padding: 0; flex: 1; overflow-y: auto; min-height: 0; scrollbar-width: thin; }
.idx button { width: 100%; display: grid; grid-template-columns: 2.2em 1fr auto; gap: 8px; align-items: baseline; background: none; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent); padding: 7px 0; text-align: left; cursor: pointer; color: var(--ink); font-size: 13px; }
.idx button:hover .idx-t { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.idx button[aria-current="true"] .idx-t { color: var(--green); font-weight: 600; }
.idx button[aria-current="true"] .idx-n { color: var(--green); }
.idx-n { font-size: 10px; color: #98A39F; font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.idx-p { font-size: 8.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--brass); }
.idx-empty { margin: 0; font-size: 13px; color: var(--muted); font-family: var(--serif); font-style: italic; }
.pg-foot { margin: 0; font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }

.en { overflow-y: auto; scrollbar-width: thin; justify-content: center; gap: 22px; padding-block: 40px; }
.word { justify-content: space-between; }
.word-mid { display: grid; gap: 12px; }
.word .en-term { font-size: clamp(28px, 3.2vw, 40px); margin: 0; overflow-wrap: anywhere; }
.word-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; color: var(--green); }
.word-logo { width: 84px; aspect-ratio: 862 / 125; }
.en-lang { display: inline-block; font-family: var(--sans); font-style: normal; font-size: 9px; letter-spacing: .14em; color: var(--brass); margin-right: 8px; vertical-align: 2px; }
.en-def.es { font-style: italic; font-size: 15.5px; color: var(--muted); }
.en-blk + .en-blk { margin-top: 4px; }
.tag-pending { display: inline-block; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--brass); border: 1px solid var(--brass); border-radius: 2px; padding: 2px 6px; }
.en-term { margin: 10px 0 0; font-size: 28px; font-weight: 600; font-stretch: 112%; letter-spacing: -.015em; line-height: 1.05; color: var(--green); text-transform: uppercase; }
.en-term:focus { outline: none; }
.en-es-term { margin: -4px 0 0; font-size: 12px; color: var(--muted); }
.en-es-term span { font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; margin-right: 4px; }
.en-gram { margin: 0; font-family: var(--serif); font-size: 14px; color: var(--muted); display: flex; gap: 8px; flex-wrap: wrap; }
.en-blk { display: grid; gap: 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.en-lbl { font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: var(--brass); }
.en-def { margin: 0; font-family: var(--serif); font-size: 18px; line-height: 1.38; color: var(--ink); }
.en-1 { font-family: var(--sans); font-size: 11px; font-weight: 600; color: var(--green); margin-right: 6px; vertical-align: 2px; }
.en-def-es { margin: 0; font-family: var(--serif); font-style: italic; font-size: 14.5px; line-height: 1.42; color: var(--muted); }
.en-ety { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--ink); }
.en-ety.es { color: var(--muted); }
.en-rel { display: flex; flex-wrap: wrap; gap: 6px; }
.en-rel button { background: none; border: 1px solid var(--line); border-radius: 2px; padding: 3px 8px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--green); cursor: pointer; }
.en-rel button:hover { border-color: var(--green); }
.en-nav { margin-top: auto; display: flex; justify-content: space-between; align-items: center; padding-top: 12px; border-top: 1px solid var(--line); }
.en-nav button { background: none; border: 0; padding: 4px 0; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--green); cursor: pointer; }
.en-nav button:hover { text-decoration: underline; text-underline-offset: 4px; }
.en-count { font-size: 10.5px; letter-spacing: .1em; color: var(--muted); font-variant-numeric: tabular-nums; }

/* ── Mobile sheet ───────────────────────────────────────── */
.sheet { position: fixed; inset: 0; z-index: 60; background: var(--ivory); display: flex; flex-direction: column; }
.sheet-head { background: var(--tone); color: var(--ink-on); display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: calc(env(safe-area-inset-top, 0px) + 22px) var(--gutter-r) 18px var(--gutter); }
.sheet-eyebrow { display: block; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; opacity: .8; }
.sheet-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.sheet-close { background: none; color: inherit; border: 1px solid currentColor; border-radius: 3px; padding: .45rem .7rem; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.sheet-tabs { display: flex; border-bottom: 1px solid var(--line); padding: 0 var(--gutter-r) 0 var(--gutter); gap: 22px; }
.sheet-tabs button { background: none; border: 0; border-bottom: 2px solid transparent; padding: 12px 0 10px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); cursor: pointer; }
.sheet-tabs button[aria-selected="true"] { color: var(--green); border-bottom-color: var(--green); }
.sheet-body { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: env(safe-area-inset-bottom, 0px); }
.sheet .pg { height: auto; overflow: visible; }
.sheet .pg-in { height: auto; padding: 22px var(--gutter-r) 40px var(--gutter); }
.sheet .idx { overflow: visible; }
.sheet .en { overflow: visible; padding-block: 8px 40px; }
.sheet .word { gap: 18px; padding-bottom: 8px; }
.sheet .word .pg-head { display: none; }
.sheet .word-foot .word-logo { display: none; }

/* ── Mobile: covers in a snap carousel ──────────────────── */
@media (max-width: 759px) {
  .shelf-track { scroll-snap-type: x mandatory; padding-top: 18px; padding-bottom: 26px; cursor: auto; }
  .shelf-row { gap: 14px; padding: 0 calc(50vw - var(--cw) / 2); }
  .shelf-row::after, .shelf-row::before { display: none; }
  .bk-btn { width: var(--cw); height: calc(var(--cw) * 1.42); scroll-snap-align: center; box-shadow: 0 14px 24px -18px rgba(0,40,40,.6); }
  .bk-spine, .bk-tip { display: none; }
  .bk-cover { display: block; width: 100%; height: 100%; --u: calc(var(--cw) * 1.42 / 100); }
  .bk-btn:focus-visible { transform: none; }
  .shelf-arrow { display: none; }
  .shelf-track { -webkit-mask-image: none; mask-image: none; }
  .bk.is-found .bk-btn { transform: none; outline: 1.5px solid var(--green); outline-offset: 4px; }
  .hint .d { display: none; }
  .hint .m { display: inline; }
}

@media (prefers-reduced-motion: reduce) {
  .bk-btn, .bk-tip { transition: none; }
}

footer { margin-top: clamp(48px, 8vw, 90px); border-top: 1px solid var(--line); padding: 22px var(--gutter-r) 30px var(--gutter); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
footer a { text-decoration: none; }
