@nationalarchives/frontend 0.1.18-prerelease → 0.1.19-prerelease

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/nationalarchives/all.css +12 -2
  2. package/nationalarchives/all.css.map +1 -1
  3. package/nationalarchives/all.js +1 -1
  4. package/nationalarchives/all.js.map +1 -1
  5. package/nationalarchives/all.mjs +26 -2
  6. package/nationalarchives/all.scss +20 -4
  7. package/nationalarchives/assets/fonts/OpenSans-Bold.ttf +0 -0
  8. package/nationalarchives/assets/fonts/OpenSans-Medium.ttf +0 -0
  9. package/nationalarchives/assets/fonts/RobotoMono-Regular.ttf +0 -0
  10. package/nationalarchives/components/_index.scss +18 -16
  11. package/nationalarchives/components/breadcrumbs/_index.scss +1 -109
  12. package/nationalarchives/components/breadcrumbs/breadcrumbs.css +1 -0
  13. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -0
  14. package/nationalarchives/components/breadcrumbs/breadcrumbs.js +1 -1
  15. package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
  16. package/nationalarchives/components/breadcrumbs/breadcrumbs.scss +111 -0
  17. package/nationalarchives/components/button/_button-group.scss +3 -5
  18. package/nationalarchives/components/button/_index.scss +1 -73
  19. package/nationalarchives/components/button/button.css +13 -0
  20. package/nationalarchives/components/button/button.css.map +1 -0
  21. package/nationalarchives/components/button/button.scss +103 -0
  22. package/nationalarchives/components/button/button.stories.js +61 -0
  23. package/nationalarchives/components/button/macro-options.json +19 -1
  24. package/nationalarchives/components/button/template.njk +8 -2
  25. package/nationalarchives/components/card/_index.scss +1 -183
  26. package/nationalarchives/components/card/card.css +13 -0
  27. package/nationalarchives/components/card/card.css.map +1 -0
  28. package/nationalarchives/components/card/card.scss +171 -0
  29. package/nationalarchives/components/card/card.stories.js +185 -95
  30. package/nationalarchives/components/card/fixtures.json +57 -28
  31. package/nationalarchives/components/card/macro-options.json +77 -48
  32. package/nationalarchives/components/card/template.njk +47 -37
  33. package/nationalarchives/components/cookie-banner/_index.scss +1 -0
  34. package/nationalarchives/components/cookie-banner/cookie-banner.css +13 -0
  35. package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -0
  36. package/nationalarchives/components/cookie-banner/cookie-banner.js +2 -0
  37. package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -0
  38. package/nationalarchives/components/cookie-banner/cookie-banner.mjs +83 -0
  39. package/nationalarchives/components/cookie-banner/cookie-banner.scss +32 -0
  40. package/nationalarchives/components/cookie-banner/cookie-banner.stories.js +164 -0
  41. package/nationalarchives/components/cookie-banner/fixtures.json +4 -0
  42. package/nationalarchives/components/cookie-banner/macro-options.json +38 -0
  43. package/nationalarchives/components/cookie-banner/macro.njk +3 -0
  44. package/nationalarchives/components/cookie-banner/template.njk +61 -0
  45. package/nationalarchives/components/filters/_index.scss +1 -54
  46. package/nationalarchives/components/filters/filters.css +1 -0
  47. package/nationalarchives/components/filters/filters.css.map +1 -0
  48. package/nationalarchives/components/filters/filters.scss +53 -0
  49. package/nationalarchives/components/footer/_index.scss +1 -270
  50. package/nationalarchives/components/footer/footer.css +13 -0
  51. package/nationalarchives/components/footer/footer.css.map +1 -0
  52. package/nationalarchives/components/footer/footer.scss +265 -0
  53. package/nationalarchives/components/footer/footer.stories.js +6 -6
  54. package/nationalarchives/components/footer/macro-options.json +7 -1
  55. package/nationalarchives/components/footer/template.njk +10 -6
  56. package/nationalarchives/components/gallery/_index.scss +1 -0
  57. package/nationalarchives/components/gallery/fixtures.json +4 -0
  58. package/nationalarchives/components/gallery/gallery.css +13 -0
  59. package/nationalarchives/components/gallery/gallery.css.map +1 -0
  60. package/nationalarchives/components/gallery/gallery.js +2 -0
  61. package/nationalarchives/components/gallery/gallery.js.map +1 -0
  62. package/nationalarchives/components/gallery/gallery.mjs +80 -0
  63. package/nationalarchives/components/gallery/gallery.scss +129 -0
  64. package/nationalarchives/components/gallery/gallery.stories.js +76 -0
  65. package/nationalarchives/components/gallery/macro-options.json +104 -0
  66. package/nationalarchives/components/gallery/macro.njk +3 -0
  67. package/nationalarchives/components/gallery/template.njk +45 -0
  68. package/nationalarchives/components/grid/_index.scss +1 -79
  69. package/nationalarchives/components/grid/grid.css +1 -0
  70. package/nationalarchives/components/grid/grid.css.map +1 -0
  71. package/nationalarchives/components/grid/grid.scss +81 -0
  72. package/nationalarchives/components/header/_index.scss +1 -586
  73. package/nationalarchives/components/header/header.css +1 -0
  74. package/nationalarchives/components/header/header.css.map +1 -0
  75. package/nationalarchives/components/header/header.js +1 -1
  76. package/nationalarchives/components/header/header.js.map +1 -1
  77. package/nationalarchives/components/header/header.scss +594 -0
  78. package/nationalarchives/components/header/header.stories.js +5 -5
  79. package/nationalarchives/components/hero/_index.scss +1 -167
  80. package/nationalarchives/components/hero/hero.css +1 -0
  81. package/nationalarchives/components/hero/hero.css.map +1 -0
  82. package/nationalarchives/components/hero/hero.scss +169 -0
  83. package/nationalarchives/components/index-grid/_index.scss +1 -82
  84. package/nationalarchives/components/index-grid/index-grid.css +1 -0
  85. package/nationalarchives/components/index-grid/index-grid.css.map +1 -0
  86. package/nationalarchives/components/index-grid/index-grid.scss +84 -0
  87. package/nationalarchives/components/message/_index.scss +1 -35
  88. package/nationalarchives/components/message/message.css +1 -0
  89. package/nationalarchives/components/message/message.css.map +1 -0
  90. package/nationalarchives/components/message/message.scss +36 -0
  91. package/nationalarchives/components/phase-banner/_index.scss +1 -60
  92. package/nationalarchives/components/phase-banner/fixtures.json +8 -8
  93. package/nationalarchives/components/phase-banner/phase-banner.css +1 -0
  94. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -0
  95. package/nationalarchives/components/phase-banner/phase-banner.scss +31 -0
  96. package/nationalarchives/components/phase-banner/template.njk +2 -2
  97. package/nationalarchives/components/picture/_index.scss +1 -62
  98. package/nationalarchives/components/picture/picture.css +13 -0
  99. package/nationalarchives/components/picture/picture.css.map +1 -0
  100. package/nationalarchives/components/picture/picture.js +1 -1
  101. package/nationalarchives/components/picture/picture.js.map +1 -1
  102. package/nationalarchives/components/picture/picture.mjs +2 -1
  103. package/nationalarchives/components/picture/picture.scss +65 -0
  104. package/nationalarchives/components/profile/_index.scss +1 -2
  105. package/nationalarchives/components/profile/profile.css +1 -0
  106. package/nationalarchives/components/profile/profile.css.map +1 -0
  107. package/nationalarchives/components/profile/profile.scss +5 -0
  108. package/nationalarchives/components/sensitive-image/_index.scss +1 -77
  109. package/nationalarchives/components/sensitive-image/sensitive-image.css +1 -0
  110. package/nationalarchives/components/sensitive-image/sensitive-image.css.map +1 -0
  111. package/nationalarchives/components/sensitive-image/sensitive-image.js +1 -1
  112. package/nationalarchives/components/sensitive-image/sensitive-image.js.map +1 -1
  113. package/nationalarchives/components/sensitive-image/sensitive-image.scss +78 -0
  114. package/nationalarchives/components/skip-link/_index.scss +1 -63
  115. package/nationalarchives/components/skip-link/skip-link.css +1 -0
  116. package/nationalarchives/components/skip-link/skip-link.css.map +1 -0
  117. package/nationalarchives/components/skip-link/skip-link.scss +61 -0
  118. package/nationalarchives/components/tabs/_index.scss +1 -144
  119. package/nationalarchives/components/tabs/tabs.css +1 -0
  120. package/nationalarchives/components/tabs/tabs.css.map +1 -0
  121. package/nationalarchives/components/tabs/tabs.js +1 -1
  122. package/nationalarchives/components/tabs/tabs.js.map +1 -1
  123. package/nationalarchives/components/tabs/tabs.mjs +2 -0
  124. package/nationalarchives/components/tabs/tabs.scss +143 -0
  125. package/nationalarchives/components/tabs/tabs.stories.js +0 -1
  126. package/nationalarchives/lib/_font-awesome.scss +5 -0
  127. package/nationalarchives/lib/_index.scss +1 -0
  128. package/nationalarchives/lib/cookies.mjs +110 -0
  129. package/nationalarchives/lib/font-awesome/brands.css +5 -0
  130. package/nationalarchives/lib/font-awesome/brands.css.map +1 -0
  131. package/nationalarchives/lib/font-awesome/fontawesome.css +5 -0
  132. package/nationalarchives/lib/font-awesome/fontawesome.css.map +1 -0
  133. package/nationalarchives/lib/font-awesome/regular.css +5 -0
  134. package/nationalarchives/lib/font-awesome/regular.css.map +1 -0
  135. package/nationalarchives/lib/font-awesome/solid.css +5 -0
  136. package/nationalarchives/lib/font-awesome/solid.css.map +1 -0
  137. package/nationalarchives/lib/font-awesome/v4-shims.css +5 -0
  138. package/nationalarchives/lib/font-awesome/v4-shims.css.map +1 -0
  139. package/nationalarchives/stories/development/about.mdx +60 -0
  140. package/nationalarchives/stories/development/contributing.mdx +8 -5
  141. package/nationalarchives/stories/development/relationships.mdx +57 -0
  142. package/nationalarchives/stories/development/using.mdx +75 -0
  143. package/nationalarchives/stories/utilities/colour-schemes/colour-schemes.stories.js +176 -50
  144. package/nationalarchives/stories/utilities/typography/heading-groups.stories.js +3 -3
  145. package/nationalarchives/stories/utilities/typography/typography.stories.js +1 -1
  146. package/nationalarchives/templates/layouts/_generic.njk +6 -1
  147. package/nationalarchives/tools/_colour.scss +55 -17
  148. package/nationalarchives/tools/_index.scss +5 -4
  149. package/nationalarchives/tools/_spacing.scss +22 -0
  150. package/nationalarchives/tools/_typography.scss +0 -4
  151. package/nationalarchives/utilities/_a11y.scss +24 -0
  152. package/nationalarchives/utilities/_global.scss +3 -29
  153. package/nationalarchives/utilities/_index.scss +5 -5
  154. package/nationalarchives/utilities/_overrides.scss +5 -15
  155. package/nationalarchives/utilities/_typography.scss +68 -57
  156. package/nationalarchives/variables/_colour.scss +17 -9
  157. package/nationalarchives/variables/_grid.scss +1 -1
  158. package/nationalarchives/variables/_spacing.scss +12 -12
  159. package/nationalarchives/variables/_typography.scss +7 -7
  160. package/package.json +5 -2
  161. package/nationalarchives/assets/images/footer/facebook.svg +0 -11
  162. package/nationalarchives/assets/images/footer/flickr.svg +0 -11
  163. package/nationalarchives/assets/images/footer/instagram.svg +0 -17
  164. package/nationalarchives/assets/images/footer/rss.svg +0 -13
  165. package/nationalarchives/assets/images/footer/twitter.svg +0 -14
  166. package/nationalarchives/assets/images/footer/youtube.svg +0 -12
  167. package/nationalarchives/stories/development/dependencies.mdx +0 -11
  168. package/nationalarchives/stories/development/relationships.md +0 -91
  169. package/nationalarchives/stories/development/technologies.mdx +0 -65
  170. package/nationalarchives/utilities/_font-awesome.scss +0 -5
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,(()=>(()=>{"use strict";var e={948:(e,t,r)=>{r.d(t,{Z:()=>i});const i=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(e){return(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)}))}}},t={};function r(i){var o=t[i];if(void 0!==o)return o.exports;var l=t[i]={exports:{}};return e[i](l,l.exports,r),l.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{r.r(i),r.d(i,{Gallery:()=>l});var e=r(948);function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function o(e,r){for(var i=0;i<r.length;i++){var o=r[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(void 0,l=function(e,r){if("object"!==t(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var o=i.call(e,"string");if("object"!==t(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===t(l)?l:String(l)),o)}var l}var l=function(){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.$module=e,this.$items=e&&e.querySelector(".tna-gallery__items"),this.opened=!1}var r,i;return r=t,(i=[{key:"init",value:function(){var t=this;if(this.$module&&this.$items&&(this.items=this.$module.querySelectorAll(".tna-gallery__item").length,this.items>1)){var r="tna-gallery-".concat((0,e.Z)());this.$module.classList.add("tna-gallery--collapsed"),this.$items.setAttribute("tabindex","-1"),this.$galleryToggle=document.createElement("button"),this.$galleryToggle.classList.add("tna-gallery__toggle","tna-button","tna-button--accent"),this.$galleryToggle.setAttribute("aria-controls",r),this.$galleryToggle.setAttribute("aria-expanded",!1),this.$galleryToggle.innerText="View ".concat(this.items," images"),this.$galleryToggle.addEventListener("click",(function(){t.handleToggleGallery()})),this.$galleryToggleWrapper=document.createElement("div"),this.$galleryToggleWrapper.classList.add("tna-column","tna-column--full","tna-gallery__toggle-wrapper"),this.$galleryToggleWrapper.appendChild(this.$galleryToggle),this.$items.parentElement.appendChild(this.$galleryToggleWrapper),this.$items.setAttribute("id",r)}}},{key:"handleToggleGallery",value:function(){this.opened=!this.opened,this.opened?(this.$module.classList.remove("tna-gallery--collapsed"),this.$galleryToggle.setAttribute("aria-expanded",!0),this.$galleryToggle.innerText="Close images",this.$items.setAttribute("tabindex","0"),this.$items.focus(),this.$items.setAttribute("tabindex","-1")):(this.$module.classList.add("tna-gallery--collapsed"),this.$galleryToggle.setAttribute("aria-expanded",!1),this.$galleryToggle.innerText="View ".concat(this.items," images"))}}])&&o(r.prototype,i),Object.defineProperty(r,"prototype",{writable:!1}),t}()})(),i})()));
2
+ //# sourceMappingURL=gallery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components/gallery/gallery.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,cAAe,GAAIH,GACA,iBAAZC,QACdA,QAAqB,YAAID,IAEzBD,EAAkB,YAAIC,GACvB,CATD,CASGK,MAAM,I,yDCDT,QARe,WAAH,OACT,CAAC,MAAQ,KAAO,KAAO,KAAO,MAAMC,QAAQ,UAAU,SAACC,GAAC,OAErDA,EACCC,OAAOC,gBAAgB,IAAIC,WAAW,IAAI,GAAM,IAAOH,EAAI,GAC5DI,SAAS,GAAG,GACf,C,GCLCC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAad,QAGrB,IAAIC,EAASU,EAAyBE,GAAY,CAGjDb,QAAS,CAAC,GAOX,OAHAgB,EAAoBH,GAAUZ,EAAQA,EAAOD,QAASY,GAG/CX,EAAOD,OACf,CCrBAY,EAAoBK,EAAI,CAACjB,EAASkB,KACjC,IAAI,IAAIC,KAAOD,EACXN,EAAoBQ,EAAEF,EAAYC,KAASP,EAAoBQ,EAAEpB,EAASmB,IAC5EE,OAAOC,eAAetB,EAASmB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDP,EAAoBQ,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFd,EAAoBkB,EAAK9B,IACH,oBAAX+B,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAetB,EAAS+B,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAetB,EAAS,aAAc,CAAEiC,OAAO,GAAO,E,muBCHvD,IAAMC,EAAO,WAClB,SAAAA,EAAYC,I,4FAASC,CAAA,KAAAF,GACnBG,KAAKF,QAAUA,EACfE,KAAKC,OAASH,GAAWA,EAAQI,cAAc,uBAC/CF,KAAKG,QAAS,CAChB,C,QAuEC,O,EAvEAN,G,EAAA,EAAAf,IAAA,OAAAc,MAED,WAAO,IAAAQ,EAAA,KACL,GAAKJ,KAAKF,SAAYE,KAAKC,SAM3BD,KAAKK,MAAQL,KAAKF,QAAQQ,iBAAiB,sBAAsBC,OAE7DP,KAAKK,MAAQ,GAAG,CAClB,IAAMG,EAAW,eAAHC,QAAkBC,EAAAA,EAAAA,MAEhCV,KAAKF,QAAQa,UAAUC,IAAI,0BAC3BZ,KAAKC,OAAOY,aAAa,WAAY,MAErCb,KAAKc,eAAiBC,SAASC,cAAc,UAC7ChB,KAAKc,eAAeH,UAAUC,IAC5B,sBACA,aACA,sBAEFZ,KAAKc,eAAeD,aAAa,gBAAiBL,GAClDR,KAAKc,eAAeD,aAAa,iBAAiB,GAClDb,KAAKc,eAAeG,UAAY,QAAHR,OAAWT,KAAKK,MAAK,WAWlDL,KAAKc,eAAeI,iBAAiB,SAAS,WAI5Cd,EAAKe,qBACP,IAEAnB,KAAKoB,sBAAwBL,SAASC,cAAc,OACpDhB,KAAKoB,sBAAsBT,UAAUC,IACnC,aACA,mBACA,+BAGFZ,KAAKoB,sBAAsBC,YAAYrB,KAAKc,gBAC5Cd,KAAKC,OAAOqB,cAAcD,YAAYrB,KAAKoB,uBAE3CpB,KAAKC,OAAOY,aAAa,KAAML,EACjC,CACF,GAAC,CAAA1B,IAAA,sBAAAc,MAED,WACEI,KAAKG,QAAUH,KAAKG,OAChBH,KAAKG,QACPH,KAAKF,QAAQa,UAAUY,OAAO,0BAC9BvB,KAAKc,eAAeD,aAAa,iBAAiB,GAClDb,KAAKc,eAAeG,UAAY,eAChCjB,KAAKC,OAAOY,aAAa,WAAY,KACrCb,KAAKC,OAAOuB,QACZxB,KAAKC,OAAOY,aAAa,WAAY,QAErCb,KAAKF,QAAQa,UAAUC,IAAI,0BAC3BZ,KAAKc,eAAeD,aAAa,iBAAiB,GAClDb,KAAKc,eAAeG,UAAY,QAAHR,OAAWT,KAAKK,MAAK,WAEtD,M,oEAACR,CAAA,CA5EiB,E","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/uuid.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object","webpack://TNAFrontend/./src/nationalarchives/components/gallery/gallery.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","const uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (\n c ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))\n ).toString(16),\n );\n\nexport default uuidv4;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Gallery {\n constructor($module) {\n this.$module = $module;\n this.$items = $module && $module.querySelector(\".tna-gallery__items\");\n this.opened = false;\n }\n\n init() {\n if (!this.$module || !this.$items) {\n return;\n }\n\n const supportTouchHorizontal = false;\n\n this.items = this.$module.querySelectorAll(\".tna-gallery__item\").length;\n\n if (this.items > 1) {\n const uniqueId = `tna-gallery-${uuidv4()}`;\n\n this.$module.classList.add(\"tna-gallery--collapsed\");\n this.$items.setAttribute(\"tabindex\", \"-1\");\n\n this.$galleryToggle = document.createElement(\"button\");\n this.$galleryToggle.classList.add(\n \"tna-gallery__toggle\",\n \"tna-button\",\n \"tna-button--accent\",\n );\n this.$galleryToggle.setAttribute(\"aria-controls\", uniqueId);\n this.$galleryToggle.setAttribute(\"aria-expanded\", false);\n this.$galleryToggle.innerText = `View ${this.items} images`;\n\n const onFirstTouch = () => {\n this.$module.removeEventListener(\"touchstart\", onFirstTouch);\n this.$module.classList.add(\"tna-gallery--touchable\");\n };\n\n if (supportTouchHorizontal) {\n this.$module.addEventListener(\"touchstart\", onFirstTouch);\n }\n\n this.$galleryToggle.addEventListener(\"click\", () => {\n if (supportTouchHorizontal) {\n this.$module.removeEventListener(\"touchstart\", onFirstTouch);\n }\n this.handleToggleGallery();\n });\n\n this.$galleryToggleWrapper = document.createElement(\"div\");\n this.$galleryToggleWrapper.classList.add(\n \"tna-column\",\n \"tna-column--full\",\n \"tna-gallery__toggle-wrapper\",\n );\n\n this.$galleryToggleWrapper.appendChild(this.$galleryToggle);\n this.$items.parentElement.appendChild(this.$galleryToggleWrapper);\n\n this.$items.setAttribute(\"id\", uniqueId);\n }\n }\n\n handleToggleGallery() {\n this.opened = !this.opened;\n if (this.opened) {\n this.$module.classList.remove(\"tna-gallery--collapsed\");\n this.$galleryToggle.setAttribute(\"aria-expanded\", true);\n this.$galleryToggle.innerText = \"Close images\";\n this.$items.setAttribute(\"tabindex\", \"0\");\n this.$items.focus();\n this.$items.setAttribute(\"tabindex\", \"-1\");\n } else {\n this.$module.classList.add(\"tna-gallery--collapsed\");\n this.$galleryToggle.setAttribute(\"aria-expanded\", false);\n this.$galleryToggle.innerText = `View ${this.items} images`;\n }\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","replace","c","crypto","getRandomValues","Uint8Array","toString","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","Gallery","$module","_classCallCheck","this","$items","querySelector","opened","_this","items","querySelectorAll","length","uniqueId","concat","uuidv4","classList","add","setAttribute","$galleryToggle","document","createElement","innerText","addEventListener","handleToggleGallery","$galleryToggleWrapper","appendChild","parentElement","remove","focus"],"sourceRoot":""}
@@ -0,0 +1,80 @@
1
+ import uuidv4 from "../../lib/uuid.mjs";
2
+
3
+ export class Gallery {
4
+ constructor($module) {
5
+ this.$module = $module;
6
+ this.$items = $module && $module.querySelector(".tna-gallery__items");
7
+ this.opened = false;
8
+ }
9
+
10
+ init() {
11
+ if (!this.$module || !this.$items) {
12
+ return;
13
+ }
14
+
15
+ const supportTouchHorizontal = false;
16
+
17
+ this.items = this.$module.querySelectorAll(".tna-gallery__item").length;
18
+
19
+ if (this.items > 1) {
20
+ const uniqueId = `tna-gallery-${uuidv4()}`;
21
+
22
+ this.$module.classList.add("tna-gallery--collapsed");
23
+ this.$items.setAttribute("tabindex", "-1");
24
+
25
+ this.$galleryToggle = document.createElement("button");
26
+ this.$galleryToggle.classList.add(
27
+ "tna-gallery__toggle",
28
+ "tna-button",
29
+ "tna-button--accent",
30
+ );
31
+ this.$galleryToggle.setAttribute("aria-controls", uniqueId);
32
+ this.$galleryToggle.setAttribute("aria-expanded", false);
33
+ this.$galleryToggle.innerText = `View ${this.items} images`;
34
+
35
+ const onFirstTouch = () => {
36
+ this.$module.removeEventListener("touchstart", onFirstTouch);
37
+ this.$module.classList.add("tna-gallery--touchable");
38
+ };
39
+
40
+ if (supportTouchHorizontal) {
41
+ this.$module.addEventListener("touchstart", onFirstTouch);
42
+ }
43
+
44
+ this.$galleryToggle.addEventListener("click", () => {
45
+ if (supportTouchHorizontal) {
46
+ this.$module.removeEventListener("touchstart", onFirstTouch);
47
+ }
48
+ this.handleToggleGallery();
49
+ });
50
+
51
+ this.$galleryToggleWrapper = document.createElement("div");
52
+ this.$galleryToggleWrapper.classList.add(
53
+ "tna-column",
54
+ "tna-column--full",
55
+ "tna-gallery__toggle-wrapper",
56
+ );
57
+
58
+ this.$galleryToggleWrapper.appendChild(this.$galleryToggle);
59
+ this.$items.parentElement.appendChild(this.$galleryToggleWrapper);
60
+
61
+ this.$items.setAttribute("id", uniqueId);
62
+ }
63
+ }
64
+
65
+ handleToggleGallery() {
66
+ this.opened = !this.opened;
67
+ if (this.opened) {
68
+ this.$module.classList.remove("tna-gallery--collapsed");
69
+ this.$galleryToggle.setAttribute("aria-expanded", true);
70
+ this.$galleryToggle.innerText = "Close images";
71
+ this.$items.setAttribute("tabindex", "0");
72
+ this.$items.focus();
73
+ this.$items.setAttribute("tabindex", "-1");
74
+ } else {
75
+ this.$module.classList.add("tna-gallery--collapsed");
76
+ this.$galleryToggle.setAttribute("aria-expanded", false);
77
+ this.$galleryToggle.innerText = `View ${this.items} images`;
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,129 @@
1
+ @use "../../tools/colour";
2
+ @use "../../tools/spacing";
3
+ @use "../../tools/media";
4
+ @use "../../utilities";
5
+ @use "../button";
6
+ @use "../grid";
7
+
8
+ .tna-gallery {
9
+ @include colour.invert;
10
+
11
+ padding-bottom: 2rem;
12
+
13
+ &__header {
14
+ padding-top: 2rem;
15
+ }
16
+
17
+ &__items {
18
+ width: 100%;
19
+ // padding-top: 2rem;
20
+
21
+ display: flex;
22
+ flex-direction: column;
23
+ align-items: center;
24
+ gap: spacing.spacing("l");
25
+
26
+ &:focus {
27
+ outline: none !important;
28
+ }
29
+ }
30
+
31
+ &__item {
32
+ margin: 0;
33
+
34
+ &-index {
35
+ padding-bottom: 1rem;
36
+
37
+ text-align: center;
38
+ }
39
+
40
+ &-figure {
41
+ }
42
+
43
+ &-image {
44
+ margin: 0 auto;
45
+ height: auto;
46
+ }
47
+
48
+ &-description {
49
+ margin-top: 1rem;
50
+ padding: 0.5rem 0 0.5rem 1rem;
51
+
52
+ @include colour.colour-border("keyline-dark", 4px, solid, left);
53
+ }
54
+
55
+ &-tabs {
56
+ @include media.on-smaller-than-large {
57
+ padding-top: 2rem;
58
+ }
59
+ }
60
+ }
61
+
62
+ &__item + &__item {
63
+ @include colour.colour-border("keyline", 1px, solid, top);
64
+ }
65
+
66
+ &__toggle-wrapper {
67
+ text-align: center;
68
+ }
69
+
70
+ &__toggle {
71
+ margin-top: 2rem;
72
+ }
73
+
74
+ &--touchable {
75
+ .tna-gallery__items {
76
+ flex-flow: row nowrap;
77
+ gap: 6rem;
78
+
79
+ overflow-x: scroll;
80
+ scroll-snap-type: x mandatory;
81
+ }
82
+
83
+ .tna-gallery__item {
84
+ width: 100%;
85
+
86
+ scroll-snap-align: center;
87
+ flex: none;
88
+ }
89
+
90
+ &.tna-gallery--collapsed {
91
+ .tna-gallery__items {
92
+ overflow: auto;
93
+ }
94
+ }
95
+ }
96
+
97
+ &--collapsed &__item + &__item,
98
+ &--collapsed &__item:first-child &__item-description,
99
+ &--collapsed &__item:first-child &__item-tabs {
100
+ display: none;
101
+ }
102
+
103
+ &--collapsed &__item-figure {
104
+ width: 100%;
105
+ }
106
+
107
+ @include colour.on-high-contrast {
108
+ &__items {
109
+ // padding-top: 2rem;
110
+ }
111
+
112
+ &__item {
113
+ // padding-bottom: 2rem;
114
+
115
+ // @include colour.colour-border("keyline-dark", 1px);
116
+
117
+ &-index {
118
+ // padding-top: 0.5rem;
119
+ }
120
+
121
+ &-description {
122
+ // margin-bottom: 2rem;
123
+ // padding: 0 1rem 1rem;
124
+
125
+ // border: none;
126
+ }
127
+ }
128
+ }
129
+ }
@@ -0,0 +1,76 @@
1
+ import Gallery from "./template.njk";
2
+ import macroOptions from "./macro-options.json";
3
+ import { expect } from "@storybook/jest";
4
+ import { within, userEvent } from "@storybook/testing-library";
5
+
6
+ const argTypes = {
7
+ heading: { control: "object" },
8
+ items: { control: "object" },
9
+ classes: { control: "text" },
10
+ attributes: { control: "object" },
11
+ };
12
+
13
+ Object.keys(argTypes).forEach((argType) => {
14
+ argTypes[argType].description = macroOptions.find(
15
+ (option) => option.name === argType,
16
+ )?.description;
17
+ });
18
+
19
+ export default {
20
+ title: "Components/Gallery",
21
+ argTypes,
22
+ };
23
+
24
+ const Template = ({ heading, items, classes, attributes }) =>
25
+ Gallery({
26
+ params: {
27
+ heading,
28
+ items,
29
+ classes,
30
+ attributes,
31
+ },
32
+ });
33
+
34
+ export const Standard = Template.bind({});
35
+ Standard.args = {
36
+ heading: { title: "My gallery", level: 3 },
37
+ items: Array(6)
38
+ .fill({
39
+ alt: "",
40
+ width: "",
41
+ height: "",
42
+ })
43
+ .map((item, index) => ({
44
+ ...item,
45
+ src: `https://picsum.photos/id/${index + 1}/${
46
+ index % 3 === 0 ? "800/600" : index % 3 === 1 ? "600/600" : "600/800"
47
+ }`,
48
+ alt: `Photo ${index + 1}`,
49
+ description: `Photo #${index + 1}`,
50
+ tabs:
51
+ index === 0
52
+ ? [
53
+ {
54
+ id: "tab-1",
55
+ title: "Transcript",
56
+ body: "<p>TEST TRANSCRIPT</p>",
57
+ },
58
+ {
59
+ id: "tab-2",
60
+ title: "Translation",
61
+ body: "<p>TEST TRANSLATION</p>",
62
+ },
63
+ ]
64
+ : index === 1
65
+ ? [
66
+ {
67
+ id: "tab-1",
68
+ title: "Transcript",
69
+ body: "<p>TEST TRANSCRIPT</p>",
70
+ },
71
+ ]
72
+ : null,
73
+ })),
74
+
75
+ classes: "tna-gallery--demo",
76
+ };
@@ -0,0 +1,104 @@
1
+ [
2
+ {
3
+ "name": "heading",
4
+ "type": "object",
5
+ "required": true,
6
+ "description": "",
7
+ "params": [
8
+ {
9
+ "name": "title",
10
+ "type": "string",
11
+ "required": true,
12
+ "description": ""
13
+ },
14
+ {
15
+ "name": "level",
16
+ "type": "number",
17
+ "required": true,
18
+ "description": ""
19
+ },
20
+ {
21
+ "name": "size",
22
+ "type": "string",
23
+ "required": false,
24
+ "description": ""
25
+ }
26
+ ]
27
+ },
28
+ {
29
+ "name": "items",
30
+ "type": "array",
31
+ "required": true,
32
+ "description": "",
33
+ "params": [
34
+ {
35
+ "name": "src",
36
+ "type": "string",
37
+ "required": true,
38
+ "description": ""
39
+ },
40
+ {
41
+ "name": "alt",
42
+ "type": "string",
43
+ "required": true,
44
+ "description": ""
45
+ },
46
+ {
47
+ "name": "width",
48
+ "type": "number",
49
+ "required": true,
50
+ "description": ""
51
+ },
52
+ {
53
+ "name": "height",
54
+ "type": "number",
55
+ "required": true,
56
+ "description": ""
57
+ },
58
+ {
59
+ "name": "description",
60
+ "type": "string",
61
+ "required": false,
62
+ "description": ""
63
+ },
64
+ {
65
+ "name": "tabs",
66
+ "type": "array",
67
+ "required": true,
68
+ "description": "",
69
+ "params": [
70
+ {
71
+ "name": "id",
72
+ "type": "string",
73
+ "required": true,
74
+ "description": ""
75
+ },
76
+ {
77
+ "name": "title",
78
+ "type": "string",
79
+ "required": true,
80
+ "description": ""
81
+ },
82
+ {
83
+ "name": "body",
84
+ "type": "string",
85
+ "required": true,
86
+ "description": ""
87
+ }
88
+ ]
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "name": "classes",
94
+ "type": "string",
95
+ "required": false,
96
+ "description": "Classes to add to the gallery."
97
+ },
98
+ {
99
+ "name": "attributes",
100
+ "type": "object",
101
+ "required": false,
102
+ "description": "HTML attributes (for example data attributes) to add to the gallery."
103
+ }
104
+ ]
@@ -0,0 +1,3 @@
1
+ {% macro tnaGallery(params) %}
2
+ {%- include "nationalarchives/components/gallery/template.njk" -%}
3
+ {% endmacro %}
@@ -0,0 +1,45 @@
1
+ {% from "nationalarchives/components/tabs/macro.njk" import tnaTabs %}
2
+
3
+ {%- set containerClasses = [params.classes] if params.classes else [] -%}
4
+ <{{ 'section' if params.heading else 'div' }} class="tna-gallery {{ containerClasses | join(' ') }}" data-module="tna-gallery" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
5
+ {%- if params.heading -%}
6
+ <div class="tna-container">
7
+ <div class="tna-column tna-column--full tna-gallery__header">
8
+ <h{{ params.heading.level }} class="tna-heading tna-heading--{{ params.heading.size or 'l' }}">
9
+ {{ params.heading.title }}
10
+ </h{{ params.heading.level }}>
11
+ </div>
12
+ </div>
13
+ {%- endif -%}
14
+ <div class="tna-gallery__items">
15
+ {%- for item in params.items -%}
16
+ <div class="tna-gallery__item tna-container">
17
+ <div class="tna-column tna-column--full tna-gallery__header">
18
+ <p class="tna-gallery__item-index">Image {{ loop.index }} of {{ params.items|length }}</p>
19
+ </div>
20
+ <figure class="tna-gallery__item-figure tna-column {{ 'tna-column--width-2-3 tna-column--full-medium tna-column--full-small tna-column--full-tiny' if item.tabs else 'tna-column--full' }}">
21
+ <img src="{{ item.src }}" class="tna-gallery__item-image" alt="{{ item.alt }}" width="{{ item.width }}" height="{{ item.height }}" />
22
+ {%- if item.description -%}
23
+ <figcaption class="tna-gallery__item-description">
24
+ <p>{{ item.description }}</p>
25
+ </figcaption>
26
+ {%- endif -%}
27
+ </figure>
28
+ {%- if item.tabs -%}
29
+ <div class="tna-gallery__item-tabs tna-column tna-column--width-1-3 tna-column--full-medium tna-column--full-small tna-column--full-tiny">
30
+ {%- if item.tabs|length > 1 -%}
31
+ {{ tnaTabs({
32
+ items: item.tabs
33
+ }) }}
34
+ {%- else -%}
35
+ <h{{ params.heading.level + 1 }} class="tna-heading tna-heading--m">
36
+ {{ item.tabs[0].title }}
37
+ </h{{ params.heading.level + 1 }}>
38
+ {{ item.tabs[0].body|safe }}
39
+ {%- endif -%}
40
+ </div>
41
+ {%- endif -%}
42
+ </div>
43
+ {%- endfor -%}
44
+ </div>
45
+ </{{ 'section' if params.heading else 'div' }}>
@@ -1,79 +1 @@
1
- @use "sass:math";
2
- @use "../../variables/grid";
3
- @use "../../tools/media";
4
- @use "../../tools/grid" as tools;
5
-
6
- .tna-container {
7
- max-width: grid.$largest-container-width;
8
- width: 100%;
9
- margin-right: auto;
10
- margin-left: auto;
11
- padding-right: math.div(grid.$gutter-width, 2);
12
- padding-left: math.div(grid.$gutter-width, 2);
13
-
14
- box-sizing: border-box;
15
-
16
- display: flex;
17
- flex-wrap: wrap;
18
- justify-content: stretch;
19
- align-items: stretch;
20
-
21
- &--no-padding,
22
- &--no-padding-all {
23
- max-width: grid.$largest-container-width - (grid.$gutter-width * 2);
24
- }
25
-
26
- &--max {
27
- max-width: none;
28
- }
29
- }
30
-
31
- .tna-column {
32
- padding-right: math.div(grid.$gutter-width, 2);
33
- padding-left: math.div(grid.$gutter-width, 2);
34
-
35
- box-sizing: border-box;
36
-
37
- &--container {
38
- display: flex;
39
- flex-wrap: wrap;
40
- justify-content: stretch;
41
- align-items: stretch;
42
- }
43
- }
44
-
45
- @include tools.columns-generator(grid.$column-count);
46
-
47
- @include media.on-medium {
48
- @include tools.columns-generator(grid.$column-count-medium, "medium");
49
- }
50
-
51
- @include media.on-mobile {
52
- .tna-container {
53
- padding-right: math.div(grid.$gutter-width-mobile, 2);
54
- padding-left: math.div(grid.$gutter-width-mobile, 2);
55
- }
56
-
57
- .tna-column {
58
- padding-right: math.div(grid.$gutter-width-mobile, 2);
59
- padding-left: math.div(grid.$gutter-width-mobile, 2);
60
- }
61
- }
62
-
63
- @include media.on-small {
64
- @include tools.columns-generator(grid.$column-count-small, "small");
65
- }
66
-
67
- @include media.on-tiny {
68
- @include tools.columns-generator(grid.$column-count-tiny, "tiny");
69
- }
70
-
71
- .tna-container--no-padding,
72
- .tna-container--no-padding-all,
73
- .tna-container--no-padding-all > .tna-column,
74
- .tna-column--no-padding,
75
- .tna-column--container--no-padding-all,
76
- .tna-column--container--no-padding-all > .tna-column {
77
- padding-right: 0;
78
- padding-left: 0;
79
- }
1
+ @use "grid";
@@ -0,0 +1 @@
1
+ @import"https://use.typekit.net/hkj3kuz.css";.tna-visually-hidden{width:1px !important;height:1px !important;margin:0 !important;padding:0 !important;position:absolute !important;top:-9999px !important;left:-9999px !important;z-index:-1 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;border:0 !important;background-color:rgba(0,0,0,0) !important}.tna-visually-hidden::before,.tna-visually-hidden::after{content:" "}.tna-background--contrast{--font-base: var(--contrast-font-base);--font-dark: var(--contrast-font-dark);--font-light: var(--contrast-font-light);--link: var(--contrast-link);--link-visited: var(--contrast-link-visited);--keyline: var(--contrast-keyline);--keyline-dark: var(--contrast-keyline-dark);--button-text: var(--contrast-button-text);--button-background: var(--contrast-button-background);--button-hover-text: var(--contrast-button-hover-text);--button-hover-background: var(--contrast-button-hover-background);background-color:#1e1e1e;background-color:var(--contrast-background);color:rgba(255,255,255,.95);color:var(--font-base)}.tna-chip,.tna-hgroup__supertitle,.tna-background--accent{--font-base: var(--accent-font-base);--font-dark: var(--accent-font-dark);--font-light: var(--accent-font-light);--link: var(--accent-link);--link-visited: var(--accent-link-visited);--keyline: var(--accent-keyline);--keyline-dark: var(--accent-keyline-dark);background-color:#111;background-color:var(--accent-background);color:rgba(255,255,255,.95);color:var(--font-base)}.tna-background--accent-light{background-color:#d9d9d6;background-color:var(--accent-background-light);--font-base: #343338;--font-dark: #000;--font-light: rgba(52, 51, 56, 0.7);--link: #000;--link-visited: #4c2c92;--keyline: #ccc;--keyline-dark: #26262a;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff}.tna-ul,.tna-ol,.tna-chip-list,.tna-blockquote,.tna-scene-setter,.tna-aside{margin-bottom:2rem}.tna-ul:last-child,.tna-ol:last-child,.tna-chip-list:last-child,.tna-blockquote:last-child,.tna-scene-setter:last-child,.tna-aside:last-child{margin-bottom:0}:root{--page-background: #f4f4f4;--font-base: #343338;--font-dark: #000;--font-light: rgba(52, 51, 56, 0.7);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: #00b0ff;--keyline: #ccc;--keyline-dark: #26262a;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template{min-width:320px;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;font-size:16px;background-color:#f4f4f4;background-color:var(--page-background);accent-color:var(--accent);--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important}.tna-template--system-theme{--page-background: #f4f4f4;--font-base: #343338;--font-dark: #000;--font-light: rgba(52, 51, 56, 0.7);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: #00b0ff;--keyline: #ccc;--keyline-dark: #26262a;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}@media(prefers-color-scheme: dark){.tna-template--system-theme{--page-background: #111;--font-base: rgba(255, 255, 255, 0.95);--font-dark: #fff;--font-light: rgba(255, 255, 255, 0.5);--link: #00b0ff;--link-visited: #fff;--focus-outline: #00b0ff;--keyline: rgba(255, 255, 255, 0.25);--keyline-dark: #fff;--button-text: #000;--button-background: #fff;--button-hover-text: #fff;--button-hover-background: #000;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #8c9694;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}}@media(prefers-contrast: more){.tna-template--system-theme{--page-background: #fff;--font-base: #000;--font-dark: #000;--font-light: #000;--link: #004c7e;--link-visited: #000;--focus-outline: #fd3f03;--keyline: #000;--keyline-dark: #000;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #f4f4f4;--contrast-font-base: #000;--contrast-font-dark: #000;--contrast-font-light: #000;--contrast-link: #004c7e;--contrast-link-visited: #000;--contrast-keyline: #000;--contrast-keyline-dark: #000;--contrast-button-text: #fff;--contrast-button-background: #000;--contrast-button-hover-text: #000;--contrast-button-hover-background: #fff;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--system-theme *{background-image:none !important}}@media(prefers-contrast: more)and (prefers-color-scheme: dark){.tna-template--system-theme{--page-background: #000;--font-base: #fff;--font-dark: #fff;--font-light: #fff;--link: #fff;--link-visited: #fff;--focus-outline: #00b0ff;--keyline: #fff;--keyline-dark: #fff;--button-text: #000;--button-background: #fff;--button-hover-text: #fff;--button-hover-background: #000;--contrast-background: #111;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #8c9694;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}}.tna-template--light-theme{--page-background: #f4f4f4;--font-base: #343338;--font-dark: #000;--font-light: rgba(52, 51, 56, 0.7);--link: #1d70ab;--link-visited: #4c2c92;--focus-outline: #00b0ff;--keyline: #ccc;--keyline-dark: #26262a;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--dark-theme{--page-background: #111;--font-base: rgba(255, 255, 255, 0.95);--font-dark: #fff;--font-light: rgba(255, 255, 255, 0.5);--link: #00b0ff;--link-visited: #fff;--focus-outline: #00b0ff;--keyline: rgba(255, 255, 255, 0.25);--keyline-dark: #fff;--button-text: #000;--button-background: #fff;--button-hover-text: #fff;--button-hover-background: #000;--contrast-background: #1e1e1e;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #8c9694;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--high-contrast-theme{--page-background: #fff;--font-base: #000;--font-dark: #000;--font-light: #000;--link: #004c7e;--link-visited: #000;--focus-outline: #fd3f03;--keyline: #000;--keyline-dark: #000;--button-text: #fff;--button-background: #000;--button-hover-text: #000;--button-hover-background: #fff;--contrast-background: #f4f4f4;--contrast-font-base: #000;--contrast-font-dark: #000;--contrast-font-light: #000;--contrast-link: #004c7e;--contrast-link-visited: #000;--contrast-keyline: #000;--contrast-keyline-dark: #000;--contrast-button-text: #fff;--contrast-button-background: #000;--contrast-button-hover-text: #000;--contrast-button-hover-background: #fff;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #d9d9d6;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--high-contrast-theme *{background-image:none !important}.tna-template--high-contrast-theme.tna-template--dark-theme{--page-background: #000;--font-base: #fff;--font-dark: #fff;--font-light: #fff;--link: #fff;--link-visited: #fff;--focus-outline: #00b0ff;--keyline: #fff;--keyline-dark: #fff;--button-text: #000;--button-background: #fff;--button-hover-text: #fff;--button-hover-background: #000;--contrast-background: #111;--contrast-font-base: #fff;--contrast-font-dark: #fff;--contrast-font-light: rgba(255, 255, 255, 0.7);--contrast-link: #fff;--contrast-link-visited: #fff;--contrast-keyline: rgba(255, 255, 255, 0.5);--contrast-keyline-dark: rgba(255, 255, 255, 0.8);--contrast-button-text: #000;--contrast-button-background: #fff;--contrast-button-hover-text: #fff;--contrast-button-hover-background: #000;--accent: #d9d9d6;--accent-background: #111;--accent-background-light: #8c9694;--accent-font-base: #fff;--accent-font-dark: #fff;--accent-font-light: rgba(255, 255, 255, 0.7);--accent-link: #fff;--accent-link-visited: #b9f;--accent-keyline: rgba(255, 255, 255, 0.5);--accent-keyline-dark: rgba(255, 255, 255, 0.8);--button-accent-text: #000;--button-accent-background: #8c9694}.tna-template--yellow-accent{--accent: #fc0 !important;--accent-background: #fc0 !important;--accent-background-light: #f9f7e2 !important;--accent-font-base: #000 !important;--accent-font-dark: #000 !important;--accent-font-light: rgba(0, 0, 0, 0.7) !important;--accent-link: #000 !important;--accent-link-visited: #000 !important;--accent-keyline: rgba(0, 0, 0, 0.5) !important;--accent-keyline-dark: rgba(0, 0, 0, 0.8) !important;--button-accent-background: #fc0 !important}.tna-template--pink-accent{--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important;--button-accent-text: #fff !important;--accent: #fe1d57 !important;--accent-background: #9c193a !important;--accent-background-light: #fad3d4 !important;--button-accent-background: #9c193a !important}.tna-template--orange-accent{--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important;--button-accent-text: #fff !important;--accent: #fd3f03 !important;--accent-background: #8f3415 !important;--accent-background-light: #f9e1bc !important;--button-accent-background: #8f3415 !important}.tna-template--green-accent{--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important;--button-accent-text: #fff !important;--accent: #86bc25 !important;--accent-background: #00623b !important;--accent-background-light: #dde5d5 !important;--button-accent-background: #00623b !important}.tna-template--blue-accent{--accent-font-base: #fff !important;--accent-font-dark: #fff !important;--accent-font-light: rgba(255, 255, 255, 0.7) !important;--accent-link: #fff !important;--accent-link-visited: #fff !important;--accent-keyline: rgba(255, 255, 255, 0.5) !important;--accent-keyline-dark: rgba(255, 255, 255, 0.8) !important;--button-accent-text: #fff !important;--accent: #00b0ff !important;--accent-background: #004c7e !important;--accent-background-light: #d4e5ef !important;--button-accent-background: #004c7e !important}@media(prefers-reduced-motion){.tna-template *{animation:none !important;transition:none !important}}.tna-template__body{min-height:100%;margin:0;padding:0;overflow:auto}.tna-template__body:has(.tna-header):has(#main-content[role=main]):has(.tna-footer){display:flex;flex-direction:column}.tna-template__body:has(.tna-header):has(#main-content[role=main]):has(.tna-footer) #main-content[role=main]{flex:1}img,svg,picture,video,canvas{max-width:100%;display:block}video,canvas{width:100%}[hidden]{display:none}*:focus{outline:.3125rem solid;outline-color:#00b0ff;outline-color:var(--focus-outline);outline-offset:.125rem}hr{margin:2rem 0;border-width:1px 0 0;border-color:#ccc;border-color:var(--keyline);border-style:solid}.tna-section{padding-top:3rem;padding-bottom:3rem}@media(max-width: 48em){.tna-section{padding-top:2rem;padding-bottom:2rem}}.tna-aside{padding:2rem}@media(max-width: 48em){.tna-aside{padding:1rem}}.tna-template--high-contrast-theme .tna-aside{border:1px #26262a solid;border:1px var(--keyline-dark) solid}@media(prefers-contrast: more){.tna-template--system-theme .tna-aside{border:1px #26262a solid;border:1px var(--keyline-dark) solid}}.tna-\!--no-margin-top,.tna-\!--no-margin-vertical{margin-top:0 !important}.tna-\!--no-margin-bottom,.tna-\!--no-margin-vertical{margin-bottom:0 !important}.tna-\!--no-padding-top,.tna-\!--no-padding-vertical{padding-top:0 !important}.tna-\!--no-padding-bottom,.tna-\!--no-padding-vertical{padding-bottom:0 !important}.tna-\!--margin-top-xs,.tna-\!--margin-vertical-xs{margin-top:0.5rem !important}.tna-\!--margin-top-s,.tna-\!--margin-vertical-s{margin-top:1rem !important}.tna-\!--margin-top-m,.tna-\!--margin-vertical-m{margin-top:2rem !important}.tna-\!--margin-top-l,.tna-\!--margin-vertical-l{margin-top:3rem !important}.tna-\!--margin-top-xl,.tna-\!--margin-vertical-xl{margin-top:5rem !important}.tna-\!--margin-top-xxl,.tna-\!--margin-vertical-xxl{margin-top:8rem !important}.tna-\!--margin-bottom-xs,.tna-\!--margin-vertical-xs{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s,.tna-\!--margin-vertical-s{margin-bottom:1rem !important}.tna-\!--margin-bottom-m,.tna-\!--margin-vertical-m{margin-bottom:2rem !important}.tna-\!--margin-bottom-l,.tna-\!--margin-vertical-l{margin-bottom:3rem !important}.tna-\!--margin-bottom-xl,.tna-\!--margin-vertical-xl{margin-bottom:5rem !important}.tna-\!--margin-bottom-xxl,.tna-\!--margin-vertical-xxl{margin-bottom:8rem !important}.tna-\!--padding-top-xs,.tna-\!--padding-vertical-xs{padding-top:0.5rem !important}.tna-\!--padding-top-s,.tna-\!--padding-vertical-s{padding-top:1rem !important}.tna-\!--padding-top-m,.tna-\!--padding-vertical-m{padding-top:2rem !important}.tna-\!--padding-top-l,.tna-\!--padding-vertical-l{padding-top:3rem !important}.tna-\!--padding-top-xl,.tna-\!--padding-vertical-xl{padding-top:5rem !important}.tna-\!--padding-top-xxl,.tna-\!--padding-vertical-xxl{padding-top:8rem !important}.tna-\!--padding-bottom-xs,.tna-\!--padding-vertical-xs{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s,.tna-\!--padding-vertical-s{padding-bottom:1rem !important}.tna-\!--padding-bottom-m,.tna-\!--padding-vertical-m{padding-bottom:2rem !important}.tna-\!--padding-bottom-l,.tna-\!--padding-vertical-l{padding-bottom:3rem !important}.tna-\!--padding-bottom-xl,.tna-\!--padding-vertical-xl{padding-bottom:5rem !important}.tna-\!--padding-bottom-xxl,.tna-\!--padding-vertical-xxl{padding-bottom:8rem !important}@media(min-width: 48.0625em)and (max-width: 64em){.tna-\!--no-margin-top-medium,.tna-\!--no-margin-vertical-medium{margin-top:0 !important}.tna-\!--no-margin-bottom-medium,.tna-\!--no-margin-vertical-medium{margin-bottom:0 !important}.tna-\!--no-padding-top-medium,.tna-\!--no-padding-vertical-medium{padding-top:0 !important}.tna-\!--no-padding-bottom-medium,.tna-\!--no-padding-vertical-medium{padding-bottom:0 !important}.tna-\!--margin-top-xs-medium,.tna-\!--margin-vertical-xs-medium{margin-top:0.5rem !important}.tna-\!--margin-top-s-medium,.tna-\!--margin-vertical-s-medium{margin-top:1rem !important}.tna-\!--margin-top-m-medium,.tna-\!--margin-vertical-m-medium{margin-top:2rem !important}.tna-\!--margin-top-l-medium,.tna-\!--margin-vertical-l-medium{margin-top:3rem !important}.tna-\!--margin-top-xl-medium,.tna-\!--margin-vertical-xl-medium{margin-top:5rem !important}.tna-\!--margin-top-xxl-medium,.tna-\!--margin-vertical-xxl-medium{margin-top:8rem !important}.tna-\!--margin-bottom-xs-medium,.tna-\!--margin-vertical-xs-medium{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-medium,.tna-\!--margin-vertical-s-medium{margin-bottom:1rem !important}.tna-\!--margin-bottom-m-medium,.tna-\!--margin-vertical-m-medium{margin-bottom:2rem !important}.tna-\!--margin-bottom-l-medium,.tna-\!--margin-vertical-l-medium{margin-bottom:3rem !important}.tna-\!--margin-bottom-xl-medium,.tna-\!--margin-vertical-xl-medium{margin-bottom:5rem !important}.tna-\!--margin-bottom-xxl-medium,.tna-\!--margin-vertical-xxl-medium{margin-bottom:8rem !important}.tna-\!--padding-top-xs-medium,.tna-\!--padding-vertical-xs-medium{padding-top:0.5rem !important}.tna-\!--padding-top-s-medium,.tna-\!--padding-vertical-s-medium{padding-top:1rem !important}.tna-\!--padding-top-m-medium,.tna-\!--padding-vertical-m-medium{padding-top:2rem !important}.tna-\!--padding-top-l-medium,.tna-\!--padding-vertical-l-medium{padding-top:3rem !important}.tna-\!--padding-top-xl-medium,.tna-\!--padding-vertical-xl-medium{padding-top:5rem !important}.tna-\!--padding-top-xxl-medium,.tna-\!--padding-vertical-xxl-medium{padding-top:8rem !important}.tna-\!--padding-bottom-xs-medium,.tna-\!--padding-vertical-xs-medium{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-medium,.tna-\!--padding-vertical-s-medium{padding-bottom:1rem !important}.tna-\!--padding-bottom-m-medium,.tna-\!--padding-vertical-m-medium{padding-bottom:2rem !important}.tna-\!--padding-bottom-l-medium,.tna-\!--padding-vertical-l-medium{padding-bottom:3rem !important}.tna-\!--padding-bottom-xl-medium,.tna-\!--padding-vertical-xl-medium{padding-bottom:5rem !important}.tna-\!--padding-bottom-xxl-medium,.tna-\!--padding-vertical-xxl-medium{padding-bottom:8rem !important}}@media(min-width: 30.0625em)and (max-width: 48em){.tna-\!--no-margin-top-small,.tna-\!--no-margin-vertical-small{margin-top:0 !important}.tna-\!--no-margin-bottom-small,.tna-\!--no-margin-vertical-small{margin-bottom:0 !important}.tna-\!--no-padding-top-small,.tna-\!--no-padding-vertical-small{padding-top:0 !important}.tna-\!--no-padding-bottom-small,.tna-\!--no-padding-vertical-small{padding-bottom:0 !important}.tna-\!--margin-top-xs-small,.tna-\!--margin-vertical-xs-small{margin-top:0.5rem !important}.tna-\!--margin-top-s-small,.tna-\!--margin-vertical-s-small{margin-top:0.75rem !important}.tna-\!--margin-top-m-small,.tna-\!--margin-vertical-m-small{margin-top:1.5rem !important}.tna-\!--margin-top-l-small,.tna-\!--margin-vertical-l-small{margin-top:2rem !important}.tna-\!--margin-top-xl-small,.tna-\!--margin-vertical-xl-small{margin-top:3rem !important}.tna-\!--margin-top-xxl-small,.tna-\!--margin-vertical-xxl-small{margin-top:5rem !important}.tna-\!--margin-bottom-xs-small,.tna-\!--margin-vertical-xs-small{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-small,.tna-\!--margin-vertical-s-small{margin-bottom:0.75rem !important}.tna-\!--margin-bottom-m-small,.tna-\!--margin-vertical-m-small{margin-bottom:1.5rem !important}.tna-\!--margin-bottom-l-small,.tna-\!--margin-vertical-l-small{margin-bottom:2rem !important}.tna-\!--margin-bottom-xl-small,.tna-\!--margin-vertical-xl-small{margin-bottom:3rem !important}.tna-\!--margin-bottom-xxl-small,.tna-\!--margin-vertical-xxl-small{margin-bottom:5rem !important}.tna-\!--padding-top-xs-small,.tna-\!--padding-vertical-xs-small{padding-top:0.5rem !important}.tna-\!--padding-top-s-small,.tna-\!--padding-vertical-s-small{padding-top:0.75rem !important}.tna-\!--padding-top-m-small,.tna-\!--padding-vertical-m-small{padding-top:1.5rem !important}.tna-\!--padding-top-l-small,.tna-\!--padding-vertical-l-small{padding-top:2rem !important}.tna-\!--padding-top-xl-small,.tna-\!--padding-vertical-xl-small{padding-top:3rem !important}.tna-\!--padding-top-xxl-small,.tna-\!--padding-vertical-xxl-small{padding-top:5rem !important}.tna-\!--padding-bottom-xs-small,.tna-\!--padding-vertical-xs-small{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-small,.tna-\!--padding-vertical-s-small{padding-bottom:0.75rem !important}.tna-\!--padding-bottom-m-small,.tna-\!--padding-vertical-m-small{padding-bottom:1.5rem !important}.tna-\!--padding-bottom-l-small,.tna-\!--padding-vertical-l-small{padding-bottom:2rem !important}.tna-\!--padding-bottom-xl-small,.tna-\!--padding-vertical-xl-small{padding-bottom:3rem !important}.tna-\!--padding-bottom-xxl-small,.tna-\!--padding-vertical-xxl-small{padding-bottom:5rem !important}}@media(max-width: 30em){.tna-\!--no-margin-top-tiny,.tna-\!--no-margin-vertical-tiny{margin-top:0 !important}.tna-\!--no-margin-bottom-tiny,.tna-\!--no-margin-vertical-tiny{margin-bottom:0 !important}.tna-\!--no-padding-top-tiny,.tna-\!--no-padding-vertical-tiny{padding-top:0 !important}.tna-\!--no-padding-bottom-tiny,.tna-\!--no-padding-vertical-tiny{padding-bottom:0 !important}.tna-\!--margin-top-xs-tiny,.tna-\!--margin-vertical-xs-tiny{margin-top:0.5rem !important}.tna-\!--margin-top-s-tiny,.tna-\!--margin-vertical-s-tiny{margin-top:0.75rem !important}.tna-\!--margin-top-m-tiny,.tna-\!--margin-vertical-m-tiny{margin-top:1.5rem !important}.tna-\!--margin-top-l-tiny,.tna-\!--margin-vertical-l-tiny{margin-top:2rem !important}.tna-\!--margin-top-xl-tiny,.tna-\!--margin-vertical-xl-tiny{margin-top:3rem !important}.tna-\!--margin-top-xxl-tiny,.tna-\!--margin-vertical-xxl-tiny{margin-top:5rem !important}.tna-\!--margin-bottom-xs-tiny,.tna-\!--margin-vertical-xs-tiny{margin-bottom:0.5rem !important}.tna-\!--margin-bottom-s-tiny,.tna-\!--margin-vertical-s-tiny{margin-bottom:0.75rem !important}.tna-\!--margin-bottom-m-tiny,.tna-\!--margin-vertical-m-tiny{margin-bottom:1.5rem !important}.tna-\!--margin-bottom-l-tiny,.tna-\!--margin-vertical-l-tiny{margin-bottom:2rem !important}.tna-\!--margin-bottom-xl-tiny,.tna-\!--margin-vertical-xl-tiny{margin-bottom:3rem !important}.tna-\!--margin-bottom-xxl-tiny,.tna-\!--margin-vertical-xxl-tiny{margin-bottom:5rem !important}.tna-\!--padding-top-xs-tiny,.tna-\!--padding-vertical-xs-tiny{padding-top:0.5rem !important}.tna-\!--padding-top-s-tiny,.tna-\!--padding-vertical-s-tiny{padding-top:0.75rem !important}.tna-\!--padding-top-m-tiny,.tna-\!--padding-vertical-m-tiny{padding-top:1.5rem !important}.tna-\!--padding-top-l-tiny,.tna-\!--padding-vertical-l-tiny{padding-top:2rem !important}.tna-\!--padding-top-xl-tiny,.tna-\!--padding-vertical-xl-tiny{padding-top:3rem !important}.tna-\!--padding-top-xxl-tiny,.tna-\!--padding-vertical-xxl-tiny{padding-top:5rem !important}.tna-\!--padding-bottom-xs-tiny,.tna-\!--padding-vertical-xs-tiny{padding-bottom:0.5rem !important}.tna-\!--padding-bottom-s-tiny,.tna-\!--padding-vertical-s-tiny{padding-bottom:0.75rem !important}.tna-\!--padding-bottom-m-tiny,.tna-\!--padding-vertical-m-tiny{padding-bottom:1.5rem !important}.tna-\!--padding-bottom-l-tiny,.tna-\!--padding-vertical-l-tiny{padding-bottom:2rem !important}.tna-\!--padding-bottom-xl-tiny,.tna-\!--padding-vertical-xl-tiny{padding-bottom:3rem !important}.tna-\!--padding-bottom-xxl-tiny,.tna-\!--padding-vertical-xxl-tiny{padding-bottom:5rem !important}}@font-face{font-family:"Open Sans";src:url("assets/fonts/OpenSans-Medium.ttf");font-weight:normal;font-style:normal}@font-face{font-family:"Open Sans";src:url("assets/fonts/OpenSans-Bold.ttf");font-weight:bold;font-style:normal}@font-face{font-family:"Roboto Mono";src:url("assets/fonts/RobotoMono-Regular.ttf");font-weight:normal;font-style:normal}.tna-template{color:#343338;color:var(--font-base);font-family:"Open Sans",serif;font-weight:normal;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-text-size-adjust:none;direction:ltr}.tna-template__body{color:inherit;font-size:1.125rem;line-height:1.7777777778}h1,h2,h3,h4,h5,h6,ul,ol{margin-top:0}h1,h2,h3,h4,h5,h6,strong{font-weight:bold}p{margin:0 0 1.5rem}@media(max-width: 30em){p{margin-bottom:1rem}}p:last-child{margin-bottom:0}a{color:#1d70ab;color:var(--link);text-decoration-thickness:1.5px}a:visited{color:#4c2c92;color:var(--link-visited)}a:hover,a:active{text-decoration:underline;text-decoration-thickness:3.5px}a.tna-chip{text-decoration:none}a.tna-chip,a.tna-chip:link,a.tna-chip:visited{color:#000;color:var(--font-dark)}a.tna-chip:hover{text-decoration:underline;text-decoration-thickness:3.5px}.tna-ul,.tna-ol{margin-top:0;margin-right:0;margin-left:0;padding:0 0 0 2rem}.tna-ul li::marker,.tna-ol li::marker{color:#111;color:var(--accent-background);font-weight:700}.tna-ul--plain,.tna-ol--plain{padding-left:0;list-style:none}.tna-hgroup__supertitle,.tna-chip{max-width:max-content;padding:.375em .5rem;display:block;color:#000;color:var(--font-dark);font-family:"Roboto Mono",monospace;font-weight:normal;font-size:0.875rem;text-transform:uppercase;line-height:1.1428571429;line-height:1}.tna-chip-list{padding-left:0;display:flex;flex-wrap:wrap;gap:1rem;list-style:none}.tna-hgroup__title,.tna-heading{color:#000;color:var(--font-dark);font-family:supria-sans-condensed,"Arial Narrow",sans-serif;font-weight:400}.tna-hgroup__title a,.tna-heading a{display:inline-block}.tna-hgroup__title a::after,.tna-heading a::after{padding-left:.25rem;display:inline-block;font-weight:700;content:"›"}.tna-hgroup__title a:hover::after,.tna-heading a:hover::after{padding-left:.5rem}.tna-hgroup--xl .tna-hgroup__title,.tna-heading--xl{font-size:4rem;line-height:1.2}@media(min-width: 48.0625em)and (max-width: 64em){.tna-hgroup--xl .tna-hgroup__title,.tna-heading--xl{font-size:3.125rem}}@media(max-width: 48em){.tna-hgroup--xl .tna-hgroup__title,.tna-heading--xl{font-size:2.25rem}}.tna-hgroup--l .tna-hgroup__title,.tna-heading--l{font-size:2rem;line-height:1.4}@media(min-width: 48.0625em)and (max-width: 64em){.tna-hgroup--l .tna-hgroup__title,.tna-heading--l{font-size:1.75rem}}@media(max-width: 48em){.tna-hgroup--l .tna-hgroup__title,.tna-heading--l{font-size:1.5rem}}.tna-hgroup--m .tna-hgroup__title,.tna-heading--m{font-size:1.25rem;line-height:1.6}.tna-hgroup--s .tna-hgroup__title,.tna-heading--s{font-size:1.125rem;line-height:1.6}.tna-hgroup__supertitle{margin:0 0 .5rem}.tna-hgroup__title{margin:0;display:block}.tna-heading,.tna-hgroup{margin-top:3rem;margin-bottom:1rem}.tna-heading:first-child,.tna-hgroup:first-child{margin-top:0}.tna-heading:last-child,.tna-hgroup:last-child{margin-bottom:0}.tna-blockquote{margin-top:0;margin-right:0;margin-left:0;padding:1rem 1rem 1rem 2rem;border-left:.35rem #111 solid;border-left:.35rem var(--accent-background) solid}.tna-blockquote__quote{font-weight:700}.tna-blockquote__author{font-style:italic}.tna-blockquote .tna-blockquote__author{margin:1rem 0 0}.tna-blockquote__author::before{content:"—" " "}.tna-scene-setter{font-family:"Roboto Mono",monospace;font-weight:normal;color:#000;color:var(--font-dark);font-size:1.875rem;line-height:1.6666666667}@media(max-width: 48em){.tna-scene-setter{font-size:1.5rem;line-height:2}}.tna-scene-setter a{color:inherit;text-decoration-thickness:2px}.tna-scene-setter a:hover{text-decoration-thickness:4.5px}.tna-columns{column-gap:2rem}.tna-columns--2{column-count:2}.tna-columns--3{column-count:3}@media(max-width: 48em){.tna-columns{column-gap:1.5rem}}@media(min-width: 30.0625em)and (max-width: 48em){.tna-columns--1-small{column-count:1}.tna-columns--2-small{column-count:2}.tna-columns--3-small{column-count:3}.tna-columns--4-small{column-count:4}}@media(max-width: 30em){.tna-columns--1-tiny{column-count:1}.tna-columns--2-tiny{column-count:2}.tna-columns--3-tiny{column-count:3}.tna-columns--4-tiny{column-count:4}}.tna-columns__block{break-inside:avoid}.tna-columns:has(.tna-columns__block:only-of-type){column-count:1}.tna-container{max-width:75.25rem;width:100%;margin-right:auto;margin-left:auto;padding-right:1rem;padding-left:1rem;box-sizing:border-box;display:flex;flex-wrap:wrap;justify-content:stretch;align-items:stretch}.tna-container--no-padding,.tna-container--no-padding-all{max-width:71.25rem}.tna-container--max{max-width:none}.tna-column{margin:0;padding-right:1rem;padding-left:1rem;box-sizing:border-box}.tna-column--container{display:flex;flex-wrap:wrap;justify-content:stretch;align-items:stretch}.tna-column--full{width:100%;flex:none}.tna-column--width-1-12{width:8.3333333333%;flex:none}.tna-column--width-1-6{width:16.6666666667%;flex:none}.tna-column--width-1-4{width:25%;flex:none}.tna-column--width-1-3{width:33.3333333333%;flex:none}.tna-column--width-5-12{width:41.6666666667%;flex:none}.tna-column--width-1-2{width:50%;flex:none}.tna-column--width-7-12{width:58.3333333333%;flex:none}.tna-column--width-2-3{width:66.6666666667%;flex:none}.tna-column--width-3-4{width:75%;flex:none}.tna-column--width-5-6{width:83.3333333333%;flex:none}.tna-column--width-11-12{width:91.6666666667%;flex:none}.tna-column--flex-1{width:auto;flex:1 0}.tna-column--flex-2{width:auto;flex:2 0}.tna-column--flex-3{width:auto;flex:3 0}.tna-column--order-1{order:1}.tna-column--order-2{order:2}.tna-column--order-3{order:3}.tna-column--order-4{order:4}@media(min-width: 48.0625em)and (max-width: 64em){.tna-column--full-medium{width:100%;flex:none}.tna-column--width-1-6-medium{width:16.6666666667%;flex:none}.tna-column--width-1-3-medium{width:33.3333333333%;flex:none}.tna-column--width-1-2-medium{width:50%;flex:none}.tna-column--width-2-3-medium{width:66.6666666667%;flex:none}.tna-column--width-5-6-medium{width:83.3333333333%;flex:none}.tna-column--flex-1-medium{width:auto;flex:1 0}.tna-column--flex-2-medium{width:auto;flex:2 0}.tna-column--flex-3-medium{width:auto;flex:3 0}.tna-column--order-1-medium{order:1}.tna-column--order-2-medium{order:2}.tna-column--order-3-medium{order:3}.tna-column--order-4-medium{order:4}}@media(max-width: 48em){.tna-container{padding-right:.75rem;padding-left:.75rem}.tna-column{padding-right:.75rem;padding-left:.75rem}}@media(min-width: 30.0625em)and (max-width: 48em){.tna-column--full-small{width:100%;flex:none}.tna-column--width-1-4-small{width:25%;flex:none}.tna-column--width-1-2-small{width:50%;flex:none}.tna-column--width-3-4-small{width:75%;flex:none}.tna-column--flex-1-small{width:auto;flex:1 0}.tna-column--flex-2-small{width:auto;flex:2 0}.tna-column--flex-3-small{width:auto;flex:3 0}.tna-column--order-1-small{order:1}.tna-column--order-2-small{order:2}.tna-column--order-3-small{order:3}.tna-column--order-4-small{order:4}}@media(max-width: 30em){.tna-column--full-tiny{width:100%;flex:none}.tna-column--width-1-2-tiny{width:50%;flex:none}.tna-column--flex-1-tiny{width:auto;flex:1 0}.tna-column--flex-2-tiny{width:auto;flex:2 0}.tna-column--flex-3-tiny{width:auto;flex:3 0}.tna-column--order-1-tiny{order:1}.tna-column--order-2-tiny{order:2}.tna-column--order-3-tiny{order:3}.tna-column--order-4-tiny{order:4}}.tna-container--no-padding,.tna-container--no-padding-all,.tna-container--no-padding-all>.tna-column,.tna-column--no-padding,.tna-column--container--no-padding-all,.tna-column--container--no-padding-all>.tna-column{padding-right:0;padding-left:0}/*# sourceMappingURL=grid.css.map */