splatoon-ui 0.1.0

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 (351) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +5 -0
  3. package/README.md +233 -0
  4. package/README_EN.md +236 -0
  5. package/README_JA.md +230 -0
  6. package/dist/chunk-KUURJUBW.js +2344 -0
  7. package/dist/chunk-KUURJUBW.js.map +1 -0
  8. package/dist/client.css +2634 -0
  9. package/dist/client.css.map +1 -0
  10. package/dist/client.d.ts +1012 -0
  11. package/dist/client.js +7708 -0
  12. package/dist/client.js.map +1 -0
  13. package/dist/server.css +1091 -0
  14. package/dist/server.css.map +1 -0
  15. package/dist/server.d.ts +813 -0
  16. package/dist/server.js +117 -0
  17. package/dist/server.js.map +1 -0
  18. package/dist/styles.css +4225 -0
  19. package/package.json +119 -0
  20. package/public/_images/backgrounds/base-bg-pattern-2x.jpg +0 -0
  21. package/public/_images/backgrounds/base-bg-pattern.jpg +0 -0
  22. package/public/_images/backgrounds/camo-black-2x.png +0 -0
  23. package/public/_images/backgrounds/camo-black-2x.webp +0 -0
  24. package/public/_images/backgrounds/camo-black.png +0 -0
  25. package/public/_images/backgrounds/camo-green-2x.png +0 -0
  26. package/public/_images/backgrounds/camo-green.png +0 -0
  27. package/public/_images/backgrounds/camo-orange-2x.png +0 -0
  28. package/public/_images/backgrounds/camo-orange.png +0 -0
  29. package/public/_images/backgrounds/camo-purple-2x.png +0 -0
  30. package/public/_images/backgrounds/camo-purple-revised-2x.png +0 -0
  31. package/public/_images/backgrounds/camo-purple-revised.png +0 -0
  32. package/public/_images/backgrounds/camo-purple.png +0 -0
  33. package/public/_images/backgrounds/camo-red-2x.png +0 -0
  34. package/public/_images/backgrounds/camo-red.png +0 -0
  35. package/public/_images/backgrounds/camo-white-2x.png +0 -0
  36. package/public/_images/backgrounds/camo-white-outline-2x.png +0 -0
  37. package/public/_images/backgrounds/camo-white-outline.png +0 -0
  38. package/public/_images/backgrounds/camo-white.png +0 -0
  39. package/public/_images/backgrounds/chip-white-2x.png +0 -0
  40. package/public/_images/backgrounds/chip-white.png +0 -0
  41. package/public/_images/backgrounds/circles-green-2x.png +0 -0
  42. package/public/_images/backgrounds/circles-green.png +0 -0
  43. package/public/_images/backgrounds/graffiti-2x.jpg +0 -0
  44. package/public/_images/backgrounds/graffiti-medium-up-2x.jpg +0 -0
  45. package/public/_images/backgrounds/graffiti-medium-up.jpg +0 -0
  46. package/public/_images/backgrounds/graffiti.jpg +0 -0
  47. package/public/_images/backgrounds/hardware-background-2x.png +0 -0
  48. package/public/_images/backgrounds/hardware-background-medium-up-2x.png +0 -0
  49. package/public/_images/backgrounds/hardware-background-medium-up.png +0 -0
  50. package/public/_images/backgrounds/hardware-background.png +0 -0
  51. package/public/_images/backgrounds/monsters-black-2x.png +0 -0
  52. package/public/_images/backgrounds/monsters-black.png +0 -0
  53. package/public/_images/backgrounds/octo-black-2x.png +0 -0
  54. package/public/_images/backgrounds/octo-black.png +0 -0
  55. package/public/_images/backgrounds/octo-red-2x.png +0 -0
  56. package/public/_images/backgrounds/octo-red.png +0 -0
  57. package/public/_images/backgrounds/octoarrow-green-2x.png +0 -0
  58. package/public/_images/backgrounds/octoarrow-green.png +0 -0
  59. package/public/_images/backgrounds/octoarrow-orange-2x.png +0 -0
  60. package/public/_images/backgrounds/octoarrow-orange.png +0 -0
  61. package/public/_images/backgrounds/squid-black-2x.png +0 -0
  62. package/public/_images/backgrounds/squid-black.png +0 -0
  63. package/public/_images/backgrounds/tapes-black-2x.jpg +0 -0
  64. package/public/_images/backgrounds/tapes-black-2x.webp +0 -0
  65. package/public/_images/backgrounds/tapes-black.jpg +0 -0
  66. package/public/_images/backgrounds/tapes-black.webp +0 -0
  67. package/public/_images/backgrounds/tapes-green-2x.jpg +0 -0
  68. package/public/_images/backgrounds/tapes-green-2x.webp +0 -0
  69. package/public/_images/backgrounds/tapes-green.jpg +0 -0
  70. package/public/_images/backgrounds/tapes-green.webp +0 -0
  71. package/public/_images/backgrounds/tapes-pattern-2x.jpg +0 -0
  72. package/public/_images/backgrounds/tapes-pattern.jpg +0 -0
  73. package/public/_images/backgrounds/tapes-purple-2x.jpg +0 -0
  74. package/public/_images/backgrounds/tapes-purple-2x.webp +0 -0
  75. package/public/_images/backgrounds/tapes-purple.jpg +0 -0
  76. package/public/_images/backgrounds/tapes-purple.webp +0 -0
  77. package/public/_images/banners/banner-blue-2x.png +0 -0
  78. package/public/_images/banners/banner-blue-medium-up-2x.png +0 -0
  79. package/public/_images/banners/banner-blue-medium-up.png +0 -0
  80. package/public/_images/banners/banner-blue.png +0 -0
  81. package/public/_images/banners/banner-design1-2x.png +0 -0
  82. package/public/_images/banners/banner-design1-medium-up-2x.png +0 -0
  83. package/public/_images/banners/banner-design1-medium-up.png +0 -0
  84. package/public/_images/banners/banner-design1.png +0 -0
  85. package/public/_images/banners/banner-design2-2x.png +0 -0
  86. package/public/_images/banners/banner-design2-medium-up-2x.png +0 -0
  87. package/public/_images/banners/banner-design2-medium-up.png +0 -0
  88. package/public/_images/banners/banner-design2.png +0 -0
  89. package/public/_images/banners/banner-design3-2x.png +0 -0
  90. package/public/_images/banners/banner-design3-medium-up-2x.png +0 -0
  91. package/public/_images/banners/banner-design3-medium-up.png +0 -0
  92. package/public/_images/banners/banner-design3.png +0 -0
  93. package/public/_images/banners/banner-green-2x.png +0 -0
  94. package/public/_images/banners/banner-green-medium-up-2x.png +0 -0
  95. package/public/_images/banners/banner-green-medium-up.png +0 -0
  96. package/public/_images/banners/banner-green.png +0 -0
  97. package/public/_images/banners/banner-orange-2x.png +0 -0
  98. package/public/_images/banners/banner-orange-medium-up-2x.png +0 -0
  99. package/public/_images/banners/banner-orange-medium-up.png +0 -0
  100. package/public/_images/banners/banner-orange.png +0 -0
  101. package/public/_images/banners/banner-purple-2x.png +0 -0
  102. package/public/_images/banners/banner-purple-medium-up-2x.png +0 -0
  103. package/public/_images/banners/banner-purple-medium-up.png +0 -0
  104. package/public/_images/banners/banner-purple.png +0 -0
  105. package/public/_images/banners/banner-red-2x.png +0 -0
  106. package/public/_images/banners/banner-red-medium-up-2x.png +0 -0
  107. package/public/_images/banners/banner-red-medium-up.png +0 -0
  108. package/public/_images/banners/banner-red.png +0 -0
  109. package/public/_images/banners/banner-yellow-2x.png +0 -0
  110. package/public/_images/banners/banner-yellow-medium-up-2x.png +0 -0
  111. package/public/_images/banners/banner-yellow-medium-up.png +0 -0
  112. package/public/_images/banners/banner-yellow.png +0 -0
  113. package/public/_images/characters/char-10.png +0 -0
  114. package/public/_images/characters/char-11.png +0 -0
  115. package/public/_images/characters/char-12.png +0 -0
  116. package/public/_images/characters/char-13.png +0 -0
  117. package/public/_images/characters/char-14.png +0 -0
  118. package/public/_images/characters/char-15.png +0 -0
  119. package/public/_images/characters/char-17.png +0 -0
  120. package/public/_images/characters/char-18.png +0 -0
  121. package/public/_images/characters/char-2.png +0 -0
  122. package/public/_images/characters/char-3.png +0 -0
  123. package/public/_images/characters/char-4.png +0 -0
  124. package/public/_images/characters/char-5.png +0 -0
  125. package/public/_images/characters/char-7.png +0 -0
  126. package/public/_images/characters/char-8.png +0 -0
  127. package/public/_images/characters/game-pack.png +0 -0
  128. package/public/_images/characters/salmonid.png +0 -0
  129. package/public/_images/events/active-splat-2x.webp +0 -0
  130. package/public/_images/events/active-splat.webp +0 -0
  131. package/public/_images/events/big-run-callout.jpg +0 -0
  132. package/public/_images/events/golden-egg.png +0 -0
  133. package/public/_images/events/splatnet-blade.jpg +0 -0
  134. package/public/_images/events/splatnet-next-page.png +0 -0
  135. package/public/_images/gameplay/battle-online/gameplay-battle-online-anarchy-1.jpg +0 -0
  136. package/public/_images/gameplay/battle-online/gameplay-battle-online-turfwar-left-screen.jpg +0 -0
  137. package/public/_images/gameplay/battle-online/gameplay-battle-online-turfwar-right-screen.jpg +0 -0
  138. package/public/_images/gameplay/gameplay-salmonrun.jpg +0 -0
  139. package/public/_images/gameplay/splatfest/gameplay-splatfest-1.jpg +0 -0
  140. package/public/_images/gameplay/splatfest/gameplay-splatfest-2.jpg +0 -0
  141. package/public/_images/home/character.png +0 -0
  142. package/public/_images/home/header-back.jpg +0 -0
  143. package/public/_images/home/s3-home-intro-blade.jpg +0 -0
  144. package/public/_images/news/news-staple-left.png +0 -0
  145. package/public/_images/news/news-staple-right.png +0 -0
  146. package/public/_images/news/next-page.png +0 -0
  147. package/public/_images/screenshots/video-trailer.jpg +0 -0
  148. package/public/_images/squid/ika.png +0 -0
  149. package/public/_images/squid/loader-morph-sprite.png +0 -0
  150. package/public/_images/squid/loader-swim-sprite.png +0 -0
  151. package/public/_images/squid/loader_ika.gif +0 -0
  152. package/public/_images/svg/icon-pagination.svg +1 -0
  153. package/public/_images/svg/left-black-tape-container.svg +1 -0
  154. package/public/_images/svg/left-tape.svg +9 -0
  155. package/public/_images/svg/left-yellow-tape-container.svg +1 -0
  156. package/public/_images/svg/pagination-splat.svg +1 -0
  157. package/public/_images/svg/paper-tear-down.svg +3 -0
  158. package/public/_images/svg/paper-tear-up.svg +3 -0
  159. package/public/_images/svg/right-black-tape-container.svg +1 -0
  160. package/public/_images/svg/right-tape.svg +10 -0
  161. package/public/_images/svg/right-yellow-tape-container.svg +1 -0
  162. package/public/_images/svg/styled-photo-background.svg +1 -0
  163. package/public/_images/tape-assets/sticker-1-2x.png +0 -0
  164. package/public/_images/tape-assets/sticker-1-2x.webp +0 -0
  165. package/public/_images/tape-assets/sticker-1-medium-up-2x.png +0 -0
  166. package/public/_images/tape-assets/sticker-1-medium-up-2x.webp +0 -0
  167. package/public/_images/tape-assets/sticker-1-medium-up.png +0 -0
  168. package/public/_images/tape-assets/sticker-1-medium-up.webp +0 -0
  169. package/public/_images/tape-assets/sticker-1.png +0 -0
  170. package/public/_images/tape-assets/sticker-1.webp +0 -0
  171. package/public/_images/tape-assets/sticker-10-2x.png +0 -0
  172. package/public/_images/tape-assets/sticker-10-2x.webp +0 -0
  173. package/public/_images/tape-assets/sticker-10-medium-up-2x.png +0 -0
  174. package/public/_images/tape-assets/sticker-10-medium-up-2x.webp +0 -0
  175. package/public/_images/tape-assets/sticker-10-medium-up.png +0 -0
  176. package/public/_images/tape-assets/sticker-10-medium-up.webp +0 -0
  177. package/public/_images/tape-assets/sticker-10.png +0 -0
  178. package/public/_images/tape-assets/sticker-10.webp +0 -0
  179. package/public/_images/tape-assets/sticker-11-2x.png +0 -0
  180. package/public/_images/tape-assets/sticker-11-2x.webp +0 -0
  181. package/public/_images/tape-assets/sticker-11-medium-up-2x.png +0 -0
  182. package/public/_images/tape-assets/sticker-11-medium-up-2x.webp +0 -0
  183. package/public/_images/tape-assets/sticker-11-medium-up.png +0 -0
  184. package/public/_images/tape-assets/sticker-11-medium-up.webp +0 -0
  185. package/public/_images/tape-assets/sticker-11.png +0 -0
  186. package/public/_images/tape-assets/sticker-11.webp +0 -0
  187. package/public/_images/tape-assets/sticker-12-2x.png +0 -0
  188. package/public/_images/tape-assets/sticker-12-2x.webp +0 -0
  189. package/public/_images/tape-assets/sticker-12-medium-up-2x.png +0 -0
  190. package/public/_images/tape-assets/sticker-12-medium-up-2x.webp +0 -0
  191. package/public/_images/tape-assets/sticker-12-medium-up.png +0 -0
  192. package/public/_images/tape-assets/sticker-12-medium-up.webp +0 -0
  193. package/public/_images/tape-assets/sticker-12.png +0 -0
  194. package/public/_images/tape-assets/sticker-12.webp +0 -0
  195. package/public/_images/tape-assets/sticker-2-red-2x.png +0 -0
  196. package/public/_images/tape-assets/sticker-2-red-2x.webp +0 -0
  197. package/public/_images/tape-assets/sticker-2-red-medium-up-2x.png +0 -0
  198. package/public/_images/tape-assets/sticker-2-red-medium-up-2x.webp +0 -0
  199. package/public/_images/tape-assets/sticker-2-red-medium-up.png +0 -0
  200. package/public/_images/tape-assets/sticker-2-red-medium-up.webp +0 -0
  201. package/public/_images/tape-assets/sticker-2-red.png +0 -0
  202. package/public/_images/tape-assets/sticker-2-red.webp +0 -0
  203. package/public/_images/tape-assets/sticker-3-2x.png +0 -0
  204. package/public/_images/tape-assets/sticker-3-2x.webp +0 -0
  205. package/public/_images/tape-assets/sticker-3-medium-up-2x.png +0 -0
  206. package/public/_images/tape-assets/sticker-3-medium-up-2x.webp +0 -0
  207. package/public/_images/tape-assets/sticker-3-medium-up.png +0 -0
  208. package/public/_images/tape-assets/sticker-3-medium-up.webp +0 -0
  209. package/public/_images/tape-assets/sticker-3.png +0 -0
  210. package/public/_images/tape-assets/sticker-3.webp +0 -0
  211. package/public/_images/tape-assets/sticker-4-2x.png +0 -0
  212. package/public/_images/tape-assets/sticker-4-2x.webp +0 -0
  213. package/public/_images/tape-assets/sticker-4-medium-up-2x.png +0 -0
  214. package/public/_images/tape-assets/sticker-4-medium-up-2x.webp +0 -0
  215. package/public/_images/tape-assets/sticker-4-medium-up.png +0 -0
  216. package/public/_images/tape-assets/sticker-4-medium-up.webp +0 -0
  217. package/public/_images/tape-assets/sticker-4.png +0 -0
  218. package/public/_images/tape-assets/sticker-4.webp +0 -0
  219. package/public/_images/tape-assets/sticker-5-2x.png +0 -0
  220. package/public/_images/tape-assets/sticker-5-2x.webp +0 -0
  221. package/public/_images/tape-assets/sticker-5-medium-up-2x.png +0 -0
  222. package/public/_images/tape-assets/sticker-5-medium-up-2x.webp +0 -0
  223. package/public/_images/tape-assets/sticker-5-medium-up.png +0 -0
  224. package/public/_images/tape-assets/sticker-5-medium-up.webp +0 -0
  225. package/public/_images/tape-assets/sticker-5.png +0 -0
  226. package/public/_images/tape-assets/sticker-5.webp +0 -0
  227. package/public/_images/tape-assets/sticker-6-2x.png +0 -0
  228. package/public/_images/tape-assets/sticker-6-2x.webp +0 -0
  229. package/public/_images/tape-assets/sticker-6-medium-up-2x.png +0 -0
  230. package/public/_images/tape-assets/sticker-6-medium-up-2x.webp +0 -0
  231. package/public/_images/tape-assets/sticker-6-medium-up.png +0 -0
  232. package/public/_images/tape-assets/sticker-6-medium-up.webp +0 -0
  233. package/public/_images/tape-assets/sticker-6.png +0 -0
  234. package/public/_images/tape-assets/sticker-6.webp +0 -0
  235. package/public/_images/tape-assets/sticker-7-2x.png +0 -0
  236. package/public/_images/tape-assets/sticker-7-2x.webp +0 -0
  237. package/public/_images/tape-assets/sticker-7-medium-up-2x.png +0 -0
  238. package/public/_images/tape-assets/sticker-7-medium-up-2x.webp +0 -0
  239. package/public/_images/tape-assets/sticker-7-medium-up.png +0 -0
  240. package/public/_images/tape-assets/sticker-7-medium-up.webp +0 -0
  241. package/public/_images/tape-assets/sticker-7.png +0 -0
  242. package/public/_images/tape-assets/sticker-7.webp +0 -0
  243. package/public/_images/tape-assets/sticker-8-2x.png +0 -0
  244. package/public/_images/tape-assets/sticker-8-2x.webp +0 -0
  245. package/public/_images/tape-assets/sticker-8-medium-up-2x.png +0 -0
  246. package/public/_images/tape-assets/sticker-8-medium-up-2x.webp +0 -0
  247. package/public/_images/tape-assets/sticker-8-medium-up.png +0 -0
  248. package/public/_images/tape-assets/sticker-8-medium-up.webp +0 -0
  249. package/public/_images/tape-assets/sticker-8.png +0 -0
  250. package/public/_images/tape-assets/sticker-8.webp +0 -0
  251. package/public/_images/tape-assets/sticker-9-2x.png +0 -0
  252. package/public/_images/tape-assets/sticker-9-2x.webp +0 -0
  253. package/public/_images/tape-assets/sticker-9-medium-up-2x.png +0 -0
  254. package/public/_images/tape-assets/sticker-9-medium-up-2x.webp +0 -0
  255. package/public/_images/tape-assets/sticker-9-medium-up.png +0 -0
  256. package/public/_images/tape-assets/sticker-9-medium-up.webp +0 -0
  257. package/public/_images/tape-assets/sticker-9.png +0 -0
  258. package/public/_images/tape-assets/sticker-9.webp +0 -0
  259. package/public/_images/tape-assets/tape-1.png +0 -0
  260. package/public/_images/tape-assets/tape-2-2x.png +0 -0
  261. package/public/_images/tape-assets/tape-2-2x.webp +0 -0
  262. package/public/_images/tape-assets/tape-2-medium-up-2x.png +0 -0
  263. package/public/_images/tape-assets/tape-2-medium-up-2x.webp +0 -0
  264. package/public/_images/tape-assets/tape-2-medium-up.png +0 -0
  265. package/public/_images/tape-assets/tape-2-medium-up.webp +0 -0
  266. package/public/_images/tape-assets/tape-2.png +0 -0
  267. package/public/_images/tape-assets/tape-2.webp +0 -0
  268. package/public/_images/tape-assets/tape-3-2x.png +0 -0
  269. package/public/_images/tape-assets/tape-3-2x.webp +0 -0
  270. package/public/_images/tape-assets/tape-3-medium-up-2x.png +0 -0
  271. package/public/_images/tape-assets/tape-3-medium-up-2x.webp +0 -0
  272. package/public/_images/tape-assets/tape-3-medium-up.png +0 -0
  273. package/public/_images/tape-assets/tape-3-medium-up.webp +0 -0
  274. package/public/_images/tape-assets/tape-3.png +0 -0
  275. package/public/_images/tape-assets/tape-3.webp +0 -0
  276. package/public/_images/tape-assets/tape-4-medium-up-2x.png +0 -0
  277. package/public/_images/tape-assets/tape-4-medium-up-2x.webp +0 -0
  278. package/public/_images/tape-assets/tape-4-medium-up.png +0 -0
  279. package/public/_images/tape-assets/tape-4-medium-up.webp +0 -0
  280. package/public/_images/tape-assets/tape-5-2x.png +0 -0
  281. package/public/_images/tape-assets/tape-5-2x.webp +0 -0
  282. package/public/_images/tape-assets/tape-5-medium-up-2x.png +0 -0
  283. package/public/_images/tape-assets/tape-5-medium-up-2x.webp +0 -0
  284. package/public/_images/tape-assets/tape-5-medium-up.png +0 -0
  285. package/public/_images/tape-assets/tape-5-medium-up.webp +0 -0
  286. package/public/_images/tape-assets/tape-5.png +0 -0
  287. package/public/_images/tape-assets/tape-5.webp +0 -0
  288. package/public/_images/tape-assets/tape-6-2x.png +0 -0
  289. package/public/_images/tape-assets/tape-6-2x.webp +0 -0
  290. package/public/_images/tape-assets/tape-6-medium-up-2x.png +0 -0
  291. package/public/_images/tape-assets/tape-6-medium-up-2x.webp +0 -0
  292. package/public/_images/tape-assets/tape-6-medium-up.png +0 -0
  293. package/public/_images/tape-assets/tape-6-medium-up.webp +0 -0
  294. package/public/_images/tape-assets/tape-6.png +0 -0
  295. package/public/_images/tape-assets/tape-6.webp +0 -0
  296. package/public/_images/tape-assets/tape-7-2x.png +0 -0
  297. package/public/_images/tape-assets/tape-7-2x.webp +0 -0
  298. package/public/_images/tape-assets/tape-7.png +0 -0
  299. package/public/_images/tape-assets/tape-7.webp +0 -0
  300. package/public/_images/weapons/marquee/s3_weapons_social-1.jpg +0 -0
  301. package/public/_images/weapons/marquee/s3_weapons_social-10.jpg +0 -0
  302. package/public/_images/weapons/marquee/s3_weapons_social-11.jpg +0 -0
  303. package/public/_images/weapons/marquee/s3_weapons_social-12.jpg +0 -0
  304. package/public/_images/weapons/marquee/s3_weapons_social-13.jpg +0 -0
  305. package/public/_images/weapons/marquee/s3_weapons_social-14.jpg +0 -0
  306. package/public/_images/weapons/marquee/s3_weapons_social-15.jpg +0 -0
  307. package/public/_images/weapons/marquee/s3_weapons_social-16.jpg +0 -0
  308. package/public/_images/weapons/marquee/s3_weapons_social-17.jpg +0 -0
  309. package/public/_images/weapons/marquee/s3_weapons_social-18.jpg +0 -0
  310. package/public/_images/weapons/marquee/s3_weapons_social-19.jpg +0 -0
  311. package/public/_images/weapons/marquee/s3_weapons_social-2.jpg +0 -0
  312. package/public/_images/weapons/marquee/s3_weapons_social-20.jpg +0 -0
  313. package/public/_images/weapons/marquee/s3_weapons_social-21.jpg +0 -0
  314. package/public/_images/weapons/marquee/s3_weapons_social-22.jpg +0 -0
  315. package/public/_images/weapons/marquee/s3_weapons_social-3.jpg +0 -0
  316. package/public/_images/weapons/marquee/s3_weapons_social-4.jpg +0 -0
  317. package/public/_images/weapons/marquee/s3_weapons_social-5.jpg +0 -0
  318. package/public/_images/weapons/marquee/s3_weapons_social-6.jpg +0 -0
  319. package/public/_images/weapons/marquee/s3_weapons_social-7.jpg +0 -0
  320. package/public/_images/weapons/marquee/s3_weapons_social-8.jpg +0 -0
  321. package/public/_images/weapons/marquee/s3_weapons_social-9.jpg +0 -0
  322. package/public/_images/weapons/shops-gallery/coco-icon.png +0 -0
  323. package/public/_images/weapons/shops-gallery/coco.png +0 -0
  324. package/public/_images/weapons/shops-gallery/eddy-icon.png +0 -0
  325. package/public/_images/weapons/shops-gallery/eddy.png +0 -0
  326. package/public/_images/weapons/shops-gallery/harmony-icon.png +0 -0
  327. package/public/_images/weapons/shops-gallery/harmony.png +0 -0
  328. package/public/_images/weapons/shops-gallery/jella-icon.png +0 -0
  329. package/public/_images/weapons/shops-gallery/jella.png +0 -0
  330. package/public/_images/weapons/shops-gallery/sheldon-icon.png +0 -0
  331. package/public/_images/weapons/shops-gallery/sheldon.png +0 -0
  332. package/public/_images/weapons/shops-gallery/weapons-express-ammo-knights-2.jpg +0 -0
  333. package/public/_images/weapons/shops-gallery/weapons-express-crush-station-5.jpg +0 -0
  334. package/public/_images/weapons/shops-gallery/weapons-express-hotlantis-1.jpg +0 -0
  335. package/public/_images/weapons/shops-gallery/weapons-express-manoward-4.jpg +0 -0
  336. package/public/_images/weapons/shops-gallery/weapons-express-naut-couture-3.jpg +0 -0
  337. package/public/fonts/foo-webfont.woff +0 -0
  338. package/public/fonts/foo-webfont.woff2 +0 -0
  339. package/public/fonts/montserrat-v24-latin-500.woff +0 -0
  340. package/public/fonts/montserrat-v24-latin-500.woff2 +0 -0
  341. package/public/fonts/montserrat-v24-latin-600.woff2 +0 -0
  342. package/public/fonts/montserrat-v24-latin-700.woff2 +0 -0
  343. package/public/fonts/montserrat-v24-latin-900.woff2 +0 -0
  344. package/public/fonts/montserrat-v24-latin-regular.woff +0 -0
  345. package/public/fonts/montserrat-v24-latin-regular.woff2 +0 -0
  346. package/public/fonts/obviously-narrow-600.woff2 +0 -0
  347. package/public/svgs/paper-tear-down.svg +3 -0
  348. package/public/svgs/paper-tear-up.svg +3 -0
  349. package/public/svgs/rip-left.svg +3 -0
  350. package/public/svgs/rip-right.svg +3 -0
  351. package/public/svgs/wave.svg +3 -0
@@ -0,0 +1,4225 @@
1
+ /* Splatoon UI global styles */
2
+
3
+ @import 'tailwindcss';
4
+ @import 'tw-animate-css';
5
+ @import 'shadcn/tailwind.css';
6
+
7
+ /* ── Font Face: fooregular (Splatoon heading font) ── */
8
+ @font-face {
9
+ font-family: 'fooregular';
10
+ src:
11
+ url('/fonts/foo-webfont.woff2') format('woff2'),
12
+ url('/fonts/foo-webfont.woff') format('woff');
13
+ font-weight: normal;
14
+ font-style: normal;
15
+ font-display: swap;
16
+ }
17
+
18
+ /* ── Font Face: Montserrat (body text) ── */
19
+ @font-face {
20
+ font-family: 'Montserrat';
21
+ src:
22
+ url('/fonts/montserrat-v24-latin-regular.woff2') format('woff2'),
23
+ url('/fonts/montserrat-v24-latin-regular.woff') format('woff');
24
+ font-weight: 400;
25
+ font-style: normal;
26
+ font-display: swap;
27
+ }
28
+ @font-face {
29
+ font-family: 'Montserrat';
30
+ src:
31
+ url('/fonts/montserrat-v24-latin-500.woff2') format('woff2'),
32
+ url('/fonts/montserrat-v24-latin-500.woff') format('woff');
33
+ font-weight: 500;
34
+ font-style: normal;
35
+ font-display: swap;
36
+ }
37
+ @font-face {
38
+ font-family: 'Montserrat';
39
+ src: url('/fonts/montserrat-v24-latin-600.woff2') format('woff2');
40
+ font-weight: 600;
41
+ font-style: normal;
42
+ font-display: swap;
43
+ }
44
+ @font-face {
45
+ font-family: 'Montserrat';
46
+ src: url('/fonts/montserrat-v24-latin-700.woff2') format('woff2');
47
+ font-weight: 700;
48
+ font-style: normal;
49
+ font-display: swap;
50
+ }
51
+ @font-face {
52
+ font-family: 'Montserrat';
53
+ src: url('/fonts/montserrat-v24-latin-900.woff2') format('woff2');
54
+ font-weight: 900;
55
+ font-style: normal;
56
+ font-display: swap;
57
+ }
58
+
59
+ @theme inline {
60
+ --color-background: var(--background);
61
+ --color-foreground: var(--foreground);
62
+ --font-sans: var(--font-body);
63
+ --font-mono:
64
+ ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
65
+ --font-heading: 'fooregular', sans-serif;
66
+ --font-body: 'Montserrat', sans-serif;
67
+ --font-alt: var(--font-obviously-narrow), 'obviously-narrow', sans-serif;
68
+ /* Brand colors — registered for Tailwind utilities (bg-yellow, text-blue, etc.) */
69
+ --color-yellow: #eaff3d;
70
+ --color-blue: #603bff;
71
+ --color-purple: #af50ff;
72
+ --color-green: #6af7ce;
73
+ --color-orange: #ff9750;
74
+ --color-red: #ff505e;
75
+ --color-black: #0d0d0d;
76
+ --color-white: #ffffff;
77
+ --color-sidebar-ring: var(--sidebar-ring);
78
+ --color-sidebar-border: var(--sidebar-border);
79
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
80
+ --color-sidebar-accent: var(--sidebar-accent);
81
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
82
+ --color-sidebar-primary: var(--sidebar-primary);
83
+ --color-sidebar-foreground: var(--sidebar-foreground);
84
+ --color-sidebar: var(--sidebar);
85
+ --color-chart-5: var(--chart-5);
86
+ --color-chart-4: var(--chart-4);
87
+ --color-chart-3: var(--chart-3);
88
+ --color-chart-2: var(--chart-2);
89
+ --color-chart-1: var(--chart-1);
90
+ --color-ring: var(--ring);
91
+ --color-overlay: var(--overlay);
92
+ --color-input: var(--input);
93
+ --color-border: var(--border);
94
+ --color-destructive: var(--destructive);
95
+ --color-accent-foreground: var(--accent-foreground);
96
+ --color-accent: var(--accent);
97
+ --color-muted-foreground: var(--muted-foreground);
98
+ --color-muted: var(--muted);
99
+ --color-secondary-foreground: var(--secondary-foreground);
100
+ --color-secondary: var(--secondary);
101
+ --color-primary-foreground: var(--primary-foreground);
102
+ --color-primary: var(--primary);
103
+ --color-popover-foreground: var(--popover-foreground);
104
+ --color-popover: var(--popover);
105
+ --color-card-foreground: var(--card-foreground);
106
+ --color-card: var(--card);
107
+ --radius-sm: 2px;
108
+ --radius-md: 3px;
109
+ --radius-lg: 4px;
110
+ --radius-xl: 6px;
111
+ --radius-2xl: 8px;
112
+ --radius-3xl: 12px;
113
+ --radius-4xl: 16px;
114
+
115
+ /* Splatoon site exact easing functions */
116
+ --ease-out: cubic-bezier(0.35, 0.91, 0.3, 0.99);
117
+ --ease-in-out: cubic-bezier(0.75, 0, 0.21, 0.99);
118
+ --ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
119
+
120
+ /* Events tab hover splat */
121
+ --active-splat-url: image-set(
122
+ url('/_images/events/active-splat.webp') 1x,
123
+ url('/_images/events/active-splat-2x.webp') 2x
124
+ );
125
+ }
126
+
127
+ /* Tab hover splat — ::after content must be in CSS, not Tailwind,
128
+ because SSR HTML-encodes the quotes in content-[''] → content-[''] */
129
+ .tab-splat::after {
130
+ content: ' ';
131
+ position: absolute;
132
+ display: block;
133
+ height: 78px;
134
+ width: 74px;
135
+ left: -30px;
136
+ top: -10px;
137
+ z-index: 1;
138
+ background-image: var(--active-splat-url);
139
+ background-size: 74px 78px;
140
+ background-repeat: no-repeat;
141
+ opacity: 0;
142
+ pointer-events: none;
143
+ transition: opacity 0.15s ease;
144
+ }
145
+ .tab-splat:hover::after {
146
+ opacity: 1;
147
+ }
148
+
149
+ /* Hide scrollbar for peek-scroll containers */
150
+ .scrollbar-hide {
151
+ -ms-overflow-style: none;
152
+ scrollbar-width: none;
153
+ }
154
+ .scrollbar-hide::-webkit-scrollbar {
155
+ display: none;
156
+ }
157
+
158
+ /* ── Light Theme: Desert Wasteland ── */
159
+ :root {
160
+ /* Exact Splatoon site colors */
161
+ --background: #ffffff;
162
+ --foreground: #0d0d0d;
163
+ --card: #ffffff;
164
+ --card-foreground: #0d0d0d;
165
+ --popover: #ffffff;
166
+ --popover-foreground: #0d0d0d;
167
+ --primary: #eaff3d;
168
+ --primary-foreground: #0d0d0d;
169
+ --secondary: #603bff;
170
+ --secondary-foreground: #ffffff;
171
+ --muted: #f5f5f5;
172
+ --muted-foreground: #555555;
173
+ --accent: #af50ff;
174
+ --accent-foreground: #ffffff;
175
+ --destructive: #ff505e;
176
+ --border: #cccccc;
177
+ --input: #cccccc;
178
+ --ring: #eaff3d;
179
+ --overlay: rgb(0 0 0 / 0.9);
180
+
181
+ /* z-index scale */
182
+ --z-deco: 1;
183
+ --z-deco-fg: 2;
184
+ --z-nav-canvas: 80;
185
+ --z-nav-content: 81;
186
+ --z-nav-overlay: 90;
187
+ --z-nav: 100;
188
+ --z-floating: 130;
189
+ --z-sheet-overlay: 200;
190
+ --z-sheet: 210;
191
+ --z-dialog-overlay: 200;
192
+ --z-dialog: 210;
193
+ --z-dialog-close: 220;
194
+ --chart-1: #eaff3d;
195
+ --chart-2: #603bff;
196
+ --chart-3: #ff505e;
197
+ --chart-4: #ff9750;
198
+ --chart-5: #6af7ce;
199
+ --radius: 8px;
200
+
201
+ /* Splatoon brand tokens (exact from site) */
202
+ --neon-yellow: #eaff3d;
203
+ --ink-blue: #603bff;
204
+ --ink-purple: #af50ff;
205
+ --ink-green: #6af7ce;
206
+ --ink-orange: #ff9750;
207
+ --ink-red: #ff505e;
208
+ --desert-sand: #f5f0e8;
209
+ --chaos-black: #0d0d0d;
210
+ --tape-white: #ffffff;
211
+
212
+ /* Splatoon UI CSS custom properties */
213
+ --color-true-black: #000;
214
+ --color-black: #0d0d0d;
215
+ --color-black-alt: #0e0e0e;
216
+ --color-white: #fff;
217
+ --color-yellow: #eaff3d;
218
+ --color-blue: #603bff;
219
+ --color-purple: #af50ff;
220
+ --color-green: #6af7ce;
221
+ --color-orange: #ff9750;
222
+ --color-orange-dark: #fa5a00;
223
+ --color-red: #ff505e;
224
+ --color-brown: #7f413f;
225
+ --color-nintendo-red: #e60012;
226
+ --color-twitter: #1da1f2;
227
+ --color-side-order-red: #9f6a62;
228
+ --color-side-order-green: #58a28a;
229
+ --color-side-order-blue: #7e96bd;
230
+ --color-side-order-yellow: #c2c26e;
231
+ --color-side-order-purple: #a280b2;
232
+ --color-side-order-orange: #be9b6f;
233
+ --color-side-order-black: #292929;
234
+ --color-side-order-white: #faf8f0;
235
+ --color-grey-100: #ccc;
236
+ --color-grey-200: #888;
237
+ --color-grey-300: #555;
238
+ --color-grey-400: #222;
239
+ --base-space: 8px;
240
+ --gutter-width: 24px;
241
+ --duration-factor: 1;
242
+ --ease-in: cubic-bezier(0.51, 0, 0.9, 0.43);
243
+ --ease-back-in: cubic-bezier(0.38, -0.37, 0.83, 0.23);
244
+ --ease-back-out: cubic-bezier(0.21, 0.12, 0.35, 1.43);
245
+ --ease-out: cubic-bezier(0.35, 0.91, 0.3, 0.99);
246
+ --ease-in-out: cubic-bezier(0.75, 0, 0.21, 0.99);
247
+ --ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
248
+ --in-view-delay: 0s;
249
+ --in-view-stagger-delay: 0s;
250
+ --in-view-stagger-amount: 0.2s;
251
+
252
+ --sidebar: #f5f5f5;
253
+ --sidebar-foreground: #0d0d0d;
254
+ --sidebar-primary: #eaff3d;
255
+ --sidebar-primary-foreground: #0d0d0d;
256
+ --sidebar-accent: #f0f0f0;
257
+ --sidebar-accent-foreground: #0d0d0d;
258
+ --sidebar-border: #cccccc;
259
+ --sidebar-ring: #eaff3d;
260
+ }
261
+
262
+ @layer base {
263
+ * {
264
+ @apply border-border outline-ring/50;
265
+ }
266
+ body {
267
+ @apply bg-background text-foreground;
268
+ }
269
+ html {
270
+ @apply font-sans;
271
+ container-type: inline-size;
272
+ }
273
+ }
274
+
275
+ /* ── Splatoon Typography (exact from real site) ── */
276
+ @layer base {
277
+ h1,
278
+ h2,
279
+ h3,
280
+ h4 {
281
+ font-family: var(--font-heading);
282
+ font-weight: 700;
283
+ line-height: 1;
284
+ }
285
+ h3,
286
+ h4 {
287
+ font-family: var(--font-heading);
288
+ font-weight: 700;
289
+ }
290
+ h2 {
291
+ font-weight: 700;
292
+ text-transform: uppercase;
293
+ }
294
+ h1 {
295
+ font-size: clamp(2.5rem, 5vw, 5rem);
296
+ font-family: var(--font-heading);
297
+ font-weight: 700;
298
+ }
299
+ h2 {
300
+ font-size: clamp(1.5rem, 3vw, 3.125rem);
301
+ }
302
+ body {
303
+ font-family: var(--font-body);
304
+ font-size: 1rem;
305
+ font-weight: 500;
306
+ line-height: 1.6;
307
+ }
308
+ }
309
+
310
+ /* ── Splatoon Utilities ── */
311
+ @layer utilities {
312
+ /* Soft depth used for generic UI; hard offset shadows are reserved for paper-cutout accents. */
313
+ .shadow-soft-splat-sm {
314
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.14);
315
+ }
316
+ .shadow-soft-splat-md {
317
+ box-shadow: 0 8px 18px rgba(0, 0, 0, 0.16);
318
+ }
319
+ .shadow-soft-splat-lg {
320
+ box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
321
+ }
322
+
323
+ /* Legacy hard offset shadows. Keep only for explicit cutout-style specials. */
324
+ .shadow-solid {
325
+ box-shadow: 4px 4px 0px var(--chaos-black);
326
+ }
327
+ .shadow-solid-sm {
328
+ box-shadow: 2px 2px 0px var(--chaos-black);
329
+ }
330
+ .shadow-solid-lg {
331
+ box-shadow: 6px 6px 0px var(--chaos-black);
332
+ }
333
+ .shadow-solid-xl {
334
+ box-shadow: 8px 8px 0px var(--chaos-black);
335
+ }
336
+
337
+ .scrap-panel,
338
+ .scrap-panel-tight,
339
+ .drawer-sheet {
340
+ position: relative;
341
+ }
342
+
343
+ .scrap-panel {
344
+ border-radius: 10px 14px 12px 16px;
345
+ }
346
+
347
+ .scrap-panel-tight {
348
+ border-radius: 8px 12px 10px 14px;
349
+ }
350
+
351
+ .drawer-sheet {
352
+ border-radius: 0;
353
+ }
354
+
355
+ .field-cut {
356
+ border-radius: 7px 11px 8px 12px;
357
+ }
358
+
359
+ .field-cut-popup {
360
+ border-radius: 8px 11px 9px 13px;
361
+ }
362
+ }
363
+
364
+ /* ── Skewed heading style — like real site h1/h2 ── */
365
+ .splat-heading {
366
+ font-family: var(--font-heading);
367
+ font-style: italic;
368
+ font-weight: 900;
369
+ text-transform: uppercase;
370
+ }
371
+
372
+ .splat-skew {
373
+ font-family: var(--font-heading);
374
+ font-style: italic;
375
+ font-weight: 900;
376
+ text-transform: uppercase;
377
+ transform: skewX(-2deg);
378
+ }
379
+
380
+ /* ── Marquee Animation ── */
381
+ @keyframes marquee {
382
+ from {
383
+ transform: translateX(0);
384
+ }
385
+ to {
386
+ transform: translateX(-50%);
387
+ }
388
+ }
389
+
390
+ /* ── Morph blob animation ── */
391
+ @keyframes morph {
392
+ 0%,
393
+ 100% {
394
+ border-radius: 40% 60% 70% 30% / 40% 40% 60% 50%;
395
+ }
396
+ 34% {
397
+ border-radius: 70% 30% 50% 50% / 30% 30% 70% 70%;
398
+ }
399
+ 67% {
400
+ border-radius: 100% 60% 60% 100% / 100% 100% 60% 60%;
401
+ }
402
+ }
403
+
404
+ /* ── Section Background Patterns ── */
405
+ /* These utility classes add a repeating pattern texture on top of the section's background color.
406
+ The pattern images are semi-transparent PNGs that tile/repeat. */
407
+
408
+ .pattern-camo-black {
409
+ background-image: url('/_images/backgrounds/camo-black.png');
410
+ background-image: image-set(
411
+ url('/_images/backgrounds/camo-black.png') 1x,
412
+ url('/_images/backgrounds/camo-black-2x.png') 2x
413
+ );
414
+ }
415
+
416
+ .pattern-camo-green {
417
+ background-image: url('/_images/backgrounds/camo-green.png');
418
+ background-image: image-set(
419
+ url('/_images/backgrounds/camo-green.png') 1x,
420
+ url('/_images/backgrounds/camo-green-2x.png') 2x
421
+ );
422
+ }
423
+
424
+ .pattern-camo-purple {
425
+ background-image: url('/_images/backgrounds/camo-purple.png');
426
+ background-image: image-set(
427
+ url('/_images/backgrounds/camo-purple.png') 1x,
428
+ url('/_images/backgrounds/camo-purple-2x.png') 2x
429
+ );
430
+ }
431
+
432
+ .pattern-camo-white {
433
+ background-image: url('/_images/backgrounds/camo-white.png');
434
+ background-image: image-set(
435
+ url('/_images/backgrounds/camo-white.png') 1x,
436
+ url('/_images/backgrounds/camo-white-2x.png') 2x
437
+ );
438
+ }
439
+
440
+ .pattern-chip-white {
441
+ background-image: url('/_images/backgrounds/chip-white.png');
442
+ background-image: image-set(
443
+ url('/_images/backgrounds/chip-white.png') 1x,
444
+ url('/_images/backgrounds/chip-white-2x.png') 2x
445
+ );
446
+ }
447
+
448
+ .pattern-tapes-black {
449
+ background-image: url('/_images/backgrounds/tapes-black.jpg');
450
+ background-image: image-set(
451
+ url('/_images/backgrounds/tapes-black.webp') type('image/webp') 1x,
452
+ url('/_images/backgrounds/tapes-black.jpg') 1x,
453
+ url('/_images/backgrounds/tapes-black-2x.webp') type('image/webp') 2x,
454
+ url('/_images/backgrounds/tapes-black-2x.jpg') 2x
455
+ );
456
+ }
457
+
458
+ .pattern-tapes-green {
459
+ background-image: url('/_images/backgrounds/tapes-green.jpg');
460
+ background-image: image-set(
461
+ url('/_images/backgrounds/tapes-green.webp') type('image/webp') 1x,
462
+ url('/_images/backgrounds/tapes-green.jpg') 1x,
463
+ url('/_images/backgrounds/tapes-green-2x.webp') type('image/webp') 2x,
464
+ url('/_images/backgrounds/tapes-green-2x.jpg') 2x
465
+ );
466
+ }
467
+
468
+ .pattern-tapes-purple {
469
+ background-image: url('/_images/backgrounds/tapes-purple.jpg');
470
+ background-image: image-set(
471
+ url('/_images/backgrounds/tapes-purple.webp') type('image/webp') 1x,
472
+ url('/_images/backgrounds/tapes-purple.jpg') 1x,
473
+ url('/_images/backgrounds/tapes-purple-2x.webp') type('image/webp') 2x,
474
+ url('/_images/backgrounds/tapes-purple-2x.jpg') 2x
475
+ );
476
+ }
477
+
478
+ /* ── Reduced Motion ── */
479
+ @media (prefers-reduced-motion: reduce) {
480
+ *,
481
+ *::before,
482
+ *::after {
483
+ animation-duration: 0.01ms !important;
484
+ animation-iteration-count: 1 !important;
485
+ transition-duration: 0.01ms !important;
486
+ scroll-behavior: auto !important;
487
+ }
488
+ }
489
+
490
+ .reduced-motion,
491
+ .reduced-motion * {
492
+ animation-duration: 0.01ms !important;
493
+ animation-iteration-count: 1 !important;
494
+ transition-duration: 0.01ms !important;
495
+ scroll-behavior: auto !important;
496
+ }
497
+
498
+ /* Splatoon UI component styles: server.css */
499
+
500
+ /* src/components/ui/card-slot.module.css */
501
+ .cardSlot {
502
+ position: absolute;
503
+ z-index: 20;
504
+ pointer-events: none;
505
+ }
506
+
507
+ /* src/components/ui/torn-card.module.css */
508
+ .tape {
509
+ display: block;
510
+ transform: rotate(var(--tape-rotate, 0deg));
511
+ }
512
+ .alertContent {
513
+ padding: calc(var(--base-space, 8px) * 4);
514
+ }
515
+ @container (min-width: 400px) {
516
+ .alertContent {
517
+ padding: calc(var(--base-space, 8px) * 6) calc(var(--base-space, 8px) * 4);
518
+ }
519
+ }
520
+ .imgDesktop {
521
+ display: none;
522
+ }
523
+ @container (min-width: 400px) {
524
+ .imgMobile {
525
+ display: none;
526
+ }
527
+ .imgDesktop {
528
+ display: block;
529
+ }
530
+ }
531
+
532
+ /* src/components/ui/black-tape-container.module.css */
533
+ .blackTapeContainer {
534
+ --tape-offset: 16px;
535
+ --tape-safe-bleed: min(var(--tape-offset), max(0px, calc((100cqw - 100%) / 2)));
536
+ --tape-width: 30px;
537
+ margin-left: calc(var(--tape-safe-bleed) * -1);
538
+ margin-right: calc(var(--tape-safe-bleed) * -1);
539
+ overflow-x: clip;
540
+ padding: 0 var(--tape-offset);
541
+ position: relative;
542
+ }
543
+ .blackTapeContainer::before,
544
+ .blackTapeContainer::after {
545
+ background-repeat: repeat-y;
546
+ content: "";
547
+ height: 100%;
548
+ position: absolute;
549
+ top: 0;
550
+ width: var(--tape-width);
551
+ z-index: 1;
552
+ }
553
+ .blackTapeContainer::before {
554
+ background-image: url(/_images/svg/left-black-tape-container.svg);
555
+ background-position: calc(100% - 1px) top;
556
+ left: 0;
557
+ }
558
+ .blackTapeContainer::after {
559
+ background-image: url(/_images/svg/right-black-tape-container.svg);
560
+ background-position: 1px top;
561
+ right: 0;
562
+ }
563
+ .blackTapeContainerInner {
564
+ background: var(--color-black-alt, #0e0e0e);
565
+ padding: 1.5em;
566
+ }
567
+ .tapeYellow .blackTapeContainerInner {
568
+ background: var(--color-yellow, #eaff3d);
569
+ color: var(--color-black, #0d0d0d);
570
+ }
571
+ .tapeYellow::before {
572
+ background-image: url(/_images/svg/left-yellow-tape-container.svg);
573
+ }
574
+ .tapeYellow::after {
575
+ background-image: url(/_images/svg/right-yellow-tape-container.svg);
576
+ }
577
+ .noVerticalPadding .blackTapeContainerInner {
578
+ padding: 0 1.5em;
579
+ }
580
+ @media screen and (min-width: 640px) {
581
+ .blackTapeContainer {
582
+ --tape-offset: 38px;
583
+ --tape-width: 40px;
584
+ }
585
+ .blackTapeContainerInner {
586
+ padding: 2em;
587
+ }
588
+ .noVerticalPadding .blackTapeContainerInner {
589
+ padding: 0 2em;
590
+ }
591
+ }
592
+ @media screen and (min-width: 1024px) {
593
+ .blackTapeContainer {
594
+ --tape-offset: 58px;
595
+ --tape-width: 60px;
596
+ }
597
+ }
598
+
599
+ /* src/components/ui/button-arrow.module.css */
600
+ .buttonArrow {
601
+ color: var(--color);
602
+ display: inline-block;
603
+ font-family: var(--font-alt);
604
+ font-size: 1.5rem;
605
+ line-height: 1;
606
+ text-decoration: none;
607
+ }
608
+ .buttonArrow:hover .iconWrap {
609
+ transform: translateX(10px);
610
+ }
611
+ .iconWrap {
612
+ display: inline-flex;
613
+ margin-left: 0.5rem;
614
+ }
615
+ .iconWrap svg {
616
+ height: 16px;
617
+ transform: translateX(5px);
618
+ transition: transform 0.2s;
619
+ width: 8px;
620
+ }
621
+ @media screen and (min-width: 1024px) {
622
+ .buttonArrow {
623
+ font-size: 1.625rem;
624
+ }
625
+ }
626
+
627
+ /* src/components/ui/button-drip.module.css */
628
+ .button {
629
+ --bg-color: var(--color-primary);
630
+ --text-color: var(--color-primary-alt);
631
+ --hover-bg-color: var(--color-accent);
632
+ --hover-text-color: var(--color-accent-alt);
633
+ --speed: calc(var(--duration-factor) * 1.8s);
634
+ --drip-speed-factor: 1;
635
+ --drip-in-start: polygon(0 100%, 0 100%, 100% 100%, 100% 100%);
636
+ --drip-in-end: polygon(0 0, 0 100%, 100% 100%, 100% 0);
637
+ --drip-out-start: polygon(0 0, 0 0, 100% 0, 100% 0);
638
+ --drip-out-end: polygon(0 0, 0 100%, 100% 100%, 100% 0);
639
+ border-radius: 0.5rem;
640
+ box-sizing: border-box;
641
+ cursor: pointer;
642
+ display: inline-block;
643
+ font-family: var(--font-alt);
644
+ font-weight: var(--font-weight-bold);
645
+ line-height: 1;
646
+ overflow: hidden;
647
+ position: relative;
648
+ text-align: center;
649
+ text-decoration: none;
650
+ transition: border calc(var(--duration-factor) * 0.2s) calc(var(--duration-factor) * 0.25s);
651
+ width: 100%;
652
+ }
653
+ .button > *:not(.icon) {
654
+ width: 100%;
655
+ }
656
+ .icon {
657
+ height: 26px;
658
+ margin-right: var(--base-space, 8px);
659
+ padding-top: var(--base-space, 8px);
660
+ width: 20px;
661
+ }
662
+ .content,
663
+ .hoverContent {
664
+ align-items: center;
665
+ background-color: var(--bg-color);
666
+ color: var(--text-color);
667
+ display: flex;
668
+ font-size: 1.5rem;
669
+ height: 100%;
670
+ justify-content: center;
671
+ padding: calc(var(--base-space, 8px) * 1.5) calc(var(--base-space, 8px) * 5.5) calc(var(--base-space, 8px) * 2.5) calc(var(--base-space, 8px) * 5.5);
672
+ transition: background-color calc(var(--duration-factor) * 0.2s) ease;
673
+ width: 100%;
674
+ }
675
+ .content span,
676
+ .hoverContent span {
677
+ position: relative;
678
+ white-space: nowrap;
679
+ z-index: 1;
680
+ }
681
+ .content .icon,
682
+ .hoverContent .icon {
683
+ fill: var(--text-color);
684
+ }
685
+ .hoverContent {
686
+ animation: calc(var(--speed) * var(--drip-speed-factor)) button-drip_drip-leave 0.2s ease forwards;
687
+ animation-fill-mode: forwards;
688
+ background-color: var(--hover-bg-color);
689
+ border-radius: 0.5rem;
690
+ box-shadow: inset 0 0 0 2px var(--hover-bg-color);
691
+ color: var(--hover-text-color);
692
+ height: 100%;
693
+ left: 0;
694
+ opacity: 0;
695
+ pointer-events: none;
696
+ position: absolute;
697
+ top: 0;
698
+ transition: box-shadow 0.2s;
699
+ transition-delay: 0.6s;
700
+ width: 100%;
701
+ z-index: 2;
702
+ }
703
+ @media (hover: hover) {
704
+ .button:hover .hoverContent {
705
+ animation: calc(var(--speed) * var(--drip-speed-factor)) button-drip_drip-enter 0.2s ease forwards;
706
+ box-shadow: inset 0 0 0 2px var(--hover-text-color);
707
+ opacity: 1;
708
+ }
709
+ }
710
+ .accentColors {
711
+ --bg-color: var(--color-accent);
712
+ --text-color: var(--color-accent-alt);
713
+ --hover-bg-color: var(--color-primary);
714
+ --hover-text-color: var(--color-primary-alt);
715
+ }
716
+ @-webkit-keyframes button-drip_drip-enter {
717
+ 0% {
718
+ -webkit-clip-path: var(--drip-in-start);
719
+ clip-path: var(--drip-in-start);
720
+ }
721
+ to {
722
+ -webkit-clip-path: var(--drip-in-end);
723
+ clip-path: var(--drip-in-end);
724
+ }
725
+ }
726
+ @keyframes button-drip_drip-enter {
727
+ 0% {
728
+ -webkit-clip-path: var(--drip-in-start);
729
+ clip-path: var(--drip-in-start);
730
+ }
731
+ to {
732
+ -webkit-clip-path: var(--drip-in-end);
733
+ clip-path: var(--drip-in-end);
734
+ }
735
+ }
736
+ @-webkit-keyframes button-drip_drip-leave {
737
+ 0% {
738
+ -webkit-clip-path: var(--drip-out-start);
739
+ clip-path: var(--drip-out-start);
740
+ }
741
+ to {
742
+ -webkit-clip-path: var(--drip-out-end);
743
+ clip-path: var(--drip-out-end);
744
+ }
745
+ }
746
+ @keyframes button-drip_drip-leave {
747
+ 0% {
748
+ -webkit-clip-path: var(--drip-out-start);
749
+ clip-path: var(--drip-out-start);
750
+ }
751
+ to {
752
+ -webkit-clip-path: var(--drip-out-end);
753
+ clip-path: var(--drip-out-end);
754
+ }
755
+ }
756
+
757
+ /* src/components/ui/event-callout.module.css */
758
+ .callout {
759
+ background: var(--color-black, #0d0d0d);
760
+ border: 3px solid var(--color-black, #0d0d0d);
761
+ border-radius: 8px;
762
+ color: var(--color-white, #fff);
763
+ overflow: hidden;
764
+ position: relative;
765
+ }
766
+ .background {
767
+ block-size: 100%;
768
+ filter: saturate(1.18) contrast(1.05);
769
+ inline-size: 100%;
770
+ inset: 0;
771
+ object-fit: cover;
772
+ opacity: 0.32;
773
+ position: absolute;
774
+ transform: scale(1.08) rotate(-1deg);
775
+ }
776
+ .content {
777
+ display: grid;
778
+ gap: clamp(18px, 4vw, 30px);
779
+ grid-template-columns: minmax(0, 1fr);
780
+ padding: clamp(18px, 4vw, 30px);
781
+ position: relative;
782
+ z-index: 1;
783
+ }
784
+ .mediaFrame {
785
+ aspect-ratio: 382 / 215;
786
+ background: var(--color-white, #fff);
787
+ border: 4px solid var(--color-white, #fff);
788
+ box-shadow: 8px 10px 0 rgb(0 0 0 / 0.35);
789
+ position: relative;
790
+ transform: rotate(-1.5deg);
791
+ }
792
+ .media {
793
+ block-size: 100%;
794
+ display: block;
795
+ inline-size: 100%;
796
+ object-fit: cover;
797
+ }
798
+ .iconBadge {
799
+ align-items: center;
800
+ background: var(--color-yellow, #eaff3d);
801
+ border: 3px solid var(--color-black, #0d0d0d);
802
+ border-radius: 999px;
803
+ box-shadow: 4px 5px 0 rgb(0 0 0 / 0.35);
804
+ display: flex;
805
+ inline-size: clamp(46px, 12vw, 64px);
806
+ justify-content: center;
807
+ padding: 7px;
808
+ position: absolute;
809
+ right: -14px;
810
+ top: -18px;
811
+ transform: rotate(8deg);
812
+ }
813
+ .iconBadge img {
814
+ block-size: auto;
815
+ display: block;
816
+ inline-size: 100%;
817
+ }
818
+ .body {
819
+ align-self: center;
820
+ display: flex;
821
+ flex-direction: column;
822
+ gap: 10px;
823
+ min-inline-size: 0;
824
+ }
825
+ .eyebrow {
826
+ color: var(--color-yellow, #eaff3d);
827
+ font-size: 0.75rem;
828
+ font-weight: 900;
829
+ letter-spacing: 0.18em;
830
+ line-height: 1;
831
+ margin: 0;
832
+ text-transform: uppercase;
833
+ }
834
+ .title {
835
+ font-family: var(--font-heading), sans-serif;
836
+ font-size: clamp(1.875rem, 7vw, 3.25rem);
837
+ font-weight: 900;
838
+ letter-spacing: 0;
839
+ line-height: 0.9;
840
+ margin: 0;
841
+ text-transform: uppercase;
842
+ }
843
+ .description {
844
+ color: rgb(255 255 255 / 0.82);
845
+ font-size: 0.95rem;
846
+ font-weight: 700;
847
+ line-height: 1.45;
848
+ margin: 0;
849
+ max-inline-size: 34rem;
850
+ }
851
+ .action {
852
+ display: flex;
853
+ flex-wrap: wrap;
854
+ gap: 10px;
855
+ margin-block-start: 8px;
856
+ }
857
+ @media (min-width: 760px) {
858
+ .content {
859
+ align-items: center;
860
+ grid-template-columns: minmax(260px, 0.95fr) minmax(0, 1fr);
861
+ }
862
+ .mediaFrame {
863
+ transform: rotate(-2deg);
864
+ }
865
+ }
866
+
867
+ /* src/components/ui/heading-tape.module.css */
868
+ .headingTapeSection {
869
+ container-type: inline-size;
870
+ display: flex;
871
+ justify-content: center;
872
+ margin-bottom: calc(var(--base-space, 8px) * var(--margin-offset, 2));
873
+ min-inline-size: 0;
874
+ position: relative;
875
+ width: 100%;
876
+ }
877
+ .overlapTop {
878
+ margin-top: -30px;
879
+ }
880
+ .headingTapeContainer {
881
+ position: relative;
882
+ transform: rotate(-3deg);
883
+ width: fit-content;
884
+ }
885
+ .headingTapeDecorations {
886
+ height: 100%;
887
+ left: 0;
888
+ pointer-events: none;
889
+ position: absolute;
890
+ top: 0;
891
+ width: 100%;
892
+ z-index: 0;
893
+ }
894
+ .headingTapeDecoration {
895
+ display: block;
896
+ inline-size: var(--heading-tape-decoration-inline-size, 100%);
897
+ max-inline-size: var(--heading-tape-decoration-max-inline-size, 100%);
898
+ position: absolute;
899
+ }
900
+ .decorationTopLeft {
901
+ left: var(--heading-tape-decoration-inline-offset, -19px);
902
+ top: var(--heading-tape-decoration-block-offset, -15px);
903
+ transform: rotate(var(--heading-tape-decoration-rotate, 0deg));
904
+ }
905
+ .decorationTopRight {
906
+ right: var(--heading-tape-decoration-inline-offset, -17px);
907
+ top: var(--heading-tape-decoration-block-offset, -15px);
908
+ transform: rotate(var(--heading-tape-decoration-rotate, 0deg));
909
+ }
910
+ .decorationBottomLeft {
911
+ bottom: var(--heading-tape-decoration-block-offset, -17px);
912
+ left: var(--heading-tape-decoration-inline-offset, -19px);
913
+ transform: rotate(var(--heading-tape-decoration-rotate, 0deg));
914
+ }
915
+ .decorationBottomRight {
916
+ bottom: var(--heading-tape-decoration-block-offset, -17px);
917
+ right: var(--heading-tape-decoration-inline-offset, -17px);
918
+ transform: rotate(var(--heading-tape-decoration-rotate, 0deg));
919
+ }
920
+ .headingTapeDecorationImage {
921
+ block-size: auto;
922
+ display: block;
923
+ inline-size: auto;
924
+ max-inline-size: 100%;
925
+ }
926
+ .headingTapeDecorationImageDesktop {
927
+ display: none;
928
+ }
929
+ .headingTapeText {
930
+ background: var(--color-white, #ffffff);
931
+ border-radius: 10px;
932
+ color: var(--color-black, #0d0d0d);
933
+ display: inline-block;
934
+ font-family: var(--font-heading, inherit);
935
+ font-size: 1.875rem;
936
+ font-weight: 700;
937
+ letter-spacing: 0;
938
+ line-height: 1;
939
+ max-inline-size: 100%;
940
+ overflow-wrap: break-word;
941
+ padding: calc(var(--base-space, 8px) * 2) 40px;
942
+ position: relative;
943
+ text-align: center;
944
+ text-transform: uppercase;
945
+ z-index: 1;
946
+ }
947
+ .compact .headingTapeText {
948
+ border-radius: 8px;
949
+ font-size: 1.375rem;
950
+ padding: calc(var(--base-space, 8px) * 1.25) 24px;
951
+ }
952
+ @container (min-width: 640px) {
953
+ .headingTapeDecorationImageMobile {
954
+ display: none;
955
+ }
956
+ .headingTapeDecorationImageDesktop {
957
+ display: block;
958
+ }
959
+ }
960
+ @container (min-width: 640px) {
961
+ .headingTapeText {
962
+ padding: calc(var(--base-space, 8px) * 2) 60px;
963
+ }
964
+ .compact .headingTapeText {
965
+ font-size: 2rem;
966
+ padding: calc(var(--base-space, 8px) * 1.5) 36px;
967
+ }
968
+ }
969
+ @container (min-width: 1024px) {
970
+ .headingTapeText {
971
+ font-size: 3.125rem;
972
+ }
973
+ .compact .headingTapeText {
974
+ font-size: 2.5rem;
975
+ }
976
+ }
977
+
978
+ /* src/components/ui/photo-frame.module.css */
979
+ .photoFrame {
980
+ --border-offset-x: 3px;
981
+ --border-offset-y: 4px;
982
+ --tape-rotation: 6deg;
983
+ --margin-offset: 6;
984
+ --photo-aspect-ratio: auto;
985
+ aspect-ratio: var(--photo-aspect-ratio);
986
+ container-type: inline-size;
987
+ display: inline-block;
988
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
989
+ line-height: 0;
990
+ margin-top: calc(var(--base-space, 8px) * var(--margin-offset));
991
+ padding: calc(var(--border-offset-y) * 2) calc(var(--border-offset-x) * 2);
992
+ position: relative;
993
+ transform: rotate(var(--end-rotate, 0deg));
994
+ }
995
+ .photoFrame::before {
996
+ background-image: url(/_images/svg/styled-photo-background.svg);
997
+ background-position: 50% center;
998
+ background-repeat: no-repeat;
999
+ background-size: 100% 100%;
1000
+ content: "";
1001
+ height: calc(100% + var(--border-offset-y) * 2);
1002
+ left: calc(var(--border-offset-x) * -1);
1003
+ position: absolute;
1004
+ top: calc(var(--border-offset-y) * -1);
1005
+ width: calc(100% + var(--border-offset-x) * 2);
1006
+ pointer-events: none;
1007
+ }
1008
+ .fillWidth {
1009
+ --photo-aspect-ratio: 16 / 9;
1010
+ display: block;
1011
+ width: 100%;
1012
+ }
1013
+ .nested {
1014
+ max-width: 350px;
1015
+ }
1016
+ .nested.photoFrame {
1017
+ --border-offset-x: 2px;
1018
+ --border-offset-y: 3px;
1019
+ --margin-offset: 4;
1020
+ }
1021
+ .thinBorder.photoFrame,
1022
+ .photoFrame.thinBorder {
1023
+ --border-offset-x: 2px;
1024
+ --border-offset-y: 3px;
1025
+ }
1026
+ .mediumBorder.photoFrame,
1027
+ .photoFrame.mediumBorder {
1028
+ --border-offset-x: 2px;
1029
+ --border-offset-y: 4px;
1030
+ }
1031
+ .photo {
1032
+ mask-image: url(/_images/svg/styled-photo-background.svg);
1033
+ mask-position: center;
1034
+ mask-repeat: no-repeat;
1035
+ mask-size: 100% 100%;
1036
+ object-fit: contain;
1037
+ position: relative;
1038
+ width: 100%;
1039
+ height: 100%;
1040
+ }
1041
+ .noContainer {
1042
+ container-type: unset;
1043
+ }
1044
+ .tape {
1045
+ position: absolute;
1046
+ z-index: 20;
1047
+ pointer-events: none;
1048
+ }
1049
+ .tapeMobile {
1050
+ display: block;
1051
+ }
1052
+ .tapeDesktop {
1053
+ display: none;
1054
+ }
1055
+ @container (min-width: 400px) {
1056
+ .tapeMobile {
1057
+ display: none;
1058
+ }
1059
+ .tapeDesktop {
1060
+ display: block;
1061
+ }
1062
+ }
1063
+ .tapeCenter {
1064
+ top: 0;
1065
+ left: 50%;
1066
+ transform: translate(-50%, -50%) rotate(var(--tape-rotate, 6deg));
1067
+ }
1068
+ .tapeLeft {
1069
+ top: 0;
1070
+ left: var(--slot-offset, 15%);
1071
+ transform: translateY(-50%) rotate(var(--tape-rotate, 6deg));
1072
+ }
1073
+ .tapeRight {
1074
+ top: 0;
1075
+ right: var(--slot-offset, 15%);
1076
+ transform: translateY(-50%) rotate(var(--tape-rotate, 6deg));
1077
+ }
1078
+ .tapeBottomCenter {
1079
+ bottom: 0;
1080
+ left: 50%;
1081
+ transform: translate(-50%, 50%) rotate(var(--tape-rotate, 6deg));
1082
+ }
1083
+ .tapeBottomLeft {
1084
+ bottom: 0;
1085
+ left: var(--slot-offset, 15%);
1086
+ transform: translateY(50%) rotate(var(--tape-rotate, 6deg));
1087
+ }
1088
+ .tapeBottomRight {
1089
+ bottom: 0;
1090
+ right: var(--slot-offset, 15%);
1091
+ transform: translateY(50%) rotate(var(--tape-rotate, 6deg));
1092
+ }
1093
+ .decoration {
1094
+ pointer-events: none;
1095
+ position: absolute;
1096
+ z-index: 20;
1097
+ }
1098
+ .decorationMobile {
1099
+ display: block;
1100
+ }
1101
+ .decorationDesktop {
1102
+ display: none;
1103
+ }
1104
+ @container (min-width: 400px) {
1105
+ .decorationMobile {
1106
+ display: none;
1107
+ }
1108
+ .decorationDesktop {
1109
+ display: block;
1110
+ }
1111
+ }
1112
+ .decorationBottomLeft {
1113
+ --slot-offset: 15%;
1114
+ bottom: 0;
1115
+ left: var(--slot-offset);
1116
+ transform: translateY(50%);
1117
+ }
1118
+ .decorationTopRight {
1119
+ --slot-offset: 15%;
1120
+ top: 0;
1121
+ right: var(--slot-offset);
1122
+ transform: translateY(-50%);
1123
+ }
1124
+ .decorationBottomRight {
1125
+ --slot-offset: 15%;
1126
+ bottom: 0;
1127
+ right: var(--slot-offset);
1128
+ transform: translateY(50%);
1129
+ }
1130
+ .decorationCenter {
1131
+ top: 0;
1132
+ left: 50%;
1133
+ transform: translate(-50%, -50%);
1134
+ }
1135
+ @media screen and (min-width: 640px) {
1136
+ .decorationBottomLeft,
1137
+ .decorationBottomRight {
1138
+ --slot-offset: 15%;
1139
+ }
1140
+ .decorationTopRight {
1141
+ --slot-offset: 15%;
1142
+ }
1143
+ }
1144
+ @media screen and (min-width: 640px) {
1145
+ .photoFrame {
1146
+ --border-offset-x: 4px;
1147
+ --border-offset-y: 3px;
1148
+ }
1149
+ }
1150
+
1151
+ /* src/components/ui/section-background.module.css */
1152
+ .sectionBackground {
1153
+ background-position: top;
1154
+ min-height: 100px;
1155
+ }
1156
+ .patternBaseBgPattern {
1157
+ background-image: url(/_images/backgrounds/base-bg-pattern.jpg);
1158
+ background-image: image-set(url(/_images/backgrounds/base-bg-pattern.jpg) 1x, url(/_images/backgrounds/base-bg-pattern-2x.jpg) 2x);
1159
+ }
1160
+ .patternCamoBlack {
1161
+ background-image: url(/_images/backgrounds/camo-black.png);
1162
+ background-image: image-set(url(/_images/backgrounds/camo-black.png) 1x, url(/_images/backgrounds/camo-black-2x.png) 2x);
1163
+ }
1164
+ .patternCamoGreen {
1165
+ background-image: url(/_images/backgrounds/camo-green.png);
1166
+ background-image: image-set(url(/_images/backgrounds/camo-green.png) 1x, url(/_images/backgrounds/camo-green-2x.png) 2x);
1167
+ }
1168
+ .patternCamoPurple {
1169
+ background-image: url(/_images/backgrounds/camo-purple.png);
1170
+ background-image: image-set(url(/_images/backgrounds/camo-purple.png) 1x, url(/_images/backgrounds/camo-purple-2x.png) 2x);
1171
+ }
1172
+ .patternCamoPurpleRevised {
1173
+ background-image: url(/_images/backgrounds/camo-purple-revised.png);
1174
+ background-image: image-set(url(/_images/backgrounds/camo-purple-revised.png) 1x, url(/_images/backgrounds/camo-purple-revised-2x.png) 2x);
1175
+ }
1176
+ .patternCamoOrange {
1177
+ background-image: url(/_images/backgrounds/camo-orange.png);
1178
+ background-image: image-set(url(/_images/backgrounds/camo-orange.png) 1x, url(/_images/backgrounds/camo-orange-2x.png) 2x);
1179
+ }
1180
+ .patternCamoRed {
1181
+ background-image: url(/_images/backgrounds/camo-red.png);
1182
+ background-image: image-set(url(/_images/backgrounds/camo-red.png) 1x, url(/_images/backgrounds/camo-red-2x.png) 2x);
1183
+ }
1184
+ .patternCamoWhite {
1185
+ background-image: url(/_images/backgrounds/camo-white.png);
1186
+ background-image: image-set(url(/_images/backgrounds/camo-white.png) 1x, url(/_images/backgrounds/camo-white-2x.png) 2x);
1187
+ }
1188
+ .patternCamoWhiteOutline {
1189
+ background-image: url(/_images/backgrounds/camo-white-outline.png);
1190
+ background-image: image-set(url(/_images/backgrounds/camo-white-outline.png) 1x, url(/_images/backgrounds/camo-white-outline-2x.png) 2x);
1191
+ }
1192
+ .patternHardwareBackground {
1193
+ background-image: url(/_images/backgrounds/hardware-background.png);
1194
+ background-image: image-set(url(/_images/backgrounds/hardware-background.png) 1x, url(/_images/backgrounds/hardware-background-2x.png) 2x);
1195
+ background-position: 50%;
1196
+ background-repeat: no-repeat;
1197
+ background-size: contain;
1198
+ }
1199
+ @media screen and (min-width: 640px) {
1200
+ .patternHardwareBackground {
1201
+ background-image: url(/_images/backgrounds/hardware-background-medium-up.png);
1202
+ background-image: image-set(url(/_images/backgrounds/hardware-background-medium-up.png) 1x, url(/_images/backgrounds/hardware-background-medium-up-2x.png) 2x);
1203
+ }
1204
+ }
1205
+ .patternOctoBlack {
1206
+ background-image: url(/_images/backgrounds/octo-black.png);
1207
+ background-image: image-set(url(/_images/backgrounds/octo-black.png) 1x, url(/_images/backgrounds/octo-black-2x.png) 2x);
1208
+ }
1209
+ .patternOctoRed {
1210
+ background-image: url(/_images/backgrounds/octo-red.png);
1211
+ background-image: image-set(url(/_images/backgrounds/octo-red.png) 1x, url(/_images/backgrounds/octo-red-2x.png) 2x);
1212
+ }
1213
+ .patternOctoarrowGreen {
1214
+ background-image: url(/_images/backgrounds/octoarrow-green.png);
1215
+ background-image: image-set(url(/_images/backgrounds/octoarrow-green.png) 1x, url(/_images/backgrounds/octoarrow-green-2x.png) 2x);
1216
+ }
1217
+ .patternOctoarrowOrange {
1218
+ background-image: url(/_images/backgrounds/octoarrow-orange.png);
1219
+ background-image: image-set(url(/_images/backgrounds/octoarrow-orange.png) 1x, url(/_images/backgrounds/octoarrow-orange-2x.png) 2x);
1220
+ }
1221
+ .patternSquidBlack {
1222
+ background-image: url(/_images/backgrounds/squid-black.png);
1223
+ background-image: image-set(url(/_images/backgrounds/squid-black.png) 1x, url(/_images/backgrounds/squid-black-2x.png) 2x);
1224
+ }
1225
+ .patternCirclesGreen {
1226
+ background-image: url(/_images/backgrounds/circles-green.png);
1227
+ background-image: image-set(url(/_images/backgrounds/circles-green.png) 1x, url(/_images/backgrounds/circles-green-2x.png) 2x);
1228
+ }
1229
+ .patternChipWhite {
1230
+ background-image: url(/_images/backgrounds/chip-white.png);
1231
+ background-image: image-set(url(/_images/backgrounds/chip-white.png) 1x, url(/_images/backgrounds/chip-white-2x.png) 2x);
1232
+ }
1233
+ .patternMonstersBlack {
1234
+ background-image: url(/_images/backgrounds/monsters-black.png);
1235
+ background-image: image-set(url(/_images/backgrounds/monsters-black.png) 1x, url(/_images/backgrounds/monsters-black-2x.png) 2x);
1236
+ background-size: 50%;
1237
+ }
1238
+ .patternGraffiti {
1239
+ background-image: url(/_images/backgrounds/graffiti.jpg);
1240
+ background-image: image-set(url(/_images/backgrounds/graffiti.jpg) 1x, url(/_images/backgrounds/graffiti-2x.jpg) 2x);
1241
+ background-position: 50%;
1242
+ background-repeat: no-repeat;
1243
+ background-size: cover;
1244
+ }
1245
+ @media screen and (min-width: 640px) {
1246
+ .patternGraffiti {
1247
+ background-image: url(/_images/backgrounds/graffiti-medium-up.jpg);
1248
+ background-image: image-set(url(/_images/backgrounds/graffiti-medium-up.jpg) 1x, url(/_images/backgrounds/graffiti-medium-up-2x.jpg) 2x);
1249
+ }
1250
+ }
1251
+ .patternTapesBlack {
1252
+ background-image: url(/_images/backgrounds/tapes-black.jpg);
1253
+ background-image: image-set(url(/_images/backgrounds/tapes-black.webp) type("image/webp") 1x, url(/_images/backgrounds/tapes-black.jpg) 1x, url(/_images/backgrounds/tapes-black-2x.webp) type("image/webp") 2x, url(/_images/backgrounds/tapes-black-2x.jpg) 2x);
1254
+ }
1255
+ .patternTapesGreen {
1256
+ background-image: url(/_images/backgrounds/tapes-green.jpg);
1257
+ background-image: image-set(url(/_images/backgrounds/tapes-green.webp) type("image/webp") 1x, url(/_images/backgrounds/tapes-green.jpg) 1x, url(/_images/backgrounds/tapes-green-2x.webp) type("image/webp") 2x, url(/_images/backgrounds/tapes-green-2x.jpg) 2x);
1258
+ }
1259
+ .patternTapesPattern {
1260
+ background-image: url(/_images/backgrounds/tapes-pattern.jpg);
1261
+ background-image: image-set(url(/_images/backgrounds/tapes-pattern.jpg) 1x, url(/_images/backgrounds/tapes-pattern-2x.jpg) 2x);
1262
+ }
1263
+ .patternTapesPurple {
1264
+ background-image: url(/_images/backgrounds/tapes-purple.jpg);
1265
+ background-image: image-set(url(/_images/backgrounds/tapes-purple.webp) type("image/webp") 1x, url(/_images/backgrounds/tapes-purple.jpg) 1x, url(/_images/backgrounds/tapes-purple-2x.webp) type("image/webp") 2x, url(/_images/backgrounds/tapes-purple-2x.jpg) 2x);
1266
+ }
1267
+
1268
+ /* src/components/ui/staple-card.module.css */
1269
+ .stapleCard {
1270
+ filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.14));
1271
+ height: 100%;
1272
+ }
1273
+ .card {
1274
+ display: flex;
1275
+ flex-direction: column;
1276
+ height: 100%;
1277
+ position: relative;
1278
+ transition: transform calc(var(--duration-factor) * 0.3s) var(--ease-in-out);
1279
+ }
1280
+ .card.hoverTilt:hover {
1281
+ transform: rotate(2deg);
1282
+ }
1283
+ .cardLayout {
1284
+ background-color: var(--color-white, #fff);
1285
+ color: var(--color-black, #0d0d0d);
1286
+ display: grid;
1287
+ grid-template-rows: auto 1fr;
1288
+ height: 100%;
1289
+ padding: calc(var(--base-space, 8px) * 0) calc(var(--base-space, 8px) * 4) calc(var(--base-space, 8px) * 3) calc(var(--base-space, 8px) * 4);
1290
+ position: relative;
1291
+ }
1292
+ .image {
1293
+ align-items: center;
1294
+ display: flex;
1295
+ justify-content: center;
1296
+ transform: rotate(-1deg);
1297
+ width: 100%;
1298
+ }
1299
+ .image img {
1300
+ object-fit: contain;
1301
+ }
1302
+ .stapleLeft {
1303
+ bottom: 0;
1304
+ left: 20px;
1305
+ position: absolute;
1306
+ width: 20%;
1307
+ }
1308
+ .stapleRight {
1309
+ bottom: 0;
1310
+ position: absolute;
1311
+ right: 20px;
1312
+ width: 10%;
1313
+ }
1314
+ .tape {
1315
+ display: block;
1316
+ }
1317
+ .tapeImage {
1318
+ display: block;
1319
+ height: auto;
1320
+ width: 100%;
1321
+ }
1322
+ .imgDesktop {
1323
+ display: none;
1324
+ }
1325
+ @container (min-width: 400px) {
1326
+ .imgMobile {
1327
+ display: none;
1328
+ }
1329
+ .imgDesktop {
1330
+ display: block;
1331
+ }
1332
+ }
1333
+ .cardBottom {
1334
+ margin-top: -2px;
1335
+ width: 100%;
1336
+ }
1337
+ .cardTop {
1338
+ margin-bottom: -2px;
1339
+ width: 100%;
1340
+ }
1341
+ .info {
1342
+ align-items: center;
1343
+ display: flex;
1344
+ flex-direction: column;
1345
+ height: 100%;
1346
+ justify-content: flex-start;
1347
+ padding: calc(var(--base-space, 8px) * 2) 0;
1348
+ }
1349
+ .surfaceDark .cardLayout {
1350
+ background-color: var(--color-black-alt, #0e0e0e);
1351
+ color: var(--color-white, #fff);
1352
+ }
1353
+ .title {
1354
+ font-size: 1.25rem;
1355
+ font-weight: 700;
1356
+ line-height: 2;
1357
+ }
1358
+ .subtitle {
1359
+ margin-top: calc(var(--base-space, 8px) * 1);
1360
+ font-size: 0.875rem;
1361
+ opacity: 0.75;
1362
+ }
1363
+
1364
+ /* src/components/ui/tape-divider.module.css */
1365
+ .tapeDivider {
1366
+ position: relative;
1367
+ width: 100%;
1368
+ z-index: 2;
1369
+ pointer-events: none;
1370
+ line-height: 0;
1371
+ }
1372
+ .tapePrimary {
1373
+ background-image: url(/_images/tape-assets/tape-2.png);
1374
+ background-image: image-set(url(/_images/tape-assets/tape-2.png) 1x, url(/_images/tape-assets/tape-2-2x.png) 2x);
1375
+ background-position: center;
1376
+ background-repeat: repeat-x;
1377
+ background-size: auto 100%;
1378
+ height: 36px;
1379
+ width: 100%;
1380
+ }
1381
+ .tapeSecondary {
1382
+ background-image: url(/_images/tape-assets/tape-3.png);
1383
+ background-image: image-set(url(/_images/tape-assets/tape-3.png) 1x, url(/_images/tape-assets/tape-3-2x.png) 2x);
1384
+ background-position: center;
1385
+ background-repeat: repeat-x;
1386
+ background-size: auto 100%;
1387
+ height: 38px;
1388
+ width: 100%;
1389
+ }
1390
+ .primaryOnly .tapePrimary {
1391
+ height: 36px;
1392
+ }
1393
+ .double .tapePrimary {
1394
+ position: relative;
1395
+ z-index: 1;
1396
+ }
1397
+ .double .tapeSecondary {
1398
+ margin-top: -18px;
1399
+ position: relative;
1400
+ z-index: 0;
1401
+ }
1402
+ .rotateLeft {
1403
+ transform: rotate(-2deg);
1404
+ }
1405
+ .rotateRight {
1406
+ transform: rotate(2deg);
1407
+ }
1408
+ .rotateStrong {
1409
+ transform: rotate(-4deg);
1410
+ }
1411
+ .overlap {
1412
+ margin-top: -36px;
1413
+ padding-top: 36px;
1414
+ }
1415
+ @media screen and (min-width: 640px) {
1416
+ .tapePrimary {
1417
+ height: 48px;
1418
+ }
1419
+ .tapeSecondary {
1420
+ height: 50px;
1421
+ }
1422
+ .double .tapeSecondary {
1423
+ margin-top: -24px;
1424
+ }
1425
+ .overlap {
1426
+ margin-top: -48px;
1427
+ padding-top: 48px;
1428
+ }
1429
+ }
1430
+ @media screen and (min-width: 1024px) {
1431
+ .tapePrimary {
1432
+ height: 60px;
1433
+ }
1434
+ .tapeSecondary {
1435
+ height: 62px;
1436
+ }
1437
+ .double .tapeSecondary {
1438
+ margin-top: -30px;
1439
+ }
1440
+ .overlap {
1441
+ margin-top: -60px;
1442
+ padding-top: 60px;
1443
+ }
1444
+ }
1445
+
1446
+ /* src/components/ui/tape-title.module.css */
1447
+ .container {
1448
+ --tape-title-left-bleed: 61px;
1449
+ --tape-title-right-bleed: 59px;
1450
+ --tape-color: var(--color-true-black, #000);
1451
+ background: var(--color-black, #0d0d0d);
1452
+ color: var(--color-white, #fff);
1453
+ display: inline-block;
1454
+ margin-inline: var(--tape-title-left-bleed) var(--tape-title-right-bleed);
1455
+ position: relative;
1456
+ transform: rotate(-4deg);
1457
+ z-index: 2;
1458
+ }
1459
+ .container::before {
1460
+ background-color: var(--tape-color);
1461
+ mask-image: url(/_images/svg/left-tape.svg);
1462
+ mask-position: 100% center;
1463
+ mask-repeat: no-repeat;
1464
+ mask-size: contain;
1465
+ content: " ";
1466
+ height: 100%;
1467
+ left: -61px;
1468
+ position: absolute;
1469
+ width: 62px;
1470
+ }
1471
+ .container::after {
1472
+ background-color: var(--tape-color);
1473
+ mask-image: url(/_images/svg/right-tape.svg);
1474
+ mask-position: 0 center;
1475
+ mask-repeat: no-repeat;
1476
+ mask-size: contain;
1477
+ content: " ";
1478
+ height: 100%;
1479
+ position: absolute;
1480
+ right: -58px;
1481
+ top: 0;
1482
+ width: 59px;
1483
+ }
1484
+ .red {
1485
+ --tape-color: var(--color-red, #ff505e);
1486
+ background: var(--color-red, #ff505e);
1487
+ color: var(--color-black, #0d0d0d);
1488
+ }
1489
+ .yellow {
1490
+ --tape-color: var(--color-yellow, #eaff3d);
1491
+ background: var(--color-yellow, #eaff3d);
1492
+ color: var(--color-black, #0d0d0d);
1493
+ }
1494
+ .title {
1495
+ font-family: var(--font-alt);
1496
+ font-weight: 600;
1497
+ font-size: 1.5rem;
1498
+ line-height: 1;
1499
+ padding: 8px 16px 16px;
1500
+ text-transform: none;
1501
+ white-space: nowrap;
1502
+ }
1503
+ @media screen and (min-width: 1024px) {
1504
+ .title {
1505
+ font-size: 2.3125rem;
1506
+ padding: 16px 40px 24px;
1507
+ }
1508
+ }
1509
+
1510
+ /* src/components/ui/wave-button.module.css */
1511
+ .morph {
1512
+ animation: morph calc(var(--duration-factor, 1) * 3s) linear infinite;
1513
+ border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
1514
+ transform: translateZ(0);
1515
+ }
1516
+ @keyframes morph {
1517
+ 0%, 100% {
1518
+ border-radius: 40% 60% 70% 30% / 40% 40% 60% 50%;
1519
+ }
1520
+ 34% {
1521
+ border-radius: 70% 30% 50% 50% / 30% 30% 70% 70%;
1522
+ }
1523
+ 67% {
1524
+ border-radius: 100% 60% 60% 100% / 100% 100% 60% 60%;
1525
+ }
1526
+ }
1527
+ .iconWrap {
1528
+ background-color: var(--color-yellow, #eaff3d);
1529
+ display: grid;
1530
+ flex-shrink: 0;
1531
+ height: 48px;
1532
+ place-content: center;
1533
+ width: 48px;
1534
+ }
1535
+ .icon {
1536
+ --line-w: 19px;
1537
+ --line-h: 4px;
1538
+ --line-y: calc(var(--line-h) * -1.5);
1539
+ background-color: var(--color-blue, #603bff);
1540
+ display: block;
1541
+ height: var(--line-h);
1542
+ position: relative;
1543
+ width: var(--line-w);
1544
+ transition: background-color 0.1s linear;
1545
+ }
1546
+ .icon::before,
1547
+ .icon::after {
1548
+ --line-rotation: 0deg;
1549
+ background-color: var(--color-blue, #603bff);
1550
+ content: "";
1551
+ height: 100%;
1552
+ left: 0;
1553
+ position: absolute;
1554
+ top: 0;
1555
+ transform: translateY(var(--line-y)) rotate(var(--line-rotation));
1556
+ transition: transform 0.25s cubic-bezier(0.21, 0.12, 0.35, 1.43), background-color 0.1s linear;
1557
+ width: 100%;
1558
+ }
1559
+ .icon::after {
1560
+ --line-y: calc(var(--line-h) * 1.5);
1561
+ }
1562
+ .pressed .icon {
1563
+ background-color: transparent;
1564
+ }
1565
+ .pressed .icon::before {
1566
+ --line-y: 0px;
1567
+ --line-rotation: 45deg;
1568
+ }
1569
+ .pressed .icon::after {
1570
+ --line-y: 0px;
1571
+ --line-rotation: -45deg;
1572
+ }
1573
+ .yellow {
1574
+ background-color: var(--color-yellow, #eaff3d);
1575
+ }
1576
+ .white {
1577
+ background-color: var(--color-white);
1578
+ }
1579
+ .ghost {
1580
+ background-color: transparent;
1581
+ }
1582
+ .md {
1583
+ height: 48px;
1584
+ width: 48px;
1585
+ }
1586
+ .lg {
1587
+ height: 64px;
1588
+ width: 64px;
1589
+ }
1590
+
1591
+ /* Splatoon UI component styles: client.css */
1592
+
1593
+ /* src/components/ui/card-slot.module.css */
1594
+ .cardSlot {
1595
+ position: absolute;
1596
+ z-index: 20;
1597
+ pointer-events: none;
1598
+ }
1599
+
1600
+ /* src/components/ui/torn-card.module.css */
1601
+ .tape {
1602
+ display: block;
1603
+ transform: rotate(var(--tape-rotate, 0deg));
1604
+ }
1605
+ .alertContent {
1606
+ padding: calc(var(--base-space, 8px) * 4);
1607
+ }
1608
+ @container (min-width: 400px) {
1609
+ .alertContent {
1610
+ padding: calc(var(--base-space, 8px) * 6) calc(var(--base-space, 8px) * 4);
1611
+ }
1612
+ }
1613
+ .imgDesktop {
1614
+ display: none;
1615
+ }
1616
+ @container (min-width: 400px) {
1617
+ .imgMobile {
1618
+ display: none;
1619
+ }
1620
+ .imgDesktop {
1621
+ display: block;
1622
+ }
1623
+ }
1624
+
1625
+ /* src/components/ui/black-tape-container.module.css */
1626
+ .blackTapeContainer {
1627
+ --tape-offset: 16px;
1628
+ --tape-safe-bleed: min(var(--tape-offset), max(0px, calc((100cqw - 100%) / 2)));
1629
+ --tape-width: 30px;
1630
+ margin-left: calc(var(--tape-safe-bleed) * -1);
1631
+ margin-right: calc(var(--tape-safe-bleed) * -1);
1632
+ overflow-x: clip;
1633
+ padding: 0 var(--tape-offset);
1634
+ position: relative;
1635
+ }
1636
+ .blackTapeContainer::before,
1637
+ .blackTapeContainer::after {
1638
+ background-repeat: repeat-y;
1639
+ content: "";
1640
+ height: 100%;
1641
+ position: absolute;
1642
+ top: 0;
1643
+ width: var(--tape-width);
1644
+ z-index: 1;
1645
+ }
1646
+ .blackTapeContainer::before {
1647
+ background-image: url(/_images/svg/left-black-tape-container.svg);
1648
+ background-position: calc(100% - 1px) top;
1649
+ left: 0;
1650
+ }
1651
+ .blackTapeContainer::after {
1652
+ background-image: url(/_images/svg/right-black-tape-container.svg);
1653
+ background-position: 1px top;
1654
+ right: 0;
1655
+ }
1656
+ .blackTapeContainerInner {
1657
+ background: var(--color-black-alt, #0e0e0e);
1658
+ padding: 1.5em;
1659
+ }
1660
+ .tapeYellow .blackTapeContainerInner {
1661
+ background: var(--color-yellow, #eaff3d);
1662
+ color: var(--color-black, #0d0d0d);
1663
+ }
1664
+ .tapeYellow::before {
1665
+ background-image: url(/_images/svg/left-yellow-tape-container.svg);
1666
+ }
1667
+ .tapeYellow::after {
1668
+ background-image: url(/_images/svg/right-yellow-tape-container.svg);
1669
+ }
1670
+ .noVerticalPadding .blackTapeContainerInner {
1671
+ padding: 0 1.5em;
1672
+ }
1673
+ @media screen and (min-width: 640px) {
1674
+ .blackTapeContainer {
1675
+ --tape-offset: 38px;
1676
+ --tape-width: 40px;
1677
+ }
1678
+ .blackTapeContainerInner {
1679
+ padding: 2em;
1680
+ }
1681
+ .noVerticalPadding .blackTapeContainerInner {
1682
+ padding: 0 2em;
1683
+ }
1684
+ }
1685
+ @media screen and (min-width: 1024px) {
1686
+ .blackTapeContainer {
1687
+ --tape-offset: 58px;
1688
+ --tape-width: 60px;
1689
+ }
1690
+ }
1691
+
1692
+ /* src/components/ui/button-arrow.module.css */
1693
+ .buttonArrow {
1694
+ color: var(--color);
1695
+ display: inline-block;
1696
+ font-family: var(--font-alt);
1697
+ font-size: 1.5rem;
1698
+ line-height: 1;
1699
+ text-decoration: none;
1700
+ }
1701
+ .buttonArrow:hover .iconWrap {
1702
+ transform: translateX(10px);
1703
+ }
1704
+ .iconWrap {
1705
+ display: inline-flex;
1706
+ margin-left: 0.5rem;
1707
+ }
1708
+ .iconWrap svg {
1709
+ height: 16px;
1710
+ transform: translateX(5px);
1711
+ transition: transform 0.2s;
1712
+ width: 8px;
1713
+ }
1714
+ @media screen and (min-width: 1024px) {
1715
+ .buttonArrow {
1716
+ font-size: 1.625rem;
1717
+ }
1718
+ }
1719
+
1720
+ /* src/components/ui/button-drip.module.css */
1721
+ .button {
1722
+ --bg-color: var(--color-primary);
1723
+ --text-color: var(--color-primary-alt);
1724
+ --hover-bg-color: var(--color-accent);
1725
+ --hover-text-color: var(--color-accent-alt);
1726
+ --speed: calc(var(--duration-factor) * 1.8s);
1727
+ --drip-speed-factor: 1;
1728
+ --drip-in-start: polygon(0 100%, 0 100%, 100% 100%, 100% 100%);
1729
+ --drip-in-end: polygon(0 0, 0 100%, 100% 100%, 100% 0);
1730
+ --drip-out-start: polygon(0 0, 0 0, 100% 0, 100% 0);
1731
+ --drip-out-end: polygon(0 0, 0 100%, 100% 100%, 100% 0);
1732
+ border-radius: 0.5rem;
1733
+ box-sizing: border-box;
1734
+ cursor: pointer;
1735
+ display: inline-block;
1736
+ font-family: var(--font-alt);
1737
+ font-weight: var(--font-weight-bold);
1738
+ line-height: 1;
1739
+ overflow: hidden;
1740
+ position: relative;
1741
+ text-align: center;
1742
+ text-decoration: none;
1743
+ transition: border calc(var(--duration-factor) * 0.2s) calc(var(--duration-factor) * 0.25s);
1744
+ width: 100%;
1745
+ }
1746
+ .button > *:not(.icon) {
1747
+ width: 100%;
1748
+ }
1749
+ .icon {
1750
+ height: 26px;
1751
+ margin-right: var(--base-space, 8px);
1752
+ padding-top: var(--base-space, 8px);
1753
+ width: 20px;
1754
+ }
1755
+ .content,
1756
+ .hoverContent {
1757
+ align-items: center;
1758
+ background-color: var(--bg-color);
1759
+ color: var(--text-color);
1760
+ display: flex;
1761
+ font-size: 1.5rem;
1762
+ height: 100%;
1763
+ justify-content: center;
1764
+ padding: calc(var(--base-space, 8px) * 1.5) calc(var(--base-space, 8px) * 5.5) calc(var(--base-space, 8px) * 2.5) calc(var(--base-space, 8px) * 5.5);
1765
+ transition: background-color calc(var(--duration-factor) * 0.2s) ease;
1766
+ width: 100%;
1767
+ }
1768
+ .content span,
1769
+ .hoverContent span {
1770
+ position: relative;
1771
+ white-space: nowrap;
1772
+ z-index: 1;
1773
+ }
1774
+ .content .icon,
1775
+ .hoverContent .icon {
1776
+ fill: var(--text-color);
1777
+ }
1778
+ .hoverContent {
1779
+ animation: calc(var(--speed) * var(--drip-speed-factor)) button-drip_drip-leave 0.2s ease forwards;
1780
+ animation-fill-mode: forwards;
1781
+ background-color: var(--hover-bg-color);
1782
+ border-radius: 0.5rem;
1783
+ box-shadow: inset 0 0 0 2px var(--hover-bg-color);
1784
+ color: var(--hover-text-color);
1785
+ height: 100%;
1786
+ left: 0;
1787
+ opacity: 0;
1788
+ pointer-events: none;
1789
+ position: absolute;
1790
+ top: 0;
1791
+ transition: box-shadow 0.2s;
1792
+ transition-delay: 0.6s;
1793
+ width: 100%;
1794
+ z-index: 2;
1795
+ }
1796
+ @media (hover: hover) {
1797
+ .button:hover .hoverContent {
1798
+ animation: calc(var(--speed) * var(--drip-speed-factor)) button-drip_drip-enter 0.2s ease forwards;
1799
+ box-shadow: inset 0 0 0 2px var(--hover-text-color);
1800
+ opacity: 1;
1801
+ }
1802
+ }
1803
+ .accentColors {
1804
+ --bg-color: var(--color-accent);
1805
+ --text-color: var(--color-accent-alt);
1806
+ --hover-bg-color: var(--color-primary);
1807
+ --hover-text-color: var(--color-primary-alt);
1808
+ }
1809
+ @-webkit-keyframes button-drip_drip-enter {
1810
+ 0% {
1811
+ -webkit-clip-path: var(--drip-in-start);
1812
+ clip-path: var(--drip-in-start);
1813
+ }
1814
+ to {
1815
+ -webkit-clip-path: var(--drip-in-end);
1816
+ clip-path: var(--drip-in-end);
1817
+ }
1818
+ }
1819
+ @keyframes button-drip_drip-enter {
1820
+ 0% {
1821
+ -webkit-clip-path: var(--drip-in-start);
1822
+ clip-path: var(--drip-in-start);
1823
+ }
1824
+ to {
1825
+ -webkit-clip-path: var(--drip-in-end);
1826
+ clip-path: var(--drip-in-end);
1827
+ }
1828
+ }
1829
+ @-webkit-keyframes button-drip_drip-leave {
1830
+ 0% {
1831
+ -webkit-clip-path: var(--drip-out-start);
1832
+ clip-path: var(--drip-out-start);
1833
+ }
1834
+ to {
1835
+ -webkit-clip-path: var(--drip-out-end);
1836
+ clip-path: var(--drip-out-end);
1837
+ }
1838
+ }
1839
+ @keyframes button-drip_drip-leave {
1840
+ 0% {
1841
+ -webkit-clip-path: var(--drip-out-start);
1842
+ clip-path: var(--drip-out-start);
1843
+ }
1844
+ to {
1845
+ -webkit-clip-path: var(--drip-out-end);
1846
+ clip-path: var(--drip-out-end);
1847
+ }
1848
+ }
1849
+
1850
+ /* src/components/ui/event-callout.module.css */
1851
+ .callout {
1852
+ background: var(--color-black, #0d0d0d);
1853
+ border: 3px solid var(--color-black, #0d0d0d);
1854
+ border-radius: 8px;
1855
+ color: var(--color-white, #fff);
1856
+ overflow: hidden;
1857
+ position: relative;
1858
+ }
1859
+ .background {
1860
+ block-size: 100%;
1861
+ filter: saturate(1.18) contrast(1.05);
1862
+ inline-size: 100%;
1863
+ inset: 0;
1864
+ object-fit: cover;
1865
+ opacity: 0.32;
1866
+ position: absolute;
1867
+ transform: scale(1.08) rotate(-1deg);
1868
+ }
1869
+ .content {
1870
+ display: grid;
1871
+ gap: clamp(18px, 4vw, 30px);
1872
+ grid-template-columns: minmax(0, 1fr);
1873
+ padding: clamp(18px, 4vw, 30px);
1874
+ position: relative;
1875
+ z-index: 1;
1876
+ }
1877
+ .mediaFrame {
1878
+ aspect-ratio: 382 / 215;
1879
+ background: var(--color-white, #fff);
1880
+ border: 4px solid var(--color-white, #fff);
1881
+ box-shadow: 8px 10px 0 rgb(0 0 0 / 0.35);
1882
+ position: relative;
1883
+ transform: rotate(-1.5deg);
1884
+ }
1885
+ .media {
1886
+ block-size: 100%;
1887
+ display: block;
1888
+ inline-size: 100%;
1889
+ object-fit: cover;
1890
+ }
1891
+ .iconBadge {
1892
+ align-items: center;
1893
+ background: var(--color-yellow, #eaff3d);
1894
+ border: 3px solid var(--color-black, #0d0d0d);
1895
+ border-radius: 999px;
1896
+ box-shadow: 4px 5px 0 rgb(0 0 0 / 0.35);
1897
+ display: flex;
1898
+ inline-size: clamp(46px, 12vw, 64px);
1899
+ justify-content: center;
1900
+ padding: 7px;
1901
+ position: absolute;
1902
+ right: -14px;
1903
+ top: -18px;
1904
+ transform: rotate(8deg);
1905
+ }
1906
+ .iconBadge img {
1907
+ block-size: auto;
1908
+ display: block;
1909
+ inline-size: 100%;
1910
+ }
1911
+ .body {
1912
+ align-self: center;
1913
+ display: flex;
1914
+ flex-direction: column;
1915
+ gap: 10px;
1916
+ min-inline-size: 0;
1917
+ }
1918
+ .eyebrow {
1919
+ color: var(--color-yellow, #eaff3d);
1920
+ font-size: 0.75rem;
1921
+ font-weight: 900;
1922
+ letter-spacing: 0.18em;
1923
+ line-height: 1;
1924
+ margin: 0;
1925
+ text-transform: uppercase;
1926
+ }
1927
+ .title {
1928
+ font-family: var(--font-heading), sans-serif;
1929
+ font-size: clamp(1.875rem, 7vw, 3.25rem);
1930
+ font-weight: 900;
1931
+ letter-spacing: 0;
1932
+ line-height: 0.9;
1933
+ margin: 0;
1934
+ text-transform: uppercase;
1935
+ }
1936
+ .description {
1937
+ color: rgb(255 255 255 / 0.82);
1938
+ font-size: 0.95rem;
1939
+ font-weight: 700;
1940
+ line-height: 1.45;
1941
+ margin: 0;
1942
+ max-inline-size: 34rem;
1943
+ }
1944
+ .action {
1945
+ display: flex;
1946
+ flex-wrap: wrap;
1947
+ gap: 10px;
1948
+ margin-block-start: 8px;
1949
+ }
1950
+ @media (min-width: 760px) {
1951
+ .content {
1952
+ align-items: center;
1953
+ grid-template-columns: minmax(260px, 0.95fr) minmax(0, 1fr);
1954
+ }
1955
+ .mediaFrame {
1956
+ transform: rotate(-2deg);
1957
+ }
1958
+ }
1959
+
1960
+ /* src/components/ui/heading-tape.module.css */
1961
+ .headingTapeSection {
1962
+ container-type: inline-size;
1963
+ display: flex;
1964
+ justify-content: center;
1965
+ margin-bottom: calc(var(--base-space, 8px) * var(--margin-offset, 2));
1966
+ min-inline-size: 0;
1967
+ position: relative;
1968
+ width: 100%;
1969
+ }
1970
+ .overlapTop {
1971
+ margin-top: -30px;
1972
+ }
1973
+ .headingTapeContainer {
1974
+ position: relative;
1975
+ transform: rotate(-3deg);
1976
+ width: fit-content;
1977
+ }
1978
+ .headingTapeDecorations {
1979
+ height: 100%;
1980
+ left: 0;
1981
+ pointer-events: none;
1982
+ position: absolute;
1983
+ top: 0;
1984
+ width: 100%;
1985
+ z-index: 0;
1986
+ }
1987
+ .headingTapeDecoration {
1988
+ display: block;
1989
+ inline-size: var(--heading-tape-decoration-inline-size, 100%);
1990
+ max-inline-size: var(--heading-tape-decoration-max-inline-size, 100%);
1991
+ position: absolute;
1992
+ }
1993
+ .decorationTopLeft {
1994
+ left: var(--heading-tape-decoration-inline-offset, -19px);
1995
+ top: var(--heading-tape-decoration-block-offset, -15px);
1996
+ transform: rotate(var(--heading-tape-decoration-rotate, 0deg));
1997
+ }
1998
+ .decorationTopRight {
1999
+ right: var(--heading-tape-decoration-inline-offset, -17px);
2000
+ top: var(--heading-tape-decoration-block-offset, -15px);
2001
+ transform: rotate(var(--heading-tape-decoration-rotate, 0deg));
2002
+ }
2003
+ .decorationBottomLeft {
2004
+ bottom: var(--heading-tape-decoration-block-offset, -17px);
2005
+ left: var(--heading-tape-decoration-inline-offset, -19px);
2006
+ transform: rotate(var(--heading-tape-decoration-rotate, 0deg));
2007
+ }
2008
+ .decorationBottomRight {
2009
+ bottom: var(--heading-tape-decoration-block-offset, -17px);
2010
+ right: var(--heading-tape-decoration-inline-offset, -17px);
2011
+ transform: rotate(var(--heading-tape-decoration-rotate, 0deg));
2012
+ }
2013
+ .headingTapeDecorationImage {
2014
+ block-size: auto;
2015
+ display: block;
2016
+ inline-size: auto;
2017
+ max-inline-size: 100%;
2018
+ }
2019
+ .headingTapeDecorationImageDesktop {
2020
+ display: none;
2021
+ }
2022
+ .headingTapeText {
2023
+ background: var(--color-white, #ffffff);
2024
+ border-radius: 10px;
2025
+ color: var(--color-black, #0d0d0d);
2026
+ display: inline-block;
2027
+ font-family: var(--font-heading, inherit);
2028
+ font-size: 1.875rem;
2029
+ font-weight: 700;
2030
+ letter-spacing: 0;
2031
+ line-height: 1;
2032
+ max-inline-size: 100%;
2033
+ overflow-wrap: break-word;
2034
+ padding: calc(var(--base-space, 8px) * 2) 40px;
2035
+ position: relative;
2036
+ text-align: center;
2037
+ text-transform: uppercase;
2038
+ z-index: 1;
2039
+ }
2040
+ .compact .headingTapeText {
2041
+ border-radius: 8px;
2042
+ font-size: 1.375rem;
2043
+ padding: calc(var(--base-space, 8px) * 1.25) 24px;
2044
+ }
2045
+ @container (min-width: 640px) {
2046
+ .headingTapeDecorationImageMobile {
2047
+ display: none;
2048
+ }
2049
+ .headingTapeDecorationImageDesktop {
2050
+ display: block;
2051
+ }
2052
+ }
2053
+ @container (min-width: 640px) {
2054
+ .headingTapeText {
2055
+ padding: calc(var(--base-space, 8px) * 2) 60px;
2056
+ }
2057
+ .compact .headingTapeText {
2058
+ font-size: 2rem;
2059
+ padding: calc(var(--base-space, 8px) * 1.5) 36px;
2060
+ }
2061
+ }
2062
+ @container (min-width: 1024px) {
2063
+ .headingTapeText {
2064
+ font-size: 3.125rem;
2065
+ }
2066
+ .compact .headingTapeText {
2067
+ font-size: 2.5rem;
2068
+ }
2069
+ }
2070
+
2071
+ /* src/components/ui/photo-frame.module.css */
2072
+ .photoFrame {
2073
+ --border-offset-x: 3px;
2074
+ --border-offset-y: 4px;
2075
+ --tape-rotation: 6deg;
2076
+ --margin-offset: 6;
2077
+ --photo-aspect-ratio: auto;
2078
+ aspect-ratio: var(--photo-aspect-ratio);
2079
+ container-type: inline-size;
2080
+ display: inline-block;
2081
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
2082
+ line-height: 0;
2083
+ margin-top: calc(var(--base-space, 8px) * var(--margin-offset));
2084
+ padding: calc(var(--border-offset-y) * 2) calc(var(--border-offset-x) * 2);
2085
+ position: relative;
2086
+ transform: rotate(var(--end-rotate, 0deg));
2087
+ }
2088
+ .photoFrame::before {
2089
+ background-image: url(/_images/svg/styled-photo-background.svg);
2090
+ background-position: 50% center;
2091
+ background-repeat: no-repeat;
2092
+ background-size: 100% 100%;
2093
+ content: "";
2094
+ height: calc(100% + var(--border-offset-y) * 2);
2095
+ left: calc(var(--border-offset-x) * -1);
2096
+ position: absolute;
2097
+ top: calc(var(--border-offset-y) * -1);
2098
+ width: calc(100% + var(--border-offset-x) * 2);
2099
+ pointer-events: none;
2100
+ }
2101
+ .fillWidth {
2102
+ --photo-aspect-ratio: 16 / 9;
2103
+ display: block;
2104
+ width: 100%;
2105
+ }
2106
+ .nested {
2107
+ max-width: 350px;
2108
+ }
2109
+ .nested.photoFrame {
2110
+ --border-offset-x: 2px;
2111
+ --border-offset-y: 3px;
2112
+ --margin-offset: 4;
2113
+ }
2114
+ .thinBorder.photoFrame,
2115
+ .photoFrame.thinBorder {
2116
+ --border-offset-x: 2px;
2117
+ --border-offset-y: 3px;
2118
+ }
2119
+ .mediumBorder.photoFrame,
2120
+ .photoFrame.mediumBorder {
2121
+ --border-offset-x: 2px;
2122
+ --border-offset-y: 4px;
2123
+ }
2124
+ .photo {
2125
+ mask-image: url(/_images/svg/styled-photo-background.svg);
2126
+ mask-position: center;
2127
+ mask-repeat: no-repeat;
2128
+ mask-size: 100% 100%;
2129
+ object-fit: contain;
2130
+ position: relative;
2131
+ width: 100%;
2132
+ height: 100%;
2133
+ }
2134
+ .noContainer {
2135
+ container-type: unset;
2136
+ }
2137
+ .tape {
2138
+ position: absolute;
2139
+ z-index: 20;
2140
+ pointer-events: none;
2141
+ }
2142
+ .tapeMobile {
2143
+ display: block;
2144
+ }
2145
+ .tapeDesktop {
2146
+ display: none;
2147
+ }
2148
+ @container (min-width: 400px) {
2149
+ .tapeMobile {
2150
+ display: none;
2151
+ }
2152
+ .tapeDesktop {
2153
+ display: block;
2154
+ }
2155
+ }
2156
+ .tapeCenter {
2157
+ top: 0;
2158
+ left: 50%;
2159
+ transform: translate(-50%, -50%) rotate(var(--tape-rotate, 6deg));
2160
+ }
2161
+ .tapeLeft {
2162
+ top: 0;
2163
+ left: var(--slot-offset, 15%);
2164
+ transform: translateY(-50%) rotate(var(--tape-rotate, 6deg));
2165
+ }
2166
+ .tapeRight {
2167
+ top: 0;
2168
+ right: var(--slot-offset, 15%);
2169
+ transform: translateY(-50%) rotate(var(--tape-rotate, 6deg));
2170
+ }
2171
+ .tapeBottomCenter {
2172
+ bottom: 0;
2173
+ left: 50%;
2174
+ transform: translate(-50%, 50%) rotate(var(--tape-rotate, 6deg));
2175
+ }
2176
+ .tapeBottomLeft {
2177
+ bottom: 0;
2178
+ left: var(--slot-offset, 15%);
2179
+ transform: translateY(50%) rotate(var(--tape-rotate, 6deg));
2180
+ }
2181
+ .tapeBottomRight {
2182
+ bottom: 0;
2183
+ right: var(--slot-offset, 15%);
2184
+ transform: translateY(50%) rotate(var(--tape-rotate, 6deg));
2185
+ }
2186
+ .decoration {
2187
+ pointer-events: none;
2188
+ position: absolute;
2189
+ z-index: 20;
2190
+ }
2191
+ .decorationMobile {
2192
+ display: block;
2193
+ }
2194
+ .decorationDesktop {
2195
+ display: none;
2196
+ }
2197
+ @container (min-width: 400px) {
2198
+ .decorationMobile {
2199
+ display: none;
2200
+ }
2201
+ .decorationDesktop {
2202
+ display: block;
2203
+ }
2204
+ }
2205
+ .decorationBottomLeft {
2206
+ --slot-offset: 15%;
2207
+ bottom: 0;
2208
+ left: var(--slot-offset);
2209
+ transform: translateY(50%);
2210
+ }
2211
+ .decorationTopRight {
2212
+ --slot-offset: 15%;
2213
+ top: 0;
2214
+ right: var(--slot-offset);
2215
+ transform: translateY(-50%);
2216
+ }
2217
+ .decorationBottomRight {
2218
+ --slot-offset: 15%;
2219
+ bottom: 0;
2220
+ right: var(--slot-offset);
2221
+ transform: translateY(50%);
2222
+ }
2223
+ .decorationCenter {
2224
+ top: 0;
2225
+ left: 50%;
2226
+ transform: translate(-50%, -50%);
2227
+ }
2228
+ @media screen and (min-width: 640px) {
2229
+ .decorationBottomLeft,
2230
+ .decorationBottomRight {
2231
+ --slot-offset: 15%;
2232
+ }
2233
+ .decorationTopRight {
2234
+ --slot-offset: 15%;
2235
+ }
2236
+ }
2237
+ @media screen and (min-width: 640px) {
2238
+ .photoFrame {
2239
+ --border-offset-x: 4px;
2240
+ --border-offset-y: 3px;
2241
+ }
2242
+ }
2243
+
2244
+ /* src/components/ui/section-background.module.css */
2245
+ .sectionBackground {
2246
+ background-position: top;
2247
+ min-height: 100px;
2248
+ }
2249
+ .patternBaseBgPattern {
2250
+ background-image: url(/_images/backgrounds/base-bg-pattern.jpg);
2251
+ background-image: image-set(url(/_images/backgrounds/base-bg-pattern.jpg) 1x, url(/_images/backgrounds/base-bg-pattern-2x.jpg) 2x);
2252
+ }
2253
+ .patternCamoBlack {
2254
+ background-image: url(/_images/backgrounds/camo-black.png);
2255
+ background-image: image-set(url(/_images/backgrounds/camo-black.png) 1x, url(/_images/backgrounds/camo-black-2x.png) 2x);
2256
+ }
2257
+ .patternCamoGreen {
2258
+ background-image: url(/_images/backgrounds/camo-green.png);
2259
+ background-image: image-set(url(/_images/backgrounds/camo-green.png) 1x, url(/_images/backgrounds/camo-green-2x.png) 2x);
2260
+ }
2261
+ .patternCamoPurple {
2262
+ background-image: url(/_images/backgrounds/camo-purple.png);
2263
+ background-image: image-set(url(/_images/backgrounds/camo-purple.png) 1x, url(/_images/backgrounds/camo-purple-2x.png) 2x);
2264
+ }
2265
+ .patternCamoPurpleRevised {
2266
+ background-image: url(/_images/backgrounds/camo-purple-revised.png);
2267
+ background-image: image-set(url(/_images/backgrounds/camo-purple-revised.png) 1x, url(/_images/backgrounds/camo-purple-revised-2x.png) 2x);
2268
+ }
2269
+ .patternCamoOrange {
2270
+ background-image: url(/_images/backgrounds/camo-orange.png);
2271
+ background-image: image-set(url(/_images/backgrounds/camo-orange.png) 1x, url(/_images/backgrounds/camo-orange-2x.png) 2x);
2272
+ }
2273
+ .patternCamoRed {
2274
+ background-image: url(/_images/backgrounds/camo-red.png);
2275
+ background-image: image-set(url(/_images/backgrounds/camo-red.png) 1x, url(/_images/backgrounds/camo-red-2x.png) 2x);
2276
+ }
2277
+ .patternCamoWhite {
2278
+ background-image: url(/_images/backgrounds/camo-white.png);
2279
+ background-image: image-set(url(/_images/backgrounds/camo-white.png) 1x, url(/_images/backgrounds/camo-white-2x.png) 2x);
2280
+ }
2281
+ .patternCamoWhiteOutline {
2282
+ background-image: url(/_images/backgrounds/camo-white-outline.png);
2283
+ background-image: image-set(url(/_images/backgrounds/camo-white-outline.png) 1x, url(/_images/backgrounds/camo-white-outline-2x.png) 2x);
2284
+ }
2285
+ .patternHardwareBackground {
2286
+ background-image: url(/_images/backgrounds/hardware-background.png);
2287
+ background-image: image-set(url(/_images/backgrounds/hardware-background.png) 1x, url(/_images/backgrounds/hardware-background-2x.png) 2x);
2288
+ background-position: 50%;
2289
+ background-repeat: no-repeat;
2290
+ background-size: contain;
2291
+ }
2292
+ @media screen and (min-width: 640px) {
2293
+ .patternHardwareBackground {
2294
+ background-image: url(/_images/backgrounds/hardware-background-medium-up.png);
2295
+ background-image: image-set(url(/_images/backgrounds/hardware-background-medium-up.png) 1x, url(/_images/backgrounds/hardware-background-medium-up-2x.png) 2x);
2296
+ }
2297
+ }
2298
+ .patternOctoBlack {
2299
+ background-image: url(/_images/backgrounds/octo-black.png);
2300
+ background-image: image-set(url(/_images/backgrounds/octo-black.png) 1x, url(/_images/backgrounds/octo-black-2x.png) 2x);
2301
+ }
2302
+ .patternOctoRed {
2303
+ background-image: url(/_images/backgrounds/octo-red.png);
2304
+ background-image: image-set(url(/_images/backgrounds/octo-red.png) 1x, url(/_images/backgrounds/octo-red-2x.png) 2x);
2305
+ }
2306
+ .patternOctoarrowGreen {
2307
+ background-image: url(/_images/backgrounds/octoarrow-green.png);
2308
+ background-image: image-set(url(/_images/backgrounds/octoarrow-green.png) 1x, url(/_images/backgrounds/octoarrow-green-2x.png) 2x);
2309
+ }
2310
+ .patternOctoarrowOrange {
2311
+ background-image: url(/_images/backgrounds/octoarrow-orange.png);
2312
+ background-image: image-set(url(/_images/backgrounds/octoarrow-orange.png) 1x, url(/_images/backgrounds/octoarrow-orange-2x.png) 2x);
2313
+ }
2314
+ .patternSquidBlack {
2315
+ background-image: url(/_images/backgrounds/squid-black.png);
2316
+ background-image: image-set(url(/_images/backgrounds/squid-black.png) 1x, url(/_images/backgrounds/squid-black-2x.png) 2x);
2317
+ }
2318
+ .patternCirclesGreen {
2319
+ background-image: url(/_images/backgrounds/circles-green.png);
2320
+ background-image: image-set(url(/_images/backgrounds/circles-green.png) 1x, url(/_images/backgrounds/circles-green-2x.png) 2x);
2321
+ }
2322
+ .patternChipWhite {
2323
+ background-image: url(/_images/backgrounds/chip-white.png);
2324
+ background-image: image-set(url(/_images/backgrounds/chip-white.png) 1x, url(/_images/backgrounds/chip-white-2x.png) 2x);
2325
+ }
2326
+ .patternMonstersBlack {
2327
+ background-image: url(/_images/backgrounds/monsters-black.png);
2328
+ background-image: image-set(url(/_images/backgrounds/monsters-black.png) 1x, url(/_images/backgrounds/monsters-black-2x.png) 2x);
2329
+ background-size: 50%;
2330
+ }
2331
+ .patternGraffiti {
2332
+ background-image: url(/_images/backgrounds/graffiti.jpg);
2333
+ background-image: image-set(url(/_images/backgrounds/graffiti.jpg) 1x, url(/_images/backgrounds/graffiti-2x.jpg) 2x);
2334
+ background-position: 50%;
2335
+ background-repeat: no-repeat;
2336
+ background-size: cover;
2337
+ }
2338
+ @media screen and (min-width: 640px) {
2339
+ .patternGraffiti {
2340
+ background-image: url(/_images/backgrounds/graffiti-medium-up.jpg);
2341
+ background-image: image-set(url(/_images/backgrounds/graffiti-medium-up.jpg) 1x, url(/_images/backgrounds/graffiti-medium-up-2x.jpg) 2x);
2342
+ }
2343
+ }
2344
+ .patternTapesBlack {
2345
+ background-image: url(/_images/backgrounds/tapes-black.jpg);
2346
+ background-image: image-set(url(/_images/backgrounds/tapes-black.webp) type("image/webp") 1x, url(/_images/backgrounds/tapes-black.jpg) 1x, url(/_images/backgrounds/tapes-black-2x.webp) type("image/webp") 2x, url(/_images/backgrounds/tapes-black-2x.jpg) 2x);
2347
+ }
2348
+ .patternTapesGreen {
2349
+ background-image: url(/_images/backgrounds/tapes-green.jpg);
2350
+ background-image: image-set(url(/_images/backgrounds/tapes-green.webp) type("image/webp") 1x, url(/_images/backgrounds/tapes-green.jpg) 1x, url(/_images/backgrounds/tapes-green-2x.webp) type("image/webp") 2x, url(/_images/backgrounds/tapes-green-2x.jpg) 2x);
2351
+ }
2352
+ .patternTapesPattern {
2353
+ background-image: url(/_images/backgrounds/tapes-pattern.jpg);
2354
+ background-image: image-set(url(/_images/backgrounds/tapes-pattern.jpg) 1x, url(/_images/backgrounds/tapes-pattern-2x.jpg) 2x);
2355
+ }
2356
+ .patternTapesPurple {
2357
+ background-image: url(/_images/backgrounds/tapes-purple.jpg);
2358
+ background-image: image-set(url(/_images/backgrounds/tapes-purple.webp) type("image/webp") 1x, url(/_images/backgrounds/tapes-purple.jpg) 1x, url(/_images/backgrounds/tapes-purple-2x.webp) type("image/webp") 2x, url(/_images/backgrounds/tapes-purple-2x.jpg) 2x);
2359
+ }
2360
+
2361
+ /* src/components/ui/staple-card.module.css */
2362
+ .stapleCard {
2363
+ filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.14));
2364
+ height: 100%;
2365
+ }
2366
+ .card {
2367
+ display: flex;
2368
+ flex-direction: column;
2369
+ height: 100%;
2370
+ position: relative;
2371
+ transition: transform calc(var(--duration-factor) * 0.3s) var(--ease-in-out);
2372
+ }
2373
+ .card.hoverTilt:hover {
2374
+ transform: rotate(2deg);
2375
+ }
2376
+ .cardLayout {
2377
+ background-color: var(--color-white, #fff);
2378
+ color: var(--color-black, #0d0d0d);
2379
+ display: grid;
2380
+ grid-template-rows: auto 1fr;
2381
+ height: 100%;
2382
+ padding: calc(var(--base-space, 8px) * 0) calc(var(--base-space, 8px) * 4) calc(var(--base-space, 8px) * 3) calc(var(--base-space, 8px) * 4);
2383
+ position: relative;
2384
+ }
2385
+ .image {
2386
+ align-items: center;
2387
+ display: flex;
2388
+ justify-content: center;
2389
+ transform: rotate(-1deg);
2390
+ width: 100%;
2391
+ }
2392
+ .image img {
2393
+ object-fit: contain;
2394
+ }
2395
+ .stapleLeft {
2396
+ bottom: 0;
2397
+ left: 20px;
2398
+ position: absolute;
2399
+ width: 20%;
2400
+ }
2401
+ .stapleRight {
2402
+ bottom: 0;
2403
+ position: absolute;
2404
+ right: 20px;
2405
+ width: 10%;
2406
+ }
2407
+ .tape {
2408
+ display: block;
2409
+ }
2410
+ .tapeImage {
2411
+ display: block;
2412
+ height: auto;
2413
+ width: 100%;
2414
+ }
2415
+ .imgDesktop {
2416
+ display: none;
2417
+ }
2418
+ @container (min-width: 400px) {
2419
+ .imgMobile {
2420
+ display: none;
2421
+ }
2422
+ .imgDesktop {
2423
+ display: block;
2424
+ }
2425
+ }
2426
+ .cardBottom {
2427
+ margin-top: -2px;
2428
+ width: 100%;
2429
+ }
2430
+ .cardTop {
2431
+ margin-bottom: -2px;
2432
+ width: 100%;
2433
+ }
2434
+ .info {
2435
+ align-items: center;
2436
+ display: flex;
2437
+ flex-direction: column;
2438
+ height: 100%;
2439
+ justify-content: flex-start;
2440
+ padding: calc(var(--base-space, 8px) * 2) 0;
2441
+ }
2442
+ .surfaceDark .cardLayout {
2443
+ background-color: var(--color-black-alt, #0e0e0e);
2444
+ color: var(--color-white, #fff);
2445
+ }
2446
+ .title {
2447
+ font-size: 1.25rem;
2448
+ font-weight: 700;
2449
+ line-height: 2;
2450
+ }
2451
+ .subtitle {
2452
+ margin-top: calc(var(--base-space, 8px) * 1);
2453
+ font-size: 0.875rem;
2454
+ opacity: 0.75;
2455
+ }
2456
+
2457
+ /* src/components/ui/tape-divider.module.css */
2458
+ .tapeDivider {
2459
+ position: relative;
2460
+ width: 100%;
2461
+ z-index: 2;
2462
+ pointer-events: none;
2463
+ line-height: 0;
2464
+ }
2465
+ .tapePrimary {
2466
+ background-image: url(/_images/tape-assets/tape-2.png);
2467
+ background-image: image-set(url(/_images/tape-assets/tape-2.png) 1x, url(/_images/tape-assets/tape-2-2x.png) 2x);
2468
+ background-position: center;
2469
+ background-repeat: repeat-x;
2470
+ background-size: auto 100%;
2471
+ height: 36px;
2472
+ width: 100%;
2473
+ }
2474
+ .tapeSecondary {
2475
+ background-image: url(/_images/tape-assets/tape-3.png);
2476
+ background-image: image-set(url(/_images/tape-assets/tape-3.png) 1x, url(/_images/tape-assets/tape-3-2x.png) 2x);
2477
+ background-position: center;
2478
+ background-repeat: repeat-x;
2479
+ background-size: auto 100%;
2480
+ height: 38px;
2481
+ width: 100%;
2482
+ }
2483
+ .primaryOnly .tapePrimary {
2484
+ height: 36px;
2485
+ }
2486
+ .double .tapePrimary {
2487
+ position: relative;
2488
+ z-index: 1;
2489
+ }
2490
+ .double .tapeSecondary {
2491
+ margin-top: -18px;
2492
+ position: relative;
2493
+ z-index: 0;
2494
+ }
2495
+ .rotateLeft {
2496
+ transform: rotate(-2deg);
2497
+ }
2498
+ .rotateRight {
2499
+ transform: rotate(2deg);
2500
+ }
2501
+ .rotateStrong {
2502
+ transform: rotate(-4deg);
2503
+ }
2504
+ .overlap {
2505
+ margin-top: -36px;
2506
+ padding-top: 36px;
2507
+ }
2508
+ @media screen and (min-width: 640px) {
2509
+ .tapePrimary {
2510
+ height: 48px;
2511
+ }
2512
+ .tapeSecondary {
2513
+ height: 50px;
2514
+ }
2515
+ .double .tapeSecondary {
2516
+ margin-top: -24px;
2517
+ }
2518
+ .overlap {
2519
+ margin-top: -48px;
2520
+ padding-top: 48px;
2521
+ }
2522
+ }
2523
+ @media screen and (min-width: 1024px) {
2524
+ .tapePrimary {
2525
+ height: 60px;
2526
+ }
2527
+ .tapeSecondary {
2528
+ height: 62px;
2529
+ }
2530
+ .double .tapeSecondary {
2531
+ margin-top: -30px;
2532
+ }
2533
+ .overlap {
2534
+ margin-top: -60px;
2535
+ padding-top: 60px;
2536
+ }
2537
+ }
2538
+
2539
+ /* src/components/ui/tape-title.module.css */
2540
+ .container {
2541
+ --tape-title-left-bleed: 61px;
2542
+ --tape-title-right-bleed: 59px;
2543
+ --tape-color: var(--color-true-black, #000);
2544
+ background: var(--color-black, #0d0d0d);
2545
+ color: var(--color-white, #fff);
2546
+ display: inline-block;
2547
+ margin-inline: var(--tape-title-left-bleed) var(--tape-title-right-bleed);
2548
+ position: relative;
2549
+ transform: rotate(-4deg);
2550
+ z-index: 2;
2551
+ }
2552
+ .container::before {
2553
+ background-color: var(--tape-color);
2554
+ mask-image: url(/_images/svg/left-tape.svg);
2555
+ mask-position: 100% center;
2556
+ mask-repeat: no-repeat;
2557
+ mask-size: contain;
2558
+ content: " ";
2559
+ height: 100%;
2560
+ left: -61px;
2561
+ position: absolute;
2562
+ width: 62px;
2563
+ }
2564
+ .container::after {
2565
+ background-color: var(--tape-color);
2566
+ mask-image: url(/_images/svg/right-tape.svg);
2567
+ mask-position: 0 center;
2568
+ mask-repeat: no-repeat;
2569
+ mask-size: contain;
2570
+ content: " ";
2571
+ height: 100%;
2572
+ position: absolute;
2573
+ right: -58px;
2574
+ top: 0;
2575
+ width: 59px;
2576
+ }
2577
+ .red {
2578
+ --tape-color: var(--color-red, #ff505e);
2579
+ background: var(--color-red, #ff505e);
2580
+ color: var(--color-black, #0d0d0d);
2581
+ }
2582
+ .yellow {
2583
+ --tape-color: var(--color-yellow, #eaff3d);
2584
+ background: var(--color-yellow, #eaff3d);
2585
+ color: var(--color-black, #0d0d0d);
2586
+ }
2587
+ .title {
2588
+ font-family: var(--font-alt);
2589
+ font-weight: 600;
2590
+ font-size: 1.5rem;
2591
+ line-height: 1;
2592
+ padding: 8px 16px 16px;
2593
+ text-transform: none;
2594
+ white-space: nowrap;
2595
+ }
2596
+ @media screen and (min-width: 1024px) {
2597
+ .title {
2598
+ font-size: 2.3125rem;
2599
+ padding: 16px 40px 24px;
2600
+ }
2601
+ }
2602
+
2603
+ /* src/components/ui/wave-button.module.css */
2604
+ .morph {
2605
+ animation: morph calc(var(--duration-factor, 1) * 3s) linear infinite;
2606
+ border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
2607
+ transform: translateZ(0);
2608
+ }
2609
+ @keyframes morph {
2610
+ 0%, 100% {
2611
+ border-radius: 40% 60% 70% 30% / 40% 40% 60% 50%;
2612
+ }
2613
+ 34% {
2614
+ border-radius: 70% 30% 50% 50% / 30% 30% 70% 70%;
2615
+ }
2616
+ 67% {
2617
+ border-radius: 100% 60% 60% 100% / 100% 100% 60% 60%;
2618
+ }
2619
+ }
2620
+ .iconWrap {
2621
+ background-color: var(--color-yellow, #eaff3d);
2622
+ display: grid;
2623
+ flex-shrink: 0;
2624
+ height: 48px;
2625
+ place-content: center;
2626
+ width: 48px;
2627
+ }
2628
+ .icon {
2629
+ --line-w: 19px;
2630
+ --line-h: 4px;
2631
+ --line-y: calc(var(--line-h) * -1.5);
2632
+ background-color: var(--color-blue, #603bff);
2633
+ display: block;
2634
+ height: var(--line-h);
2635
+ position: relative;
2636
+ width: var(--line-w);
2637
+ transition: background-color 0.1s linear;
2638
+ }
2639
+ .icon::before,
2640
+ .icon::after {
2641
+ --line-rotation: 0deg;
2642
+ background-color: var(--color-blue, #603bff);
2643
+ content: "";
2644
+ height: 100%;
2645
+ left: 0;
2646
+ position: absolute;
2647
+ top: 0;
2648
+ transform: translateY(var(--line-y)) rotate(var(--line-rotation));
2649
+ transition: transform 0.25s cubic-bezier(0.21, 0.12, 0.35, 1.43), background-color 0.1s linear;
2650
+ width: 100%;
2651
+ }
2652
+ .icon::after {
2653
+ --line-y: calc(var(--line-h) * 1.5);
2654
+ }
2655
+ .pressed .icon {
2656
+ background-color: transparent;
2657
+ }
2658
+ .pressed .icon::before {
2659
+ --line-y: 0px;
2660
+ --line-rotation: 45deg;
2661
+ }
2662
+ .pressed .icon::after {
2663
+ --line-y: 0px;
2664
+ --line-rotation: -45deg;
2665
+ }
2666
+ .yellow {
2667
+ background-color: var(--color-yellow, #eaff3d);
2668
+ }
2669
+ .white {
2670
+ background-color: var(--color-white);
2671
+ }
2672
+ .ghost {
2673
+ background-color: transparent;
2674
+ }
2675
+ .md {
2676
+ height: 48px;
2677
+ width: 48px;
2678
+ }
2679
+ .lg {
2680
+ height: 64px;
2681
+ width: 64px;
2682
+ }
2683
+
2684
+ /* src/components/ui/in-view.module.css */
2685
+ .anim {
2686
+ opacity: var(--start-alpha, 0);
2687
+ transform: translate(var(--start-x, 0), var(--start-y, 0)) scale(var(--start-scale, 1)) rotate(var(--start-rotate, 0deg));
2688
+ transition-delay: 0s;
2689
+ transition-duration: calc(var(--duration-hide, 0.4s) * var(--duration-factor, 1));
2690
+ transition-property: transform, opacity;
2691
+ transition-timing-function: var(--easing-fn-hide, ease);
2692
+ }
2693
+ .inView .anim {
2694
+ opacity: var(--end-alpha, 1);
2695
+ transform: translate(var(--end-x, 0), var(--end-y, 0)) scale(var(--end-scale, 1)) rotate(var(--end-rotate, 0deg));
2696
+ transition-delay: var(--in-view-delay, 0s);
2697
+ transition-duration: calc(var(--duration-show, 0.4s) * var(--duration-factor, 1));
2698
+ transition-timing-function: var(--easing-fn-show, ease);
2699
+ }
2700
+ .left {
2701
+ --start-x: 50%;
2702
+ --start-y: 0;
2703
+ --start-scale: 1;
2704
+ --easing-fn-show: var(--ease-out, cubic-bezier(0.35, 0.91, 0.3, 0.99));
2705
+ }
2706
+ .right {
2707
+ --start-x: -50%;
2708
+ --start-y: 0;
2709
+ --start-scale: 1;
2710
+ --easing-fn-show: var(--ease-out, cubic-bezier(0.35, 0.91, 0.3, 0.99));
2711
+ }
2712
+ .up {
2713
+ --start-x: 0;
2714
+ --start-y: 50%;
2715
+ --start-scale: 1;
2716
+ --easing-fn-show: var(--ease-out, cubic-bezier(0.35, 0.91, 0.3, 0.99));
2717
+ }
2718
+ .upMin {
2719
+ --start-x: 0;
2720
+ --start-y: 30px;
2721
+ --start-scale: 1;
2722
+ --easing-fn-show: var(--ease-out, cubic-bezier(0.35, 0.91, 0.3, 0.99));
2723
+ }
2724
+ .down {
2725
+ --start-x: 0;
2726
+ --start-y: -50%;
2727
+ --start-scale: 1;
2728
+ --easing-fn-show: var(--ease-out, cubic-bezier(0.35, 0.91, 0.3, 0.99));
2729
+ }
2730
+ .pop {
2731
+ --start-x: 0;
2732
+ --start-y: 0;
2733
+ --start-scale: 0.5;
2734
+ --easing-fn-show: var(--ease-back-out, cubic-bezier(0.21, 0.12, 0.35, 1.43));
2735
+ --easing-fn-hide: var(--ease-back-in, cubic-bezier(0.38, -0.37, 0.83, 0.23));
2736
+ }
2737
+ .drop {
2738
+ --start-scale: 1.1;
2739
+ --easing-fn-show: var(--ease-out, cubic-bezier(0.35, 0.91, 0.3, 0.99));
2740
+ }
2741
+ .dropSlow {
2742
+ --start-scale: 1.1;
2743
+ --duration-show: 0.6s;
2744
+ --easing-fn-show: var(--ease-out, cubic-bezier(0.35, 0.91, 0.3, 0.99));
2745
+ }
2746
+ .delay1 {
2747
+ --in-view-delay: calc(0.1 * 1s * var(--duration-factor, 1));
2748
+ }
2749
+ .delay2 {
2750
+ --in-view-delay: calc(0.2 * 1s * var(--duration-factor, 1));
2751
+ }
2752
+ .delay3 {
2753
+ --in-view-delay: calc(0.3 * 1s * var(--duration-factor, 1));
2754
+ }
2755
+ .delay4 {
2756
+ --in-view-delay: calc(0.4 * 1s * var(--duration-factor, 1));
2757
+ }
2758
+ .delay5 {
2759
+ --in-view-delay: calc(0.5 * 1s * var(--duration-factor, 1));
2760
+ }
2761
+ .delay6 {
2762
+ --in-view-delay: calc(0.6 * 1s * var(--duration-factor, 1));
2763
+ }
2764
+ .delay7 {
2765
+ --in-view-delay: calc(0.7 * 1s * var(--duration-factor, 1));
2766
+ }
2767
+ .delay8 {
2768
+ --in-view-delay: calc(0.8 * 1s * var(--duration-factor, 1));
2769
+ }
2770
+ .delay9 {
2771
+ --in-view-delay: calc(0.9 * 1s * var(--duration-factor, 1));
2772
+ }
2773
+ .delay10 {
2774
+ --in-view-delay: calc(1 * 1s * var(--duration-factor, 1));
2775
+ }
2776
+ .delay11 {
2777
+ --in-view-delay: calc(1.1 * 1s * var(--duration-factor, 1));
2778
+ }
2779
+ .delay12 {
2780
+ --in-view-delay: calc(1.2 * 1s * var(--duration-factor, 1));
2781
+ }
2782
+ .delay13 {
2783
+ --in-view-delay: calc(1.3 * 1s * var(--duration-factor, 1));
2784
+ }
2785
+ .delay14 {
2786
+ --in-view-delay: calc(1.4 * 1s * var(--duration-factor, 1));
2787
+ }
2788
+ .delay15 {
2789
+ --in-view-delay: calc(1.5 * 1s * var(--duration-factor, 1));
2790
+ }
2791
+ .delay16 {
2792
+ --in-view-delay: calc(1.6 * 1s * var(--duration-factor, 1));
2793
+ }
2794
+ .delay17 {
2795
+ --in-view-delay: calc(1.7 * 1s * var(--duration-factor, 1));
2796
+ }
2797
+ .delay18 {
2798
+ --in-view-delay: calc(1.8 * 1s * var(--duration-factor, 1));
2799
+ }
2800
+ .delay19 {
2801
+ --in-view-delay: calc(1.9 * 1s * var(--duration-factor, 1));
2802
+ }
2803
+ .delay20 {
2804
+ --in-view-delay: calc(2 * 1s * var(--duration-factor, 1));
2805
+ }
2806
+ .stagger {
2807
+ --in-view-stagger-delay: var(--in-view-delay, 0s);
2808
+ }
2809
+ .stagger > * {
2810
+ opacity: var(--start-alpha, 0);
2811
+ transform: translate(var(--start-x, 0), var(--start-y, 0)) scale(var(--start-scale, 1)) rotate(var(--start-rotate, 0deg));
2812
+ transition-delay: 0s;
2813
+ transition-duration: calc(var(--duration-hide, 0.4s) * var(--duration-factor, 1));
2814
+ transition-property: transform, opacity;
2815
+ transition-timing-function: var(--easing-fn-hide, ease);
2816
+ }
2817
+ .inView.stagger > * {
2818
+ opacity: var(--end-alpha, 1);
2819
+ transform: translate(var(--end-x, 0), var(--end-y, 0)) scale(var(--end-scale, 1)) rotate(var(--end-rotate, 0deg));
2820
+ transition-delay: var(--in-view-delay, 0s);
2821
+ transition-duration: calc(var(--duration-show, 0.4s) * var(--duration-factor, 1));
2822
+ transition-timing-function: var(--easing-fn-show, ease);
2823
+ }
2824
+ .inView .stagger > * {
2825
+ opacity: var(--end-alpha, 1);
2826
+ transform: translate(var(--end-x, 0), var(--end-y, 0)) scale(var(--end-scale, 1)) rotate(var(--end-rotate, 0deg));
2827
+ transition-delay: var(--in-view-delay, 0s);
2828
+ transition-duration: calc(var(--duration-show, 0.4s) * var(--duration-factor, 1));
2829
+ transition-timing-function: var(--easing-fn-show, ease);
2830
+ }
2831
+ .inView.stagger > :first-child {
2832
+ --in-view-delay: calc( (0 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2833
+ }
2834
+ .inView.stagger > :nth-child(2) {
2835
+ --in-view-delay: calc( (1 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2836
+ }
2837
+ .inView.stagger > :nth-child(3) {
2838
+ --in-view-delay: calc( (2 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2839
+ }
2840
+ .inView.stagger > :nth-child(4) {
2841
+ --in-view-delay: calc( (3 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2842
+ }
2843
+ .inView.stagger > :nth-child(5) {
2844
+ --in-view-delay: calc( (4 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2845
+ }
2846
+ .inView.stagger > :nth-child(6) {
2847
+ --in-view-delay: calc( (5 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2848
+ }
2849
+ .inView.stagger > :nth-child(7) {
2850
+ --in-view-delay: calc( (6 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2851
+ }
2852
+ .inView.stagger > :nth-child(8) {
2853
+ --in-view-delay: calc( (7 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2854
+ }
2855
+ .inView.stagger > :nth-child(9) {
2856
+ --in-view-delay: calc( (8 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2857
+ }
2858
+ .inView.stagger > :nth-child(10) {
2859
+ --in-view-delay: calc( (9 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2860
+ }
2861
+ .inView .stagger > :first-child {
2862
+ --in-view-delay: calc( (0 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2863
+ }
2864
+ .inView .stagger > :nth-child(2) {
2865
+ --in-view-delay: calc( (1 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2866
+ }
2867
+ .inView .stagger > :nth-child(3) {
2868
+ --in-view-delay: calc( (2 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2869
+ }
2870
+ .inView .stagger > :nth-child(4) {
2871
+ --in-view-delay: calc( (3 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2872
+ }
2873
+ .inView .stagger > :nth-child(5) {
2874
+ --in-view-delay: calc( (4 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2875
+ }
2876
+ .inView .stagger > :nth-child(6) {
2877
+ --in-view-delay: calc( (5 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2878
+ }
2879
+ .inView .stagger > :nth-child(7) {
2880
+ --in-view-delay: calc( (6 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2881
+ }
2882
+ .inView .stagger > :nth-child(8) {
2883
+ --in-view-delay: calc( (7 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2884
+ }
2885
+ .inView .stagger > :nth-child(9) {
2886
+ --in-view-delay: calc( (8 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2887
+ }
2888
+ .inView .stagger > :nth-child(10) {
2889
+ --in-view-delay: calc( (9 * var(--in-view-stagger-amount, 0.2s) + var(--in-view-stagger-delay, 0s)) * var(--duration-factor, 1) );
2890
+ }
2891
+ .staggerUpMin {
2892
+ --start-x: 0;
2893
+ --start-y: 30px;
2894
+ --start-scale: 1;
2895
+ }
2896
+ .staggerPop {
2897
+ --start-x: 0;
2898
+ --start-y: 0;
2899
+ --start-scale: 0.5;
2900
+ --easing-fn-show: var(--ease-back-out, cubic-bezier(0.21, 0.12, 0.35, 1.43));
2901
+ --easing-fn-hide: var(--ease-back-in, cubic-bezier(0.38, -0.37, 0.83, 0.23));
2902
+ }
2903
+ @media (prefers-reduced-motion: reduce) {
2904
+ .anim,
2905
+ .stagger > * {
2906
+ opacity: 1;
2907
+ }
2908
+ }
2909
+ :global(.is-reduced-motion) .anim,
2910
+ :global(.is-reduced-motion) .stagger > * {
2911
+ opacity: 1;
2912
+ }
2913
+
2914
+ /* src/components/ui/banner-divider.module.css */
2915
+ .bannerDividerGroup {
2916
+ --banner-divider-height: 47px;
2917
+ --banner-divider-stack-offset: var(--banner-divider-max-offset, 0px);
2918
+ --banner-divider-viewport-height: calc( var(--banner-divider-height) + var(--banner-divider-stack-offset) );
2919
+ block-size: 0;
2920
+ isolation: isolate;
2921
+ pointer-events: none;
2922
+ position: relative;
2923
+ z-index: 2;
2924
+ }
2925
+ .bannerDividerGroupSpacer {
2926
+ block-size: var(--banner-divider-height);
2927
+ }
2928
+ .bannerDividerViewport {
2929
+ block-size: var(--banner-divider-viewport-height);
2930
+ inset-inline: 0;
2931
+ overflow-x: clip;
2932
+ overflow-y: visible;
2933
+ pointer-events: none;
2934
+ position: absolute;
2935
+ top: var(--banner-divider-anchor-y, calc(var(--banner-divider-height) * -0.5));
2936
+ z-index: 0;
2937
+ }
2938
+ @media screen and (min-width: 640px) {
2939
+ .bannerDividerGroup {
2940
+ --banner-divider-height: 65px;
2941
+ --banner-divider-stack-offset: var( --banner-divider-max-offset-medium, var(--banner-divider-max-offset, 0px) );
2942
+ }
2943
+ }
2944
+ @media screen and (min-width: 1024px) {
2945
+ .bannerDividerGroup {
2946
+ --banner-divider-height: 90px;
2947
+ }
2948
+ }
2949
+ @media screen and (min-width: 1440px) {
2950
+ .bannerDividerGroup {
2951
+ --banner-divider-height: 110px;
2952
+ }
2953
+ }
2954
+ .bannerDividerTape {
2955
+ background-position: 50%;
2956
+ background-repeat: repeat-x;
2957
+ background-size: auto 100%;
2958
+ height: 47px;
2959
+ left: 50%;
2960
+ position: absolute;
2961
+ width: 110vw;
2962
+ z-index: 0;
2963
+ }
2964
+ @media screen and (min-width: 640px) {
2965
+ .bannerDividerTape {
2966
+ height: 65px;
2967
+ top: var(--banner-offset-medium, 0);
2968
+ }
2969
+ }
2970
+ @media screen and (min-width: 1024px) {
2971
+ .bannerDividerTape {
2972
+ height: 90px;
2973
+ }
2974
+ }
2975
+ @media screen and (min-width: 1440px) {
2976
+ .bannerDividerTape {
2977
+ height: 110px;
2978
+ }
2979
+ }
2980
+ .bannerDivider {
2981
+ background-position: 50%;
2982
+ background-repeat: repeat-x;
2983
+ background-size: auto 100%;
2984
+ height: 47px;
2985
+ left: -5vw;
2986
+ position: absolute;
2987
+ width: 110vw;
2988
+ z-index: 2;
2989
+ }
2990
+ @media screen and (min-width: 640px) {
2991
+ .bannerDivider {
2992
+ height: 65px;
2993
+ top: var(--banner-offset-medium, 0);
2994
+ }
2995
+ }
2996
+ @media screen and (min-width: 1024px) {
2997
+ .bannerDivider {
2998
+ height: 90px;
2999
+ }
3000
+ }
3001
+ @media screen and (min-width: 1440px) {
3002
+ .bannerDivider {
3003
+ height: 110px;
3004
+ }
3005
+ }
3006
+ .rotateUp {
3007
+ transform: rotate(1deg);
3008
+ transform-origin: 90% 50%;
3009
+ }
3010
+ .rotateDown {
3011
+ transform: rotate(-1deg);
3012
+ transform-origin: 90% 50%;
3013
+ }
3014
+ .banner-divider--design1 {
3015
+ background-image: url(/_images/banners/banner-design1.png);
3016
+ background-image: image-set(url(/_images/banners/banner-design1.png) 1x, url(/_images/banners/banner-design1-2x.png) 2x);
3017
+ }
3018
+ @media screen and (min-width: 640px) {
3019
+ .banner-divider--design1 {
3020
+ background-image: url(/_images/banners/banner-design1-medium-up.png);
3021
+ background-image: image-set(url(/_images/banners/banner-design1-medium-up.png) 1x, url(/_images/banners/banner-design1-medium-up-2x.png) 2x);
3022
+ }
3023
+ }
3024
+ .banner-divider--design2 {
3025
+ background-image: url(/_images/banners/banner-design2.png);
3026
+ background-image: image-set(url(/_images/banners/banner-design2.png) 1x, url(/_images/banners/banner-design2-2x.png) 2x);
3027
+ }
3028
+ @media screen and (min-width: 640px) {
3029
+ .banner-divider--design2 {
3030
+ background-image: url(/_images/banners/banner-design2-medium-up.png);
3031
+ background-image: image-set(url(/_images/banners/banner-design2-medium-up.png) 1x, url(/_images/banners/banner-design2-medium-up-2x.png) 2x);
3032
+ }
3033
+ }
3034
+ .banner-divider--design3 {
3035
+ background-image: url(/_images/banners/banner-design3.png);
3036
+ background-image: image-set(url(/_images/banners/banner-design3.png) 1x, url(/_images/banners/banner-design3-2x.png) 2x);
3037
+ }
3038
+ @media screen and (min-width: 640px) {
3039
+ .banner-divider--design3 {
3040
+ background-image: url(/_images/banners/banner-design3-medium-up.png);
3041
+ background-image: image-set(url(/_images/banners/banner-design3-medium-up.png) 1x, url(/_images/banners/banner-design3-medium-up-2x.png) 2x);
3042
+ }
3043
+ }
3044
+ .banner-divider--yellow {
3045
+ background-image: url(/_images/banners/banner-yellow.png);
3046
+ background-image: image-set(url(/_images/banners/banner-yellow.png) 1x, url(/_images/banners/banner-yellow-2x.png) 2x);
3047
+ }
3048
+ @media screen and (min-width: 640px) {
3049
+ .banner-divider--yellow {
3050
+ background-image: url(/_images/banners/banner-yellow-medium-up.png);
3051
+ background-image: image-set(url(/_images/banners/banner-yellow-medium-up.png) 1x, url(/_images/banners/banner-yellow-medium-up-2x.png) 2x);
3052
+ }
3053
+ }
3054
+ .banner-divider--blue {
3055
+ background-image: url(/_images/banners/banner-blue.png);
3056
+ background-image: image-set(url(/_images/banners/banner-blue.png) 1x, url(/_images/banners/banner-blue-2x.png) 2x);
3057
+ }
3058
+ @media screen and (min-width: 640px) {
3059
+ .banner-divider--blue {
3060
+ background-image: url(/_images/banners/banner-blue-medium-up.png);
3061
+ background-image: image-set(url(/_images/banners/banner-blue-medium-up.png) 1x, url(/_images/banners/banner-blue-medium-up-2x.png) 2x);
3062
+ }
3063
+ }
3064
+ .banner-divider--green {
3065
+ background-image: url(/_images/banners/banner-green.png);
3066
+ background-image: image-set(url(/_images/banners/banner-green.png) 1x, url(/_images/banners/banner-green-2x.png) 2x);
3067
+ }
3068
+ @media screen and (min-width: 640px) {
3069
+ .banner-divider--green {
3070
+ background-image: url(/_images/banners/banner-green-medium-up.png);
3071
+ background-image: image-set(url(/_images/banners/banner-green-medium-up.png) 1x, url(/_images/banners/banner-green-medium-up-2x.png) 2x);
3072
+ }
3073
+ }
3074
+ .banner-divider--purple {
3075
+ background-image: url(/_images/banners/banner-purple.png);
3076
+ background-image: image-set(url(/_images/banners/banner-purple.png) 1x, url(/_images/banners/banner-purple-2x.png) 2x);
3077
+ }
3078
+ @media screen and (min-width: 640px) {
3079
+ .banner-divider--purple {
3080
+ background-image: url(/_images/banners/banner-purple-medium-up.png);
3081
+ background-image: image-set(url(/_images/banners/banner-purple-medium-up.png) 1x, url(/_images/banners/banner-purple-medium-up-2x.png) 2x);
3082
+ }
3083
+ }
3084
+ .banner-divider--orange {
3085
+ background-image: url(/_images/banners/banner-orange.png);
3086
+ background-image: image-set(url(/_images/banners/banner-orange.png) 1x, url(/_images/banners/banner-orange-2x.png) 2x);
3087
+ }
3088
+ @media screen and (min-width: 640px) {
3089
+ .banner-divider--orange {
3090
+ background-image: url(/_images/banners/banner-orange-medium-up.png);
3091
+ background-image: image-set(url(/_images/banners/banner-orange-medium-up.png) 1x, url(/_images/banners/banner-orange-medium-up-2x.png) 2x);
3092
+ }
3093
+ }
3094
+ .banner-divider--red {
3095
+ background-image: url(/_images/banners/banner-red.png);
3096
+ background-image: image-set(url(/_images/banners/banner-red.png) 1x, url(/_images/banners/banner-red-2x.png) 2x);
3097
+ }
3098
+ @media screen and (min-width: 640px) {
3099
+ .banner-divider--red {
3100
+ background-image: url(/_images/banners/banner-red-medium-up.png);
3101
+ background-image: image-set(url(/_images/banners/banner-red-medium-up.png) 1x, url(/_images/banners/banner-red-medium-up-2x.png) 2x);
3102
+ }
3103
+ }
3104
+
3105
+ /* src/components/ui/button.module.css */
3106
+ .dripRoot[data-drip-state=entering] .dripHoverContent,
3107
+ .dripRoot[data-drip-state=entered] .dripHoverContent,
3108
+ .dripRoot[data-drip-state=leaving] .dripHoverContent {
3109
+ opacity: 1;
3110
+ }
3111
+ .dripHoverContent {
3112
+ animation: splat-drip-leave calc(1.8s * var(--drip-speed-factor)) ease forwards;
3113
+ animation-fill-mode: forwards;
3114
+ background-color: var(--hover-bg-color);
3115
+ clip-path: var(--drip-out-start);
3116
+ opacity: 0;
3117
+ overflow: hidden;
3118
+ pointer-events: none;
3119
+ }
3120
+ .dripFill {
3121
+ display: none;
3122
+ }
3123
+ .dripFrame {
3124
+ border-radius: inherit;
3125
+ box-shadow: inset 0 0 0 2px var(--hover-text-color);
3126
+ inset: 0;
3127
+ position: absolute;
3128
+ }
3129
+ .dripRoot[data-drip-state=entering] .dripHoverContent {
3130
+ animation: splat-drip-enter calc(1.8s * var(--drip-speed-factor)) ease forwards;
3131
+ }
3132
+ .dripRoot[data-drip-state=entered] .dripHoverContent {
3133
+ animation: none;
3134
+ clip-path: var(--drip-in-end);
3135
+ }
3136
+ .dripRoot[data-drip-state=leaving] .dripHoverContent {
3137
+ animation: splat-drip-leave calc(1.8s * var(--drip-speed-factor)) ease forwards;
3138
+ }
3139
+ @keyframes splat-drip-enter {
3140
+ 0% {
3141
+ clip-path: var(--drip-in-start);
3142
+ }
3143
+ 100% {
3144
+ clip-path: var(--drip-in-end);
3145
+ }
3146
+ }
3147
+ @keyframes splat-drip-leave {
3148
+ 0% {
3149
+ clip-path: var(--drip-out-start);
3150
+ }
3151
+ 100% {
3152
+ clip-path: var(--drip-out-end);
3153
+ }
3154
+ }
3155
+
3156
+ /* src/components/ui/carousel-pagination.module.css */
3157
+ .pagination {
3158
+ --gap: 10px;
3159
+ display: flex;
3160
+ flex-wrap: wrap;
3161
+ justify-content: center;
3162
+ list-style: none;
3163
+ margin: 0 auto calc(var(--gap) * -1);
3164
+ padding: 0;
3165
+ width: 100%;
3166
+ z-index: 10;
3167
+ }
3168
+ .item {
3169
+ display: inline-block;
3170
+ }
3171
+ .item:not(:last-child) {
3172
+ margin-right: var(--gap);
3173
+ }
3174
+ .item button {
3175
+ background: none;
3176
+ border: none;
3177
+ cursor: pointer;
3178
+ display: block;
3179
+ min-height: 44px;
3180
+ min-width: 44px;
3181
+ padding: 7px;
3182
+ }
3183
+ .item:focus-visible .paginationIcon,
3184
+ .item:hover .paginationIcon {
3185
+ transform: translateY(-5px);
3186
+ }
3187
+ .iconContainer {
3188
+ display: block;
3189
+ position: relative;
3190
+ }
3191
+ .paginationIcon {
3192
+ display: block;
3193
+ height: 28px;
3194
+ width: 30px;
3195
+ background: var(--chaos-black, #0d0d0d);
3196
+ mask-image: url(/_images/svg/icon-pagination.svg);
3197
+ mask-size: contain;
3198
+ mask-repeat: no-repeat;
3199
+ -webkit-mask-image: url(/_images/svg/icon-pagination.svg);
3200
+ -webkit-mask-size: contain;
3201
+ -webkit-mask-repeat: no-repeat;
3202
+ opacity: 0.3;
3203
+ transition: transform 0.2s ease;
3204
+ }
3205
+ .paginationActive {
3206
+ background: var(--color-primary, #6af7ce);
3207
+ opacity: 1;
3208
+ }
3209
+ .imagePaginationButton {
3210
+ --scale: 0;
3211
+ position: relative;
3212
+ }
3213
+ .imagePaginationButton::before {
3214
+ background-image: url(/_images/svg/pagination-splat.svg);
3215
+ background-repeat: no-repeat;
3216
+ content: "";
3217
+ height: 78px;
3218
+ left: 0;
3219
+ pointer-events: none;
3220
+ position: absolute;
3221
+ top: 0;
3222
+ transform: translate(-35%, -35%) rotate(var(--rotate, 0deg)) scale(var(--scale));
3223
+ transition: transform calc(var(--duration-factor, 1) * 0.1s) var(--ease-in, ease-in);
3224
+ width: 74px;
3225
+ z-index: 1;
3226
+ }
3227
+ .imagePaginationButton:not(.imagePaginationActive):focus-visible .imagePaginationImage,
3228
+ .imagePaginationButton:not(.imagePaginationActive):hover .imagePaginationImage {
3229
+ background-color: var(--color-green);
3230
+ border-color: var(--color-green);
3231
+ }
3232
+ .imagePaginationActive {
3233
+ --scale: 1;
3234
+ }
3235
+ .imagePaginationActive .imagePaginationImage {
3236
+ border-color: var(--color-accent);
3237
+ }
3238
+ .imagePaginationImage {
3239
+ --size: 56px;
3240
+ background-clip: padding-box;
3241
+ background-color: var(--color-green);
3242
+ border: 4px solid transparent;
3243
+ border-radius: 50%;
3244
+ display: flex;
3245
+ height: var(--size);
3246
+ overflow: hidden;
3247
+ position: relative;
3248
+ width: var(--size);
3249
+ z-index: 2;
3250
+ }
3251
+ @media screen and (min-width: 640px) {
3252
+ .imagePaginationImage {
3253
+ --size: 72px;
3254
+ }
3255
+ }
3256
+ @media screen and (min-width: 1024px) {
3257
+ .imagePaginationImage {
3258
+ --size: 90px;
3259
+ }
3260
+ }
3261
+ .imagePaginationImage img {
3262
+ display: block;
3263
+ width: 100%;
3264
+ height: 100%;
3265
+ object-fit: cover;
3266
+ opacity: 1;
3267
+ transition: opacity 0.2s ease;
3268
+ }
3269
+ .imagePaginationActive .imagePaginationImage img {
3270
+ opacity: 1;
3271
+ }
3272
+
3273
+ /* src/components/ui/icon-button.module.css */
3274
+ .shell {
3275
+ --size: 60px;
3276
+ --icon-size: calc(var(--size) * 0.5);
3277
+ --scale: 1;
3278
+ display: inline-flex;
3279
+ align-items: center;
3280
+ justify-content: center;
3281
+ border-radius: var(--size);
3282
+ border: none;
3283
+ outline: none;
3284
+ cursor: pointer;
3285
+ flex-shrink: 0;
3286
+ overflow: hidden;
3287
+ width: var(--size);
3288
+ height: var(--size);
3289
+ background-color: var(--color-primary, #6af7ce);
3290
+ color: var(--color-primary-alt, #0d0d0d);
3291
+ -webkit-tap-highlight-color: transparent;
3292
+ text-decoration: none;
3293
+ line-height: 1;
3294
+ }
3295
+ .shell:focus-visible {
3296
+ outline: 2px solid currentColor;
3297
+ outline-offset: 2px;
3298
+ }
3299
+ .shell:disabled,
3300
+ .shell[aria-disabled=true] {
3301
+ visibility: hidden;
3302
+ pointer-events: none;
3303
+ }
3304
+ .sm {
3305
+ --size: 40px;
3306
+ }
3307
+ .md {
3308
+ --size: 48px;
3309
+ }
3310
+ .lg {
3311
+ --size: 60px;
3312
+ }
3313
+ .shell[data-size=sm] {
3314
+ --size: 40px;
3315
+ }
3316
+ .shell[data-size=md] {
3317
+ --size: 48px;
3318
+ }
3319
+ .shell[data-size=lg] {
3320
+ --size: 60px;
3321
+ }
3322
+ .icon {
3323
+ display: block;
3324
+ fill: currentcolor;
3325
+ margin: auto;
3326
+ position: relative;
3327
+ width: var(--icon-size);
3328
+ height: var(--icon-size);
3329
+ }
3330
+ .carousel {
3331
+ --size: 50px;
3332
+ background-color: var(--color-green, #6af7ce);
3333
+ color: var(--color-primary-alt, #0d0d0d);
3334
+ }
3335
+ @media screen and (min-width: 640px) {
3336
+ .carousel {
3337
+ --size: 60px;
3338
+ }
3339
+ }
3340
+ @media screen and (min-width: 1024px) {
3341
+ .carousel {
3342
+ --size: 86px;
3343
+ }
3344
+ }
3345
+ .primary {
3346
+ background-color: var(--color-blue, #603bff);
3347
+ color: var(--color-white, #fff);
3348
+ }
3349
+ .ghost {
3350
+ background-color: transparent;
3351
+ color: currentColor;
3352
+ }
3353
+ .yellow {
3354
+ background-color: var(--color-yellow, #eaff3d);
3355
+ color: var(--color-black, #0d0d0d);
3356
+ }
3357
+ .outline {
3358
+ background-color: transparent;
3359
+ color: currentColor;
3360
+ border: 2px solid currentColor;
3361
+ }
3362
+ .accent {
3363
+ background-color: var(--color-accent, #eaff3d);
3364
+ color: var(--color-accent-alt, #0d0d0d);
3365
+ }
3366
+ @media (hover: hover) {
3367
+ .shell:not(:disabled):not([aria-disabled=true]):hover {
3368
+ --scale: 1.1;
3369
+ }
3370
+ }
3371
+ .squish {
3372
+ animation: squish calc(var(--duration-factor, 1) * 2s) ease-out infinite;
3373
+ }
3374
+ .squishLeft {
3375
+ --squish-direction: -1;
3376
+ }
3377
+ .squishRight {
3378
+ --squish-direction: 1;
3379
+ }
3380
+ @keyframes squish {
3381
+ 0%, 100% {
3382
+ transform: scale(calc(var(--scale) * 1));
3383
+ }
3384
+ 30% {
3385
+ transform: scaleX(calc(var(--scale) * 0.9)) scaleY(calc(var(--scale) * 1.1)) translateX(calc(15% * var(--squish-direction, 1)));
3386
+ }
3387
+ 45% {
3388
+ transform: scaleX(calc(var(--scale) * 1.05)) scaleY(calc(var(--scale) * 1)) translateX(calc(8% * var(--squish-direction, 1)));
3389
+ }
3390
+ 60% {
3391
+ transform: scaleX(calc(var(--scale) * 0.95)) scaleY(calc(var(--scale) * 1.05)) translateX(calc(8% * var(--squish-direction, 1)));
3392
+ }
3393
+ }
3394
+ .pulse {
3395
+ animation: pulse 2s ease-in-out infinite;
3396
+ }
3397
+ @keyframes pulse {
3398
+ 0%, 100% {
3399
+ transform: scale(calc(var(--scale) * 1));
3400
+ }
3401
+ 50% {
3402
+ transform: scale(calc(var(--scale) * 1.05));
3403
+ }
3404
+ }
3405
+ @media (prefers-reduced-motion: reduce) {
3406
+ .shell,
3407
+ .shell:hover,
3408
+ .shell:active {
3409
+ transition: none;
3410
+ transform: none;
3411
+ animation: none;
3412
+ }
3413
+ }
3414
+
3415
+ /* src/components/ui/card-stack-carousel.module.css */
3416
+ .shell {
3417
+ display: flex;
3418
+ align-items: center;
3419
+ justify-content: center;
3420
+ border-radius: 9999px;
3421
+ transform: translateY(-50%) scale(1);
3422
+ will-change: transform, opacity;
3423
+ box-shadow: none;
3424
+ --scale: 1;
3425
+ --squish-direction: 1;
3426
+ background-color: var(--color-green, #6af7ce);
3427
+ color: var(--color-black, #0d0d0d);
3428
+ touch-action: pan-y;
3429
+ }
3430
+ .left {
3431
+ --squish-direction: -1;
3432
+ --icon-button-size: 86px;
3433
+ --icon-button-icon-size: 40px;
3434
+ }
3435
+ .right {
3436
+ --squish-direction: 1;
3437
+ --icon-button-size: 86px;
3438
+ --icon-button-icon-size: 40px;
3439
+ }
3440
+ .shell:not(:disabled):not([aria-disabled=true]):hover {
3441
+ --scale: 1.1;
3442
+ }
3443
+ .shell:disabled {
3444
+ background-color: transparent;
3445
+ cursor: auto;
3446
+ opacity: 0.2;
3447
+ }
3448
+ .icon {
3449
+ width: 40px;
3450
+ height: 40px;
3451
+ display: block;
3452
+ }
3453
+ .intro {
3454
+ animation: icon-button_squish 2s ease-out infinite;
3455
+ }
3456
+ @-webkit-keyframes icon-button_squish {
3457
+ 0%, 100% {
3458
+ transform: translateY(-50%) scale(calc(var(--scale) * 1));
3459
+ }
3460
+ 30% {
3461
+ transform: translateY(-50%) scaleX(calc(var(--scale) * .9)) scaleY(calc(var(--scale) * 1.1)) translateX(calc(15% * var(--squish-direction)));
3462
+ }
3463
+ 45% {
3464
+ transform: translateY(-50%) scaleX(calc(var(--scale) * 1.05)) scaleY(calc(var(--scale) * 1)) translateX(calc(8% * var(--squish-direction)));
3465
+ }
3466
+ 60% {
3467
+ transform: translateY(-50%) scaleX(calc(var(--scale) * .95)) scaleY(calc(var(--scale) * 1.05)) translateX(calc(8% * var(--squish-direction)));
3468
+ }
3469
+ }
3470
+ @keyframes icon-button_squish {
3471
+ 0%, 100% {
3472
+ transform: translateY(-50%) scale(calc(var(--scale) * 1));
3473
+ }
3474
+ 30% {
3475
+ transform: translateY(-50%) scaleX(calc(var(--scale) * .9)) scaleY(calc(var(--scale) * 1.1)) translateX(calc(15% * var(--squish-direction)));
3476
+ }
3477
+ 45% {
3478
+ transform: translateY(-50%) scaleX(calc(var(--scale) * 1.05)) scaleY(calc(var(--scale) * 1)) translateX(calc(8% * var(--squish-direction)));
3479
+ }
3480
+ 60% {
3481
+ transform: translateY(-50%) scaleX(calc(var(--scale) * .95)) scaleY(calc(var(--scale) * 1.05)) translateX(calc(8% * var(--squish-direction)));
3482
+ }
3483
+ }
3484
+ @media (prefers-reduced-motion: reduce) {
3485
+ .shell,
3486
+ .shell:hover,
3487
+ .shell:active {
3488
+ transition: none;
3489
+ transform: none;
3490
+ animation: none;
3491
+ }
3492
+ }
3493
+
3494
+ /* src/components/ui/footer.module.css */
3495
+ .footer {
3496
+ background-color: var(--color-black, #0d0d0d);
3497
+ color: var(--color-white, #fff);
3498
+ position: relative;
3499
+ z-index: 1;
3500
+ }
3501
+ .inner {
3502
+ margin: 0 auto;
3503
+ max-width: 64rem;
3504
+ padding: 3rem 1.5rem 2.5rem;
3505
+ position: relative;
3506
+ z-index: 20;
3507
+ }
3508
+ @media (min-width: 768px) {
3509
+ .inner {
3510
+ padding: 4rem 2rem 3rem;
3511
+ }
3512
+ }
3513
+ .brandBlock {
3514
+ display: grid;
3515
+ gap: 0.75rem;
3516
+ justify-items: center;
3517
+ margin: 0 auto 1.75rem;
3518
+ max-width: 42rem;
3519
+ text-align: center;
3520
+ }
3521
+ .kicker {
3522
+ background: var(--color-yellow, #eaff3d);
3523
+ color: var(--color-black, #0d0d0d);
3524
+ display: inline-block;
3525
+ font-family: var(--font-alt, sans-serif);
3526
+ font-size: 0.8125rem;
3527
+ font-weight: 900;
3528
+ letter-spacing: 0.08em;
3529
+ line-height: 1;
3530
+ padding: 0.35rem 0.75rem;
3531
+ text-transform: uppercase;
3532
+ transform: rotate(-2deg);
3533
+ }
3534
+ .brandTitle {
3535
+ color: var(--color-white, #fff);
3536
+ font-family: var(--font-heading, sans-serif);
3537
+ font-size: clamp(2rem, 8vw, 4.5rem);
3538
+ line-height: 0.9;
3539
+ margin: 0;
3540
+ text-transform: uppercase;
3541
+ }
3542
+ .brandCopy {
3543
+ color: rgba(255, 255, 255, 0.74);
3544
+ font-size: 0.95rem;
3545
+ font-weight: 600;
3546
+ line-height: 1.7;
3547
+ margin: 0;
3548
+ max-width: 36rem;
3549
+ }
3550
+ .projectActions {
3551
+ align-items: center;
3552
+ display: flex;
3553
+ flex-direction: column;
3554
+ gap: 1rem;
3555
+ justify-content: center;
3556
+ }
3557
+ @media (min-width: 640px) {
3558
+ .projectActions {
3559
+ flex-direction: row;
3560
+ }
3561
+ }
3562
+ .linkRow {
3563
+ align-items: center;
3564
+ display: flex;
3565
+ flex-wrap: wrap;
3566
+ gap: 0.75rem;
3567
+ justify-content: center;
3568
+ }
3569
+ .navLink {
3570
+ color: rgba(255, 255, 255, 0.72);
3571
+ font-size: 0.875rem;
3572
+ font-weight: 800;
3573
+ text-decoration: none;
3574
+ text-transform: uppercase;
3575
+ transition: color 0.15s ease;
3576
+ }
3577
+ .navLink:hover {
3578
+ color: var(--color-yellow, #eaff3d);
3579
+ }
3580
+ .divider {
3581
+ border: none;
3582
+ border-top: 1px solid rgba(255, 255, 255, 0.15);
3583
+ margin: 2rem 0 1.5rem;
3584
+ }
3585
+ .legalRow {
3586
+ align-items: center;
3587
+ display: grid;
3588
+ gap: 0.5rem;
3589
+ justify-items: center;
3590
+ text-align: center;
3591
+ }
3592
+ .copyright {
3593
+ color: rgba(255, 255, 255, 0.48);
3594
+ font-size: 0.72rem;
3595
+ line-height: 1.5;
3596
+ max-width: 46rem;
3597
+ }
3598
+
3599
+ /* src/components/ui/gallery-base.module.css */
3600
+ .galleryWrapper {
3601
+ --photo-offset: 0;
3602
+ --photo-ease: var(--ease-out);
3603
+ --gallery-opacity: 0;
3604
+ --gallery-transition-delay: calc(var(--duration-factor, 1) * 0.4s);
3605
+ --delay: 0s;
3606
+ --ease: var(--ease-back-in);
3607
+ --controls-scale: 1;
3608
+ --controls-spread: 0px;
3609
+ margin: 0;
3610
+ padding: 0 16px;
3611
+ position: relative;
3612
+ touch-action: pan-y;
3613
+ width: 100%;
3614
+ }
3615
+ .gallery {
3616
+ display: grid;
3617
+ grid-template-areas: "item";
3618
+ padding-top: 16px;
3619
+ position: relative;
3620
+ }
3621
+ .galleryItem {
3622
+ display: block;
3623
+ grid-area: item;
3624
+ margin: 0 auto;
3625
+ opacity: 0;
3626
+ transition: opacity 0s ease-in-out;
3627
+ transition-delay: var(--gallery-transition-delay);
3628
+ width: 100%;
3629
+ will-change: opacity, transform;
3630
+ z-index: 0;
3631
+ }
3632
+ .galleryItemActive {
3633
+ --gallery-opacity: 1;
3634
+ --ease: var(--ease-out);
3635
+ --delay: var(--gallery-transition-delay);
3636
+ opacity: 1;
3637
+ transition-property: opacity;
3638
+ transition-duration: calc(var(--duration-factor, 1) * 0.4s);
3639
+ transition-timing-function: var(--photo-ease);
3640
+ transition-delay: var(--delay);
3641
+ z-index: 10;
3642
+ }
3643
+ .galleryControls {
3644
+ --display-type: flex;
3645
+ align-items: center;
3646
+ display: var(--display-type);
3647
+ flex-direction: row;
3648
+ height: 0;
3649
+ justify-content: space-between;
3650
+ left: 50%;
3651
+ max-width: 100%;
3652
+ position: absolute;
3653
+ top: 50%;
3654
+ transform: translate(-50%, -50%);
3655
+ width: 100%;
3656
+ z-index: 50;
3657
+ }
3658
+ .galleryControls > * {
3659
+ filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.2));
3660
+ position: relative;
3661
+ }
3662
+ .galleryControls > :first-child {
3663
+ transform: translateX(calc(-150% - var(--controls-spread))) scale(var(--controls-scale));
3664
+ }
3665
+ .galleryControls > :nth-child(2) {
3666
+ transform: translateX(calc(100% + var(--controls-spread))) scale(var(--controls-scale));
3667
+ }
3668
+ @media screen and (max-width: 639px) {
3669
+ .galleryControls {
3670
+ left: 0;
3671
+ max-width: 100%;
3672
+ transform: translateY(-50%);
3673
+ width: 100%;
3674
+ }
3675
+ .galleryControls > :first-child,
3676
+ .galleryControls > :nth-child(2) {
3677
+ transform: none;
3678
+ }
3679
+ }
3680
+ .galleryContentFade {
3681
+ opacity: var(--gallery-opacity);
3682
+ transition-delay: var(--delay);
3683
+ transition-duration: calc(var(--duration-factor, 1) * 0.4s);
3684
+ transition-property: opacity;
3685
+ transition-timing-function: var(--photo-ease);
3686
+ }
3687
+ .galleryFrame {
3688
+ --photo-aspect-ratio: 16 / 9;
3689
+ display: block;
3690
+ filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.5));
3691
+ margin: 0 auto;
3692
+ max-width: 600px;
3693
+ width: 100%;
3694
+ transform: translateX(calc(50% * var(--photo-offset))) rotate(calc(var(--rotateDirection, 1) * var(--rotateAmount, 3deg) + var(--rotateDirection, 1) * 20deg * var(--photo-offset)));
3695
+ transition-delay: var(--delay);
3696
+ transition-duration: calc(var(--duration-factor, 1) * 0.4s);
3697
+ transition-property: transform;
3698
+ transition-timing-function: var(--ease);
3699
+ will-change: transform;
3700
+ }
3701
+
3702
+ /* src/components/ui/marquee-carousel.module.css */
3703
+ .photoFrame {
3704
+ grid-area: photo;
3705
+ }
3706
+ .galleryControls {
3707
+ max-width: 100%;
3708
+ }
3709
+
3710
+ /* src/components/ui/icon-paginated-carousel.module.css */
3711
+ .galleryBounce {
3712
+ width: 100%;
3713
+ }
3714
+ .galleryItemContent {
3715
+ align-items: center;
3716
+ display: flex;
3717
+ flex-direction: column;
3718
+ height: 100%;
3719
+ justify-content: center;
3720
+ width: 100%;
3721
+ }
3722
+ .galleryItemText {
3723
+ text-align: center;
3724
+ width: 100%;
3725
+ }
3726
+ .imagePagination {
3727
+ margin: 0;
3728
+ padding: 8px 0;
3729
+ position: relative;
3730
+ z-index: 10;
3731
+ }
3732
+
3733
+ /* src/components/ui/ink-trail.module.css */
3734
+ .inkTrailRoot {
3735
+ position: relative;
3736
+ width: 100%;
3737
+ pointer-events: auto;
3738
+ overflow: hidden;
3739
+ }
3740
+ .inkTrailCanvas {
3741
+ position: absolute;
3742
+ inset: 0;
3743
+ width: 100%;
3744
+ height: 100%;
3745
+ pointer-events: none;
3746
+ }
3747
+
3748
+ /* src/components/ui/loader.module.css */
3749
+ .loader {
3750
+ --color: var(--color-true-black, #000);
3751
+ --size: 1em;
3752
+ --loader-shadow: rgb(0 0 0 / 0.35);
3753
+ block-size: var(--size);
3754
+ border-radius: 999px;
3755
+ display: inline-grid;
3756
+ inline-size: var(--size);
3757
+ line-height: 0;
3758
+ margin: auto;
3759
+ place-items: center;
3760
+ vertical-align: middle;
3761
+ }
3762
+ .blue {
3763
+ --color: var(--color-blue, #603bff);
3764
+ }
3765
+ .red {
3766
+ --color: var(--color-red, #ff505e);
3767
+ }
3768
+ .surface {
3769
+ background: var(--color);
3770
+ block-size: 100%;
3771
+ border-radius: inherit;
3772
+ box-shadow: 0 0 0 max(2px, calc(var(--size) * 0.08)) var(--color), calc(var(--size) * 0.12) calc(var(--size) * 0.14) 0 var(--loader-shadow);
3773
+ box-sizing: border-box;
3774
+ display: grid;
3775
+ inline-size: 100%;
3776
+ overflow: hidden;
3777
+ padding: max(2px, calc(var(--size) * 0.12));
3778
+ place-items: center;
3779
+ transform: rotate(-5deg);
3780
+ }
3781
+ .image {
3782
+ block-size: 100%;
3783
+ inline-size: 100%;
3784
+ object-fit: contain;
3785
+ pointer-events: none;
3786
+ user-select: none;
3787
+ }
3788
+ .sprite {
3789
+ block-size: 100%;
3790
+ display: block;
3791
+ inline-size: 100%;
3792
+ pointer-events: none;
3793
+ user-select: none;
3794
+ }
3795
+ .morphSprite {
3796
+ animation: loaderMorphSprite var(--loader-sprite-duration) steps(64, end) infinite;
3797
+ background-image: var(--loader-sprite-url);
3798
+ background-position: 0 0;
3799
+ background-repeat: no-repeat;
3800
+ background-size: 6400% 100%;
3801
+ }
3802
+ .swimSprite {
3803
+ animation: loaderSwimSprite var(--loader-sprite-duration) steps(31, end) infinite;
3804
+ background-color: var(--color);
3805
+ mask-image: var(--loader-sprite-url);
3806
+ mask-position: 0 0;
3807
+ mask-repeat: no-repeat;
3808
+ mask-size: 3100% 100%;
3809
+ -webkit-mask-image: var(--loader-sprite-url);
3810
+ -webkit-mask-position: 0 0;
3811
+ -webkit-mask-repeat: no-repeat;
3812
+ -webkit-mask-size: 3100% 100%;
3813
+ }
3814
+ @keyframes loaderMorphSprite {
3815
+ to {
3816
+ background-position-x: calc(var(--size) * -64);
3817
+ }
3818
+ }
3819
+ @keyframes loaderSwimSprite {
3820
+ to {
3821
+ mask-position: calc(var(--size) * -31) 0;
3822
+ -webkit-mask-position: calc(var(--size) * -31) 0;
3823
+ }
3824
+ }
3825
+
3826
+ /* src/components/ui/nav-menu-button.module.css */
3827
+ .trigger {
3828
+ align-items: center;
3829
+ color: var(--color-yellow, #eaff3d);
3830
+ display: grid;
3831
+ gap: 8px;
3832
+ grid-template-columns: auto 1fr;
3833
+ padding: 8px 88px 8px 16px;
3834
+ position: relative;
3835
+ width: max-content;
3836
+ z-index: 5;
3837
+ font-family: var(--font-alt);
3838
+ font-size: 18px;
3839
+ font-weight: 600;
3840
+ line-height: 1;
3841
+ outline: none;
3842
+ user-select: none;
3843
+ }
3844
+ .label {
3845
+ display: block;
3846
+ font-size: inherit;
3847
+ font-weight: 700;
3848
+ line-height: 1;
3849
+ text-transform: none;
3850
+ letter-spacing: normal;
3851
+ position: relative;
3852
+ top: -0.2em;
3853
+ white-space: nowrap;
3854
+ }
3855
+ @media screen and (min-width: 1024px) {
3856
+ .trigger {
3857
+ gap: 12px;
3858
+ font-size: 24px;
3859
+ padding-right: 100px;
3860
+ }
3861
+ }
3862
+
3863
+ /* src/components/ui/navigation.module.css */
3864
+ .reducedMotion {
3865
+ align-items: center;
3866
+ color: var(--color-white, #fff);
3867
+ display: inline-flex;
3868
+ font-family: var(--font-alt);
3869
+ font-size: 16px;
3870
+ font-weight: 700;
3871
+ line-height: 1;
3872
+ padding: 12px 16px;
3873
+ }
3874
+ .reducedMotionIcon {
3875
+ --dimension: 13px;
3876
+ align-items: center;
3877
+ border: 2px solid var(--color-yellow, currentColor);
3878
+ border-radius: 50%;
3879
+ display: inline-flex;
3880
+ height: var(--dimension);
3881
+ justify-content: center;
3882
+ margin-inline-end: 10px;
3883
+ position: relative;
3884
+ flex-shrink: 0;
3885
+ width: var(--dimension);
3886
+ }
3887
+ .reducedMotionIconInner {
3888
+ --inner-dimension: calc(var(--dimension) - 8px);
3889
+ background-color: currentColor;
3890
+ border-radius: 50%;
3891
+ height: var(--inner-dimension);
3892
+ width: var(--inner-dimension);
3893
+ }
3894
+ .reducedMotionLabel {
3895
+ position: relative;
3896
+ top: -0.1em;
3897
+ }
3898
+
3899
+ /* src/components/ui/section-side-nav.module.css */
3900
+ .sidebar {
3901
+ --section-side-nav-fit-scale: 1;
3902
+ --section-side-nav-center-y: 50%;
3903
+ --section-side-nav-max-block-size: none;
3904
+ opacity: 0;
3905
+ position: fixed;
3906
+ right: var(--base-space, 8px);
3907
+ top: var(--section-side-nav-center-y);
3908
+ transform: translateY(-50%) scale(var(--section-side-nav-fit-scale));
3909
+ transform-origin: right center;
3910
+ transition: opacity 0.3s ease, visibility 0.3s ease;
3911
+ visibility: hidden;
3912
+ z-index: 9;
3913
+ }
3914
+ .sidebar[data-overflow=scroll] {
3915
+ max-block-size: var(--section-side-nav-max-block-size);
3916
+ overflow-y: auto;
3917
+ overscroll-behavior: contain;
3918
+ scrollbar-width: none;
3919
+ }
3920
+ .sidebar[data-overflow=scroll]::-webkit-scrollbar {
3921
+ display: none;
3922
+ }
3923
+ .sidebarShow {
3924
+ opacity: 1;
3925
+ visibility: visible;
3926
+ }
3927
+ .menu {
3928
+ align-items: center;
3929
+ display: flex;
3930
+ flex-direction: column;
3931
+ gap: calc(var(--base-space, 8px) * 2);
3932
+ position: relative;
3933
+ }
3934
+ .menu::before {
3935
+ background: var(--color-purple, #603bff);
3936
+ content: "";
3937
+ height: 100%;
3938
+ left: 50%;
3939
+ margin-left: -3px;
3940
+ position: absolute;
3941
+ top: 0;
3942
+ width: 6px;
3943
+ }
3944
+ .item {
3945
+ --dimension: 42px;
3946
+ --border: 4px;
3947
+ background: var(--color-purple, #603bff);
3948
+ border: solid var(--border) var(--color-purple, #603bff);
3949
+ border-radius: 50%;
3950
+ display: grid;
3951
+ height: var(--dimension);
3952
+ place-items: center;
3953
+ position: relative;
3954
+ text-decoration: none;
3955
+ width: var(--dimension);
3956
+ cursor: pointer;
3957
+ transition: background-color 0.2s ease;
3958
+ }
3959
+ .item:hover {
3960
+ background: var(--color-black, #000);
3961
+ }
3962
+ .item:hover.itemActive {
3963
+ background: var(--color-purple, #603bff);
3964
+ }
3965
+ .itemActive .itemSplat {
3966
+ opacity: 1;
3967
+ transform: translate(-50%, -50%) scale(1);
3968
+ visibility: visible;
3969
+ }
3970
+ .itemSplat {
3971
+ --width: 62px;
3972
+ --height: 55px;
3973
+ color: var(--color-black, #000);
3974
+ height: var(--height);
3975
+ left: 45%;
3976
+ opacity: 0;
3977
+ pointer-events: none;
3978
+ position: absolute;
3979
+ top: 45%;
3980
+ transform: translate(-50%, -50%) scale(0);
3981
+ transition: transform 0.3s ease, opacity 0.3s ease;
3982
+ visibility: hidden;
3983
+ width: var(--width);
3984
+ }
3985
+ .itemText {
3986
+ font-family: var(--font-alt, "obviously-narrow", sans-serif);
3987
+ font-weight: var(--font-weight-bold, 700);
3988
+ position: relative;
3989
+ top: -0.16em;
3990
+ color: var(--color-white, #fff);
3991
+ display: block;
3992
+ font-size: 1.375rem;
3993
+ line-height: 1;
3994
+ text-decoration: none;
3995
+ }
3996
+ .itemBackToTop {
3997
+ --dimension: 34px;
3998
+ }
3999
+ .backToTopArrow {
4000
+ --width: 13px;
4001
+ --height: 7.69px;
4002
+ color: var(--color-white, #fff);
4003
+ height: var(--height);
4004
+ transform: rotate(-180deg);
4005
+ width: var(--width);
4006
+ }
4007
+ @media (prefers-reduced-motion: reduce) {
4008
+ .sidebar,
4009
+ .item,
4010
+ .itemSplat {
4011
+ transition-duration: 0.01ms !important;
4012
+ }
4013
+ }
4014
+ @media (min-width: 640px) {
4015
+ .sidebar {
4016
+ right: calc(var(--base-space, 8px) * 2);
4017
+ }
4018
+ .menu {
4019
+ gap: calc(var(--base-space, 8px) * 4);
4020
+ }
4021
+ .item {
4022
+ --dimension: 60px;
4023
+ --border: 6px;
4024
+ }
4025
+ .itemSplat {
4026
+ --width: 81px;
4027
+ --height: 72px;
4028
+ }
4029
+ .itemText {
4030
+ font-size: 1.75rem;
4031
+ }
4032
+ .itemBackToTop {
4033
+ --dimension: 44px;
4034
+ }
4035
+ .backToTopArrow {
4036
+ --width: 20px;
4037
+ --height: 11.82px;
4038
+ }
4039
+ }
4040
+ @media (min-width: 1024px) {
4041
+ .sidebar {
4042
+ right: calc(var(--base-space, 8px) * 5);
4043
+ }
4044
+ }
4045
+
4046
+ /* src/components/ui/sheet.module.css */
4047
+ .sideTop,
4048
+ .sideRight,
4049
+ .sideBottom,
4050
+ .sideLeft {
4051
+ position: fixed;
4052
+ z-index: var(--z-sheet);
4053
+ }
4054
+ .sideTop {
4055
+ top: 0;
4056
+ left: 0;
4057
+ right: 0;
4058
+ height: auto;
4059
+ }
4060
+ .sideRight {
4061
+ top: 0;
4062
+ right: 0;
4063
+ bottom: 0;
4064
+ width: 75%;
4065
+ max-width: 24rem;
4066
+ }
4067
+ .sideBottom {
4068
+ bottom: 0;
4069
+ left: 0;
4070
+ right: 0;
4071
+ height: auto;
4072
+ }
4073
+ .sideLeft {
4074
+ top: 0;
4075
+ left: 0;
4076
+ bottom: 0;
4077
+ width: 75%;
4078
+ max-width: 24rem;
4079
+ }
4080
+
4081
+ /* src/components/ui/video-dialog.module.css */
4082
+ .thumbnailTrigger {
4083
+ container-type: inline-size;
4084
+ }
4085
+ .tape1,
4086
+ .tape2 {
4087
+ --trailer-tape-safe-bleed: min( var(--trailer-tape-bleed), max(0px, calc((100vw - 100cqw) / 2 - var(--trailer-tape-tilt-guard, 0px))) );
4088
+ }
4089
+ .tape1 {
4090
+ --trailer-tape-bleed: 19px;
4091
+ left: calc(var(--trailer-tape-safe-bleed) * -1);
4092
+ top: -20px;
4093
+ }
4094
+ .tape2 {
4095
+ --trailer-tape-bleed: 15px;
4096
+ --trailer-tape-tilt-guard: 8px;
4097
+ bottom: 0;
4098
+ right: calc(var(--trailer-tape-safe-bleed) * -1);
4099
+ }
4100
+ .tapeImage {
4101
+ display: block;
4102
+ height: auto;
4103
+ width: 100%;
4104
+ }
4105
+ .tape1 .tapeImage {
4106
+ transform: rotate(-25deg);
4107
+ }
4108
+ .tape2 .tapeImage {
4109
+ transform: rotate(-24deg);
4110
+ }
4111
+ .tapeMobile {
4112
+ display: block;
4113
+ }
4114
+ .tapeDesktop {
4115
+ display: none;
4116
+ }
4117
+ .tape1 .tapeMobile {
4118
+ inline-size: 82px;
4119
+ }
4120
+ .tape2 .tapeMobile {
4121
+ inline-size: 97px;
4122
+ }
4123
+ @container (min-width: 400px) {
4124
+ .tapeMobile {
4125
+ display: none;
4126
+ }
4127
+ .tapeDesktop {
4128
+ display: block;
4129
+ }
4130
+ }
4131
+ @container (min-width: 400px) and (max-width: 639px) {
4132
+ .tape1 {
4133
+ --trailer-tape-bleed: 25px;
4134
+ top: -40px;
4135
+ }
4136
+ .tape1 .tapeDesktop {
4137
+ inline-size: 133px;
4138
+ }
4139
+ .tape2 {
4140
+ --trailer-tape-bleed: 50px;
4141
+ bottom: 10px;
4142
+ }
4143
+ .tape2 .tapeDesktop {
4144
+ inline-size: 162px;
4145
+ }
4146
+ }
4147
+ @container (min-width: 640px) {
4148
+ .tape1 {
4149
+ --trailer-tape-bleed: 25px;
4150
+ top: -50px;
4151
+ }
4152
+ .tape1 .tapeDesktop {
4153
+ inline-size: 166px;
4154
+ }
4155
+ .tape2 {
4156
+ --trailer-tape-bleed: 50px;
4157
+ bottom: 20px;
4158
+ }
4159
+ .tape2 .tapeDesktop {
4160
+ inline-size: 202px;
4161
+ }
4162
+ }
4163
+ @container (min-width: 760px) {
4164
+ .tape1 {
4165
+ --trailer-tape-bleed: 40px;
4166
+ }
4167
+ .tape2 {
4168
+ --trailer-tape-bleed: 40px;
4169
+ }
4170
+ }
4171
+
4172
+ /* src/components/ui/weapons-gallery-carousel.module.css */
4173
+ .galleryWrapper {
4174
+ --controls-spread: 30px;
4175
+ }
4176
+ .galleryControls {
4177
+ max-width: 100%;
4178
+ padding-top: 0;
4179
+ }
4180
+ @media screen and (min-width: 640px) {
4181
+ .galleryControls {
4182
+ max-width: 50%;
4183
+ }
4184
+ }
4185
+ .photoFrame {
4186
+ transform: translateX(calc(100% * var(--photo-offset))) rotate(calc(var(--rotateDirection, 1) * var(--rotateAmount, 2deg) + var(--rotateDirection, 1) * 20deg * var(--photo-offset)));
4187
+ }
4188
+ .itemLayout {
4189
+ display: grid;
4190
+ grid-template-rows: 1fr auto;
4191
+ gap: var(--gutter-width);
4192
+ }
4193
+ @media screen and (min-width: 640px) {
4194
+ .itemLayout {
4195
+ grid-template-columns: 1fr 1fr;
4196
+ grid-template-rows: none;
4197
+ }
4198
+ }
4199
+ .galleryContent {
4200
+ align-items: center;
4201
+ display: flex;
4202
+ flex-direction: column;
4203
+ height: 100%;
4204
+ justify-content: center;
4205
+ padding-bottom: calc(var(--base-space, 8px) * 2);
4206
+ width: 100%;
4207
+ }
4208
+ @media screen and (min-width: 640px) {
4209
+ .galleryContent {
4210
+ padding-bottom: calc(var(--base-space, 8px) * 5);
4211
+ }
4212
+ }
4213
+ .galleryPagination {
4214
+ margin: 0;
4215
+ position: relative;
4216
+ z-index: 10;
4217
+ }
4218
+ @media screen and (min-width: 640px) {
4219
+ .galleryPagination {
4220
+ bottom: 0;
4221
+ position: absolute;
4222
+ right: 0;
4223
+ width: calc(50% - var(--gutter-width, 1rem) * 0.5);
4224
+ }
4225
+ }