easyfaa 0.20.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 (165) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +558 -0
  3. data/MIT-LICENSE +22 -0
  4. data/README.md +256 -0
  5. data/app/views/layouts/easyfaa.html.erb +24 -0
  6. data/app/views/recourses/_head.html.erb +3 -0
  7. data/art/autopilot.svg +9 -0
  8. data/art/cube.svg +9 -0
  9. data/art/design.svg +8 -0
  10. data/art/down.html.erb +95 -0
  11. data/art/easyfaa.svg +7 -0
  12. data/art/fountain.svg +9 -0
  13. data/art/goldrush.svg +7 -0
  14. data/art/houston.svg +8 -0
  15. data/art/icons.txt +185 -0
  16. data/art/index.html.erb +157 -0
  17. data/config/locales/easyfaa.en.yml +7 -0
  18. data/lib/easyfaa/copy.rb +5 -0
  19. data/lib/easyfaa/down.rb +19 -0
  20. data/lib/easyfaa/engine.rb +53 -0
  21. data/lib/easyfaa/helpers/flows.rb +53 -0
  22. data/lib/easyfaa/helpers/heads.rb +60 -0
  23. data/lib/easyfaa/helpers/logos.rb +43 -0
  24. data/lib/easyfaa/helpers.rb +11 -0
  25. data/lib/easyfaa/marks.rb +16 -0
  26. data/lib/easyfaa/version.rb +4 -0
  27. data/lib/easyfaa.rb +39 -0
  28. data/public/404.html +118 -0
  29. data/public/_headers +28 -0
  30. data/public/bh/css/bh.css +1 -0
  31. data/public/bh/js/bh.js +152 -0
  32. data/public/bh/theme/bootstrap.css +10 -0
  33. data/public/bh/theme/dawn.css +189 -0
  34. data/public/bh/theme/dracula.css +189 -0
  35. data/public/bh/theme/gruvbox.css +189 -0
  36. data/public/bh/theme/monokai.css +190 -0
  37. data/public/bh/theme/nord.css +189 -0
  38. data/public/bh/theme/one_dark.css +189 -0
  39. data/public/bh/theme/solarized.css +188 -0
  40. data/public/bh/theme/tokyo_night.css +189 -0
  41. data/public/css/easyfaa.css +1 -0
  42. data/public/down/autopilot.html +87 -0
  43. data/public/down/cube.html +87 -0
  44. data/public/down/design.html +87 -0
  45. data/public/down/easyfaa.html +84 -0
  46. data/public/down/fountain.html +87 -0
  47. data/public/down/goldrush.html +87 -0
  48. data/public/down/houston.html +87 -0
  49. data/public/favicon/autopilot-180.png +0 -0
  50. data/public/favicon/autopilot-192.png +0 -0
  51. data/public/favicon/autopilot-512.png +0 -0
  52. data/public/favicon/autopilot-96.png +0 -0
  53. data/public/favicon/autopilot-dev.svg +9 -0
  54. data/public/favicon/autopilot.ico +0 -0
  55. data/public/favicon/autopilot.svg +9 -0
  56. data/public/favicon/autopilot.webmanifest +12 -0
  57. data/public/favicon/cube-180.png +0 -0
  58. data/public/favicon/cube-192.png +0 -0
  59. data/public/favicon/cube-512.png +0 -0
  60. data/public/favicon/cube-96.png +0 -0
  61. data/public/favicon/cube-dev.svg +9 -0
  62. data/public/favicon/cube.ico +0 -0
  63. data/public/favicon/cube.svg +9 -0
  64. data/public/favicon/cube.webmanifest +12 -0
  65. data/public/favicon/design-180.png +0 -0
  66. data/public/favicon/design-192.png +0 -0
  67. data/public/favicon/design-512.png +0 -0
  68. data/public/favicon/design-96.png +0 -0
  69. data/public/favicon/design-dev.svg +8 -0
  70. data/public/favicon/design.ico +0 -0
  71. data/public/favicon/design.svg +8 -0
  72. data/public/favicon/design.webmanifest +12 -0
  73. data/public/favicon/easyfaa-180.png +0 -0
  74. data/public/favicon/easyfaa-192.png +0 -0
  75. data/public/favicon/easyfaa-512.png +0 -0
  76. data/public/favicon/easyfaa-96.png +0 -0
  77. data/public/favicon/easyfaa-dev.svg +7 -0
  78. data/public/favicon/easyfaa.ico +0 -0
  79. data/public/favicon/easyfaa.svg +7 -0
  80. data/public/favicon/easyfaa.webmanifest +12 -0
  81. data/public/favicon/fountain-180.png +0 -0
  82. data/public/favicon/fountain-192.png +0 -0
  83. data/public/favicon/fountain-512.png +0 -0
  84. data/public/favicon/fountain-96.png +0 -0
  85. data/public/favicon/fountain-dev.svg +9 -0
  86. data/public/favicon/fountain.ico +0 -0
  87. data/public/favicon/fountain.svg +9 -0
  88. data/public/favicon/fountain.webmanifest +12 -0
  89. data/public/favicon/goldrush-180.png +0 -0
  90. data/public/favicon/goldrush-192.png +0 -0
  91. data/public/favicon/goldrush-512.png +0 -0
  92. data/public/favicon/goldrush-96.png +0 -0
  93. data/public/favicon/goldrush-dev.svg +7 -0
  94. data/public/favicon/goldrush.ico +0 -0
  95. data/public/favicon/goldrush.svg +7 -0
  96. data/public/favicon/goldrush.webmanifest +12 -0
  97. data/public/favicon/houston-180.png +0 -0
  98. data/public/favicon/houston-192.png +0 -0
  99. data/public/favicon/houston-512.png +0 -0
  100. data/public/favicon/houston-96.png +0 -0
  101. data/public/favicon/houston-dev.svg +8 -0
  102. data/public/favicon/houston.ico +0 -0
  103. data/public/favicon/houston.svg +8 -0
  104. data/public/favicon/houston.webmanifest +12 -0
  105. data/public/favicon.ico +0 -0
  106. data/public/font/bootstrap-icons-6LILWPE2.woff2 +0 -0
  107. data/public/font/bootstrap-icons-FRBPO3H7.woff2 +0 -0
  108. data/public/font/ibm-plex-sans-500-latin-LA7QXWWL.woff2 +0 -0
  109. data/public/font/ibm-plex-sans-500-latin-ext-X4QHZICY.woff2 +0 -0
  110. data/public/font/ibm-plex-sans-500-latin-ext.woff2 +0 -0
  111. data/public/font/ibm-plex-sans-500-latin.woff2 +0 -0
  112. data/public/font/ibm-plex-sans-500-vietnamese-24B6BSND.woff2 +0 -0
  113. data/public/font/ibm-plex-sans-500-vietnamese.woff2 +0 -0
  114. data/public/index.html +165 -0
  115. data/public/js/easyfaa.js +1 -0
  116. data/public/logo/autopilot.png +0 -0
  117. data/public/logo/autopilot.svg +9 -0
  118. data/public/logo/cube.png +0 -0
  119. data/public/logo/cube.svg +9 -0
  120. data/public/logo/design.png +0 -0
  121. data/public/logo/design.svg +8 -0
  122. data/public/logo/easyfaa.png +0 -0
  123. data/public/logo/easyfaa.svg +7 -0
  124. data/public/logo/fountain.png +0 -0
  125. data/public/logo/fountain.svg +9 -0
  126. data/public/logo/goldrush.png +0 -0
  127. data/public/logo/goldrush.svg +7 -0
  128. data/public/logo/houston.png +0 -0
  129. data/public/logo/houston.svg +8 -0
  130. data/public/page/400.html +118 -0
  131. data/public/page/404.html +118 -0
  132. data/public/page/406-unsupported-browser.html +118 -0
  133. data/public/page/422.html +118 -0
  134. data/public/page/500.html +118 -0
  135. data/public/site.webmanifest +12 -0
  136. data/public/theme/bootstrap.css +10 -0
  137. data/public/theme/dawn.css +189 -0
  138. data/public/theme/dracula.css +189 -0
  139. data/public/theme/gruvbox.css +189 -0
  140. data/public/theme/monokai.css +190 -0
  141. data/public/theme/nord.css +189 -0
  142. data/public/theme/one_dark.css +189 -0
  143. data/public/theme/solarized.css +188 -0
  144. data/public/theme/tokyo_night.css +189 -0
  145. data/public/v0.20.0/bh/css/bh.css +1 -0
  146. data/public/v0.20.0/bh/js/bh.js +152 -0
  147. data/public/v0.20.0/bh/theme/bootstrap.css +10 -0
  148. data/public/v0.20.0/bh/theme/dawn.css +189 -0
  149. data/public/v0.20.0/bh/theme/dracula.css +189 -0
  150. data/public/v0.20.0/bh/theme/gruvbox.css +189 -0
  151. data/public/v0.20.0/bh/theme/monokai.css +190 -0
  152. data/public/v0.20.0/bh/theme/nord.css +189 -0
  153. data/public/v0.20.0/bh/theme/one_dark.css +189 -0
  154. data/public/v0.20.0/bh/theme/solarized.css +188 -0
  155. data/public/v0.20.0/bh/theme/tokyo_night.css +189 -0
  156. data/public/v0.20.0/css/easyfaa.css +1 -0
  157. data/public/v0.20.0/font/bootstrap-icons-FRBPO3H7.woff2 +0 -0
  158. data/public/v0.20.0/font/ibm-plex-sans-500-latin-LA7QXWWL.woff2 +0 -0
  159. data/public/v0.20.0/font/ibm-plex-sans-500-latin-ext-X4QHZICY.woff2 +0 -0
  160. data/public/v0.20.0/font/ibm-plex-sans-500-latin-ext.woff2 +0 -0
  161. data/public/v0.20.0/font/ibm-plex-sans-500-latin.woff2 +0 -0
  162. data/public/v0.20.0/font/ibm-plex-sans-500-vietnamese-24B6BSND.woff2 +0 -0
  163. data/public/v0.20.0/font/ibm-plex-sans-500-vietnamese.woff2 +0 -0
  164. data/public/v0.20.0/js/easyfaa.js +1 -0
  165. metadata +264 -0
@@ -0,0 +1,188 @@
1
+ /* Solarized, Ethan Schoonover — https://ethanschoonover.com/solarized/
2
+ base3 is the light page and base03 the dark one, both Solarized itself.
3
+ yellow serves brown, the warmest tone Solarized has.
4
+
5
+ Bootstrap builds a family by mixing one base toward `--bs-white` below
6
+ the 500 step and toward `--bs-black` above it, and inlines that base
7
+ into all thirteen — so a palette restates the thirteen rather than the
8
+ one. Upstream's order and upstream's shapes with only the base swapped,
9
+ so a later Bootstrap diffs against this file. */
10
+ :root {
11
+ /* The page, and the two colors every ramp below is mixed with.
12
+ `--bs-bg-body` reads `--bs-white` in light mode and `--bs-gray-975` in
13
+ dark, so repainting these two is what moves the page itself. */
14
+ --bs-white: #fdf6e3;
15
+ --bs-black: #002b36;
16
+
17
+ /* The neutrals, which every surface, border and text token Bootstrap ships
18
+ derives from. */
19
+ --bs-gray-025: color-mix(in lab, var(--bs-white) 94%, #839496);
20
+ --bs-gray-050: color-mix(in lab, var(--bs-white) 90%, #839496);
21
+ --bs-gray-100: color-mix(in lab, var(--bs-white) 80%, #839496);
22
+ --bs-gray-200: color-mix(in lab, var(--bs-white) 60%, #839496);
23
+ --bs-gray-300: color-mix(in lab, var(--bs-white) 40%, #839496);
24
+ --bs-gray-400: color-mix(in lab, var(--bs-white) 20%, #839496);
25
+ --bs-gray-500: #839496;
26
+ --bs-gray-600: color-mix(in lab, var(--bs-black) 16%, #839496);
27
+ --bs-gray-700: color-mix(in lab, var(--bs-black) 32%, #839496);
28
+ --bs-gray-800: color-mix(in lab, var(--bs-black) 48%, #839496);
29
+ --bs-gray-900: color-mix(in lab, var(--bs-black) 64%, #839496);
30
+ --bs-gray-950: color-mix(in lab, var(--bs-black) 76%, #839496);
31
+ --bs-gray-975: color-mix(in lab, var(--bs-black) 88%, #839496);
32
+
33
+ --bs-blue-025: color-mix(in lab, var(--bs-white) 94%, #268bd2);
34
+ --bs-blue-050: color-mix(in lab, var(--bs-white) 90%, #268bd2);
35
+ --bs-blue-100: color-mix(in lab, var(--bs-white) 80%, #268bd2);
36
+ --bs-blue-200: color-mix(in lab, var(--bs-white) 60%, #268bd2);
37
+ --bs-blue-300: color-mix(in lab, var(--bs-white) 40%, #268bd2);
38
+ --bs-blue-400: color-mix(in lab, var(--bs-white) 20%, #268bd2);
39
+ --bs-blue-500: #268bd2;
40
+ --bs-blue-600: color-mix(in lab, var(--bs-black) 16%, #268bd2);
41
+ --bs-blue-700: color-mix(in lab, var(--bs-black) 32%, #268bd2);
42
+ --bs-blue-800: color-mix(in lab, var(--bs-black) 48%, #268bd2);
43
+ --bs-blue-900: color-mix(in lab, var(--bs-black) 64%, #268bd2);
44
+ --bs-blue-950: color-mix(in lab, var(--bs-black) 76%, #268bd2);
45
+ --bs-blue-975: color-mix(in lab, var(--bs-black) 88%, #268bd2);
46
+
47
+ --bs-brown-025: color-mix(in lab, var(--bs-white) 94%, #b58900);
48
+ --bs-brown-050: color-mix(in lab, var(--bs-white) 90%, #b58900);
49
+ --bs-brown-100: color-mix(in lab, var(--bs-white) 80%, #b58900);
50
+ --bs-brown-200: color-mix(in lab, var(--bs-white) 60%, #b58900);
51
+ --bs-brown-300: color-mix(in lab, var(--bs-white) 40%, #b58900);
52
+ --bs-brown-400: color-mix(in lab, var(--bs-white) 20%, #b58900);
53
+ --bs-brown-500: #b58900;
54
+ --bs-brown-600: color-mix(in lab, var(--bs-black) 16%, #b58900);
55
+ --bs-brown-700: color-mix(in lab, var(--bs-black) 32%, #b58900);
56
+ --bs-brown-800: color-mix(in lab, var(--bs-black) 48%, #b58900);
57
+ --bs-brown-900: color-mix(in lab, var(--bs-black) 64%, #b58900);
58
+ --bs-brown-950: color-mix(in lab, var(--bs-black) 76%, #b58900);
59
+ --bs-brown-975: color-mix(in lab, var(--bs-black) 88%, #b58900);
60
+
61
+ --bs-cyan-025: color-mix(in lab, var(--bs-white) 94%, #2aa198);
62
+ --bs-cyan-050: color-mix(in lab, var(--bs-white) 90%, #2aa198);
63
+ --bs-cyan-100: color-mix(in lab, var(--bs-white) 80%, #2aa198);
64
+ --bs-cyan-200: color-mix(in lab, var(--bs-white) 60%, #2aa198);
65
+ --bs-cyan-300: color-mix(in lab, var(--bs-white) 40%, #2aa198);
66
+ --bs-cyan-400: color-mix(in lab, var(--bs-white) 20%, #2aa198);
67
+ --bs-cyan-500: #2aa198;
68
+ --bs-cyan-600: color-mix(in lab, var(--bs-black) 16%, #2aa198);
69
+ --bs-cyan-700: color-mix(in lab, var(--bs-black) 32%, #2aa198);
70
+ --bs-cyan-800: color-mix(in lab, var(--bs-black) 48%, #2aa198);
71
+ --bs-cyan-900: color-mix(in lab, var(--bs-black) 64%, #2aa198);
72
+ --bs-cyan-950: color-mix(in lab, var(--bs-black) 76%, #2aa198);
73
+ --bs-cyan-975: color-mix(in lab, var(--bs-black) 88%, #2aa198);
74
+
75
+ --bs-green-025: color-mix(in lab, var(--bs-white) 94%, #859900);
76
+ --bs-green-050: color-mix(in lab, var(--bs-white) 90%, #859900);
77
+ --bs-green-100: color-mix(in lab, var(--bs-white) 80%, #859900);
78
+ --bs-green-200: color-mix(in lab, var(--bs-white) 60%, #859900);
79
+ --bs-green-300: color-mix(in lab, var(--bs-white) 40%, #859900);
80
+ --bs-green-400: color-mix(in lab, var(--bs-white) 20%, #859900);
81
+ --bs-green-500: #859900;
82
+ --bs-green-600: color-mix(in lab, var(--bs-black) 16%, #859900);
83
+ --bs-green-700: color-mix(in lab, var(--bs-black) 32%, #859900);
84
+ --bs-green-800: color-mix(in lab, var(--bs-black) 48%, #859900);
85
+ --bs-green-900: color-mix(in lab, var(--bs-black) 64%, #859900);
86
+ --bs-green-950: color-mix(in lab, var(--bs-black) 76%, #859900);
87
+ --bs-green-975: color-mix(in lab, var(--bs-black) 88%, #859900);
88
+
89
+ --bs-orange-025: color-mix(in lab, var(--bs-white) 94%, #cb4b16);
90
+ --bs-orange-050: color-mix(in lab, var(--bs-white) 90%, #cb4b16);
91
+ --bs-orange-100: color-mix(in lab, var(--bs-white) 80%, #cb4b16);
92
+ --bs-orange-200: color-mix(in lab, var(--bs-white) 60%, #cb4b16);
93
+ --bs-orange-300: color-mix(in lab, var(--bs-white) 40%, #cb4b16);
94
+ --bs-orange-400: color-mix(in lab, var(--bs-white) 20%, #cb4b16);
95
+ --bs-orange-500: #cb4b16;
96
+ --bs-orange-600: color-mix(in lab, var(--bs-black) 16%, #cb4b16);
97
+ --bs-orange-700: color-mix(in lab, var(--bs-black) 32%, #cb4b16);
98
+ --bs-orange-800: color-mix(in lab, var(--bs-black) 48%, #cb4b16);
99
+ --bs-orange-900: color-mix(in lab, var(--bs-black) 64%, #cb4b16);
100
+ --bs-orange-950: color-mix(in lab, var(--bs-black) 76%, #cb4b16);
101
+ --bs-orange-975: color-mix(in lab, var(--bs-black) 88%, #cb4b16);
102
+
103
+ --bs-pink-025: color-mix(in lab, var(--bs-white) 94%, #d33682);
104
+ --bs-pink-050: color-mix(in lab, var(--bs-white) 90%, #d33682);
105
+ --bs-pink-100: color-mix(in lab, var(--bs-white) 80%, #d33682);
106
+ --bs-pink-200: color-mix(in lab, var(--bs-white) 60%, #d33682);
107
+ --bs-pink-300: color-mix(in lab, var(--bs-white) 40%, #d33682);
108
+ --bs-pink-400: color-mix(in lab, var(--bs-white) 20%, #d33682);
109
+ --bs-pink-500: #d33682;
110
+ --bs-pink-600: color-mix(in lab, var(--bs-black) 16%, #d33682);
111
+ --bs-pink-700: color-mix(in lab, var(--bs-black) 32%, #d33682);
112
+ --bs-pink-800: color-mix(in lab, var(--bs-black) 48%, #d33682);
113
+ --bs-pink-900: color-mix(in lab, var(--bs-black) 64%, #d33682);
114
+ --bs-pink-950: color-mix(in lab, var(--bs-black) 76%, #d33682);
115
+ --bs-pink-975: color-mix(in lab, var(--bs-black) 88%, #d33682);
116
+
117
+ --bs-purple-025: color-mix(in lab, var(--bs-white) 94%, #6c71c4);
118
+ --bs-purple-050: color-mix(in lab, var(--bs-white) 90%, #6c71c4);
119
+ --bs-purple-100: color-mix(in lab, var(--bs-white) 80%, #6c71c4);
120
+ --bs-purple-200: color-mix(in lab, var(--bs-white) 60%, #6c71c4);
121
+ --bs-purple-300: color-mix(in lab, var(--bs-white) 40%, #6c71c4);
122
+ --bs-purple-400: color-mix(in lab, var(--bs-white) 20%, #6c71c4);
123
+ --bs-purple-500: #6c71c4;
124
+ --bs-purple-600: color-mix(in lab, var(--bs-black) 16%, #6c71c4);
125
+ --bs-purple-700: color-mix(in lab, var(--bs-black) 32%, #6c71c4);
126
+ --bs-purple-800: color-mix(in lab, var(--bs-black) 48%, #6c71c4);
127
+ --bs-purple-900: color-mix(in lab, var(--bs-black) 64%, #6c71c4);
128
+ --bs-purple-950: color-mix(in lab, var(--bs-black) 76%, #6c71c4);
129
+ --bs-purple-975: color-mix(in lab, var(--bs-black) 88%, #6c71c4);
130
+
131
+ --bs-red-025: color-mix(in lab, var(--bs-white) 94%, #dc322f);
132
+ --bs-red-050: color-mix(in lab, var(--bs-white) 90%, #dc322f);
133
+ --bs-red-100: color-mix(in lab, var(--bs-white) 80%, #dc322f);
134
+ --bs-red-200: color-mix(in lab, var(--bs-white) 60%, #dc322f);
135
+ --bs-red-300: color-mix(in lab, var(--bs-white) 40%, #dc322f);
136
+ --bs-red-400: color-mix(in lab, var(--bs-white) 20%, #dc322f);
137
+ --bs-red-500: #dc322f;
138
+ --bs-red-600: color-mix(in lab, var(--bs-black) 16%, #dc322f);
139
+ --bs-red-700: color-mix(in lab, var(--bs-black) 32%, #dc322f);
140
+ --bs-red-800: color-mix(in lab, var(--bs-black) 48%, #dc322f);
141
+ --bs-red-900: color-mix(in lab, var(--bs-black) 64%, #dc322f);
142
+ --bs-red-950: color-mix(in lab, var(--bs-black) 76%, #dc322f);
143
+ --bs-red-975: color-mix(in lab, var(--bs-black) 88%, #dc322f);
144
+
145
+ --bs-yellow-025: color-mix(in lab, var(--bs-white) 94%, #b58900);
146
+ --bs-yellow-050: color-mix(in lab, var(--bs-white) 90%, #b58900);
147
+ --bs-yellow-100: color-mix(in lab, var(--bs-white) 80%, #b58900);
148
+ --bs-yellow-200: color-mix(in lab, var(--bs-white) 60%, #b58900);
149
+ --bs-yellow-300: color-mix(in lab, var(--bs-white) 40%, #b58900);
150
+ --bs-yellow-400: color-mix(in lab, var(--bs-white) 20%, #b58900);
151
+ --bs-yellow-500: #b58900;
152
+ --bs-yellow-600: color-mix(in lab, var(--bs-black) 16%, #b58900);
153
+ --bs-yellow-700: color-mix(in lab, var(--bs-black) 32%, #b58900);
154
+ --bs-yellow-800: color-mix(in lab, var(--bs-black) 48%, #b58900);
155
+ --bs-yellow-900: color-mix(in lab, var(--bs-black) 64%, #b58900);
156
+ --bs-yellow-950: color-mix(in lab, var(--bs-black) 76%, #b58900);
157
+ --bs-yellow-975: color-mix(in lab, var(--bs-black) 88%, #b58900);
158
+
159
+ /* Text, stated rather than left to the ramp. Bootstrap pairs a low step as
160
+ a light surface with that same step as dark-mode text, which a palette
161
+ built for its own contrast does not agree with. */
162
+ --bs-fg-1: light-dark(#073642, #eee8d5);
163
+ --bs-fg-body: light-dark(#586e75, #93a1a1);
164
+ --bs-fg-2: light-dark(#657b83, #839496);
165
+
166
+ /* The label a solid fill carries, for the four families Bootstrap has
167
+ spent on a meaning and this palette has repainted. Upstream's own shape:
168
+ it gives warning and info a dark label for the same reason. */
169
+ --bs-danger-contrast: var(--bs-white);
170
+ --bs-success-contrast: var(--bs-gray-975);
171
+ --bs-warning-contrast: var(--bs-gray-975);
172
+ --bs-info-contrast: var(--bs-gray-975);
173
+
174
+ /* The accent this palette leads with, as the primary color: the same nine
175
+ `_color.html.erb` writes, from blue and the label that reads on it. Here
176
+ rather than only in the page because a reader may swap this file for
177
+ another one, and the primary has to travel with it. A host naming its
178
+ own color still wins, its block coming after this file. */
179
+ --bs-primary-base: var(--bs-blue-500);
180
+ --bs-primary-fg: light-dark(var(--bs-blue-600), var(--bs-blue-400));
181
+ --bs-primary-fg-emphasis: light-dark(var(--bs-blue-800), var(--bs-blue-200));
182
+ --bs-primary-bg: var(--bs-blue-500);
183
+ --bs-primary-bg-subtle: light-dark(var(--bs-blue-100), var(--bs-blue-900));
184
+ --bs-primary-bg-muted: light-dark(var(--bs-blue-200), var(--bs-blue-800));
185
+ --bs-primary-border: light-dark(var(--bs-blue-300), var(--bs-blue-600));
186
+ --bs-primary-focus-ring: light-dark(color-mix(in oklch, var(--bs-blue-500) 50%, var(--bs-bg-body)), color-mix(in oklch, var(--bs-blue-500) 75%, var(--bs-bg-body)));
187
+ --bs-primary-contrast: var(--bs-gray-975);
188
+ }
@@ -0,0 +1,189 @@
1
+ /* Tokyo Night, enkia — https://github.com/enkia/tokyo-night-vscode-theme
2
+ Tokyo Night Day is the light page and Tokyo Night's own the dark one.
3
+ its magenta serves purple and pink, its orange serves brown. The mid
4
+ neutral is derived.
5
+
6
+ Bootstrap builds a family by mixing one base toward `--bs-white` below
7
+ the 500 step and toward `--bs-black` above it, and inlines that base
8
+ into all thirteen — so a palette restates the thirteen rather than the
9
+ one. Upstream's order and upstream's shapes with only the base swapped,
10
+ so a later Bootstrap diffs against this file. */
11
+ :root {
12
+ /* The page, and the two colors every ramp below is mixed with.
13
+ `--bs-bg-body` reads `--bs-white` in light mode and `--bs-gray-975` in
14
+ dark, so repainting these two is what moves the page itself. */
15
+ --bs-white: #e1e2e7;
16
+ --bs-black: #1a1b26;
17
+
18
+ /* The neutrals, which every surface, border and text token Bootstrap ships
19
+ derives from. */
20
+ --bs-gray-025: color-mix(in lab, var(--bs-white) 94%, #8189a8);
21
+ --bs-gray-050: color-mix(in lab, var(--bs-white) 90%, #8189a8);
22
+ --bs-gray-100: color-mix(in lab, var(--bs-white) 80%, #8189a8);
23
+ --bs-gray-200: color-mix(in lab, var(--bs-white) 60%, #8189a8);
24
+ --bs-gray-300: color-mix(in lab, var(--bs-white) 40%, #8189a8);
25
+ --bs-gray-400: color-mix(in lab, var(--bs-white) 20%, #8189a8);
26
+ --bs-gray-500: #8189a8;
27
+ --bs-gray-600: color-mix(in lab, var(--bs-black) 16%, #8189a8);
28
+ --bs-gray-700: color-mix(in lab, var(--bs-black) 32%, #8189a8);
29
+ --bs-gray-800: color-mix(in lab, var(--bs-black) 48%, #8189a8);
30
+ --bs-gray-900: color-mix(in lab, var(--bs-black) 64%, #8189a8);
31
+ --bs-gray-950: color-mix(in lab, var(--bs-black) 76%, #8189a8);
32
+ --bs-gray-975: color-mix(in lab, var(--bs-black) 88%, #8189a8);
33
+
34
+ --bs-blue-025: color-mix(in lab, var(--bs-white) 94%, #7aa2f7);
35
+ --bs-blue-050: color-mix(in lab, var(--bs-white) 90%, #7aa2f7);
36
+ --bs-blue-100: color-mix(in lab, var(--bs-white) 80%, #7aa2f7);
37
+ --bs-blue-200: color-mix(in lab, var(--bs-white) 60%, #7aa2f7);
38
+ --bs-blue-300: color-mix(in lab, var(--bs-white) 40%, #7aa2f7);
39
+ --bs-blue-400: color-mix(in lab, var(--bs-white) 20%, #7aa2f7);
40
+ --bs-blue-500: #7aa2f7;
41
+ --bs-blue-600: color-mix(in lab, var(--bs-black) 16%, #7aa2f7);
42
+ --bs-blue-700: color-mix(in lab, var(--bs-black) 32%, #7aa2f7);
43
+ --bs-blue-800: color-mix(in lab, var(--bs-black) 48%, #7aa2f7);
44
+ --bs-blue-900: color-mix(in lab, var(--bs-black) 64%, #7aa2f7);
45
+ --bs-blue-950: color-mix(in lab, var(--bs-black) 76%, #7aa2f7);
46
+ --bs-blue-975: color-mix(in lab, var(--bs-black) 88%, #7aa2f7);
47
+
48
+ --bs-brown-025: color-mix(in lab, var(--bs-white) 94%, #ff9e64);
49
+ --bs-brown-050: color-mix(in lab, var(--bs-white) 90%, #ff9e64);
50
+ --bs-brown-100: color-mix(in lab, var(--bs-white) 80%, #ff9e64);
51
+ --bs-brown-200: color-mix(in lab, var(--bs-white) 60%, #ff9e64);
52
+ --bs-brown-300: color-mix(in lab, var(--bs-white) 40%, #ff9e64);
53
+ --bs-brown-400: color-mix(in lab, var(--bs-white) 20%, #ff9e64);
54
+ --bs-brown-500: #ff9e64;
55
+ --bs-brown-600: color-mix(in lab, var(--bs-black) 16%, #ff9e64);
56
+ --bs-brown-700: color-mix(in lab, var(--bs-black) 32%, #ff9e64);
57
+ --bs-brown-800: color-mix(in lab, var(--bs-black) 48%, #ff9e64);
58
+ --bs-brown-900: color-mix(in lab, var(--bs-black) 64%, #ff9e64);
59
+ --bs-brown-950: color-mix(in lab, var(--bs-black) 76%, #ff9e64);
60
+ --bs-brown-975: color-mix(in lab, var(--bs-black) 88%, #ff9e64);
61
+
62
+ --bs-cyan-025: color-mix(in lab, var(--bs-white) 94%, #7dcfff);
63
+ --bs-cyan-050: color-mix(in lab, var(--bs-white) 90%, #7dcfff);
64
+ --bs-cyan-100: color-mix(in lab, var(--bs-white) 80%, #7dcfff);
65
+ --bs-cyan-200: color-mix(in lab, var(--bs-white) 60%, #7dcfff);
66
+ --bs-cyan-300: color-mix(in lab, var(--bs-white) 40%, #7dcfff);
67
+ --bs-cyan-400: color-mix(in lab, var(--bs-white) 20%, #7dcfff);
68
+ --bs-cyan-500: #7dcfff;
69
+ --bs-cyan-600: color-mix(in lab, var(--bs-black) 16%, #7dcfff);
70
+ --bs-cyan-700: color-mix(in lab, var(--bs-black) 32%, #7dcfff);
71
+ --bs-cyan-800: color-mix(in lab, var(--bs-black) 48%, #7dcfff);
72
+ --bs-cyan-900: color-mix(in lab, var(--bs-black) 64%, #7dcfff);
73
+ --bs-cyan-950: color-mix(in lab, var(--bs-black) 76%, #7dcfff);
74
+ --bs-cyan-975: color-mix(in lab, var(--bs-black) 88%, #7dcfff);
75
+
76
+ --bs-green-025: color-mix(in lab, var(--bs-white) 94%, #9ece6a);
77
+ --bs-green-050: color-mix(in lab, var(--bs-white) 90%, #9ece6a);
78
+ --bs-green-100: color-mix(in lab, var(--bs-white) 80%, #9ece6a);
79
+ --bs-green-200: color-mix(in lab, var(--bs-white) 60%, #9ece6a);
80
+ --bs-green-300: color-mix(in lab, var(--bs-white) 40%, #9ece6a);
81
+ --bs-green-400: color-mix(in lab, var(--bs-white) 20%, #9ece6a);
82
+ --bs-green-500: #9ece6a;
83
+ --bs-green-600: color-mix(in lab, var(--bs-black) 16%, #9ece6a);
84
+ --bs-green-700: color-mix(in lab, var(--bs-black) 32%, #9ece6a);
85
+ --bs-green-800: color-mix(in lab, var(--bs-black) 48%, #9ece6a);
86
+ --bs-green-900: color-mix(in lab, var(--bs-black) 64%, #9ece6a);
87
+ --bs-green-950: color-mix(in lab, var(--bs-black) 76%, #9ece6a);
88
+ --bs-green-975: color-mix(in lab, var(--bs-black) 88%, #9ece6a);
89
+
90
+ --bs-orange-025: color-mix(in lab, var(--bs-white) 94%, #ff9e64);
91
+ --bs-orange-050: color-mix(in lab, var(--bs-white) 90%, #ff9e64);
92
+ --bs-orange-100: color-mix(in lab, var(--bs-white) 80%, #ff9e64);
93
+ --bs-orange-200: color-mix(in lab, var(--bs-white) 60%, #ff9e64);
94
+ --bs-orange-300: color-mix(in lab, var(--bs-white) 40%, #ff9e64);
95
+ --bs-orange-400: color-mix(in lab, var(--bs-white) 20%, #ff9e64);
96
+ --bs-orange-500: #ff9e64;
97
+ --bs-orange-600: color-mix(in lab, var(--bs-black) 16%, #ff9e64);
98
+ --bs-orange-700: color-mix(in lab, var(--bs-black) 32%, #ff9e64);
99
+ --bs-orange-800: color-mix(in lab, var(--bs-black) 48%, #ff9e64);
100
+ --bs-orange-900: color-mix(in lab, var(--bs-black) 64%, #ff9e64);
101
+ --bs-orange-950: color-mix(in lab, var(--bs-black) 76%, #ff9e64);
102
+ --bs-orange-975: color-mix(in lab, var(--bs-black) 88%, #ff9e64);
103
+
104
+ --bs-pink-025: color-mix(in lab, var(--bs-white) 94%, #bb9af7);
105
+ --bs-pink-050: color-mix(in lab, var(--bs-white) 90%, #bb9af7);
106
+ --bs-pink-100: color-mix(in lab, var(--bs-white) 80%, #bb9af7);
107
+ --bs-pink-200: color-mix(in lab, var(--bs-white) 60%, #bb9af7);
108
+ --bs-pink-300: color-mix(in lab, var(--bs-white) 40%, #bb9af7);
109
+ --bs-pink-400: color-mix(in lab, var(--bs-white) 20%, #bb9af7);
110
+ --bs-pink-500: #bb9af7;
111
+ --bs-pink-600: color-mix(in lab, var(--bs-black) 16%, #bb9af7);
112
+ --bs-pink-700: color-mix(in lab, var(--bs-black) 32%, #bb9af7);
113
+ --bs-pink-800: color-mix(in lab, var(--bs-black) 48%, #bb9af7);
114
+ --bs-pink-900: color-mix(in lab, var(--bs-black) 64%, #bb9af7);
115
+ --bs-pink-950: color-mix(in lab, var(--bs-black) 76%, #bb9af7);
116
+ --bs-pink-975: color-mix(in lab, var(--bs-black) 88%, #bb9af7);
117
+
118
+ --bs-purple-025: color-mix(in lab, var(--bs-white) 94%, #bb9af7);
119
+ --bs-purple-050: color-mix(in lab, var(--bs-white) 90%, #bb9af7);
120
+ --bs-purple-100: color-mix(in lab, var(--bs-white) 80%, #bb9af7);
121
+ --bs-purple-200: color-mix(in lab, var(--bs-white) 60%, #bb9af7);
122
+ --bs-purple-300: color-mix(in lab, var(--bs-white) 40%, #bb9af7);
123
+ --bs-purple-400: color-mix(in lab, var(--bs-white) 20%, #bb9af7);
124
+ --bs-purple-500: #bb9af7;
125
+ --bs-purple-600: color-mix(in lab, var(--bs-black) 16%, #bb9af7);
126
+ --bs-purple-700: color-mix(in lab, var(--bs-black) 32%, #bb9af7);
127
+ --bs-purple-800: color-mix(in lab, var(--bs-black) 48%, #bb9af7);
128
+ --bs-purple-900: color-mix(in lab, var(--bs-black) 64%, #bb9af7);
129
+ --bs-purple-950: color-mix(in lab, var(--bs-black) 76%, #bb9af7);
130
+ --bs-purple-975: color-mix(in lab, var(--bs-black) 88%, #bb9af7);
131
+
132
+ --bs-red-025: color-mix(in lab, var(--bs-white) 94%, #f7768e);
133
+ --bs-red-050: color-mix(in lab, var(--bs-white) 90%, #f7768e);
134
+ --bs-red-100: color-mix(in lab, var(--bs-white) 80%, #f7768e);
135
+ --bs-red-200: color-mix(in lab, var(--bs-white) 60%, #f7768e);
136
+ --bs-red-300: color-mix(in lab, var(--bs-white) 40%, #f7768e);
137
+ --bs-red-400: color-mix(in lab, var(--bs-white) 20%, #f7768e);
138
+ --bs-red-500: #f7768e;
139
+ --bs-red-600: color-mix(in lab, var(--bs-black) 16%, #f7768e);
140
+ --bs-red-700: color-mix(in lab, var(--bs-black) 32%, #f7768e);
141
+ --bs-red-800: color-mix(in lab, var(--bs-black) 48%, #f7768e);
142
+ --bs-red-900: color-mix(in lab, var(--bs-black) 64%, #f7768e);
143
+ --bs-red-950: color-mix(in lab, var(--bs-black) 76%, #f7768e);
144
+ --bs-red-975: color-mix(in lab, var(--bs-black) 88%, #f7768e);
145
+
146
+ --bs-yellow-025: color-mix(in lab, var(--bs-white) 94%, #e0af68);
147
+ --bs-yellow-050: color-mix(in lab, var(--bs-white) 90%, #e0af68);
148
+ --bs-yellow-100: color-mix(in lab, var(--bs-white) 80%, #e0af68);
149
+ --bs-yellow-200: color-mix(in lab, var(--bs-white) 60%, #e0af68);
150
+ --bs-yellow-300: color-mix(in lab, var(--bs-white) 40%, #e0af68);
151
+ --bs-yellow-400: color-mix(in lab, var(--bs-white) 20%, #e0af68);
152
+ --bs-yellow-500: #e0af68;
153
+ --bs-yellow-600: color-mix(in lab, var(--bs-black) 16%, #e0af68);
154
+ --bs-yellow-700: color-mix(in lab, var(--bs-black) 32%, #e0af68);
155
+ --bs-yellow-800: color-mix(in lab, var(--bs-black) 48%, #e0af68);
156
+ --bs-yellow-900: color-mix(in lab, var(--bs-black) 64%, #e0af68);
157
+ --bs-yellow-950: color-mix(in lab, var(--bs-black) 76%, #e0af68);
158
+ --bs-yellow-975: color-mix(in lab, var(--bs-black) 88%, #e0af68);
159
+
160
+ /* Text, stated rather than left to the ramp. Bootstrap pairs a low step as
161
+ a light surface with that same step as dark-mode text, which a palette
162
+ built for its own contrast does not agree with. */
163
+ --bs-fg-1: light-dark(#1a1b26, #c0caf5);
164
+ --bs-fg-body: light-dark(#343b58, #a9b1d6);
165
+ --bs-fg-2: light-dark(#565f89, #8b93b5);
166
+
167
+ /* The label a solid fill carries, for the four families Bootstrap has
168
+ spent on a meaning and this palette has repainted. Upstream's own shape:
169
+ it gives warning and info a dark label for the same reason. */
170
+ --bs-danger-contrast: var(--bs-gray-975);
171
+ --bs-success-contrast: var(--bs-gray-975);
172
+ --bs-warning-contrast: var(--bs-gray-975);
173
+ --bs-info-contrast: var(--bs-gray-975);
174
+
175
+ /* The accent this palette leads with, as the primary color: the same nine
176
+ `_color.html.erb` writes, from blue and the label that reads on it. Here
177
+ rather than only in the page because a reader may swap this file for
178
+ another one, and the primary has to travel with it. A host naming its
179
+ own color still wins, its block coming after this file. */
180
+ --bs-primary-base: var(--bs-blue-500);
181
+ --bs-primary-fg: light-dark(var(--bs-blue-600), var(--bs-blue-400));
182
+ --bs-primary-fg-emphasis: light-dark(var(--bs-blue-800), var(--bs-blue-200));
183
+ --bs-primary-bg: var(--bs-blue-500);
184
+ --bs-primary-bg-subtle: light-dark(var(--bs-blue-100), var(--bs-blue-900));
185
+ --bs-primary-bg-muted: light-dark(var(--bs-blue-200), var(--bs-blue-800));
186
+ --bs-primary-border: light-dark(var(--bs-blue-300), var(--bs-blue-600));
187
+ --bs-primary-focus-ring: light-dark(color-mix(in oklch, var(--bs-blue-500) 50%, var(--bs-bg-body)), color-mix(in oklch, var(--bs-blue-500) 75%, var(--bs-bg-body)));
188
+ --bs-primary-contrast: var(--bs-gray-975);
189
+ }
@@ -0,0 +1 @@
1
+ @font-face{font-display:block;font-family:bootstrap-icons;src:url("../font/bootstrap-icons-FRBPO3H7.woff2") format("woff2")}.bi:before,[class*=" bi-"]:before,[class^=bi-]:before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-airplane:before{content:"\f7cd"}.bi-alarm:before{content:"\f102"}.bi-archive:before{content:"\f10d"}.bi-arrow-clockwise:before{content:"\f116"}.bi-arrow-counterclockwise:before{content:"\f117"}.bi-arrow-down:before{content:"\f128"}.bi-arrow-left:before{content:"\f12f"}.bi-arrow-right:before{content:"\f138"}.bi-arrow-up:before{content:"\f148"}.bi-arrows-angle-contract:before{content:"\f149"}.bi-arrows-angle-expand:before{content:"\f14a"}.bi-award:before{content:"\f154"}.bi-bag:before{content:"\f179"}.bi-bank:before{content:"\f62e"}.bi-bar-chart:before{content:"\f17e"}.bi-battery:before{content:"\f188"}.bi-bell:before{content:"\f18a"}.bi-bicycle:before{content:"\f18d"}.bi-book:before{content:"\f194"}.bi-bookmark:before{content:"\f1a2"}.bi-bookmark-fill:before{content:"\f199"}.bi-box:before{content:"\f1c8"}.bi-box-arrow-in-right:before{content:"\f1be"}.bi-box-arrow-right:before{content:"\f1c3"}.bi-briefcase:before{content:"\f1cc"}.bi-brush:before{content:"\f1d8"}.bi-building:before{content:"\f1dd"}.bi-bus-front:before{content:"\f87f"}.bi-c-circle:before{content:"\f7db"}.bi-calendar:before{content:"\f1f6"}.bi-calendar-check:before{content:"\f1e2"}.bi-camera:before{content:"\f220"}.bi-camera-video:before{content:"\f21f"}.bi-car-front:before{content:"\f7e1"}.bi-card-checklist:before{content:"\f224"}.bi-cart:before{content:"\f242"}.bi-cash:before{content:"\f247"}.bi-chat:before{content:"\f268"}.bi-check:before{content:"\f26e"}.bi-check-circle:before{content:"\f26b"}.bi-check-circle-fill:before{content:"\f26a"}.bi-check2-square:before{content:"\f271"}.bi-chevron-down:before{content:"\f282"}.bi-chevron-left:before{content:"\f284"}.bi-chevron-right:before{content:"\f285"}.bi-chevron-up:before{content:"\f286"}.bi-circle:before{content:"\f28a"}.bi-clipboard:before{content:"\f290"}.bi-clock:before{content:"\f293"}.bi-cloud:before{content:"\f2c1"}.bi-cloud-rain:before{content:"\f2b6"}.bi-collection-play:before{content:"\f2cb"}.bi-compass:before{content:"\f2d1"}.bi-copy:before{content:"\f759"}.bi-credit-card:before{content:"\f2dc"}.bi-dash:before{content:"\f2ea"}.bi-display:before{content:"\f302"}.bi-download:before{content:"\f30a"}.bi-droplet:before{content:"\f30d"}.bi-emoji-smile:before{content:"\f327"}.bi-envelope:before{content:"\f32f"}.bi-exclamation-triangle:before{content:"\f33b"}.bi-eye:before{content:"\f341"}.bi-eye-slash:before{content:"\f340"}.bi-file-earmark:before{content:"\f392"}.bi-file-earmark-text:before{content:"\f38b"}.bi-fingerprint:before{content:"\f671"}.bi-fire:before{content:"\f7f6"}.bi-flag:before{content:"\f3cc"}.bi-folder:before{content:"\f3d7"}.bi-funnel:before{content:"\f3e1"}.bi-gear:before{content:"\f3e5"}.bi-geo:before{content:"\f3ea"}.bi-geo-alt:before{content:"\f3e8"}.bi-gift:before{content:"\f3ec"}.bi-globe:before{content:"\f3ee"}.bi-graph-up:before{content:"\f3f2"}.bi-grid:before{content:"\f3fc"}.bi-grip-vertical:before{content:"\f3fe"}.bi-hammer:before{content:"\f3ff"}.bi-hand-thumbs-down:before{content:"\f405"}.bi-hand-thumbs-up:before{content:"\f407"}.bi-hdd-rack:before{content:"\f40f"}.bi-headphones:before{content:"\f413"}.bi-heart:before{content:"\f417"}.bi-hospital:before{content:"\f774"}.bi-hourglass:before{content:"\f421"}.bi-house:before{content:"\f425"}.bi-image:before{content:"\f42a"}.bi-inbox:before{content:"\f42d"}.bi-infinity:before{content:"\f69e"}.bi-info-circle:before{content:"\f431"}.bi-key:before{content:"\f44f"}.bi-keyboard:before{content:"\f451"}.bi-laptop:before{content:"\f456"}.bi-layout-sidebar:before{content:"\f45f"}.bi-lightbulb:before{content:"\f46b"}.bi-lightning:before{content:"\f46f"}.bi-link:before{content:"\f471"}.bi-list:before{content:"\f479"}.bi-list-ul:before{content:"\f478"}.bi-lock:before{content:"\f47b"}.bi-magic:before{content:"\f675"}.bi-map:before{content:"\f47f"}.bi-megaphone:before{content:"\f484"}.bi-mic:before{content:"\f490"}.bi-moon:before{content:"\f497"}.bi-moon-fill:before{content:"\f494"}.bi-music-note:before{content:"\f4a0"}.bi-palette:before{content:"\f4b1"}.bi-paperclip:before{content:"\f4b3"}.bi-pause:before{content:"\f4c4"}.bi-pen:before{content:"\f4c8"}.bi-pencil:before{content:"\f4cb"}.bi-people:before{content:"\f4d0"}.bi-percent:before{content:"\f4d1"}.bi-person:before{content:"\f4e1"}.bi-person-circle:before{content:"\f4d7"}.bi-person-dash:before{content:"\f4d9"}.bi-person-plus:before{content:"\f4dd"}.bi-person-rolodex:before{content:"\f676"}.bi-person-vcard:before{content:"\f8c9"}.bi-phone:before{content:"\f4e7"}.bi-pie-chart:before{content:"\f4e9"}.bi-play:before{content:"\f4f5"}.bi-plus:before{content:"\f4fe"}.bi-power:before{content:"\f4ff"}.bi-printer:before{content:"\f501"}.bi-puzzle:before{content:"\f503"}.bi-qr-code:before{content:"\f6ae"}.bi-question-circle:before{content:"\f505"}.bi-receipt:before{content:"\f50f"}.bi-repeat:before{content:"\f813"}.bi-reply:before{content:"\f520"}.bi-rulers:before{content:"\f523"}.bi-scissors:before{content:"\f528"}.bi-search:before{content:"\f52a"}.bi-send:before{content:"\f6c0"}.bi-share:before{content:"\f52e"}.bi-shield:before{content:"\f53f"}.bi-shop:before{content:"\f543"}.bi-shuffle:before{content:"\f544"}.bi-signpost-split:before{content:"\f549"}.bi-skip-forward:before{content:"\f55e"}.bi-sliders:before{content:"\f56b"}.bi-snow:before{content:"\f56d"}.bi-sort-down:before{content:"\f575"}.bi-sort-up:before{content:"\f57b"}.bi-soundwave:before{content:"\f57c"}.bi-speedometer:before{content:"\f57f"}.bi-square:before{content:"\f584"}.bi-star:before{content:"\f588"}.bi-sticky:before{content:"\f58d"}.bi-stop:before{content:"\f593"}.bi-stopwatch:before{content:"\f597"}.bi-sun:before{content:"\f5a2"}.bi-sun-fill:before{content:"\f5a1"}.bi-table:before{content:"\f5aa"}.bi-tag:before{content:"\f5b0"}.bi-telephone:before{content:"\f5c1"}.bi-terminal:before{content:"\f5c3"}.bi-three-dots:before{content:"\f5d4"}.bi-ticket:before{content:"\f6cb"}.bi-tools:before{content:"\f5db"}.bi-train-front:before{content:"\f81d"}.bi-trash:before{content:"\f5de"}.bi-tree:before{content:"\f5e2"}.bi-trophy:before{content:"\f5e7"}.bi-truck:before{content:"\f5ea"}.bi-unlock:before{content:"\f600"}.bi-upc:before{content:"\f602"}.bi-upload:before{content:"\f603"}.bi-volume-up:before{content:"\f611"}.bi-wallet:before{content:"\f614"}.bi-wifi:before{content:"\f61c"}.bi-window:before{content:"\f620"}.bi-wrench:before{content:"\f621"}.bi-x:before{content:"\f62a"}.bi-x-circle:before{content:"\f623"}.bi-x-lg:before{content:"\f659"}.bi-zoom-in:before{content:"\f62c"}.bi-zoom-out:before{content:"\f62d"}.flow{flex:1;display:flex;flex-direction:column;text-align:center}.flow>header{display:flex;justify-content:center;margin-bottom:2rem}.flow>h1{margin:0 0 .75rem;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;letter-spacing:-.02em}.flow>p{margin:0 0 1.5rem}.flow>footer{flex:none;margin-top:auto;padding-top:2.5rem;display:flex;align-items:baseline;justify-content:center;gap:.5rem;font-size:.875rem}.flow>footer form{display:contents}.flow>footer .btn{font-size:inherit;padding:0;min-height:0}@media(max-width:575px){.flow>header{margin-bottom:1.75rem}}.flow-card{width:100%;max-width:var(--flow-width, 75rem);background:color-mix(in srgb,var(--bs-bg-body) 90%,transparent);border:1px solid var(--bs-primary-border);border-radius:.375rem;box-shadow:-.5rem 1rem 2.25rem -.75rem #06162866}.flow-card .form-label,.flow-card .form-control,.flow-card .invalid-feedback{text-align:center}.flow-card form:has(.bh-field~.bh-field,.form-check~.form-check) :is(.bh-field,.form-check),.flow-card form:has(.bh-field~.bh-field,.form-check~.form-check) .bh-field .form-label,.flow-card form:has(.bh-field~.bh-field,.form-check~.form-check) .bh-field .form-control{text-align:start}.flow-card .form-check{display:flex;align-items:start;gap:1rem;padding-left:0}.flow-card .form-check .form-check-input{flex:none;margin:.25em 0 0}.flow-card .bh-field{display:grid;align-content:start}.flow-card{container-type:inline-size}@container (min-width: 40rem){.flow-card fieldset.d-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem}.flow-card fieldset.d-grid>:not(.bh-field){grid-column:1 / -1}}.flow-card hr{margin-block:2rem}.flow-card .dialog{--bs-dialog-border-color: var(--bs-primary-border) }.flow:has(.chat-thread,.flow-scroll,.flow-middle){flex:none;height:calc(100svh - 2rem)}.flow-card:has(.chat-thread,.flow-scroll,.flow-middle){display:flex;flex-direction:column;flex:1;min-height:15rem;overflow:auto}.flow-card .chat-thread,.flow-card>:has(.flow-scroll){display:flex;flex-direction:column;flex:1;min-height:0}.flow-card .chat,.flow-card .flow-scroll{flex:1;min-height:0;overflow-y:auto}.flow-card .chat-ask{text-align:center}.flow-card .chat-bubble{text-align:start}.flow-card .flow-middle{flex:1;display:flex;flex-direction:column;justify-content:center}@media(width<768px){.flow-card:has(.chat-thread){width:auto;margin-inline:calc(50% - 50vw);padding-inline:calc(50vw - 50%);border-inline:0;border-radius:0}}.house-page{min-height:100svh}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url("../font/ibm-plex-sans-500-vietnamese-24B6BSND.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url("../font/ibm-plex-sans-500-latin-ext-X4QHZICY.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url("../font/ibm-plex-sans-500-latin-LA7QXWWL.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.plex{font-family:IBM Plex Sans,Helvetica Neue,Arial,sans-serif;font-weight:500;letter-spacing:.01em}.lockup{white-space:nowrap;line-height:1;color:light-dark(#0b1e3a,#cfe3f6);text-decoration:none}.lockup .easy,.lockup:hover{color:#5aa9e6}.lockup:hover .easy{color:inherit}.lockup:hover svg [stroke]{stroke:currentColor}.lockup{font-size:20px}.lockup svg{position:relative;vertical-align:baseline;margin-right:.29em}:root{--tool-alpha: .16;--tool-ground: light-dark(#c9d9ea, #0c2338);--tool-ink: light-dark(#10314f, #cbdff2);--tool-ink-alt: light-dark(#19507f, #a5c6e6);--tool-size: 52px;--tool-drift: 300s}@media(min-width:768px){:root{--tool-size: 60px }}[data-controller~=wall]{position:relative;isolation:isolate;background:var(--tool-ground, #c9d9ea)}.tools{position:fixed;inset:0;overflow:hidden;pointer-events:none;background:var(--tool-ground, #c9d9ea);z-index:-1}.tools-grid{position:absolute;inset:0;opacity:var(--tool-alpha);background-image:linear-gradient(to right,var(--tool-ink-alt) 1px,transparent 1px),linear-gradient(to bottom,var(--tool-ink-alt) 1px,transparent 1px);background-size:20px 20px}.tools-cols{position:absolute;inset:0;display:flex}.tools-col{position:relative;flex:1;height:200%;animation:tool-drift calc(var(--tool-drift, 300s) * var(--col-rate, 1)) linear infinite}@media(width<1536px){.tools-col:nth-child(n+7){display:none}}@media(width<1280px){.tools-col:nth-child(n+6){display:none}}@media(width<1024px){.tools-col:nth-child(n+5){display:none}}@media(width<768px){.tools-col:nth-child(n+4){display:none}}@media(width<576px){.tools-col:nth-child(n+3){display:none}}@keyframes tool-drift{0%{translate:0 0}to{translate:0 -50%}}@media(prefers-reduced-motion:reduce){.tools-col{animation:none}}.tool{position:absolute;left:50%;width:var(--tool-size, 52px);height:var(--tool-size, 52px);translate:-50% -50%;color:var(--tool-ink, #10314f);opacity:var(--tool-alpha);fill:none;stroke:currentColor;stroke-width:28;stroke-linecap:butt;stroke-linejoin:miter}.tool-alt{color:var(--tool-ink-alt)}
@@ -0,0 +1,87 @@
1
+ <!doctype html>
2
+ <html lang='en'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>autopilot</title>
7
+ <meta name='color-scheme' content='light dark'>
8
+ <link rel='icon' href='https://design.easyfaa.com/favicon/autopilot.svg' type='image/svg+xml'>
9
+ <link rel='icon' href='https://design.easyfaa.com/favicon/autopilot-96.png' type='image/png' sizes='96x96'>
10
+ <link rel='apple-touch-icon' href='https://design.easyfaa.com/favicon/autopilot-180.png'>
11
+ <style>
12
+ @font-face {
13
+ font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
14
+ src: url('https://design.easyfaa.com/font/ibm-plex-sans-500-vietnamese.woff2') format('woff2');
15
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
16
+ }
17
+ @font-face {
18
+ font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
19
+ src: url('https://design.easyfaa.com/font/ibm-plex-sans-500-latin-ext.woff2') format('woff2');
20
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
21
+ }
22
+ @font-face {
23
+ font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
24
+ src: url('https://design.easyfaa.com/font/ibm-plex-sans-500-latin.woff2') format('woff2');
25
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
26
+ }
27
+ :root {
28
+ --bg: #fbfcfe;
29
+ --ink: #0b1e3a;
30
+ --mark: #5aa9e6;
31
+ }
32
+ @media (prefers-color-scheme: dark) {
33
+ :root {
34
+ --bg: #0f1622;
35
+ --ink: #cfe3f6;
36
+ }
37
+ }
38
+ * { box-sizing: border-box; }
39
+ body {
40
+ margin: 0;
41
+ min-height: 100svh;
42
+ display: flex;
43
+ flex-direction: column;
44
+ background: var(--bg);
45
+ font-family: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
46
+ font-weight: 500;
47
+ letter-spacing: 0.01em;
48
+ }
49
+ main {
50
+ flex: 1;
51
+ display: grid;
52
+ place-items: center;
53
+ }
54
+ .lockup {
55
+ white-space: nowrap;
56
+ color: var(--ink);
57
+ line-height: 1;
58
+ }
59
+ /* The mark on the text baseline, sized and nudged by its own numbers, in ems so the
60
+ same pair reads right at both sizes on this page. */
61
+ .lockup svg {
62
+ position: relative;
63
+ vertical-align: baseline;
64
+ margin-right: 0.29em;
65
+ }
66
+ main .lockup { font-size: 48px; }
67
+ footer {
68
+ position: sticky;
69
+ bottom: 0;
70
+ background: var(--bg);
71
+ display: flex;
72
+ justify-content: center;
73
+ padding: 20px 0 26px;
74
+ }
75
+ footer .lockup { font-size: 20px; }
76
+ footer .easy { color: var(--mark); }
77
+ </style>
78
+ </head>
79
+ <body>
80
+ <main>
81
+ <p class='lockup'><svg aria-hidden='true' style='width: 0.9658em; height: 0.9658em; top: 0.1129em' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"><circle cx="256" cy="256" r="190"/><path d="M66 256 L206 256"/><path d="M306 256 L446 256"/><path d="M256 306 L256 446"/><circle cx="256" cy="256" r="50"/></g></svg>autopilot</p>
82
+ </main>
83
+ <footer>
84
+ <p class='lockup'><svg aria-hidden='true' style='width: 0.8em; height: 0.8em; top: 0.16em' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"><path d="M74.5 340H437.5A200 200 0 0 1 74.5 340Z" fill="#0b1e3a" stroke="none"/><circle cx="256" cy="256" r="200"/><path d="M150 256H216L256 296L296 256H362"/></g></svg><span class='easy'>easy</span>faa</p>
85
+ </footer>
86
+ </body>
87
+ </html>
@@ -0,0 +1,87 @@
1
+ <!doctype html>
2
+ <html lang='en'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1'>
6
+ <title>cube</title>
7
+ <meta name='color-scheme' content='light dark'>
8
+ <link rel='icon' href='https://design.easyfaa.com/favicon/cube.svg' type='image/svg+xml'>
9
+ <link rel='icon' href='https://design.easyfaa.com/favicon/cube-96.png' type='image/png' sizes='96x96'>
10
+ <link rel='apple-touch-icon' href='https://design.easyfaa.com/favicon/cube-180.png'>
11
+ <style>
12
+ @font-face {
13
+ font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
14
+ src: url('https://design.easyfaa.com/font/ibm-plex-sans-500-vietnamese.woff2') format('woff2');
15
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
16
+ }
17
+ @font-face {
18
+ font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
19
+ src: url('https://design.easyfaa.com/font/ibm-plex-sans-500-latin-ext.woff2') format('woff2');
20
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
21
+ }
22
+ @font-face {
23
+ font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
24
+ src: url('https://design.easyfaa.com/font/ibm-plex-sans-500-latin.woff2') format('woff2');
25
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
26
+ }
27
+ :root {
28
+ --bg: #fbfcfe;
29
+ --ink: #0b1e3a;
30
+ --mark: #5aa9e6;
31
+ }
32
+ @media (prefers-color-scheme: dark) {
33
+ :root {
34
+ --bg: #0f1622;
35
+ --ink: #cfe3f6;
36
+ }
37
+ }
38
+ * { box-sizing: border-box; }
39
+ body {
40
+ margin: 0;
41
+ min-height: 100svh;
42
+ display: flex;
43
+ flex-direction: column;
44
+ background: var(--bg);
45
+ font-family: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
46
+ font-weight: 500;
47
+ letter-spacing: 0.01em;
48
+ }
49
+ main {
50
+ flex: 1;
51
+ display: grid;
52
+ place-items: center;
53
+ }
54
+ .lockup {
55
+ white-space: nowrap;
56
+ color: var(--ink);
57
+ line-height: 1;
58
+ }
59
+ /* The mark on the text baseline, sized and nudged by its own numbers, in ems so the
60
+ same pair reads right at both sizes on this page. */
61
+ .lockup svg {
62
+ position: relative;
63
+ vertical-align: baseline;
64
+ margin-right: 0.29em;
65
+ }
66
+ main .lockup { font-size: 48px; }
67
+ footer {
68
+ position: sticky;
69
+ bottom: 0;
70
+ background: var(--bg);
71
+ display: flex;
72
+ justify-content: center;
73
+ padding: 20px 0 26px;
74
+ }
75
+ footer .lockup { font-size: 20px; }
76
+ footer .easy { color: var(--mark); }
77
+ </style>
78
+ </head>
79
+ <body>
80
+ <main>
81
+ <p class='lockup'><svg aria-hidden='true' style='width: 0.8117em; height: 0.8117em; top: 0.0358em' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"><path d="M256 302Q256 256 295.8 233L406.2 169.3Q446 146.3 446 192.3V319.7Q446 365.7 406.2 388.7L295.8 452.4Q256 475.4 256 429.4Z" fill="#0b1e3a"/><path d="M216.2 59.6Q256 36.6 295.8 59.6L406.2 123.3Q446 146.3 446 192.3V319.7Q446 365.7 406.2 388.7L295.8 452.4Q256 475.4 216.2 452.4L105.8 388.7Q66 365.7 66 319.7V192.3Q66 146.3 105.8 123.3Z"/><path d="M256 256 95.4 163.3"/><path d="M256 256 416.6 163.3"/><path d="M256 256V441.4"/></g></svg>cube</p>
82
+ </main>
83
+ <footer>
84
+ <p class='lockup'><svg aria-hidden='true' style='width: 0.8em; height: 0.8em; top: 0.16em' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"><path d="M74.5 340H437.5A200 200 0 0 1 74.5 340Z" fill="#0b1e3a" stroke="none"/><circle cx="256" cy="256" r="200"/><path d="M150 256H216L256 296L296 256H362"/></g></svg><span class='easy'>easy</span>faa</p>
85
+ </footer>
86
+ </body>
87
+ </html>