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