@beforesemicolon/builder 1.8.24 → 2.0.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 (184) hide show
  1. package/README.md +40 -915
  2. package/dist/cjs/build-modules.js +1 -1
  3. package/dist/cjs/index.js +1 -1
  4. package/dist/esm/build-modules.js +1 -1
  5. package/dist/esm/index.js +1 -1
  6. package/dist/types/build-modules.d.ts +2 -21
  7. package/dist/types/index.d.ts +0 -1
  8. package/package.json +5 -25
  9. package/dist/cjs/.declarations.d.js +0 -1
  10. package/dist/cjs/docs/markdown-layout/index.js +0 -1
  11. package/dist/cjs/docs/markdown-layout/marked-extension.js +0 -1
  12. package/dist/cjs/docs/markdown-layout/parser.js +0 -7
  13. package/dist/cjs/docs/markdown-layout/renderer.js +0 -1
  14. package/dist/cjs/docs/markdown-layout/types.js +0 -1
  15. package/dist/cjs/docs/renderer/code.js +0 -11
  16. package/dist/cjs/docs/renderer/heading.js +0 -1
  17. package/dist/cjs/docs/renderer/index.js +0 -1
  18. package/dist/cjs/docs/renderer/link.js +0 -1
  19. package/dist/cjs/docs/run.js +0 -78
  20. package/dist/cjs/docs/templates/default.template.js +0 -17
  21. package/dist/cjs/docs/templates/fading-citrus/README.md +0 -822
  22. package/dist/cjs/docs/templates/fading-citrus/assets/facebook.svg +0 -8
  23. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/android-chrome-192x192.png +0 -0
  24. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/android-chrome-512x512.png +0 -0
  25. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/apple-touch-icon.png +0 -0
  26. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon-16x16.png +0 -0
  27. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon-32x32.png +0 -0
  28. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon.ico +0 -0
  29. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/site.webmanifest +0 -19
  30. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Black.otf +0 -0
  31. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BlackItalic.otf +0 -0
  32. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Bold.otf +0 -0
  33. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BoldItalic.otf +0 -0
  34. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBold.otf +0 -0
  35. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBoldItalic.otf +0 -0
  36. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLight.otf +0 -0
  37. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLightItalic.otf +0 -0
  38. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Italic.otf +0 -0
  39. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Light.otf +0 -0
  40. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-LightItalic.otf +0 -0
  41. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Medium.otf +0 -0
  42. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-MediumItalic.otf +0 -0
  43. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Regular.otf +0 -0
  44. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBold.otf +0 -0
  45. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBoldItalic.otf +0 -0
  46. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Thin.otf +0 -0
  47. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ThinItalic.otf +0 -0
  48. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/SIL Open Font License.txt +0 -43
  49. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/Apache License.txt +0 -201
  50. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Bold.ttf +0 -0
  51. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-BoldItalic.ttf +0 -0
  52. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBold.ttf +0 -0
  53. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf +0 -0
  54. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Italic.ttf +0 -0
  55. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Light.ttf +0 -0
  56. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-LightItalic.ttf +0 -0
  57. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Regular.ttf +0 -0
  58. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Semibold.ttf +0 -0
  59. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-SemiboldItalic.ttf +0 -0
  60. package/dist/cjs/docs/templates/fading-citrus/assets/instagram.svg +0 -28
  61. package/dist/cjs/docs/templates/fading-citrus/assets/logo.dark.svg +0 -8
  62. package/dist/cjs/docs/templates/fading-citrus/assets/logo.light.svg +0 -8
  63. package/dist/cjs/docs/templates/fading-citrus/assets/logo.svg +0 -8
  64. package/dist/cjs/docs/templates/fading-citrus/assets/medium2.svg +0 -18
  65. package/dist/cjs/docs/templates/fading-citrus/assets/reddit.svg +0 -16
  66. package/dist/cjs/docs/templates/fading-citrus/assets/twitter.svg +0 -11
  67. package/dist/cjs/docs/templates/fading-citrus/assets/youtube.svg +0 -10
  68. package/dist/cjs/docs/templates/fading-citrus/layouts/_code-snippet.js +0 -128
  69. package/dist/cjs/docs/templates/fading-citrus/layouts/_footer.js +0 -72
  70. package/dist/cjs/docs/templates/fading-citrus/layouts/_head-meta.js +0 -235
  71. package/dist/cjs/docs/templates/fading-citrus/layouts/_header.js +0 -91
  72. package/dist/cjs/docs/templates/fading-citrus/layouts/_layout-utils.js +0 -109
  73. package/dist/cjs/docs/templates/fading-citrus/layouts/document.js +0 -100
  74. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-cta.js +0 -30
  75. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-ecosystem.js +0 -51
  76. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-features.js +0 -25
  77. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-hero.js +0 -89
  78. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-install.js +0 -116
  79. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-showcase.js +0 -133
  80. package/dist/cjs/docs/templates/fading-citrus/layouts/landing.js +0 -29
  81. package/dist/cjs/docs/templates/fading-citrus/stylesheets/common.css +0 -900
  82. package/dist/cjs/docs/templates/fading-citrus/stylesheets/documentation.css +0 -562
  83. package/dist/cjs/docs/templates/fading-citrus/stylesheets/fonts.css +0 -1
  84. package/dist/cjs/docs/templates/fading-citrus/stylesheets/github-dark.hightlighter.css +0 -107
  85. package/dist/cjs/docs/templates/fading-citrus/stylesheets/github-light.hightlighter.css +0 -107
  86. package/dist/cjs/docs/templates/fading-citrus/stylesheets/hybrid.hightlighter.css +0 -102
  87. package/dist/cjs/docs/templates/fading-citrus/stylesheets/landing.css +0 -1563
  88. package/dist/cjs/docs/templates/fading-citrus/stylesheets/normalize.css +0 -351
  89. package/dist/cjs/docs/templates/fading-citrus/template.config.js +0 -233
  90. package/dist/cjs/docs/types.js +0 -1
  91. package/dist/esm/.declarations.d.js +0 -0
  92. package/dist/esm/docs/markdown-layout/index.js +0 -1
  93. package/dist/esm/docs/markdown-layout/marked-extension.js +0 -1
  94. package/dist/esm/docs/markdown-layout/parser.js +0 -7
  95. package/dist/esm/docs/markdown-layout/renderer.js +0 -1
  96. package/dist/esm/docs/markdown-layout/types.js +0 -0
  97. package/dist/esm/docs/renderer/code.js +0 -11
  98. package/dist/esm/docs/renderer/heading.js +0 -1
  99. package/dist/esm/docs/renderer/index.js +0 -1
  100. package/dist/esm/docs/renderer/link.js +0 -1
  101. package/dist/esm/docs/run.js +0 -78
  102. package/dist/esm/docs/templates/default.template.js +0 -17
  103. package/dist/esm/docs/templates/fading-citrus/README.md +0 -822
  104. package/dist/esm/docs/templates/fading-citrus/assets/facebook.svg +0 -8
  105. package/dist/esm/docs/templates/fading-citrus/assets/favicon/android-chrome-192x192.png +0 -0
  106. package/dist/esm/docs/templates/fading-citrus/assets/favicon/android-chrome-512x512.png +0 -0
  107. package/dist/esm/docs/templates/fading-citrus/assets/favicon/apple-touch-icon.png +0 -0
  108. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon-16x16.png +0 -0
  109. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon-32x32.png +0 -0
  110. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon.ico +0 -0
  111. package/dist/esm/docs/templates/fading-citrus/assets/favicon/site.webmanifest +0 -19
  112. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Black.otf +0 -0
  113. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BlackItalic.otf +0 -0
  114. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Bold.otf +0 -0
  115. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BoldItalic.otf +0 -0
  116. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBold.otf +0 -0
  117. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBoldItalic.otf +0 -0
  118. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLight.otf +0 -0
  119. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLightItalic.otf +0 -0
  120. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Italic.otf +0 -0
  121. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Light.otf +0 -0
  122. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-LightItalic.otf +0 -0
  123. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Medium.otf +0 -0
  124. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-MediumItalic.otf +0 -0
  125. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Regular.otf +0 -0
  126. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBold.otf +0 -0
  127. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBoldItalic.otf +0 -0
  128. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Thin.otf +0 -0
  129. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ThinItalic.otf +0 -0
  130. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/SIL Open Font License.txt +0 -43
  131. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/Apache License.txt +0 -201
  132. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Bold.ttf +0 -0
  133. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-BoldItalic.ttf +0 -0
  134. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBold.ttf +0 -0
  135. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf +0 -0
  136. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Italic.ttf +0 -0
  137. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Light.ttf +0 -0
  138. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-LightItalic.ttf +0 -0
  139. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Regular.ttf +0 -0
  140. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Semibold.ttf +0 -0
  141. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-SemiboldItalic.ttf +0 -0
  142. package/dist/esm/docs/templates/fading-citrus/assets/instagram.svg +0 -28
  143. package/dist/esm/docs/templates/fading-citrus/assets/logo.dark.svg +0 -8
  144. package/dist/esm/docs/templates/fading-citrus/assets/logo.light.svg +0 -8
  145. package/dist/esm/docs/templates/fading-citrus/assets/logo.svg +0 -8
  146. package/dist/esm/docs/templates/fading-citrus/assets/medium2.svg +0 -18
  147. package/dist/esm/docs/templates/fading-citrus/assets/reddit.svg +0 -16
  148. package/dist/esm/docs/templates/fading-citrus/assets/twitter.svg +0 -11
  149. package/dist/esm/docs/templates/fading-citrus/assets/youtube.svg +0 -10
  150. package/dist/esm/docs/templates/fading-citrus/layouts/_code-snippet.js +0 -128
  151. package/dist/esm/docs/templates/fading-citrus/layouts/_footer.js +0 -72
  152. package/dist/esm/docs/templates/fading-citrus/layouts/_head-meta.js +0 -235
  153. package/dist/esm/docs/templates/fading-citrus/layouts/_header.js +0 -91
  154. package/dist/esm/docs/templates/fading-citrus/layouts/_layout-utils.js +0 -109
  155. package/dist/esm/docs/templates/fading-citrus/layouts/document.js +0 -100
  156. package/dist/esm/docs/templates/fading-citrus/layouts/landing-cta.js +0 -30
  157. package/dist/esm/docs/templates/fading-citrus/layouts/landing-ecosystem.js +0 -51
  158. package/dist/esm/docs/templates/fading-citrus/layouts/landing-features.js +0 -25
  159. package/dist/esm/docs/templates/fading-citrus/layouts/landing-hero.js +0 -89
  160. package/dist/esm/docs/templates/fading-citrus/layouts/landing-install.js +0 -116
  161. package/dist/esm/docs/templates/fading-citrus/layouts/landing-showcase.js +0 -133
  162. package/dist/esm/docs/templates/fading-citrus/layouts/landing.js +0 -29
  163. package/dist/esm/docs/templates/fading-citrus/stylesheets/common.css +0 -900
  164. package/dist/esm/docs/templates/fading-citrus/stylesheets/documentation.css +0 -562
  165. package/dist/esm/docs/templates/fading-citrus/stylesheets/fonts.css +0 -1
  166. package/dist/esm/docs/templates/fading-citrus/stylesheets/github-dark.hightlighter.css +0 -107
  167. package/dist/esm/docs/templates/fading-citrus/stylesheets/github-light.hightlighter.css +0 -107
  168. package/dist/esm/docs/templates/fading-citrus/stylesheets/hybrid.hightlighter.css +0 -102
  169. package/dist/esm/docs/templates/fading-citrus/stylesheets/landing.css +0 -1563
  170. package/dist/esm/docs/templates/fading-citrus/stylesheets/normalize.css +0 -351
  171. package/dist/esm/docs/templates/fading-citrus/template.config.js +0 -233
  172. package/dist/esm/docs/types.js +0 -0
  173. package/dist/types/docs/markdown-layout/index.d.ts +0 -4
  174. package/dist/types/docs/markdown-layout/marked-extension.d.ts +0 -9
  175. package/dist/types/docs/markdown-layout/parser.d.ts +0 -12
  176. package/dist/types/docs/markdown-layout/renderer.d.ts +0 -3
  177. package/dist/types/docs/markdown-layout/types.d.ts +0 -36
  178. package/dist/types/docs/renderer/code.d.ts +0 -2
  179. package/dist/types/docs/renderer/heading.d.ts +0 -2
  180. package/dist/types/docs/renderer/index.d.ts +0 -3
  181. package/dist/types/docs/renderer/link.d.ts +0 -2
  182. package/dist/types/docs/run.d.ts +0 -19
  183. package/dist/types/docs/templates/default.template.d.ts +0 -3
  184. package/dist/types/docs/types.d.ts +0 -107
@@ -1,1563 +0,0 @@
1
- @import 'common.css?v=20260621exact';
2
-
3
- /* Hero Section */
4
- .hero-section {
5
- min-height: 760px;
6
- padding: 88px 0 0;
7
- background-color: var(--background);
8
- background-image: var(--gradient-hero);
9
- position: relative;
10
- overflow: hidden;
11
- }
12
-
13
- .hero-section > .bg-grid,
14
- .hero-section > .hero-glow {
15
- position: absolute;
16
- inset: 0;
17
- pointer-events: none;
18
- }
19
-
20
- .hero-glow {
21
- background:
22
- radial-gradient(
23
- circle at 42% 30%,
24
- var(--primary-soft),
25
- transparent 38%
26
- ),
27
- radial-gradient(circle at 68% 48%, var(--accent-soft), transparent 34%);
28
- opacity: 0.95;
29
- }
30
-
31
- .hero-container {
32
- position: relative;
33
- z-index: 1;
34
- display: grid;
35
- grid-template-columns: 1.2fr 1fr;
36
- gap: 70px;
37
- align-items: center;
38
- }
39
-
40
- .hero-content {
41
- display: flex;
42
- flex-direction: column;
43
- align-items: flex-start;
44
- }
45
-
46
- .version-badge {
47
- display: inline-flex;
48
- align-items: center;
49
- gap: 8px;
50
- background: var(--surface-muted);
51
- border: 1px solid var(--surface-border);
52
- padding: 6px 12px;
53
- border-radius: 9999px;
54
- color: var(--muted-foreground);
55
- font-size: 0.85rem;
56
- font-family: var(--font-mono);
57
- text-decoration: none;
58
- transition: all 0.2s ease;
59
- margin-bottom: 26px;
60
- box-shadow: inset 0 1px 0 0 var(--surface-border-strong);
61
- }
62
-
63
- .version-badge:hover {
64
- border-color: var(--primary);
65
- background: var(--primary-softer);
66
- color: var(--foreground);
67
- }
68
-
69
- .version-badge svg {
70
- color: var(--primary);
71
- }
72
-
73
- .hero-title {
74
- font-size: clamp(4.8rem, 5.35vw, 5.45rem);
75
- font-weight: 850;
76
- line-height: 1.05;
77
- letter-spacing: 0;
78
- margin-bottom: 24px;
79
- }
80
-
81
- .hero-subtitle {
82
- font-size: 1.06rem;
83
- line-height: 1.55;
84
- color: var(--muted-foreground);
85
- margin-bottom: 40px;
86
- max-width: 560px;
87
- }
88
-
89
- .hero-subtitle strong {
90
- color: var(--foreground);
91
- font-weight: 500;
92
- }
93
-
94
- .hero-subtitle a {
95
- color: var(--primary);
96
- font-weight: 500;
97
- border-bottom: 1px dashed var(--primary-border);
98
- }
99
-
100
- .hero-subtitle a:hover {
101
- color: var(--primary-glow);
102
- border-bottom-style: solid;
103
- border-bottom-color: var(--primary-glow);
104
- }
105
-
106
- .hero-actions {
107
- display: flex;
108
- gap: 14px;
109
- flex-wrap: wrap;
110
- margin-bottom: 48px;
111
- }
112
-
113
- .btn-primary,
114
- .tab-trigger.active {
115
- --tw-gradient-position: to right in oklab;
116
- background: linear-gradient(
117
- var(--tw-gradient-position),
118
- var(--primary),
119
- var(--primary-foreground)
120
- );
121
- color: var(--primary-foreground);
122
- font-weight: 600;
123
- box-shadow: 0 18px 40px -24px
124
- color-mix(in oklch, var(--primary) 85%, transparent);
125
- }
126
-
127
- .btn-primary {
128
- display: inline-flex;
129
- align-items: center;
130
- justify-content: center;
131
- gap: 9px;
132
- height: 48px;
133
- padding: 0 24px;
134
- border-radius: 10px;
135
- transition: all 0.2s var(--transition-smooth);
136
- }
137
-
138
- .btn-primary:hover {
139
- transform: scale(1.02);
140
- color: var(--primary-foreground);
141
- box-shadow: 0 0 35px -5px
142
- color-mix(in oklch, var(--primary) 70%, transparent);
143
- background: var(--primary);
144
- }
145
-
146
- .btn-primary svg {
147
- transition: transform 0.2s ease;
148
- }
149
-
150
- .btn-primary:hover svg {
151
- transform: translateX(3px);
152
- }
153
-
154
- .btn-secondary {
155
- display: inline-flex;
156
- align-items: center;
157
- background: var(--surface-muted);
158
- border: 1px solid var(--surface-border);
159
- color: var(--foreground);
160
- height: 48px;
161
- padding: 0 24px;
162
- border-radius: 10px;
163
- font-weight: 500;
164
- box-shadow: var(--shadow-card);
165
- transition: all 0.2s ease;
166
- }
167
-
168
- .btn-secondary:hover {
169
- border-color: var(--surface-border-strong);
170
- color: var(--foreground);
171
- background: var(--surface-hover);
172
- }
173
-
174
- .hero-stats {
175
- display: flex;
176
- gap: 32px;
177
- }
178
-
179
- .stat-item {
180
- display: flex;
181
- flex-direction: column;
182
- }
183
-
184
- .stat-value {
185
- font-family: var(--font-mono);
186
- font-size: 2.25rem;
187
- font-weight: 700;
188
- line-height: 1;
189
- }
190
-
191
- .stat-label {
192
- font-size: 0.8rem;
193
- color: var(--muted-foreground);
194
- text-transform: uppercase;
195
- letter-spacing: 0.05rem;
196
- margin-top: 4px;
197
- }
198
-
199
- .stat-divider {
200
- width: 1px;
201
- height: 36px;
202
- background: var(--border);
203
- }
204
-
205
- .hero-code-panel {
206
- position: relative;
207
- width: 100%;
208
- min-width: 0;
209
- top: 48px;
210
- }
211
-
212
- .hero-code-panel .glow-container {
213
- position: absolute;
214
- width: 300px;
215
- height: 300px;
216
- top: 50%;
217
- left: 50%;
218
- transform: translate(-50%, -50%);
219
- z-index: -1;
220
- opacity: 0.55;
221
- }
222
-
223
- .hero-code-panel .code-snippet {
224
- margin: 0;
225
- animation: float-up 0.8s var(--transition-smooth) 0.15s forwards;
226
- opacity: 0;
227
- border-radius: 14px;
228
- min-width: 0;
229
- }
230
-
231
- .hero-code-panel .code-snippet .content {
232
- min-height: 300px;
233
- }
234
-
235
- .hero-code-panel .code-snippet pre {
236
- font-size: 0.86rem;
237
- line-height: 1.75;
238
- }
239
-
240
- /* Products Section */
241
- .products-section {
242
- padding: 72px 25px 80px;
243
- }
244
-
245
- .section-header {
246
- margin-bottom: 48px;
247
- display: flex;
248
- flex-direction: column;
249
- align-items: flex-start;
250
- max-width: 650px;
251
- }
252
-
253
- .section-header.center {
254
- align-items: center;
255
- text-align: center;
256
- margin-left: auto;
257
- margin-right: auto;
258
- }
259
-
260
- .section-tag {
261
- font-size: 0.8rem;
262
- color: var(--primary);
263
- text-transform: uppercase;
264
- letter-spacing: 0.15rem;
265
- margin-bottom: 12px;
266
- display: inline-block;
267
- }
268
-
269
- .section-header h2 {
270
- font-size: 2.5rem;
271
- font-weight: 800;
272
- letter-spacing: -0.02rem;
273
- margin-bottom: 16px;
274
- }
275
-
276
- .section-header p {
277
- font-size: 1.1rem;
278
- color: var(--muted-foreground);
279
- }
280
-
281
- .products-grid {
282
- display: grid;
283
- grid-template-columns: 1fr 1fr;
284
- gap: 32px;
285
- }
286
-
287
- .product-card {
288
- position: relative;
289
- background: var(--surface);
290
- border: 1px solid var(--surface-border);
291
- border-radius: 1.25rem;
292
- padding: 40px;
293
- overflow: hidden;
294
- backdrop-filter: blur(12px);
295
- -webkit-backdrop-filter: blur(12px);
296
- box-shadow: var(--shadow-card);
297
- transition: all 0.3s ease;
298
- display: flex;
299
- flex-direction: column;
300
- align-items: flex-start;
301
- }
302
-
303
- .product-card:hover {
304
- border-color: var(--primary-glow);
305
- background: var(--surface-hover);
306
- transform: translateY(-2px);
307
- }
308
-
309
- .product-glow {
310
- position: absolute;
311
- width: 250px;
312
- height: 250px;
313
- bottom: -100px;
314
- right: -100px;
315
- border-radius: 50%;
316
- z-index: -1;
317
- opacity: 0;
318
- transition: opacity 0.5s ease;
319
- filter: blur(48px);
320
- }
321
-
322
- .product-card.card-primary .product-glow,
323
- .product-card.card-orange .product-glow {
324
- background: radial-gradient(
325
- circle,
326
- var(--primary-soft) 0%,
327
- transparent 70%
328
- );
329
- }
330
-
331
- .product-card.card-accent .product-glow,
332
- .product-card.card-cyan .product-glow {
333
- background: radial-gradient(circle, var(--accent-soft) 0%, transparent 70%);
334
- }
335
-
336
- .product-card:hover .product-glow {
337
- opacity: 1;
338
- }
339
-
340
- .icon-container {
341
- width: 48px;
342
- height: 48px;
343
- border-radius: 12px;
344
- display: flex;
345
- align-items: center;
346
- justify-content: center;
347
- border: 1px solid var(--surface-border);
348
- margin-bottom: 24px;
349
- transition: transform 0.3s ease;
350
- }
351
-
352
- .product-card.card-primary .icon-container,
353
- .product-card.card-orange .icon-container {
354
- background: radial-gradient(
355
- circle at top left,
356
- color-mix(in oklch, var(--primary) 20%, transparent),
357
- color-mix(in oklch, var(--primary) 3%, transparent)
358
- );
359
- border-color: var(--primary-border);
360
- color: var(--primary);
361
- }
362
-
363
- .product-card.card-accent .icon-container,
364
- .product-card.card-cyan .icon-container {
365
- background: radial-gradient(
366
- circle at top left,
367
- color-mix(in oklch, var(--accent) 20%, transparent),
368
- color-mix(in oklch, var(--accent) 3%, transparent)
369
- );
370
- border-color: var(--accent-border);
371
- color: var(--accent);
372
- }
373
-
374
- .product-card:hover .icon-container {
375
- transform: scale(1.05);
376
- }
377
-
378
- .product-card h3 {
379
- font-size: 1.5rem;
380
- font-weight: 700;
381
- margin-bottom: 8px;
382
- }
383
-
384
- .package-name {
385
- font-size: 0.8rem;
386
- color: var(--muted-foreground);
387
- background: var(--surface);
388
- padding: 3px 8px;
389
- border-radius: 4px;
390
- border: 1px solid var(--border);
391
- margin-bottom: 16px;
392
- }
393
-
394
- .product-card p {
395
- font-size: 0.95rem;
396
- margin-bottom: 24px;
397
- flex-grow: 1;
398
- }
399
-
400
- .product-link {
401
- display: inline-flex;
402
- align-items: center;
403
- gap: 6px;
404
- font-size: 0.9rem;
405
- font-weight: 600;
406
- }
407
-
408
- .product-card.card-primary .product-link,
409
- .product-card.card-orange .product-link {
410
- color: var(--primary);
411
- }
412
-
413
- .product-card.card-accent .product-link,
414
- .product-card.card-cyan .product-link {
415
- color: var(--accent);
416
- }
417
-
418
- .product-link svg {
419
- transition: transform 0.2s ease;
420
- }
421
-
422
- .product-card:hover .product-link svg {
423
- transform: translate(2px, -2px) rotate(12deg);
424
- }
425
-
426
- /* Features Section */
427
- .features-section {
428
- padding: 80px 25px;
429
- }
430
-
431
- .features-grid {
432
- display: grid;
433
- grid-template-columns: repeat(3, 1fr);
434
- gap: 24px;
435
- }
436
-
437
- .feature-card {
438
- position: relative;
439
- background: var(--surface);
440
- border: 1px solid var(--surface-border);
441
- border-radius: 1rem;
442
- padding: 32px;
443
- overflow: hidden;
444
- backdrop-filter: blur(8px);
445
- -webkit-backdrop-filter: blur(8px);
446
- box-shadow: var(--shadow-card);
447
- transition: all 0.3s ease;
448
- }
449
-
450
- .feature-card:hover {
451
- border-color: var(--primary-border);
452
- background: var(--surface-hover);
453
- }
454
-
455
- .feature-border {
456
- position: absolute;
457
- top: 0;
458
- left: 0;
459
- right: 0;
460
- height: 2px;
461
- background: linear-gradient(
462
- to right,
463
- transparent,
464
- var(--primary),
465
- transparent
466
- );
467
- opacity: 0;
468
- transition: opacity 0.3s ease;
469
- }
470
-
471
- .feature-card:hover .feature-border {
472
- opacity: 1;
473
- }
474
-
475
- .icon-box {
476
- width: 40px;
477
- height: 40px;
478
- border-radius: 8px;
479
- display: flex;
480
- align-items: center;
481
- justify-content: center;
482
- background: radial-gradient(
483
- circle at top left,
484
- color-mix(in oklch, var(--primary) 20%, transparent),
485
- color-mix(in oklch, var(--accent) 10%, transparent)
486
- );
487
- border: 1px solid var(--primary-border);
488
- color: var(--primary);
489
- margin-bottom: 20px;
490
- transition: transform 0.3s ease;
491
- }
492
-
493
- .feature-card:hover .icon-box {
494
- transform: scale(1.1);
495
- }
496
-
497
- .feature-card h3 {
498
- font-size: 1.25rem;
499
- font-weight: 700;
500
- margin-bottom: 12px;
501
- }
502
-
503
- .feature-card p {
504
- font-size: 0.9rem;
505
- margin: 0;
506
- }
507
-
508
- /* Showcase Section */
509
- .showcase-section {
510
- padding: 100px 0;
511
- background: radial-gradient(
512
- ellipse 60% 50% at 50% 50%,
513
- var(--accent-softer),
514
- transparent
515
- );
516
- }
517
-
518
- .showcase-glow {
519
- background: radial-gradient(
520
- circle at center,
521
- color-mix(in oklch, var(--accent) 4%, transparent) 0%,
522
- transparent 60%
523
- );
524
- }
525
-
526
- .showcase-header {
527
- display: flex;
528
- justify-content: space-between;
529
- align-items: flex-end;
530
- margin-bottom: 48px;
531
- flex-wrap: wrap;
532
- gap: 24px;
533
- }
534
-
535
- .showcase-header-text {
536
- max-width: 650px;
537
- }
538
-
539
- .showcase-header h2 {
540
- font-size: 2.5rem;
541
- margin-top: 12px;
542
- }
543
-
544
- .showcase-header p {
545
- font-size: 1.1rem;
546
- margin-top: 12px;
547
- }
548
-
549
- .slider-controls {
550
- display: flex;
551
- gap: 12px;
552
- }
553
-
554
- .ctrl-btn {
555
- all: unset;
556
- width: 44px;
557
- height: 44px;
558
- border-radius: 50%;
559
- display: grid;
560
- place-items: center;
561
- cursor: pointer;
562
- transition: all 0.2s ease;
563
- border: 1px solid var(--border);
564
- background: var(--surface);
565
- color: var(--muted-foreground);
566
- }
567
-
568
- .ctrl-btn:hover {
569
- color: var(--foreground);
570
- border-color: var(--surface-border-strong);
571
- }
572
-
573
- .btn-next {
574
- border-color: var(--primary-border);
575
- background: var(--primary-soft);
576
- color: var(--primary);
577
- }
578
-
579
- .btn-next:hover {
580
- background: color-mix(in oklch, var(--primary) 20%, transparent);
581
- border-color: var(--primary);
582
- }
583
-
584
- .slider-viewport {
585
- overflow: hidden;
586
- width: 100%;
587
- margin-bottom: 32px;
588
- cursor: grab;
589
- }
590
-
591
- .slider-viewport:active {
592
- cursor: grabbing;
593
- }
594
-
595
- .slider-track {
596
- display: flex;
597
- transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
598
- will-change: transform;
599
- }
600
-
601
- .slider-slide {
602
- flex: 0 0 100%;
603
- min-width: 0;
604
- padding-right: 24px;
605
- }
606
-
607
- @media screen and (min-width: 1024px) {
608
- .slider-slide {
609
- flex: 0 0 70%;
610
- }
611
- }
612
-
613
- .slide-meta {
614
- display: flex;
615
- align-items: center;
616
- gap: 12px;
617
- margin-bottom: 16px;
618
- }
619
-
620
- .slide-num {
621
- font-size: 0.75rem;
622
- color: var(--muted-foreground);
623
- }
624
-
625
- .slide-line {
626
- height: 1px;
627
- flex-grow: 1;
628
- background: var(--border);
629
- }
630
-
631
- .slide-label {
632
- font-size: 0.75rem;
633
- font-weight: 500;
634
- }
635
-
636
- .color-primary,
637
- .color-orange {
638
- color: var(--primary);
639
- }
640
-
641
- .color-accent,
642
- .color-cyan {
643
- color: var(--accent);
644
- }
645
-
646
- .slider-dots-container {
647
- display: flex;
648
- gap: 8px;
649
- }
650
-
651
- .slider-dot {
652
- all: unset;
653
- height: 6px;
654
- border-radius: 9999px;
655
- background: var(--border);
656
- cursor: pointer;
657
- transition: all 0.3s ease;
658
- width: 16px;
659
- }
660
-
661
- .slider-dot:hover {
662
- background: var(--muted-foreground);
663
- }
664
-
665
- .slider-dot.active {
666
- width: 32px;
667
- background: var(--primary);
668
- }
669
-
670
- /* Install Section */
671
- .install-section {
672
- padding: 80px 25px;
673
- }
674
-
675
- .install-container {
676
- max-width: 900px;
677
- margin: 0 auto;
678
- }
679
-
680
- .tabs-container {
681
- margin-top: 40px;
682
- }
683
-
684
- .tabs-list {
685
- display: flex;
686
- gap: 8px;
687
- background: var(--surface-muted);
688
- border: 1px solid var(--border);
689
- border-radius: 9999px;
690
- padding: 6px;
691
- max-width: fit-content;
692
- margin: 0 auto 24px;
693
- backdrop-filter: blur(12px);
694
- -webkit-backdrop-filter: blur(12px);
695
- }
696
-
697
- .tab-trigger {
698
- all: unset;
699
- padding: 8px 24px;
700
- border-radius: 9999px;
701
- font-size: 0.9rem;
702
- font-weight: 500;
703
- color: var(--muted-foreground);
704
- cursor: pointer;
705
- transition: all 0.2s ease;
706
- }
707
-
708
- .tab-trigger:hover {
709
- color: var(--foreground);
710
- }
711
-
712
- .tab-trigger.active:hover {
713
- color: var(--primary-foreground);
714
- }
715
-
716
- .tabs-content-wrapper {
717
- position: relative;
718
- width: 100%;
719
- }
720
-
721
- .tab-content {
722
- display: none;
723
- opacity: 0;
724
- transition: opacity 0.3s ease;
725
- }
726
-
727
- .tab-content.active {
728
- display: block;
729
- opacity: 1;
730
- }
731
-
732
- .tab-content .code-snippet {
733
- margin: 0;
734
- }
735
-
736
- /* CTA Section */
737
- .cta-section {
738
- padding: 80px 25px 120px;
739
- }
740
-
741
- .cta-card {
742
- position: relative;
743
- background: var(--surface);
744
- border: 1px solid var(--surface-border);
745
- border-radius: 2rem;
746
- padding: 80px 40px;
747
- text-align: center;
748
- overflow: hidden;
749
- backdrop-filter: blur(16px);
750
- -webkit-backdrop-filter: blur(16px);
751
- box-shadow: var(--shadow-card);
752
- display: flex;
753
- flex-direction: column;
754
- align-items: center;
755
- }
756
-
757
- .cta-card > :not(.cta-glow) {
758
- position: relative;
759
- z-index: 1;
760
- }
761
-
762
- .cta-glow {
763
- position: absolute;
764
- width: 400px;
765
- height: 400px;
766
- top: -200px;
767
- left: 50%;
768
- transform: translateX(-50%);
769
- background: radial-gradient(
770
- circle,
771
- var(--primary-soft) 0%,
772
- transparent 60%
773
- );
774
- filter: blur(40px);
775
- z-index: -1;
776
- }
777
-
778
- .cta-card h2 {
779
- font-size: 3.5rem;
780
- font-weight: 850;
781
- line-height: 1.1;
782
- margin-bottom: 16px;
783
- letter-spacing: -0.03rem;
784
- }
785
-
786
- .cta-card p {
787
- font-size: 1.15rem;
788
- color: var(--muted-foreground);
789
- max-width: 500px;
790
- margin-bottom: 40px;
791
- }
792
-
793
- .cta-buttons {
794
- display: flex;
795
- gap: 16px;
796
- justify-content: center;
797
- flex-wrap: wrap;
798
- }
799
-
800
- .btn-outline {
801
- display: inline-flex;
802
- align-items: center;
803
- gap: 8px;
804
- background: transparent;
805
- border: 1px solid var(--border);
806
- color: var(--foreground);
807
- font-weight: 500;
808
- padding: 12px 24px;
809
- border-radius: 9999px;
810
- transition: all 0.2s ease;
811
- }
812
-
813
- .btn-outline:hover {
814
- background: var(--surface-hover);
815
- border-color: var(--surface-border-strong);
816
- transform: scale(1.01);
817
- }
818
-
819
- /* Hide element utility */
820
- .hide-element {
821
- display: none !important;
822
- }
823
-
824
- /* Responsive Breakpoints */
825
- @media screen and (max-width: 1024px) {
826
- .hero-container {
827
- grid-template-columns: 1fr;
828
- gap: 48px;
829
- text-align: center;
830
- }
831
-
832
- .hero-content {
833
- align-items: center;
834
- }
835
-
836
- .hero-title {
837
- font-size: 3rem;
838
- }
839
-
840
- .hero-actions {
841
- justify-content: center;
842
- }
843
-
844
- .products-grid {
845
- grid-template-columns: 1fr;
846
- gap: 24px;
847
- }
848
-
849
- .features-grid {
850
- grid-template-columns: 1fr 1fr;
851
- }
852
- }
853
-
854
- @media screen and (max-width: 768px) {
855
- .hero-section {
856
- padding: 80px 0 60px;
857
- }
858
-
859
- .hero-title {
860
- font-size: 2.5rem;
861
- }
862
-
863
- .hero-stats {
864
- gap: 16px;
865
- }
866
-
867
- .stat-value {
868
- font-size: 1.75rem;
869
- }
870
-
871
- .section-header h2 {
872
- font-size: 2rem;
873
- }
874
-
875
- .features-grid {
876
- grid-template-columns: 1fr;
877
- }
878
-
879
- .showcase-header h2 {
880
- font-size: 2rem;
881
- }
882
-
883
- .cta-card {
884
- padding: 60px 24px;
885
- }
886
-
887
- .cta-card h2 {
888
- font-size: 2.5rem;
889
- }
890
- }
891
-
892
- /* React landing parity overrides */
893
- .hero-section {
894
- min-height: auto;
895
- padding: 128px 0 96px;
896
- background-image: var(--gradient-hero);
897
- }
898
-
899
- .hero-section::after {
900
- content: '';
901
- position: absolute;
902
- left: 0;
903
- right: 0;
904
- bottom: 0;
905
- height: 320px;
906
- pointer-events: none;
907
- background: linear-gradient(
908
- to bottom,
909
- color-mix(in oklch, var(--background) 0%, transparent),
910
- var(--background) 78%,
911
- var(--background)
912
- );
913
- z-index: 0;
914
- }
915
-
916
- .hero-section > .bg-grid {
917
- z-index: 0;
918
- }
919
-
920
- .hero-section > .hero-glow {
921
- background: var(--gradient-hero);
922
- opacity: 1;
923
- z-index: 0;
924
- }
925
-
926
- .hero-container {
927
- grid-template-columns: repeat(2, minmax(0, 1fr));
928
- gap: 64px;
929
- max-width: 1280px;
930
- min-width: 0;
931
- }
932
-
933
- .version-badge {
934
- padding: 6px 12px;
935
- font-size: 0.75rem;
936
- line-height: 1rem;
937
- background: var(--surface-muted);
938
- border-color: var(--surface-border);
939
- backdrop-filter: blur(8px);
940
- margin-bottom: 0;
941
- }
942
-
943
- .hero-title {
944
- margin-top: 24px;
945
- margin-bottom: 0;
946
- font-size: 4.5rem;
947
- line-height: 1.05;
948
- font-weight: 700;
949
- letter-spacing: 0;
950
- }
951
-
952
- .hero-subtitle {
953
- margin-top: 24px;
954
- margin-bottom: 0;
955
- max-width: 576px;
956
- font-size: 1.125rem;
957
- line-height: 1.625;
958
- }
959
-
960
- .hero-actions {
961
- margin-top: 32px;
962
- margin-bottom: 0;
963
- gap: 12px;
964
- align-items: center;
965
- }
966
-
967
- .btn-secondary,
968
- .btn-outline {
969
- height: 48px;
970
- padding: 0 24px;
971
- border-radius: 8px;
972
- font-weight: 500;
973
- }
974
-
975
- .btn-secondary {
976
- gap: 8px;
977
- border-color: var(--surface-border);
978
- background: var(--surface);
979
- backdrop-filter: blur(8px);
980
- color: var(--foreground);
981
- }
982
-
983
- .btn-secondary {
984
- font-size: 0.875rem;
985
- }
986
-
987
- .hero-stats {
988
- margin-top: 40px;
989
- gap: 32px;
990
- font-size: 0.875rem;
991
- }
992
-
993
- .stat-value {
994
- font-size: 1.5rem;
995
- }
996
-
997
- .stat-label {
998
- margin-top: 2px;
999
- font-size: 0.75rem;
1000
- letter-spacing: 0.05em;
1001
- }
1002
-
1003
- .stat-divider {
1004
- height: 32px;
1005
- }
1006
-
1007
- .hero-code-panel .glow-container {
1008
- inset: -16px;
1009
- width: auto;
1010
- height: auto;
1011
- transform: none;
1012
- top: auto;
1013
- left: auto;
1014
- background: linear-gradient(
1015
- to right,
1016
- color-mix(in oklch, var(--primary) 20%, transparent),
1017
- color-mix(in oklch, var(--accent) 20%, transparent)
1018
- );
1019
- filter: blur(48px);
1020
- opacity: 0.5;
1021
- }
1022
-
1023
- .hero-code-panel .code-snippet .content {
1024
- min-height: 0;
1025
- }
1026
-
1027
- .products-section,
1028
- .features-section,
1029
- .showcase-section,
1030
- .install-section,
1031
- .cta-section {
1032
- max-width: 1280px;
1033
- }
1034
-
1035
- .products-section {
1036
- position: relative;
1037
- padding-top: 80px;
1038
- padding-bottom: 96px;
1039
- }
1040
-
1041
- .products-section .section-header {
1042
- max-width: none;
1043
- margin-bottom: 40px;
1044
- display: flex;
1045
- flex-direction: row;
1046
- align-items: flex-end;
1047
- justify-content: space-between;
1048
- gap: 16px;
1049
- }
1050
-
1051
- .products-section .section-header > div {
1052
- display: block;
1053
- }
1054
-
1055
- .products-section .section-header .section-tag {
1056
- display: inline-block;
1057
- margin: 0;
1058
- }
1059
-
1060
- .section-tag {
1061
- font-size: 0.875rem;
1062
- line-height: 1.25rem;
1063
- letter-spacing: 0.1em;
1064
- }
1065
-
1066
- .products-section .section-header h2,
1067
- .features-section .section-header h2,
1068
- .showcase-header h2,
1069
- .install-section h2 {
1070
- margin-top: 12px;
1071
- margin-bottom: 0;
1072
- font-size: 2.25rem;
1073
- line-height: 2.5rem;
1074
- font-weight: 700;
1075
- letter-spacing: 0;
1076
- }
1077
-
1078
- .products-section .section-header p {
1079
- max-width: 448px;
1080
- margin: 0;
1081
- font-size: 0.875rem;
1082
- line-height: 1.25rem;
1083
- }
1084
-
1085
- .products-grid {
1086
- gap: 24px;
1087
- }
1088
-
1089
- .product-card {
1090
- border-radius: 16px;
1091
- padding: 24px;
1092
- background: var(--surface);
1093
- border-color: var(--surface-border);
1094
- isolation: isolate;
1095
- }
1096
-
1097
- .product-card:hover {
1098
- transform: none;
1099
- border-color: var(--primary-border);
1100
- }
1101
-
1102
- .product-glow {
1103
- width: 224px;
1104
- height: 224px;
1105
- top: -96px;
1106
- right: -96px;
1107
- bottom: auto;
1108
- opacity: 0.5;
1109
- filter: blur(48px);
1110
- z-index: 0;
1111
- pointer-events: none;
1112
- }
1113
-
1114
- .product-card:hover .product-glow {
1115
- opacity: 1;
1116
- }
1117
-
1118
- .product-head {
1119
- position: relative;
1120
- z-index: 1;
1121
- width: 100%;
1122
- display: flex;
1123
- align-items: flex-start;
1124
- justify-content: space-between;
1125
- gap: 16px;
1126
- color: var(--foreground);
1127
- }
1128
-
1129
- .product-title-row {
1130
- display: flex;
1131
- align-items: center;
1132
- gap: 12px;
1133
- min-width: 0;
1134
- }
1135
-
1136
- .product-arrow {
1137
- width: 36px;
1138
- height: 36px;
1139
- display: grid;
1140
- place-items: center;
1141
- flex-shrink: 0;
1142
- border-radius: 6px;
1143
- border: 1px solid var(--surface-border);
1144
- color: var(--muted-foreground);
1145
- transition: all 0.2s ease;
1146
- }
1147
-
1148
- .product-card:hover .product-arrow {
1149
- color: var(--primary);
1150
- border-color: var(--primary-border);
1151
- transform: rotate(12deg);
1152
- }
1153
-
1154
- .icon-container {
1155
- width: 44px;
1156
- height: 44px;
1157
- border-radius: 8px;
1158
- margin: 0;
1159
- background: var(--surface) !important;
1160
- border-color: var(--surface-border) !important;
1161
- }
1162
-
1163
- .product-card h3 {
1164
- margin: 0;
1165
- font-size: 1.125rem;
1166
- line-height: 1.75rem;
1167
- font-weight: 600;
1168
- }
1169
-
1170
- .package-name {
1171
- display: block;
1172
- margin: 2px 0 0;
1173
- padding: 0;
1174
- border: 0;
1175
- background: transparent;
1176
- font-size: 0.75rem;
1177
- }
1178
-
1179
- .product-card p {
1180
- position: relative;
1181
- z-index: 1;
1182
- margin: 20px 0 0;
1183
- font-size: 0.875rem;
1184
- line-height: 1.625;
1185
- }
1186
-
1187
- .product-link {
1188
- position: relative;
1189
- z-index: 1;
1190
- margin-top: 20px;
1191
- font-size: 0.875rem;
1192
- }
1193
-
1194
- .features-section,
1195
- .showcase-section,
1196
- .install-section,
1197
- .cta-section {
1198
- padding-top: 45px;
1199
- padding-bottom: 128px;
1200
- }
1201
-
1202
- .features-section .section-header {
1203
- max-width: 672px;
1204
- margin-bottom: 0;
1205
- }
1206
-
1207
- .features-section .section-header h2,
1208
- .showcase-header h2,
1209
- .install-section h2 {
1210
- margin-top: 16px;
1211
- font-size: 3rem;
1212
- line-height: 1;
1213
- }
1214
-
1215
- .features-section .section-header p,
1216
- .showcase-header p,
1217
- .install-section .section-header p {
1218
- margin-top: 16px;
1219
- font-size: 1.125rem;
1220
- line-height: 1.75rem;
1221
- }
1222
-
1223
- .features-grid {
1224
- margin-top: 64px;
1225
- grid-template-columns: repeat(3, minmax(0, 1fr));
1226
- gap: 20px;
1227
- }
1228
-
1229
- .feature-card {
1230
- border-radius: 12px;
1231
- padding: 24px;
1232
- background: var(--surface);
1233
- border-color: var(--surface-border);
1234
- }
1235
-
1236
- .feature-card:hover {
1237
- background: var(--surface-hover);
1238
- border-color: var(--primary-border);
1239
- }
1240
-
1241
- .feature-border {
1242
- height: 1px;
1243
- }
1244
-
1245
- .icon-box {
1246
- width: 44px;
1247
- height: 44px;
1248
- margin: 0;
1249
- border-radius: 8px;
1250
- }
1251
-
1252
- .feature-card h3 {
1253
- margin-top: 20px;
1254
- margin-bottom: 0;
1255
- font-size: 1.125rem;
1256
- }
1257
-
1258
- .feature-card p {
1259
- margin-top: 8px;
1260
- font-size: 0.875rem;
1261
- line-height: 1.625;
1262
- }
1263
-
1264
- .showcase-section {
1265
- max-width: none;
1266
- overflow: hidden;
1267
- background: transparent;
1268
- }
1269
-
1270
- .showcase-section > .wrapper {
1271
- max-width: 1280px;
1272
- }
1273
-
1274
- .showcase-glow {
1275
- opacity: 0.4;
1276
- background: radial-gradient(
1277
- ellipse 60% 50% at 50% 50%,
1278
- var(--accent-soft),
1279
- transparent
1280
- );
1281
- }
1282
-
1283
- .showcase-header {
1284
- margin-bottom: 0;
1285
- gap: 24px;
1286
- }
1287
-
1288
- .showcase-header-text {
1289
- max-width: 672px;
1290
- }
1291
-
1292
- .slider-controls {
1293
- gap: 8px;
1294
- }
1295
-
1296
- .ctrl-btn {
1297
- width: 40px;
1298
- height: 40px;
1299
- }
1300
-
1301
- .slider-viewport {
1302
- margin-top: 48px;
1303
- margin-bottom: 0;
1304
- }
1305
-
1306
- .slider-slide {
1307
- flex: 0 0 100%;
1308
- padding-right: 24px;
1309
- }
1310
-
1311
- @media screen and (min-width: 1024px) {
1312
- .slider-slide {
1313
- flex-basis: 70%;
1314
- }
1315
- }
1316
-
1317
- .slide-meta {
1318
- margin-bottom: 12px;
1319
- gap: 8px;
1320
- }
1321
-
1322
- .slider-dots-container {
1323
- margin-top: 32px;
1324
- }
1325
-
1326
- .slider-dot {
1327
- height: 6px;
1328
- }
1329
-
1330
- .install-section {
1331
- max-width: 896px;
1332
- text-align: center;
1333
- }
1334
-
1335
- .install-section .section-header {
1336
- max-width: none;
1337
- align-items: center;
1338
- margin-bottom: 0;
1339
- }
1340
-
1341
- .tabs-container {
1342
- margin-top: 48px;
1343
- }
1344
-
1345
- .tabs-list {
1346
- display: inline-flex;
1347
- border-radius: 8px;
1348
- padding: 4px;
1349
- margin-bottom: 24px;
1350
- background: var(--surface-muted);
1351
- border-color: var(--surface-border);
1352
- }
1353
-
1354
- .tab-trigger {
1355
- border-radius: 6px;
1356
- padding: 8px 20px;
1357
- font-size: 0.875rem;
1358
- }
1359
-
1360
- .install-code-row {
1361
- position: relative;
1362
- display: flex;
1363
- align-items: center;
1364
- justify-content: space-between;
1365
- gap: 16px;
1366
- text-align: left;
1367
- border-radius: 12px;
1368
- border: 1px solid var(--code-border);
1369
- background: var(--code-bg);
1370
- box-shadow: var(--shadow-card);
1371
- overflow: hidden;
1372
- padding: 16px 20px;
1373
- }
1374
-
1375
- .install-command {
1376
- display: flex;
1377
- align-items: center;
1378
- gap: 12px;
1379
- min-width: 0;
1380
- }
1381
-
1382
- .install-command svg {
1383
- color: var(--primary);
1384
- flex-shrink: 0;
1385
- }
1386
-
1387
- .install-command code {
1388
- color: var(--foreground);
1389
- font-size: 1rem;
1390
- line-height: 1.5;
1391
- white-space: nowrap;
1392
- overflow: hidden;
1393
- text-overflow: ellipsis;
1394
- }
1395
-
1396
- .install-copy-btn {
1397
- all: unset;
1398
- display: flex;
1399
- align-items: center;
1400
- gap: 8px;
1401
- flex-shrink: 0;
1402
- padding: 6px 12px;
1403
- border-radius: 6px;
1404
- border: 1px solid var(--surface-border);
1405
- color: var(--muted-foreground);
1406
- font-size: 0.75rem;
1407
- cursor: pointer;
1408
- transition: all 0.2s ease;
1409
- }
1410
-
1411
- .install-copy-btn:hover {
1412
- color: var(--foreground);
1413
- border-color: var(--primary-border);
1414
- }
1415
-
1416
- .install-copy-btn .check-icon {
1417
- display: none;
1418
- }
1419
-
1420
- .install-copy-btn.copied .copy-icon {
1421
- display: none;
1422
- }
1423
-
1424
- .install-copy-btn.copied .check-icon {
1425
- display: block;
1426
- color: var(--success);
1427
- }
1428
-
1429
- .install-section .code-snippet {
1430
- text-align: left;
1431
- }
1432
-
1433
- .cta-section {
1434
- max-width: 1024px;
1435
- }
1436
-
1437
- .cta-card {
1438
- border-radius: 24px;
1439
- padding: 64px;
1440
- }
1441
-
1442
- .cta-glow {
1443
- inset: 0;
1444
- width: auto;
1445
- height: auto;
1446
- top: 0;
1447
- left: 0;
1448
- transform: none;
1449
- background: radial-gradient(
1450
- ellipse 70% 80% at 50% 0%,
1451
- color-mix(in oklch, var(--primary) 25%, transparent),
1452
- transparent 60%
1453
- );
1454
- opacity: 0.6;
1455
- }
1456
-
1457
- .cta-card h2 {
1458
- font-size: 3rem;
1459
- line-height: 1;
1460
- font-weight: 700;
1461
- letter-spacing: 0;
1462
- }
1463
-
1464
- .cta-card p {
1465
- margin-top: 16px;
1466
- margin-bottom: 0;
1467
- max-width: 576px;
1468
- font-size: 1.125rem;
1469
- line-height: 1.75rem;
1470
- }
1471
-
1472
- .cta-buttons {
1473
- margin-top: 32px;
1474
- gap: 12px;
1475
- }
1476
-
1477
- @media screen and (max-width: 1024px) {
1478
- .hero-container {
1479
- grid-template-columns: 1fr;
1480
- gap: 48px;
1481
- text-align: left;
1482
- }
1483
-
1484
- .hero-content {
1485
- align-items: flex-start;
1486
- }
1487
-
1488
- .features-grid {
1489
- grid-template-columns: repeat(2, minmax(0, 1fr));
1490
- }
1491
- }
1492
-
1493
- @media screen and (max-width: 768px) {
1494
- .install-command code {
1495
- font-size: 0.9rem;
1496
- }
1497
-
1498
- .hero-section {
1499
- padding: 112px 0 80px;
1500
- }
1501
-
1502
- .hero-title {
1503
- font-size: 3rem;
1504
- }
1505
-
1506
- .hero-actions {
1507
- width: 100%;
1508
- }
1509
-
1510
- .hero-actions .btn-primary,
1511
- .hero-actions .btn-secondary {
1512
- justify-content: center;
1513
- }
1514
-
1515
- .hero-stats {
1516
- width: 100%;
1517
- display: grid;
1518
- grid-template-columns: repeat(3, minmax(0, 1fr));
1519
- gap: 12px;
1520
- }
1521
-
1522
- .stat-divider {
1523
- display: none;
1524
- }
1525
-
1526
- .stat-value {
1527
- font-size: 1.375rem;
1528
- }
1529
-
1530
- .stat-label {
1531
- overflow-wrap: anywhere;
1532
- }
1533
-
1534
- .products-section .section-header {
1535
- display: block;
1536
- }
1537
-
1538
- .products-section .section-header p {
1539
- margin-top: 16px;
1540
- }
1541
-
1542
- .products-grid,
1543
- .features-grid {
1544
- grid-template-columns: 1fr;
1545
- }
1546
-
1547
- .features-section .section-header h2,
1548
- .showcase-header h2,
1549
- .install-section h2,
1550
- .cta-card h2 {
1551
- font-size: 2.25rem;
1552
- line-height: 2.5rem;
1553
- }
1554
-
1555
- .install-code-row {
1556
- align-items: stretch;
1557
- flex-direction: column;
1558
- }
1559
-
1560
- .install-copy-btn {
1561
- width: fit-content;
1562
- }
1563
- }