index.css 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. :root {
  2. /* Dark mode colors - charmtone dark palette */
  3. --bg: #201f26;
  4. --bg-secondary: #2d2c35;
  5. --text: #fffaf1;
  6. --text-muted: #858392;
  7. /* Charmtone colors (global - same in both light and dark modes) */
  8. --charple: #6b50ff;
  9. --cherry: #ff388b;
  10. --julep: #00ffb2;
  11. --urchin: #c337e0;
  12. --butter: #fffaf1;
  13. --squid: #858392;
  14. --pepper: #201f26;
  15. --iron: #4d4c57;
  16. --tuna: #ff6daa;
  17. --uni: #ff937d;
  18. --coral: #ff577d;
  19. --violet: #c259ff;
  20. --malibu: #00a4ff;
  21. --hazy: #8b75ff;
  22. }
  23. /* Light mode colors - charmtone light palette */
  24. @media (prefers-color-scheme: light) {
  25. :root {
  26. --bg: #f0f0f0;
  27. --bg-secondary: #fbfbfb;
  28. --text: #201f26;
  29. --text-muted: #4d4c57;
  30. }
  31. }
  32. * {
  33. margin: 0;
  34. padding: 0;
  35. box-sizing: border-box;
  36. }
  37. body {
  38. font-family:
  39. -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
  40. sans-serif;
  41. background: var(--bg);
  42. color: var(--text);
  43. line-height: 1.6;
  44. padding: 2rem 1rem;
  45. }
  46. .container {
  47. max-width: 1200px;
  48. margin: 0 auto;
  49. }
  50. .header-wrapper {
  51. max-width: 1200px;
  52. margin: 0 auto 2rem;
  53. }
  54. .header-wrapper a {
  55. display: block;
  56. text-decoration: none;
  57. }
  58. .header-content {
  59. display: flex;
  60. align-items: center;
  61. width: 100%;
  62. }
  63. .header-svg {
  64. flex-grow: 1;
  65. flex-shrink: 1;
  66. min-width: 0;
  67. overflow: hidden;
  68. height: 70px;
  69. display: flex;
  70. align-items: center;
  71. }
  72. .header-svg svg {
  73. height: 70px;
  74. width: auto;
  75. min-width: 1300px;
  76. display: block;
  77. pointer-events: none;
  78. }
  79. .heartbit-svg {
  80. flex-shrink: 0;
  81. width: 70px;
  82. flex-basis: 70px;
  83. margin-left: 1rem;
  84. }
  85. .heartbit-svg svg {
  86. width: 100%;
  87. height: auto;
  88. display: block;
  89. }
  90. .header-info {
  91. margin-bottom: 2rem;
  92. font-size: 0.875rem;
  93. color: var(--hazy);
  94. font-family: "JetBrains Mono", "SF Mono", Consolas, monospace;
  95. }
  96. .stats-grid {
  97. display: flex;
  98. flex-wrap: wrap;
  99. gap: 1rem;
  100. margin-bottom: 2rem;
  101. width: 100%;
  102. }
  103. .stat-card {
  104. background: var(--bg-secondary);
  105. border-radius: 12px;
  106. padding: 1.5rem;
  107. flex: 1 1 150px;
  108. max-width: calc((100% - 5rem) / 6);
  109. }
  110. @media (prefers-color-scheme: light) {
  111. .stat-card {
  112. background: var(--butter);
  113. }
  114. }
  115. @media (max-width: 1024px) {
  116. .stat-card {
  117. max-width: calc((100% - 2rem) / 3);
  118. }
  119. }
  120. @media (max-width: 600px) {
  121. .stat-card {
  122. max-width: calc((100% - 1rem) / 2);
  123. }
  124. }
  125. .stat-card h3 {
  126. font-size: 0.75rem;
  127. color: var(--text-muted);
  128. text-transform: uppercase;
  129. letter-spacing: 0.05em;
  130. margin-bottom: 0.5rem;
  131. }
  132. .stat-card .value {
  133. font-size: 2rem;
  134. font-weight: 700;
  135. color: var(--butter);
  136. white-space: nowrap;
  137. }
  138. @media (prefers-color-scheme: light) {
  139. .stat-card .value {
  140. color: var(--pepper);
  141. }
  142. }
  143. .charts-grid {
  144. display: flex;
  145. flex-direction: column;
  146. gap: 1.5rem;
  147. margin-bottom: 2rem;
  148. width: 100%;
  149. }
  150. .chart-card {
  151. background: var(--bg-secondary);
  152. border-radius: 12px;
  153. padding: 1.5rem;
  154. width: 100%;
  155. box-sizing: border-box;
  156. }
  157. @media (prefers-color-scheme: light) {
  158. .chart-card {
  159. background: var(--butter);
  160. }
  161. }
  162. .chart-card.full-width {
  163. width: 100%;
  164. }
  165. .chart-row {
  166. display: flex;
  167. flex-wrap: wrap;
  168. gap: 1.5rem;
  169. width: 100%;
  170. }
  171. .chart-row .chart-card {
  172. flex: 1 1 300px;
  173. max-width: calc((100% - 1.5rem) / 2);
  174. }
  175. .chart-card h2 {
  176. font-size: 1.25rem;
  177. margin-bottom: 1rem;
  178. color: var(--text);
  179. }
  180. .chart-container {
  181. position: relative;
  182. height: 300px;
  183. }
  184. .chart-container.tall {
  185. height: 400px;
  186. }
  187. table {
  188. width: 100%;
  189. border-collapse: collapse;
  190. margin-top: 1rem;
  191. }
  192. th,
  193. td {
  194. text-align: left;
  195. padding: 0.75rem;
  196. border-bottom: 1px solid var(--border);
  197. }
  198. th {
  199. color: var(--text-muted);
  200. font-weight: 500;
  201. font-size: 0.875rem;
  202. }
  203. td {
  204. font-family: "JetBrains Mono", "SF Mono", Consolas, monospace;
  205. }
  206. .model-tag {
  207. background: var(--bg);
  208. padding: 0.25rem 0.5rem;
  209. border-radius: 4px;
  210. font-size: 0.875rem;
  211. }
  212. .footer-container {
  213. max-width: 1200px;
  214. margin: 2rem auto 0;
  215. }
  216. .footer-container svg {
  217. width: 100%;
  218. height: auto;
  219. display: block;
  220. }
  221. /* Override charm brand colors in footer */
  222. .footer-container .st2 {
  223. fill: #fffaf1 !important;
  224. }
  225. @media (prefers-color-scheme: light) {
  226. /* Override charm brand colors in footer */
  227. .footer-container .st2 {
  228. fill: #644ced !important;
  229. }
  230. }