@beforesemicolon/builder 1.7.0 → 1.8.1

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