/* TailorTrained - Trail Map system.
   Forest-green fields own regions, cream map panels fold over them, amber is
   reserved for trail blazes (primary actions, current waypoint, chosen answer),
   and one trail line (the rail) registers sections and quiz steps. */

/* Self-hosted variable fonts (from @fontsource-variable, SIL OFL). */
@font-face { font-family: "Fraunces"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("/fonts/fraunces-latin-wght-normal.woff2") format("woff2-variations"); }
@font-face { font-family: "Fraunces"; font-style: italic; font-display: swap; font-weight: 100 900; src: url("/fonts/fraunces-latin-wght-italic.woff2") format("woff2-variations"); }
@font-face { font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("/fonts/inter-latin-wght-normal.woff2") format("woff2-variations"); }


:root {
  --contours: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAwIDgwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiPjxwYXRoIGQ9Ik0zNS40IDBMMjcuNyAxMEwyMCAyMC43TDEwIDM1LjRMMC42IDUwTDAgNTFNNTIuMyAwTDQ0LjEgMTBMMzYuNCAyMEwyOS4yIDMwTDIwIDQzLjVMMTAgNTkuMkwzLjQgNzBMMCA3NS44TTY5LjggMEw2MCAxMUw1MCAyMy40TDQwIDM2LjlMMzEgNTBMMjQuNSA2MEwxOC4zIDcwTDEwIDg0TDEgMTAwTDAgMTAxLjdNODguMiAwTDc4LjQgMTBMNjkuNCAyMEw2MCAzMS41TDUwIDQ0LjlMNDAgNTkuNUwzMy4zIDcwTDI3LjIgODBMMjAgOTIuNEwxMC4zIDExMEw1IDEyMEwwIDEyOS43TTExNTYuNSAwTDExNjYuNiAxMEwxMTc1LjEgMjBMMTE4Mi4zIDMwTDExOTAgNDIuOEwxMTk4LjIgNjBMMTIwMCA2NC41TTEwOC4xIDBMOTcuMSAxMEw4Ny4xIDIwTDc4LjEgMzBMNjkuOSA0MEw2MCA1My4yTDUwIDY3LjhMNDIuMyA4MEwzNi4zIDkwTDMwIDEwMS4xTDIwIDExOS43TDE0LjggMTMwTDkuOCAxNDBMMC40IDE2MEwwIDE2MC45TTExMjAuNCAwTDExMzMuNiAxMEwxMTQ0LjcgMjBMMTE1NC4xIDMwTDExNjIuMiA0MEwxMTcwIDUxLjdMMTE3OS44IDcwTDExODQuMSA4MEwxMTkwIDk2LjdMMTE5My44IDExMEwxMTk4LjQgMTMwTDEyMDAgMTM4LjJNMTMwLjMgMEwxMjAgNy44TDExMCAxNi40TDEwMCAyNS45TDkwIDM2LjZMODAgNDguNEw3MS4yIDYwTDY0LjIgNzBMNTcuNiA4MEw1MCA5Mi41TDQwLjEgMTEwTDM0LjggMTIwTDI5LjcgMTMwTDIwLjIgMTUwTDE1LjcgMTYwTDEwIDE3M0wyLjkgMTkwTDAgMTk3LjRNMTA4MC4yIDBMMTA5Ny4xIDEwTDExMTAgMTguOUwxMTIwIDI2LjlMMTEzMCAzNi4xTDExNDAgNDYuOUwxMTUwIDU5LjhMMTE1Ni41IDcwTDExNjIgODBMMTE3MCA5Ny42TDExNzQuNiAxMTBMMTE4MCAxMjcuOUwxMTgzLjEgMTQwTDExODcuMyAxNjBMMTE5MCAxNzQuNEwxMTkyLjYgMTkwTDExOTUuOCAyMTBMMTE5OSAyMzBMMTIwMCAyMzYuMU0xOS45IDgwMEwxMCA3ODIuNUw0IDc3MEwwIDc2MC44TTE1Ni40IDBMMTQwLjMgMTBMMTMwIDE3LjZMMTIwIDI1LjlMMTEwIDM1LjJMMTAwIDQ1LjdMOTAgNTcuNEw4MC40IDcwTDczLjUgODBMNjcgOTBMNjAgMTAxLjdMNTAgMTE5LjlMNDQuOSAxMzBMMzUuNCAxNTBMMzAgMTYyLjNMMjIuNyAxODBMMTguNyAxOTBMMTEuMyAyMTBMNy44IDIyMEwxLjMgMjQwTDAgMjQ0LjJNMTAzNy4zIDBMMTA1MCA2LjFMMTA2MCAxMS4yTDEwNzUuMyAyMEwxMDkwIDI5LjZMMTEwMCAzNy4xTDExMTAgNDUuN0wxMTIwIDU1LjZMMTEzMCA2Ny4yTDExMzkuMSA4MEwxMTQ1LjEgOTBMMTE1MC40IDEwMEwxMTU5IDEyMEwxMTYyLjUgMTMwTDExNjguNSAxNTBMMTE3MS4xIDE2MEwxMTc1LjYgMTgwTDExNzkuNiAyMDBMMTE4MS41IDIxMEwxMTg1LjIgMjMwTDExODguOSAyNTBMMTE5MC45IDI2MEwxMTk1LjEgMjgwTDExOTkuNyAzMDBMMTIwMCAzMDEuMU0zNi40IDgwMEwyOS42IDc5MEwyMCA3NzMuMUwxMy43IDc2MEw5LjQgNzUwTDIuMiA3MzBMMCA3MjMuMk0xODkuOSAwTDE3MCA4LjlMMTYwIDE0LjRMMTUwIDIwLjZMMTM3IDMwTDEyNS4yIDQwTDExNC45IDUwTDEwNS43IDYwTDk3LjUgNzBMOTAgODBMODAgOTQuOUw3MC45IDExMEw2NS40IDEyMEw2MCAxMzAuNEw1MC44IDE1MEw0Ni40IDE2MEw0MCAxNzUuN0wzNC42IDE5MEwzMCAyMDIuOUwyNC4zIDIyMEwyMCAyMzRMMTUuNCAyNTBMMTAuMiAyNzBMNy45IDI4MEwzLjUgMzAwTDAgMzE5TTk5My4zIDBMMTAxMCA3TDEwMjAgMTEuNkwxMDM3LjMgMjBMMTA1MCAyNi44TDEwNjAgMzIuN0wxMDcxLjIgNDBMMTA4NC44IDUwTDEwOTYuNSA2MEwxMTA2LjUgNzBMMTExNS4yIDgwTDExMjIuNyA5MEwxMTMwIDEwMS4zTDExMzkuOSAxMjBMMTE0NC4zIDEzMEwxMTUwIDE0NS4xTDExNTQuOCAxNjBMMTE2MCAxNzguNkwxMTYyLjggMTkwTDExNjcuNCAyMTBMMTE3MCAyMjIuNEwxMTczLjcgMjQwTDExNzcuOSAyNjBMMTE4MCAyNzBMMTE4NC42IDI5MEwxMTg5LjYgMzEwTDExOTIuNCAzMjBMMTE5OC4zIDM0MEwxMjAwIDM0NS4yTTUzLjYgODAwTDQ2IDc5MEwzOS4yIDc4MEwzMCA3NjMuOEwyMy40IDc1MEwxOS4yIDc0MEwxMi4xIDcyMEw5LjEgNzEwTDMuOSA2OTBMMCA2NzEuMk0yNTAuMyAwTDI0MCAxLjVMMjIwIDUuN0wyMDUuNCAxMEwxOTAgMTUuN0wxODAgMjAuMkwxNjIuMyAzMEwxNTAgMzguM0wxNDAgNDYuMUwxMzAgNTUuMUwxMjAgNjUuM0wxMTAgNzYuOUwxMDAgOTBMOTAgMTA1LjJMODEuMyAxMjBMNzYgMTMwTDcwIDE0Mi4xTDYyIDE2MEw1Ny45IDE3MEw1MC40IDE5MEw0NyAyMDBMNDAuNyAyMjBMMzcuOCAyMzBMMzIuNSAyNTBMMzAgMjYwLjZMMjUuNyAyODBMMjEuOCAzMDBMMjAgMzEwLjRMMTYuOSAzMzBMMTQuMiAzNTBMMTEuOCAzNzBMMTAgMzg4LjFMOC45IDQwMEw3LjMgNDIwTDUuOSA0NDBMNC43IDQ2MEwzLjcgNDgwTDMgNTAwTDIuNSA1MjBMMi4zIDU0MEwyLjQgNTYwTDMgNTgwTDQgNjAwTDUuNSA2MjBMNy43IDY0MEwxMCA2NTUuOUwxMi40IDY3MEwxNi43IDY5MEwyMCA3MDIuNUwyNS40IDcyMEwzMCA3MzIuNEwzNy44IDc1MEw0MyA3NjBMNTAgNzcxLjhMNjAgNzg1LjlMNzAgNzk3LjdMNzIuMSA4MDBNOTQ5IDBMOTYwIDQuMUw5NzQuOCAxMEw5OTAgMTYuNEwxMDAwIDIwLjlMMTAxOC45IDMwTDEwMzAgMzUuOEwxMDQwIDQxLjVMMTA1My41IDUwTDEwNjcuNiA2MEwxMDc5LjggNzBMMTA5MCA3OS43TDEwOTkuNCA5MEwxMTA3LjMgMTAwTDExMTQuMiAxMTBMMTEyMC4zIDEyMEwxMTMwIDEzOS4xTDExMzQuNiAxNTBMMTE0MCAxNjQuNEwxMTQ1LjEgMTgwTDExNTAgMTk3LjRMMTE1My4zIDIxMEwxMTU4LjEgMjMwTDExNjAuNCAyNDBMMTE2NSAyNjBMMTE2OS43IDI4MEwxMTcyLjEgMjkwTDExNzcuMyAzMTBMMTE4MCAzMjBMMTE4NS45IDM0MEwxMTkwIDM1Mi42TDExOTYuMSAzNzBMMTIwMCAzODAuNk01MzkuNSAwTDUyMCAyLjlMNTAwIDUuNkw0ODAgNy44TDQ2MCA5LjVMNDUwIDEwLjFMNDMwIDExTDQxMCAxMS41TDM5MCAxMS42TDM3MCAxMS4zTDM1MCAxMUwzMzAgMTAuN0wzMTAgMTAuNkwyOTAgMTFMMjcwIDEyLjJMMjUwIDE0LjZMMjMwIDE4LjRMMjIwIDIwLjlMMjAwIDI3LjdMMTkwIDMxLjlMMTc0LjYgNDBMMTYwIDQ5LjNMMTUwIDU3TDE0MCA2NS44TDEzMCA3NS45TDEyMCA4Ny41TDExMC42IDEwMEwxMDMuOSAxMTBMOTcuOCAxMjBMOTAgMTM0LjNMODIuMyAxNTBMNzcuOSAxNjBMNzAgMTgwTDY2LjUgMTkwTDYwLjEgMjEwTDU3LjIgMjIwTDUyIDI0MEw0OS42IDI1MEw0NS4zIDI3MEw0MS42IDI5MEwzOS45IDMwMEwzNi45IDMyMEwzNC4xIDM0MEwzMS43IDM2MEwzMCAzNzQuOEwyOC4zIDM5MEwyNi4zIDQxMEwyNC4zIDQzMEwyMi41IDQ1MEwyMC44IDQ3MEwyMCA0ODAuOEwxOC43IDUwMEwxNy42IDUyMEwxNi44IDU0MEwxNi40IDU2MEwxNi42IDU4MEwxNy4yIDYwMEwxOC41IDYyMEwyMCA2MzQuOUwyMS45IDY1MEwyNS4zIDY3MEwyOS44IDY5MEwzMi42IDcwMEwzOS4yIDcyMEw0My4yIDczMEw1MCA3NDQuN0w1OC42IDc2MEw2NS40IDc3MEw3My4xIDc4MEw4MiA3OTBMOTIuNiA4MDBNOTAyLjYgMEw5MjAgNS44TDkzMS45IDEwTDk1MCAxNi44TDk2MCAyMC45TDk4MCAyOS40TDk5MCAzNEwxMDAyLjIgNDBMMTAyMCA0OS41TDEwMzAgNTUuNEwxMDQwIDYxLjhMMTA1MS43IDcwTDEwNjQuMiA4MEwxMDc1LjEgOTBMMTA4NC42IDEwMEwxMDkyLjkgMTEwTDExMDAuMiAxMjBMMTExMCAxMzUuOUwxMTE3LjMgMTUwTDExMjEuOCAxNjBMMTEyOS42IDE4MEwxMTMzIDE5MEwxMTM5LjIgMjEwTDExNDIgMjIwTDExNDcuMiAyNDBMMTE1MCAyNTFMMTE1NC43IDI3MEwxMTU5LjcgMjkwTDExNjIuNCAzMDBMMTE2Ny44IDMyMEwxMTcwLjcgMzMwTDExNzYuOSAzNTBMMTE4MC4yIDM2MEwxMTg3LjMgMzgwTDExOTEuMiAzOTBMMTE5OS4zIDQxMEwxMjAwIDQxMS42TTEyMDAgNzcwLjhMMTE4OC42IDc4MEwxMTc0LjYgNzkwTDExNjAgNzk5LjRMMTE1OSA4MDBNNjExLjkgMEw2MDAgMi4xTDU4MCA1LjZMNTYwIDlMNTUwIDEwLjdMNTMwIDEzLjdMNTEwIDE2LjRMNDkwIDE4LjhMNDc3LjUgMjBMNDYwIDIxLjRMNDQwIDIyLjZMNDIwIDIzLjRMNDAwIDIzLjlMMzgwIDI0TDM2MCAyMy45TDM0MCAyMy44TDMyMCAyMy45TDMwMCAyNC40TDI4MCAyNS42TDI2MCAyNy43TDI0Ni40IDMwTDIzMCAzMy43TDIxMCA0MEwyMDAgNDQuMUwxODcuOSA1MEwxNzEuNCA2MEwxNjAgNjguNUwxNTAgNzcuMkwxNDAgODcuM0wxMzAgOTlMMTIxLjggMTEwTDExNS4yIDEyMEwxMDkuMSAxMzBMMTAwIDE0Ny41TDk0LjIgMTYwTDkwIDE3MC4xTDgyLjcgMTkwTDc5LjQgMjAwTDczLjcgMjIwTDcwIDIzNC43TDY2LjYgMjUwTDYyLjcgMjcwTDYwIDI4NS43TDU3LjggMzAwTDU1IDMyMEw1Mi41IDM0MEw1MC4xIDM2MEw0OSAzNzBMNDYuNyAzOTBMNDQuNCA0MTBMNDIuMSA0MzBMNDAgNDQ4LjFMMzguNyA0NjBMMzYuNSA0ODBMMzQuNSA1MDBMMzIuOCA1MjBMMzEuNSA1NDBMMzAuNiA1NjBMMzAuMyA1ODBMMzAuNyA2MDBMMzEuOCA2MjBMMzMuNyA2NDBMMzYuNyA2NjBMNDAgNjc2LjdMNDMuMyA2OTBMNDkuNiA3MTBMNTMuNSA3MjBMNjAgNzM0LjNMNjguNyA3NTBMNzUuNSA3NjBMODMuMiA3NzBMOTIuMyA3ODBMMTAzIDc5MEwxMTYuMSA4MDBNODQ5LjEgMEw4NjAgMi43TDg4MCA4LjNMODkwIDExLjNMOTEwIDE3LjlMOTIwIDIxLjVMOTQwIDI5LjFMOTUwIDMzLjJMOTY1LjggNDBMOTgwIDQ2LjZMOTkwIDUxLjZMMTAwNS43IDYwTDEwMjAgNjguNUwxMDMwIDc1LjFMMTA0MCA4Mi4zTDEwNTAgOTAuMkwxMDYwLjkgMTAwTDEwNzAuNyAxMTBMMTA4MCAxMjAuOEwxMDkwIDEzNC41TDEwOTkuNiAxNTBMMTEwNC45IDE2MEwxMTEwIDE3MC43TDExMTggMTkwTDExMjEuNiAyMDBMMTEyOC4xIDIyMEwxMTMxLjEgMjMwTDExMzYuOCAyNTBMMTE0MCAyNjEuOUwxMTQ0LjggMjgwTDExNTAgMjk5LjVMMTE1Mi45IDMxMEwxMTU4LjYgMzMwTDExNjEuNiAzNDBMMTE2OCAzNjBMMTE3MS40IDM3MEwxMTc4LjcgMzkwTDExODIuNiA0MDBMMTE5MCA0MTcuOUwxMTk1LjIgNDMwTDEyMDAgNDQwLjZNMTIwMCA3NTMuMkwxMTkwIDc2MkwxMTc5LjkgNzcwTDExNjUuNiA3ODBMMTE1MCA3ODkuN0wxMTQwIDc5NS4zTDExMzEuMiA4MDBNMTIwMCA0NjkuM0wxMTkxLjIgNDUwTDExODYuNyA0NDBMMTE4MCA0MjQuM0wxMTc0LjEgNDEwTDExNzAgMzk5LjVMMTE2Mi44IDM4MEwxMTU5LjMgMzcwTDExNTIuNyAzNTBMMTE0OS42IDM0MEwxMTQzLjYgMzIwTDExNDAgMzA3LjNMMTEzNS4xIDI5MEwxMTMwIDI3MS42TDExMjYuNyAyNjBMMTEyMC43IDI0MEwxMTE3LjUgMjMwTDExMTAuNiAyMTBMMTEwNi44IDIwMEwxMTAwIDE4NC4yTDEwOTMgMTcwTDEwODcuNSAxNjBMMTA4MCAxNDguMUwxMDcwIDEzNC4zTDEwNjAgMTIyLjVMMTA1MCAxMTIuM0wxMDQwIDEwMy4yTDEwMzAgOTUuMUwxMDIwIDg3LjhMMTAwOC4zIDgwTDk5MS41IDcwTDk4MCA2My44TDk3MCA1OC44TDk1MS4yIDUwTDk0MCA0NS4yTDkyNy4zIDQwTDkxMCAzMy40TDkwMCAyOS45TDg4MCAyMy4zTDg2OC45IDIwTDg1MCAxNC45TDgzMCAxMC4yTDgyMCA4LjJMODAwIDQuOUw3ODAgMi40TDc2MCAwLjlMNzQwIDAuMkw3MjAgMC40TDcwMCAxLjRMNjgwIDMuMUw2NjAgNS40TDY0MCA4LjJMNjI4LjQgMTBMNjEwIDEyLjlMNTkwIDE2LjJMNTcwIDE5LjVMNTYwIDIxLjFMNTQwIDI0LjFMNTIwIDI2LjhMNTAwIDI5LjNMNDkwIDMwLjRMNDcwIDMyLjJMNDUwIDMzLjdMNDMwIDM0LjhMNDEwIDM1LjVMMzkwIDM2TDM3MCAzNi4zTDM1MCAzNi41TDMzMCAzNi45TDMxMCAzNy41TDI5MCAzOC43TDI3Ny4xIDQwTDI2MCA0Mi40TDI0MCA0Ni41TDIyNy44IDUwTDIxMCA1Ni42TDIwMCA2MS4yTDE4NC43IDcwTDE3MC42IDgwTDE2MCA4OS4yTDE1MCA5OS4zTDE0MC45IDExMEwxMzMuNiAxMjBMMTI3IDEzMEwxMjAgMTQyTDExMSAxNjBMMTA2LjcgMTcwTDEwMCAxODcuNkw5NS45IDIwMEw5MC4yIDIyMEw4Ny43IDIzMEw4My40IDI1MEw4MCAyNjguOUw3OC4yIDI4MEw3NS40IDMwMEw3Mi44IDMyMEw3MC41IDM0MEw2OS40IDM1MEw2Ny4xIDM3MEw2NC44IDM5MEw2Mi4zIDQxMEw2MCA0MjhMNTguNCA0NDBMNTUuNyA0NjBMNTMgNDgwTDUwLjUgNTAwTDQ5LjQgNTEwTDQ3LjMgNTMwTDQ1LjcgNTUwTDQ0LjcgNTcwTDQ0LjQgNTkwTDQ0LjggNjEwTDQ2LjIgNjMwTDQ4LjYgNjUwTDUwLjIgNjYwTDU0LjYgNjgwTDYwIDY5OC4zTDY0LjMgNzEwTDcwIDcyMi45TDc5LjMgNzQwTDg2LjEgNzUwTDkzLjkgNzYwTDEwMy4xIDc3MEwxMTQuMiA3ODBMMTI3LjkgNzkwTDE0MCA3OTcuMkwxNDUuNSA4MDBNMTIwMCA3MzMuN0wxMTkwIDc0My42TDExODAgNzUyLjRMMTE3MCA3NjAuMUwxMTU1LjUgNzcwTDExNDAgNzc5LjNMMTEzMCA3ODQuNkwxMTE5IDc5MEwxMTAwIDc5OC40TDEwOTUuOSA4MDBNMTIwMCA0OTkuNUwxMTkxLjQgNDgwTDExODYuOSA0NzBMMTE4MCA0NTQuNEwxMTczLjggNDQwTDExNjkuNiA0MzBMMTE2MS42IDQxMEwxMTU3LjggNDAwTDExNTAuNSAzODBMMTE0Ny4xIDM3MEwxMTQwLjYgMzUwTDExMzcuNSAzNDBMMTEzMS41IDMyMEwxMTI4LjYgMzEwTDExMjIuNyAyOTBMMTExOS44IDI4MEwxMTEzLjcgMjYwTDExMTAgMjQ4LjNMMTEwMy43IDIzMEwxMTAwIDIyMEwxMDkxLjYgMjAwTDEwODYuOSAxOTBMMTA4MCAxNzdMMTA3MCAxNjAuN0wxMDYyLjMgMTUwTDEwNTQuMyAxNDBMMTA0NS4yIDEzMEwxMDM0LjkgMTIwTDEwMjMuMyAxMTBMMTAxMCAxMDBMMTAwMCA5My4yTDk5MCA4Ni45TDk3Ny45IDgwTDk2MCA3MC42TDk1MCA2NS44TDkzNy4xIDYwTDkyMCA1Mi44TDkxMCA0OC45TDg5MCA0MS43TDg4MCAzOC40TDg2MCAzMi4zTDg1MCAyOS42TDgzMCAyNC43TDgxMCAyMC43TDgwMCAxOS4xTDc4MCAxNi40TDc2MCAxNC43TDc0MCAxMy45TDcyMCAxMy45TDcwMCAxNC43TDY4MCAxNi4zTDY2MCAxOC40TDY0Ny4yIDIwTDYzMCAyMi4zTDYxMCAyNS4zTDU5MCAyOC40TDU3OS4zIDMwTDU2MCAzMi44TDU0MCAzNS42TDUyMCAzOC4yTDUwNC44IDQwTDQ5MCA0MS41TDQ3MCA0My40TDQ1MCA0NC45TDQzMCA0Ni4xTDQxMCA0N0wzOTAgNDcuN0wzNzAgNDguM0wzNTAgNDguOUwzMzAgNDkuN0wzMjAgNTAuMkwzMDAgNTEuNkwyODAgNTMuOEwyNjAgNTcuMkwyNDggNjBMMjMwIDY1LjVMMjE4LjQgNzBMMjAwIDc5LjNMMTkwIDg1LjdMMTgwIDkzLjFMMTcwIDEwMS44TDE2MCAxMTIuMUwxNTAgMTI0LjRMMTQwIDEzOUwxMzMuNiAxNTBMMTI4LjQgMTYwTDEyMCAxNzkuMkwxMTUuOSAxOTBMMTEwIDIwOC42TDEwNi45IDIyMEwxMDIuMiAyNDBMMTAwIDI1MS4xTDk2LjcgMjcwTDkzLjkgMjkwTDkxLjQgMzEwTDkwIDMyMi45TDg4LjEgMzQwTDg2IDM2MEw4My44IDM4MEw4MS4zIDQwMEw4MCA0MTAuNEw3Ny4zIDQzMEw3NC4zIDQ1MEw3MS4zIDQ3MEw2OS43IDQ4MEw2Ni44IDUwMEw2NC4xIDUyMEw2MS44IDU0MEw2MCA1NjBMNTkuNCA1NzBMNTguNyA1OTBMNTkgNjEwTDYwIDYyN0w2MS4zIDY0MEw2NC41IDY2MEw2OS4yIDY4MEw3Mi4zIDY5MEw4MCA3MTBMODUgNzIwTDkwLjYgNzMwTDEwMCA3NDMuNUwxMTAgNzU1LjFMMTIwIDc2NC43TDEzMCA3NzIuN0wxNDEuMSA3ODBMMTYwIDc4OS43TDE3MCA3OTMuN0wxOTAgNzk5LjdMMTkxLjIgODAwTTEyMDAgNzExLjNMMTE5MCA3MjMuMUwxMTgwIDczMy4xTDExNzAgNzQxLjhMMTE1OS4yIDc1MEwxMTQzLjkgNzYwTDExMzAgNzY3LjlMMTEyMCA3NzIuOUwxMTA0LjIgNzgwTDEwOTAgNzg1LjdMMTA3Ny44IDc5MEwxMDYwIDc5NS42TDEwNDQgODAwTTU1NS42IDgwMEw1NDAgNzk3LjNMNTIwIDc5NC4xTDUwMCA3OTEuMkw0OTAgNzkwTDQ3MCA3ODguMUw0NTAgNzg3LjFMNDMwIDc4Ny4xTDQxMCA3ODguMUwzOTAuMSA3OTBMMzgwIDc5MS4zTDM2MCA3OTQuMkwzNDAgNzk3LjRMMzIzLjUgODAwTTEyMDAgNTM0LjhMMTE5NC40IDUyMEwxMTkwIDUwOS4xTDExODIgNDkwTDExNzcuNiA0ODBMMTE3MCA0NjIuMkwxMTY0LjkgNDUwTDExNjAgNDM4LjJMMTE1Mi44IDQyMEwxMTQ5IDQxMEwxMTQxLjcgMzkwTDExMzguMiAzODBMMTEzMS42IDM2MEwxMTI4LjUgMzUwTDExMjIuMyAzMzBMMTExOS4zIDMyMEwxMTEzLjMgMzAwTDExMTAgMjg5LjNMMTEwMy45IDI3MEwxMTAwIDI1OC4yTDEwOTMuNSAyNDBMMTA4OS42IDIzMEwxMDgwLjkgMjEwTDEwNzYgMjAwTDEwNzAgMTg4LjlMMTA2MCAxNzIuOEwxMDUwLjggMTYwTDEwNDIuNSAxNTBMMTAzMy4yIDE0MEwxMDIyLjcgMTMwTDEwMTAuOSAxMjBMMTAwMCAxMTEuOEw5OTAgMTA1TDk4MCA5OC43TDk2NC44IDkwTDk1MCA4Mi4zTDk0MCA3Ny41TDkyMy4yIDcwTDkxMCA2NC41TDg5OC4yIDYwTDg4MCA1My42TDg2OSA1MEw4NTAgNDQuNEw4MzIuOCA0MEw4MjAgMzcuMUw4MDAgMzMuNEw3ODAgMzAuNUw3NzAgMjkuNUw3NTAgMjhMNzMwIDI3LjRMNzEwIDI3LjZMNjkwIDI4LjZMNjcyLjYgMzBMNjYwIDMxLjJMNjQwIDMzLjVMNjIwIDM2LjFMNjAwIDM4LjhMNTkwIDQwLjJMNTcwIDQyLjlMNTUwIDQ1LjZMNTMwIDQ4LjFMNTEzLjQgNTBMNTAwIDUxLjRMNDgwIDUzLjNMNDYwIDU1TDQ0MCA1Ni40TDQyMCA1Ny43TDQwMCA1OC43TDM4MCA1OS43TDM3MCA2MC4yTDM1MCA2MS4yTDMzMCA2Mi40TDMxMCA2NC4xTDI5MCA2Ni41TDI3MC4yIDcwTDI2MCA3Mi4zTDI0MCA3OC40TDIzMCA4Mi4yTDIxNCA5MEwyMDAgOTguNkwxOTAgMTA2LjJMMTgwIDExNS4xTDE3MCAxMjUuN0wxNjAgMTM4LjRMMTUyLjMgMTUwTDE0Ni42IDE2MEwxNDAgMTczLjRMMTMzLjEgMTkwTDEyOS41IDIwMEwxMjMuNiAyMjBMMTIwIDIzNC44TDExNi45IDI1MEwxMTMuNSAyNzBMMTEwLjcgMjkwTDEwOS41IDMwMEwxMDcuMyAzMjBMMTA1LjMgMzQwTDEwMy4zIDM2MEwxMDEuMiAzODBMMTAwIDM5MC40TDk3LjUgNDEwTDk0LjcgNDMwTDkxLjYgNDUwTDkwIDQ2MEw4Ni43IDQ4MEw4My40IDUwMEw4MC4zIDUyMEw3OC45IDUzMEw3Ni40IDU1MEw3NC43IDU3MEw3My44IDU5MEw3My44IDYxMEw3NS4xIDYzMEw3Ny43IDY1MEw4MCA2NjEuOUw4NC45IDY4MEw5MCA2OTQuNEw5Ny4yIDcxMEwxMDMgNzIwTDExMCA3MzAuM0wxMjAgNzQyLjJMMTMwIDc1MS44TDE0MC40IDc2MEwxNTYuOCA3NzBMMTcwIDc3Ni4xTDE4MC40IDc4MEwyMDAgNzg1LjJMMjIwIDc4OC4zTDI0MCA3ODkuNkwyNjAgNzg5LjRMMjgwIDc4Ny45TDMwMCA3ODUuM0wzMjAgNzgyLjFMMzMxLjggNzgwTDM1MCA3NzYuN0wzNzAgNzczLjNMMzkwIDc3MC41TDQwMCA3NjkuNUw0MjAgNzY4LjFMNDQwIDc2Ny45TDQ2MCA3NjguN0w0NzQuMiA3NzBMNDkwIDc3MS45TDUxMCA3NzVMNTMwIDc3OC42TDU0MCA3ODAuNUw1NjAgNzg0LjRMNTgwIDc4OC4zTDU5MCA3OTAuMkw2MTAgNzkzLjhMNjMwIDc5N0w2NTAgNzk5LjhMNjUxLjUgODAwTTEyMDAgNjgyLjZMMTE5MCA2OTguNkwxMTgxIDcxMEwxMTcxLjQgNzIwTDExNjAgNzMwTDExNDYuNCA3NDBMMTEzMC4zIDc1MEwxMTIwIDc1NS40TDExMTAgNzYwLjJMMTA5MCA3NjguNEwxMDgwIDc3MkwxMDYwIDc3OC4xTDEwNTAgNzgwLjhMMTAzMCA3ODUuNUwxMDEwIDc4OS4zTDEwMDAgNzkxTDk4MCA3OTRMOTYwIDc5Ni41TDk0MCA3OTguN0w5MjYuMSA4MDBNMTIwMCA1OTguN0wxMTk3LjUgNTgwTDExOTMgNTYwTDExOTAgNTQ5LjRMMTE4My41IDUzMEwxMTc5LjggNTIwTDExNzEuOSA1MDBMMTE2Ny44IDQ5MEwxMTYwIDQ3MUwxMTU1LjUgNDYwTDExNTAgNDQ2LjNMMTE0My42IDQzMEwxMTM5LjkgNDIwTDExMzIuNiA0MDBMMTEyOS4yIDM5MEwxMTIyLjUgMzcwTDExMTkuMyAzNjBMMTExMyAzNDBMMTExMCAzMzBMMTEwMy44IDMxMEwxMTAwIDI5Ny45TDEwOTQuMSAyODBMMTA5MCAyNjcuOUwxMDgzLjQgMjUwTDEwNzkuNCAyNDBMMTA3MC40IDIyMEwxMDY1LjMgMjEwTDEwNTkuOCAyMDBMMTA1MCAxODQuNEwxMDQwIDE3MC43TDEwMzEgMTYwTDEwMjEuNSAxNTBMMTAxMC45IDE0MEwxMDAwIDEzMUw5OTAgMTIzLjVMOTgwIDExNi42TDk2OS41IDExMEw5NTEuOSAxMDBMOTQwIDkzLjlMOTMwIDg5LjFMOTEwIDgwLjNMOTAwIDc2LjNMODgzLjIgNzBMODcwIDY1LjVMODUyLjIgNjBMODQwIDU2LjZMODIwIDUxLjhMODEwIDQ5LjdMNzkwIDQ2LjJMNzcwIDQzLjZMNzUwIDQxLjlMNzMwIDQxLjFMNzEwIDQxLjFMNjkwIDQxLjhMNjcwIDQzLjFMNjUwIDQ0LjlMNjMwIDQ3TDYxMCA0OS40TDYwMCA1MC42TDU4MCA1M0w1NjAgNTUuNEw1NDAgNTcuOEw1MjAuMSA2MEw1MTAgNjFMNDkwIDYzTDQ3MCA2NC44TDQ1MCA2Ni40TDQzMCA2Ny44TDQxMCA2OS4yTDM5Ny4zIDcwTDM4MCA3MS4xTDM2MCA3Mi41TDM0MCA3NC4xTDMyMCA3Ni4xTDMwMCA3OC45TDI5MCA4MC42TDI3MCA4NUwyNTMuNSA5MEwyNDAgOTUuMkwyMjkuNiAxMDBMMjEyLjcgMTEwTDIwMCAxMTkuNUwxOTAgMTI4LjdMMTgwIDEzOS44TDE3Mi4yIDE1MEwxNjUuNyAxNjBMMTYwIDE3MEwxNTAuNiAxOTBMMTQ2LjggMjAwTDE0MC40IDIyMEwxMzcuOCAyMzBMMTMzLjQgMjUwTDEzMCAyNjkuOUwxMjguNSAyODBMMTI2LjEgMzAwTDEyNCAzMjBMMTIyLjEgMzQwTDEyMC4yIDM2MEwxMTkuMiAzNzBMMTE3LjEgMzkwTDExNC43IDQxMEwxMTIgNDMwTDExMCA0NDMuMUwxMDcuMyA0NjBMMTAzLjggNDgwTDEwMC4zIDUwMEw5OC42IDUxMEw5NS40IDUzMEw5Mi43IDU1MEw5MC42IDU3MEw4OS45IDU4MEw4OS4zIDYwMEw4OS45IDYyMEw5MC44IDYzMEw5My43IDY1MEw5OC42IDY3MEwxMDEuOSA2ODBMMTEwIDY5OC42TDExNi42IDcxMEwxMjMuNyA3MjBMMTMyLjMgNzMwTDE0My4yIDc0MEwxNTcuMiA3NTBMMTcwIDc1Ni45TDE4MCA3NjEuMkwyMDAgNzY3LjJMMjE1LjIgNzcwTDIzMCA3NzEuNUwyNTAgNzcxLjlMMjcwIDc3MC43TDI4MCA3NjkuNkwzMDAgNzY2LjZMMzIwIDc2M0wzMzUuNCA3NjBMMzUwIDc1Ny4yTDM3MCA3NTMuN0wzOTAgNzUxTDQwMCA3NTBMNDIwIDc0OC45TDQ0MCA3NDlMNDU3LjQgNzUwTDQ3MCA3NTEuMkw0OTAgNzU0TDUxMCA3NTcuNUw1MjIuNiA3NjBMNTQwIDc2My43TDU2MCA3NjguMUw1NzAgNzcwLjNMNTkwIDc3NC41TDYxMCA3NzguNUw2MjAgNzgwLjNMNjQwIDc4My42TDY2MCA3ODYuNEw2ODAgNzg4LjdMNjk0LjkgNzkwTDcxMCA3OTEuMUw3MzAgNzkyTDc1MCA3OTIuNEw3NzAgNzkyLjRMNzkwIDc5Mkw4MTAgNzkxLjFMODI4LjkgNzkwTDg0MCA3ODkuMkw4NjAgNzg3LjdMODgwIDc4NS45TDkwMCA3ODRMOTIwIDc4Mkw5MzkuMyA3ODBMOTUwIDc3OC44TDk3MCA3NzYuNUw5OTAgNzczLjhMMTAxMCA3NzAuOEwxMDIwIDc2OUwxMDQwIDc2NUwxMDYwIDc2MC4xTDEwNzAgNzU3LjFMMTA5MCA3NTAuM0wxMTAwIDc0Ni4zTDExMTMuNSA3NDBMMTEzMCA3MzAuOUwxMTQwIDcyNC4zTDExNTAgNzE2LjdMMTE2MCA3MDcuOEwxMTcwIDY5N0wxMTgwIDY4My41TDExODcuNiA2NzBMMTE5MS45IDY2MEwxMTk3LjcgNjQwTDEyMDAgNjIzLjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0ZBRjZFRSIgc3Ryb2tlLXdpZHRoPSIxLjEiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIG9wYWNpdHk9Ii41NSIvPjwvc3ZnPg==");
  --green: #1F4D3A;
  --green-deep: #163A2B;
  --green-mid: #2C6650;
  --sage: #C9D8C5;
  --sage-soft: #E6EEE2;
  --cream: #FAF6EE;
  --paper: #FFFDF8;
  --fold: #F1EADB;
  --amber: #E8A33D;
  --amber-deep: #CF8A24;
  --amber-soft: #FBEBD0;
  --ink: #2B2B2B;
  --ink-2: #55534C;
  --ink-3: #6E6B62;
  --on-green: #FAF6EE;
  --on-green-2: #C4D6CB;
  --line: rgba(31, 77, 58, .16);
  --line-strong: rgba(31, 77, 58, .32);
  --danger: #A63A24;
  --ok: #2C6650;

  --f-display: "Fraunces", Georgia, "Times New Roman", serif;
  --f-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --r-sm: 8px;
  --r: 14px;
  --r-lg: 22px;
  --gutter: clamp(16px, 4.5vw, 40px);
  --maxw: 1180px;
  --shadow: 0 1px 2px rgba(22, 58, 43, .06), 0 8px 24px -12px rgba(22, 58, 43, .22);
  --shadow-lift: 0 2px 4px rgba(22, 58, 43, .08), 0 18px 40px -18px rgba(22, 58, 43, .38);
  --ease: cubic-bezier(.16, 1, .3, 1);
  --rail-x: 22px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 84px; }
body {
  margin: 0; background: var(--cream); color: var(--ink);
  font: 400 17px/1.6 var(--f-body); font-feature-settings: "cv11", "ss01";
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--green); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
::selection { background: var(--amber); color: var(--ink); }
:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; border-radius: 6px; }
/* On dark green surfaces the amber ring has the contrast (≥4.4:1). */
.on-green :focus-visible, .field :focus-visible, .site-footer :focus-visible, .sticky-cta :focus-visible { outline-color: var(--amber); }
.field .optin :focus-visible { outline-color: var(--green); }
input, select, textarea, button { font: inherit; color: inherit; }
button { cursor: pointer; }
html { scrollbar-color: var(--green-mid) var(--fold); }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--fold); }
::-webkit-scrollbar-thumb { background: var(--green-mid); border-radius: 8px; border: 3px solid var(--fold); }

h1, h2, h3, h4 { font-family: var(--f-display); font-optical-sizing: auto; color: var(--green); margin: 0; font-weight: 600; letter-spacing: -.015em; text-wrap: balance; }
h1 { font-size: clamp(2.35rem, 7.6vw, 4.6rem); line-height: 1.02; letter-spacing: -.03em; font-weight: 600; }
h2 { font-size: clamp(1.85rem, 4.8vw, 3rem); line-height: 1.06; letter-spacing: -.025em; }
h3 { font-size: clamp(1.2rem, 2.4vw, 1.45rem); line-height: 1.2; }
p { margin: 0 0 1em; }
.lede { font-size: clamp(1.06rem, 2.2vw, 1.25rem); line-height: 1.55; color: var(--ink-2); max-width: 58ch; }
.num { font-variant-numeric: tabular-nums; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sr.skip:focus { position: fixed !important; z-index: 100; left: 12px; top: 12px; width: auto; height: auto; clip: auto; padding: 12px 16px; border-radius: 10px; background: var(--amber); color: var(--ink); font-weight: 700; }
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
.ico { width: 1.25em; height: 1.25em; flex: none; }

/* ---------- Logo ---------- */
.logo { position: relative; display: inline-flex; flex-direction: column; color: var(--green); text-decoration: none; line-height: 1; }
.logo-word { font: 600 1.42rem/1 var(--f-display); letter-spacing: -.02em; }
.logo-b { font-style: italic; font-weight: 500; }
.logo-thread { width: 9.4rem; height: auto; margin-top: -2px; color: var(--amber-deep); }
.on-green .logo, .site-footer .logo { color: var(--on-green); }
.on-green .logo-thread, .site-footer .logo-thread { color: var(--amber); }

/* ---------- Header ---------- */
.site-header { position: relative; z-index: 20; }
.site-header .bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; }
.site-header a.logo-link { text-decoration: none; padding: 6px 0; }
.nav { display: flex; align-items: center; gap: 4px; }
.nav a { color: inherit; text-decoration: none; font-weight: 500; font-size: .95rem; padding: 10px 12px; border-radius: 10px; }
.nav a:hover { background: rgba(250, 246, 238, .1); }
.nav .nav-quiz { display: none; }
.site-header.on-green { color: var(--on-green); background: var(--green); }
.site-header.on-cream { color: var(--green); border-bottom: 1px solid var(--line); }
.site-header.on-cream .nav a:hover { background: var(--sage-soft); }
.nav-full { display: none; }
@media (min-width: 900px) {
  .nav-full { display: inline-flex; }
  .nav .nav-quiz { display: inline-flex; }
}

/* ---------- Buttons ---------- */
.btn {
  --b: var(--amber); --bh: var(--amber-deep); --t: var(--ink);
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  min-height: 56px; padding: 14px 26px; border-radius: 12px; border: 0;
  background: var(--b); color: var(--t); font-weight: 700; font-size: 1.06rem; letter-spacing: -.005em;
  text-decoration: none; position: relative; isolation: isolate;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .45) inset, 0 -2px 0 rgba(0, 0, 0, .12) inset, 0 8px 18px -10px rgba(120, 72, 0, .55);
  transition: transform .25s var(--ease), background-color .2s, box-shadow .25s var(--ease);
}
.btn:hover { background: var(--bh); transform: translateY(-1px); text-decoration: none; }
.btn:active { transform: translateY(1px); box-shadow: 0 1px 0 rgba(255, 255, 255, .3) inset, 0 3px 8px -6px rgba(120, 72, 0, .6); }
.btn .ico { transition: transform .3s var(--ease); }
.btn:hover .ico-arrow { transform: translateX(3px); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.btn-block { width: 100%; }
.btn-lg { min-height: 62px; font-size: 1.12rem; padding: 16px 30px; }
.btn-ghost { --b: transparent; --bh: var(--sage-soft); --t: var(--green); box-shadow: inset 0 0 0 1.5px var(--line-strong); }
.on-green .btn-ghost, .btn-ghost.on-dark { --t: var(--on-green); --bh: rgba(250, 246, 238, .1); box-shadow: inset 0 0 0 1.5px rgba(250, 246, 238, .45); }
.btn-green { --b: var(--green); --bh: var(--green-deep); --t: var(--on-green); box-shadow: 0 8px 18px -12px rgba(22, 58, 43, .7); }
.btn.is-loading { color: transparent; pointer-events: none; }
.btn.is-loading::after { content: ""; position: absolute; width: 22px; height: 22px; border-radius: 50%; border: 2.5px solid var(--ink); border-right-color: transparent; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.trust { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 14px 0 0; padding: 0; list-style: none; font-size: .92rem; font-weight: 500; }
.trust li { display: inline-flex; align-items: center; gap: 6px; }
.trust .ico { width: 18px; height: 18px; color: var(--amber); }

/* ---------- Green field (contour ground) ---------- */
.field { background: var(--green); color: var(--on-green); position: relative; isolation: isolate; overflow: hidden; }
.field::before {
  content: ""; position: absolute; inset: -2px; z-index: -1; pointer-events: none;
  background: var(--contours) center / cover no-repeat; opacity: .16;
}
.field h1, .field h2, .field h3 { color: var(--on-green); }
.field .lede, .field p { color: var(--on-green-2); }
.field a:not(.btn) { color: var(--on-green); }

/* ---------- Hero ---------- */
.hero { padding: 12px 0 0; }
.hero-grid { display: grid; gap: 28px; padding-bottom: 0; }
.hero h1 { padding-bottom: .06em; }
.hero h1 q { quotes: "‘" "’"; font-style: italic; font-weight: 500; }
.hero h1 .line2 { display: block; color: var(--sage); font-style: italic; font-weight: 500; }
.hero .lede { margin-top: 18px; color: var(--on-green-2); }
.hero-cta { margin-top: 26px; }
.hero-photo { position: relative; margin: 6px calc(-1 * var(--gutter)) 0; }
.hero-photo .frame { position: relative; overflow: hidden; aspect-ratio: var(--ar, 4 / 3); background: var(--green-deep); }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) {
  .hero { padding: 32px 0 0; }
  .hero-grid { grid-template-columns: 1fr 1.05fr; grid-template-areas: "h1 h1" "copy photo"; align-items: end; column-gap: 56px; row-gap: 28px; }
  .hero-grid > .hero-h1 { grid-area: h1; font-size: clamp(3rem, 4.6vw, 4.4rem); line-height: 1.04; max-width: none; }
  .hero-grid > .hero-copy { grid-area: copy; align-self: start; padding-bottom: 48px; }
  .hero-grid > .hero-photo { grid-area: photo; }
  .hero-grid:not(:has(.hero-h1)) { grid-template-areas: "copy photo"; }
  .hero-copy { padding-bottom: 72px; }
  .hero-photo { margin: 0; }
  .hero-photo .frame { border-radius: var(--r-lg) var(--r-lg) 0 0; aspect-ratio: 4 / 3; }
  .hero-photo .frame img { object-position: var(--ox, 50%) 50%; }
  .hero-photo .flabel { left: var(--dx); }
  .hero-photo .flabel.m-only { display: none; }
}

/* Field labels: small printed tags with hairline pointers, like a field guide. */
.flabel { left: var(--x); position: absolute; display: flex; align-items: center; gap: 0; font: 600 .74rem/1 var(--f-body); letter-spacing: .02em; color: var(--ink); pointer-events: none; transform: translate(calc(-100% + 4.5px), -50%); }
.flabel.right { flex-direction: row-reverse; transform: translate(-4.5px, -50%); }
@media (max-width: 420px) { .flabel { font-size: .68rem; } .flabel span { padding: 6px 8px; } }
.field-note { position: absolute; left: 12px; top: 12px; display: inline-flex; gap: 6px; align-items: center; font: 600 .72rem/1 var(--f-body); color: var(--on-green); background: rgba(22, 58, 43, .82); padding: 7px 10px; border-radius: 6px; backdrop-filter: blur(4px); }
.field-note .ico { width: 14px; height: 14px; color: var(--amber); }
.flabel span { background: var(--paper); padding: 7px 10px; border-radius: 6px; box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .55); white-space: nowrap; }
.flabel i { display: block; height: 1px; background: var(--paper); width: var(--len, 34px); }
.flabel b { display: block; width: 9px; height: 9px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 0 3px rgba(250, 246, 238, .9); flex: none; }

.flabel em { font-style: normal; color: var(--green-mid); font-weight: 700; margin-right: 5px; }
.photo-credit { position: absolute; right: 10px; bottom: 8px; font-size: .68rem; color: rgba(255, 255, 255, .78); text-shadow: 0 1px 2px rgba(0, 0, 0, .6); }

/* ---------- Trail rail ---------- */
.trail { position: relative; padding-left: calc(var(--rail-x) + 26px); }
.trail::before {
  content: ""; position: absolute; left: var(--rail-x); top: 0; bottom: 0; width: 2px; transform: translateX(-1px);
  background: repeating-linear-gradient(to bottom, var(--green-mid) 0 7px, transparent 7px 14px);
  opacity: .55;
}
.trail.walked::before { background: var(--green-mid); opacity: .9; }
.waypoint {
  position: absolute; left: var(--rail-x); width: 44px; height: 44px; transform: translate(-50%, 0);
  border-radius: 50%; display: grid; place-items: center; background: var(--cream); color: var(--green);
  box-shadow: inset 0 0 0 2px var(--green); z-index: 1;
}
.waypoint .ico { width: 22px; height: 22px; }
.waypoint.blaze { background: var(--amber); color: var(--ink); box-shadow: 0 0 0 5px var(--cream), inset 0 0 0 2px var(--amber-deep); }
.waypoint.small { width: 28px; height: 28px; font: 700 .8rem/1 var(--f-body); }
@media (min-width: 900px) { :root { --rail-x: 40px; } .trail { padding-left: calc(var(--rail-x) + 52px); } }

.section { padding: clamp(56px, 9vw, 112px) 0; position: relative; }
.section-head { position: relative; margin-bottom: clamp(26px, 4vw, 44px); max-width: 720px; }
.section-head .waypoint { top: -4px; left: calc(-1 * (var(--rail-x) + 26px) + var(--rail-x)); }
@media (min-width: 900px) { .section-head .waypoint { left: calc(-1 * (var(--rail-x) + 52px) + var(--rail-x)); } }
.section-head p { margin-top: 14px; }

/* ---------- Problem picker (trail signs) ---------- */
.signs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 720px) { .signs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } }
.sign {
  position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 18px;
  min-height: 112px; padding: 16px 16px 14px; border-radius: var(--r); text-decoration: none;
  background: var(--paper); color: var(--green); box-shadow: inset 0 0 0 1.5px var(--line);
  transition: background-color .25s, box-shadow .3s var(--ease), transform .3s var(--ease);
}
.sign .ico { width: 30px; height: 30px; }
.sign strong { font: 600 1.06rem/1.2 var(--f-display); letter-spacing: -.01em; display: flex; justify-content: space-between; align-items: end; gap: 8px; }
.sign strong .ico { width: 18px; height: 18px; opacity: .45; transition: transform .3s var(--ease), opacity .2s; }
.sign:hover, .sign:focus-visible { background: var(--green); color: var(--on-green); box-shadow: var(--shadow-lift); transform: translateY(-2px); }
.sign:hover strong .ico { opacity: 1; transform: translateX(3px); }

/* ---------- How it works (stages along the rail) ---------- */
.stages { list-style: none; margin: 0; padding: 0; display: grid; gap: 34px; }
.stage { position: relative; }
.stage .waypoint { left: calc(-1 * (var(--rail-x) + 26px) + var(--rail-x)); top: 0; }
@media (min-width: 900px) { .stage .waypoint { left: calc(-1 * (var(--rail-x) + 52px) + var(--rail-x)); } }
.stage h3 { margin: 8px 0 8px; }
.stage p { color: var(--ink-2); max-width: 52ch; margin: 0; }
.stage .when { color: var(--green); font-weight: 600; }
.how-grid { display: grid; gap: 40px; }
@media (min-width: 980px) { .how-grid { grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; } .how-grid .profile-card { position: sticky; top: 100px; } }

/* Sample behavior profile - a folded map panel */
.profile-card { position: relative; background: var(--paper); border-radius: var(--r-lg); box-shadow: var(--shadow-lift); overflow: hidden; }
.profile-card .pc-top { background: var(--green); color: var(--on-green); padding: 22px 22px 20px; position: relative; isolation: isolate; overflow: hidden; }
.profile-card .pc-top::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--contours) 30% 40% / 220% no-repeat; opacity: .2; }
.profile-card .pc-kicker { font: 600 .8rem/1 var(--f-body); color: var(--on-green-2); display: flex; justify-content: space-between; gap: 10px; }
.profile-card .pc-name { font: italic 500 1.7rem/1.1 var(--f-display); color: var(--on-green); margin-top: 10px; letter-spacing: -.02em; }
.profile-card .pc-body { padding: 18px 22px 22px; }
.tagrow { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.tag { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: var(--sage-soft); color: var(--green); font: 600 .8rem/1.1 var(--f-body); }
.tag.amber { background: var(--amber-soft); color: #6B4510; }
.pc-row { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px dashed var(--line-strong); font-size: .94rem; }
.pc-row span { color: var(--ink-3); }
.pc-row strong { color: var(--ink); text-align: right; }
.sample-note { display: inline-flex; align-items: center; gap: 6px; font: 600 .72rem/1 var(--f-body); color: var(--ink-3); padding: 5px 9px; border-radius: 999px; border: 1px dashed var(--line-strong); background: var(--cream); }
.pc-top .sample-note { color: var(--on-green-2); background: transparent; border-color: rgba(250, 246, 238, .35); }

/* ---------- Comparison ---------- */
.compare-wrap { overflow-x: auto; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); }
.compare { width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0; font-size: .95rem; }
.compare th, .compare td { padding: 15px 12px; text-align: center; border-bottom: 1px solid var(--line); vertical-align: middle; }
.compare thead th { font: 600 .92rem/1.25 var(--f-body); color: var(--ink-2); border-bottom: 2px solid var(--line-strong); }
.compare th[scope="row"] { text-align: left; font-weight: 500; color: var(--ink); width: 40%; }
.compare .us { background: var(--green); color: var(--on-green); }
.compare thead .us { border-radius: var(--r) var(--r) 0 0; color: var(--on-green); font: 600 1.05rem/1.2 var(--f-display); border-bottom-color: var(--green-deep); }
.compare tbody tr:last-child .us { border-radius: 0 0 var(--r) var(--r); }
.compare tbody .us { border-bottom-color: rgba(250, 246, 238, .14); }
.mark { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; }
.mark .ico { width: 18px; height: 18px; }
.mark.yes { background: var(--amber); color: var(--ink); }
.mark.no { color: var(--ink-3); background: var(--fold); }
.mark.varies { width: auto; height: auto; border-radius: 6px; padding: 4px 8px; font: 600 .78rem/1 var(--f-body); color: var(--ink-2); background: var(--fold); }
.footnote { font-size: .82rem; color: var(--ink-3); margin-top: 14px; }

/* ---------- Proof ---------- */
.reviews { display: grid; gap: 14px; }
@media (min-width: 820px) { .reviews { grid-template-columns: repeat(3, 1fr); } }
.review-ph { margin: 0; border: 1.5px dashed var(--line-strong); border-radius: var(--r); padding: 22px; background: repeating-linear-gradient(-45deg, transparent 0 10px, rgba(31, 77, 58, .025) 10px 20px); }
.review-ph .ph-badge { display: inline-flex; align-items: center; gap: 6px; font: 700 .72rem/1 var(--f-body); color: var(--danger); background: #F8E2D8; padding: 6px 9px; border-radius: 6px; margin-bottom: 14px; }
.review-ph blockquote { margin: 0; font: italic 400 1.1rem/1.45 var(--f-display); color: var(--ink-3); }
.review-ph figcaption { margin-top: 14px; font-size: .85rem; color: var(--ink-3); }
.badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.cert { display: inline-flex; flex-direction: column; padding: 12px 16px; border-radius: var(--r); background: var(--paper); box-shadow: inset 0 0 0 1.5px var(--line); }
.cert strong { font: 700 1rem/1 var(--f-display); color: var(--green); }
.cert span { font-size: .78rem; color: var(--ink-3); margin-top: 4px; }
.dev-note { margin-top: 18px; font-size: .85rem; color: var(--ink-3); border: 1px dashed var(--line-strong); border-radius: var(--r-sm); padding: 12px 14px; background: var(--paper); }

/* ---------- Stats (elevation markers) ---------- */
.stats { padding: clamp(44px, 7vw, 76px) 0; }
.stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px 18px; }
@media (min-width: 900px) { .stats-grid { grid-template-columns: repeat(4, 1fr); } }
.stat { border-top: 2px dashed rgba(250, 246, 238, .3); padding-top: 14px; }
.stat strong { display: block; font: 600 clamp(2.2rem, 6vw, 3.4rem)/1 var(--f-display); color: var(--on-green); letter-spacing: -.03em; font-variant-numeric: lining-nums; }
.stat span { display: block; margin-top: 8px; color: var(--on-green); font-weight: 500; line-height: 1.35; }
.stat small { display: block; margin-top: 6px; font-size: .72rem; color: var(--on-green-2); }

/* ---------- FAQ ---------- */
.faq { border-top: 1px solid var(--line-strong); max-width: 820px; }
.faq details { border-bottom: 1px solid var(--line-strong); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 20px 2px; font: 600 1.1rem/1.3 var(--f-display); color: var(--green); min-height: 64px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ico { width: 22px; height: 22px; transition: transform .35s var(--ease); color: var(--amber-deep); }
.faq details[open] summary .ico { transform: rotate(180deg); }
.faq .ans { padding: 0 2px 22px; color: var(--ink-2); max-width: 68ch; }

/* ---------- Trailhead (final CTA) ---------- */
.trailhead { padding: clamp(64px, 10vw, 120px) 0; text-align: left; }
.trailhead .inner { max-width: 720px; }
.trailhead .btn { margin-top: 28px; }

/* ---------- Footer ---------- */
.site-footer { background: var(--green-deep); color: var(--on-green-2); padding: 56px 0 120px; font-size: .92rem; }
.site-footer .cols { display: grid; gap: 34px; }
@media (min-width: 820px) { .site-footer .cols { grid-template-columns: 1.4fr 1fr 1fr 1fr; } .site-footer { padding-bottom: 48px; } }
.site-footer .f-head { font: 600 .82rem/1 var(--f-body); color: var(--on-green); margin-bottom: 14px; letter-spacing: .02em; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.site-footer a { color: var(--on-green-2); text-decoration: none; display: inline-block; padding: 6px 0; }
.site-footer a:hover { color: var(--on-green); text-decoration: underline; }
.site-footer .legal { margin-top: 40px; padding-top: 22px; border-top: 1px solid rgba(250, 246, 238, .14); display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: space-between; font-size: .82rem; }
.site-footer .dns { color: var(--on-green); font-weight: 600; }
.site-footer .tagline { font: italic 400 1.1rem/1.4 var(--f-display); color: var(--on-green); margin: 14px 0 0; }

/* ---------- Sticky mobile CTA ---------- */
.sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  background: rgba(250, 246, 238, .94); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--line); transform: translateY(110%); transition: transform .45s var(--ease);
}
.sticky-cta.show { transform: none; }
.sticky-cta .btn { width: 100%; min-height: 54px; }
@media (min-width: 900px) { .sticky-cta { display: none; } }

/* ---------- Cookie banner ---------- */
.cookie { position: fixed; z-index: 60; left: 10px; right: 10px; bottom: 10px; max-width: 440px; padding: 14px 16px; font-size: .84rem !important; border-radius: var(--r); background: var(--paper); box-shadow: var(--shadow-lift), inset 0 0 0 1px var(--line); font-size: .9rem; color: var(--ink-2); }
.cookie[hidden], .cookie .gpc[hidden] { display: none; }
.cookie p { margin: 0 0 10px; line-height: 1.45; }
.cookie .row { display: flex; gap: 8px; flex-wrap: wrap; }
.cookie .btn { min-height: 44px; padding: 10px 16px; font-size: .92rem; }
.cookie .gpc { display: flex; gap: 8px; align-items: flex-start; color: var(--green); font-weight: 600; margin-bottom: 10px; }
@media (min-width: 900px) { .cookie { left: 24px; bottom: 24px; } }
body.has-sticky .cookie { bottom: 86px; }

/* ---------- Problem landing ---------- */
.pains { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
@media (min-width: 720px) { .pains { grid-template-columns: 1fr 1fr; } }
.pains li { display: flex; gap: 12px; align-items: flex-start; padding: 16px; background: var(--paper); border-radius: var(--r); box-shadow: inset 0 0 0 1.5px var(--line); font-weight: 500; }
.pains .ico { color: var(--amber-deep); margin-top: 2px; }
.split { display: grid; gap: 34px; }
@media (min-width: 900px) { .split { grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; } }
.photo-panel { position: relative; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 3.2; background: var(--fold); box-shadow: var(--shadow); }
.photo-panel img { width: 100%; height: 100%; object-fit: cover; }
.checks { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 12px; }
.checks li { display: flex; gap: 12px; align-items: flex-start; }
.checks .mark { width: 26px; height: 26px; flex: none; margin-top: 1px; }
.checks .mark .ico { width: 15px; height: 15px; }

/* ---------- Prose (read pages) ---------- */
.page-head { padding: clamp(40px, 7vw, 84px) 0 clamp(34px, 5vw, 56px); }
.page-head .lede { margin-top: 16px; }
.prose { max-width: 70ch; font-size: 1.03rem; }
.prose h2 { font-size: clamp(1.45rem, 3.2vw, 1.9rem); margin: 2.2em 0 .6em; }
.prose h3 { margin: 1.8em 0 .5em; }
.prose p, .prose li { color: var(--ink-2); }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin: .35em 0; }
.prose table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .94rem; display: block; overflow-x: auto; }
.prose th, .prose td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.prose thead th { border-bottom: 2px solid var(--line-strong); color: var(--green); }
.prose .note, .prose .callout { font-size: .9rem; color: var(--ink-3); }
.prose .callout { background: var(--paper); border-radius: var(--r); padding: 16px 18px; box-shadow: inset 0 0 0 1.5px var(--line); }
.prose blockquote.consent { margin: 1.2em 0; padding: 18px 20px; background: var(--paper); border-radius: var(--r); box-shadow: inset 0 0 0 1.5px var(--line-strong); font-size: .97rem; color: var(--ink); }
.meta-line { font-size: .88rem; color: var(--ink-3); }

/* ---------- Forms ---------- */
.form { display: grid; gap: 16px; }
.field-row { display: grid; gap: 7px; }
.field-row label, .legend { font-weight: 600; font-size: .95rem; color: var(--ink); }
.field-row .hint { font-size: .84rem; color: var(--ink-3); }
.input, .form input[type="text"], .form input[type="email"], .form input[type="tel"], .form input[type="url"], .form input[type="number"], .form select, .form textarea {
  width: 100%; min-height: 54px; padding: 13px 15px; border-radius: 12px; border: 1.5px solid var(--line-strong);
  background: var(--paper); font-size: 1.05rem; color: var(--ink); caret-color: var(--amber-deep);
  transition: border-color .2s, box-shadow .2s;
}
.form textarea { min-height: 110px; resize: vertical; }
.input::placeholder, .form input::placeholder, .form textarea::placeholder { color: #8A867B; }
.input:focus, .form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 4px rgba(232, 163, 61, .35); }
[aria-invalid="true"] { border-color: var(--danger) !important; }
.err { color: var(--danger); font-size: .87rem; font-weight: 600; display: flex; gap: 6px; align-items: center; }
.err:empty { display: none; }
.checkline { display: flex; gap: 12px; align-items: flex-start; font-size: .9rem; color: var(--ink-2); line-height: 1.5; cursor: pointer; }
.checkline input { appearance: none; -webkit-appearance: none; flex: none; width: 26px; height: 26px; margin: 1px 0 0; border-radius: 7px; border: 2px solid var(--green); background: var(--paper); display: grid; place-items: center; cursor: pointer; }
.checkline input::after { content: ""; width: 12px; height: 7px; border-left: 2.5px solid var(--ink); border-bottom: 2.5px solid var(--ink); transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform .2s var(--ease); }
.checkline input:checked { background: var(--amber); border-color: var(--amber-deep); }
.checkline input:checked::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-check { position: relative; }
.chip-check input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.chip-check span { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 14px; border-radius: 999px; background: var(--paper); box-shadow: inset 0 0 0 1.5px var(--line-strong); font-size: .92rem; font-weight: 500; }
.chip-check input:checked + span { background: var(--green); color: var(--on-green); box-shadow: none; }
.chip-check input:focus-visible + span { outline: 3px solid var(--green); outline-offset: 2px; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-success { padding: 22px; border-radius: var(--r); background: var(--sage-soft); color: var(--green); }
.form-success h3 { margin-bottom: 6px; }

/* ---------- Guides ---------- */
.guide-grid { display: grid; gap: 22px; }
@media (min-width: 900px) { .guide-grid { grid-template-columns: 1fr 1fr; gap: 28px; } }
.guide { background: var(--paper); border-radius: var(--r-lg); box-shadow: var(--shadow); overflow: hidden; display: grid; }
.guide-cover { position: relative; aspect-ratio: 16 / 9; color: var(--on-green); padding: 22px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; isolation: isolate; }
.guide-cover::before { content: ""; position: absolute; inset: 0; background: var(--contours) center / 180% no-repeat; opacity: .2; z-index: -1; }
.guide-cover::after { content: ""; position: absolute; top: 0; bottom: 0; left: 33.3%; width: 33.3%; background: rgba(0, 0, 0, .07); border-left: 1px solid rgba(255, 255, 255, .08); border-right: 1px solid rgba(255, 255, 255, .08); z-index: -1; }
.guide-cover .gc-top { display: flex; justify-content: space-between; font: 600 .78rem/1 var(--f-body); color: var(--on-green-2); }
.guide-cover .gc-title { font: 600 clamp(1.5rem, 3.6vw, 2rem)/1.05 var(--f-display); letter-spacing: -.02em; color: var(--on-green); max-width: 14ch; }
.guide-cover .gc-blaze { position: absolute; right: 22px; bottom: 22px; width: 10px; height: 34px; border-radius: 3px; background: var(--amber); }
.guide.puppy .guide-cover { background: var(--green); }
.guide.leash .guide-cover { background: #2F5B47; }
.guide-body { padding: 22px; display: grid; gap: 14px; align-content: start; }
.guide-body ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.guide-body li { display: flex; gap: 10px; align-items: flex-start; color: var(--ink-2); font-size: .96rem; }
.guide-body li .ico { color: var(--green-mid); width: 18px; height: 18px; margin-top: 3px; }
.inline-form { display: grid; gap: 10px; }
@media (min-width: 560px) { .inline-form { grid-template-columns: 1fr auto; } }

/* ---------- Trainers (B2B) ---------- */
.lead-sample { background: var(--paper); border-radius: var(--r-lg); box-shadow: var(--shadow-lift); padding: 20px; color: var(--ink); font-size: .94rem; }
.lead-sample .ls-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; }
.lead-sample .tier { font: 700 .78rem/1 var(--f-body); background: var(--amber); color: var(--ink); padding: 6px 9px; border-radius: 6px; }
.points { display: grid; gap: 24px; }
@media (min-width: 900px) { .points { grid-template-columns: repeat(3, 1fr); gap: 34px; } }
.point h3 { margin: 12px 0 8px; }
.point p { color: var(--ink-2); margin: 0; }
.point .waypoint { position: static; transform: none; }
.app-card { background: var(--paper); border-radius: var(--r-lg); padding: clamp(20px, 4vw, 36px); box-shadow: var(--shadow); }
.form-grid { display: grid; gap: 16px; }
@media (min-width: 760px) { .form-grid { grid-template-columns: 1fr 1fr; } .form-grid .full { grid-column: 1 / -1; } }

/* ---------- Results ---------- */
.results-head { padding: 26px 0 0; }
.results-head .who { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--on-green-2); font-size: .95rem; }
.results-head h1 { margin-top: 10px; font-style: italic; font-weight: 500; }
.results-head .lede { margin-top: 16px; max-width: 62ch; }
.answer-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 22px 0 0; padding: 0; list-style: none; }
.answer-tags li { font: 600 .8rem/1 var(--f-body); padding: 8px 11px; border-radius: 999px; background: rgba(250, 246, 238, .1); color: var(--on-green); box-shadow: inset 0 0 0 1px rgba(250, 246, 238, .22); }
.results-fold { height: 56px; background: linear-gradient(to bottom, var(--green) 0 50%, var(--cream) 50%); }
.tips { list-style: none; margin: 0; padding: 0; display: grid; gap: 30px; }
.tip { position: relative; }
.tip .waypoint { left: calc(-1 * (var(--rail-x) + 26px) + var(--rail-x)); top: -2px; }
@media (min-width: 900px) { .tip .waypoint { left: calc(-1 * (var(--rail-x) + 52px) + var(--rail-x)); } }
.tip h3 { margin-bottom: 6px; }
.tip p { color: var(--ink-2); margin: 0; max-width: 60ch; }
.map-panel { background: var(--paper); border-radius: var(--r-lg); box-shadow: var(--shadow); overflow: hidden; }
.map-panel .mp-grid { display: grid; }
@media (min-width: 760px) { .map-panel .mp-grid { grid-template-columns: repeat(3, 1fr); } .map-panel .mp-cell + .mp-cell { border-left: 1px dashed var(--line-strong); } }
.mp-cell { padding: 20px 22px; border-top: 1px dashed var(--line-strong); }
@media (min-width: 760px) { .mp-cell { border-top: 0; } }
.mp-cell:first-child { border-top: 0; }
.mp-cell span { display: block; font: 600 .8rem/1 var(--f-body); color: var(--ink-3); }
.mp-cell strong { display: block; margin-top: 8px; font: 600 1.35rem/1.15 var(--f-display); color: var(--green); letter-spacing: -.015em; }
.mp-cell small { display: block; margin-top: 6px; color: var(--ink-3); font-size: .84rem; line-height: 1.4; }
.mp-foot { padding: 14px 22px; background: var(--fold); font-size: .85rem; color: var(--ink-2); }
.trainer-card { display: grid; gap: 18px; background: var(--paper); border-radius: var(--r-lg); padding: 22px; box-shadow: var(--shadow-lift); position: relative; }
@media (min-width: 760px) { .trainer-card { grid-template-columns: 120px 1fr; padding: 28px; gap: 26px; } }
.trainer-photo { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: var(--green); color: var(--on-green); display: grid; place-items: center; font: 600 2rem/1 var(--f-display); }
@media (min-width: 760px) { .trainer-photo { width: 120px; height: 120px; } }
.trainer-photo img { width: 100%; height: 100%; object-fit: cover; }
.trainer-card h3 { font-size: 1.5rem; }
.trainer-card .biz { color: var(--ink-3); font-size: .92rem; margin-top: 4px; }
.reach { display: flex; gap: 10px; align-items: center; margin-top: 16px; padding: 12px 14px; border-radius: 12px; background: var(--amber-soft); color: #5E3C0B; font-weight: 600; font-size: .95rem; }
.reach .ico { color: var(--amber-deep); }
.searching { background: var(--paper); border-radius: var(--r-lg); padding: 24px; box-shadow: inset 0 0 0 1.5px var(--line-strong); }
.calendar-ph .ico { margin: 0 auto; }
.calendar-ph { border: 1.5px dashed var(--line-strong); border-radius: var(--r); min-height: 220px; display: grid; place-items: center; text-align: center; padding: 24px; color: var(--ink-3); background: var(--paper); }
.calendly-inline-widget { min-width: 300px; height: 680px; }

/* ---------- Thank you ---------- */
.next-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px; }
.next-steps li { position: relative; }
.next-steps .waypoint { left: calc(-1 * (var(--rail-x) + 26px) + var(--rail-x)); top: -4px; }
@media (min-width: 900px) { .next-steps .waypoint { left: calc(-1 * (var(--rail-x) + 52px) + var(--rail-x)); } }
.next-steps h3 { margin-bottom: 4px; }
.next-steps p { margin: 0; color: var(--ink-2); }

/* ---------- Blog ---------- */
.post-list { display: grid; gap: 14px; list-style: none; padding: 0; margin: 0; max-width: 820px; }
.post-list a { display: block; padding: 22px; background: var(--paper); border-radius: var(--r); text-decoration: none; box-shadow: inset 0 0 0 1.5px var(--line); transition: box-shadow .3s var(--ease); }
.post-list a:hover { box-shadow: inset 0 0 0 2px var(--green); }
.post-list h2 { font-size: 1.35rem; }
.post-list p { color: var(--ink-2); margin: 8px 0 0; }

/* ---------- Motion ---------- */
.reveal { opacity: 1; transform: none; }
.js .reveal.pre { opacity: 0; transform: translateY(18px); }
.js .reveal.in { opacity: 1; transform: none; transition: opacity .55s var(--ease), transform .7s var(--ease); }
.trail.draw::after {
  content: ""; position: absolute; left: var(--rail-x); top: 0; width: 2px;
  height: 100%; background: var(--green-mid); transform-origin: top; transform: translateX(-1px) scaleY(0);
}
/* The walked segment grows with reading position (CSS scroll-driven animation; no JS scroll listener).
   Browsers without support keep the dashed trail only. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .trail.draw { view-timeline: --trail block; }
    .trail.draw::after { animation: trail-walk linear both; animation-timeline: --trail; animation-range: entry 40% exit 60%; }
  }
}
@keyframes trail-walk { from { transform: translateX(-1px) scaleY(0); } to { transform: translateX(-1px) scaleY(1); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js .reveal.pre { opacity: 1; transform: none; }
}

/* ---------- Print (guides) ---------- */
@media print {
  .site-header, .site-footer, .sticky-cta, .cookie, .no-print { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .field { background: #fff !important; color: var(--ink) !important; }
  .field h1, .field p { color: var(--green) !important; }
  .field::before { display: none; }
}

@media (max-width: 640px) {
  .compare-wrap { margin: 0; padding: 0; }
  .compare { font-size: .84rem; table-layout: fixed; }
  .compare th, .compare td { padding: 12px 4px; }
  .compare thead th { font-size: .74rem; line-height: 1.2; }
  .compare thead .us { font-size: .86rem; }
  .compare th[scope=row] { width: 38%; padding-right: 8px; }
  .mark { width: 26px; height: 26px; }
  .mark.varies { padding: 4px 5px; font-size: .68rem; }
}

/* ---------- Affiliate bridge page ---------- */
.bt-confirm { background: var(--sage-soft); color: var(--green); font-size: .92rem; font-weight: 600; }
.bt-confirm .wrap { display: flex; flex-wrap: wrap; gap: 6px 18px; justify-content: space-between; align-items: center; padding-top: 12px; padding-bottom: 12px; }
.bt-confirm span { display: inline-flex; gap: 8px; align-items: flex-start; }
.bt-confirm .ico { width: 18px; height: 18px; flex: none; margin-top: 1px; }
.bt-confirm a { color: var(--green); font-weight: 700; }
.bt-disclose { margin: 14px 0 0; font-size: .82rem; color: var(--on-green-2); }
.bt-fit { display: grid; gap: 28px; }
@media (min-width: 820px) { .bt-fit { grid-template-columns: 1fr 1fr; gap: 48px; } }
.bt-fit h3 { margin-bottom: 4px; }
.bt-close { background: var(--paper); border-radius: var(--r-lg); padding: clamp(24px, 4vw, 44px); box-shadow: var(--shadow); max-width: 760px; }
@media (max-width: 560px) { .bt-close { padding: 22px 18px; } .bt-close .btn { width: 100%; padding-left: 16px; padding-right: 16px; font-size: 1rem; } }

/* Course opt-in form (on the green hero field) */
.optin { margin-top: 26px; padding: 20px; border-radius: var(--r-lg); background: var(--paper); box-shadow: var(--shadow-lift); gap: 14px; max-width: 520px; }
.optin-grid { display: grid; gap: 12px; }
@media (min-width: 480px) { .optin-grid { grid-template-columns: 1fr 1fr; } .optin-wide { grid-column: 1 / -1; } }
.optin .field-row label { color: var(--ink); }
.optin input { min-height: 52px !important; }
.optin-note { margin: 0; font-size: .8rem; color: var(--ink-3); }
.field .optin-note, .field .optin .err { color: var(--ink-3); }
.field .optin .err { color: var(--danger); }
.field .optin-note a { color: var(--green); }
