create-warlock 4.1.15 → 4.2.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 (118) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/esm/commands/create-new-app/get-app-path.mjs +1 -1
  4. package/esm/commands/create-new-app/index.mjs +1 -1
  5. package/esm/commands/create-new-app/index.mjs.map +1 -1
  6. package/esm/commands/create-new-app/types.d.mts +1 -1
  7. package/esm/commands/create-warlock-app/index.mjs +1 -1
  8. package/esm/commands/create-warlock-app/index.mjs.map +1 -1
  9. package/esm/features/database-drivers.mjs +1 -1
  10. package/esm/features/features-map.mjs +13 -1
  11. package/esm/features/features-map.mjs.map +1 -1
  12. package/esm/helpers/app.mjs +1 -1
  13. package/esm/helpers/app.mjs.map +1 -1
  14. package/esm/helpers/exec.mjs +1 -1
  15. package/esm/helpers/package-manager.mjs +1 -1
  16. package/esm/helpers/package-manager.mjs.map +1 -1
  17. package/esm/helpers/paths.mjs +1 -1
  18. package/esm/helpers/project-builder-helpers.mjs +1 -1
  19. package/esm/index.d.mts +1 -1
  20. package/esm/index.mjs +1 -1
  21. package/esm/index.mjs.map +1 -1
  22. package/esm/ui/banner.mjs +1 -1
  23. package/esm/ui/spinners.mjs +1 -1
  24. package/package.json +2 -2
  25. package/bin/create-app.js +0 -5
  26. package/templates/warlock/.env.example +0 -36
  27. package/templates/warlock/.gitattributes +0 -1
  28. package/templates/warlock/.husky/pre-commit +0 -4
  29. package/templates/warlock/.prettierignore +0 -4
  30. package/templates/warlock/.prettierrc.json +0 -10
  31. package/templates/warlock/.vscode/settings.json +0 -41
  32. package/templates/warlock/README.md +0 -57
  33. package/templates/warlock/_.gitignore +0 -6
  34. package/templates/warlock/docs/new-module.md +0 -551
  35. package/templates/warlock/eslint.config.js +0 -98
  36. package/templates/warlock/package.json +0 -74
  37. package/templates/warlock/public/home.css +0 -523
  38. package/templates/warlock/skills/api-design/SKILL.md +0 -461
  39. package/templates/warlock/skills/code-standards/SKILL.md +0 -595
  40. package/templates/warlock/skills/data-and-persistence/SKILL.md +0 -330
  41. package/templates/warlock/skills/git-workflow/SKILL.md +0 -282
  42. package/templates/warlock/skills/module-boundaries/SKILL.md +0 -283
  43. package/templates/warlock/skills/observability-and-resilience/SKILL.md +0 -306
  44. package/templates/warlock/skills/security-baseline/SKILL.md +0 -352
  45. package/templates/warlock/skills/testing-strategy/SKILL.md +0 -323
  46. package/templates/warlock/src/app/auth/controllers/forgot-password.controller.ts +0 -28
  47. package/templates/warlock/src/app/auth/controllers/login.controller.ts +0 -22
  48. package/templates/warlock/src/app/auth/controllers/logout-all.controller.ts +0 -16
  49. package/templates/warlock/src/app/auth/controllers/logout.controller.ts +0 -16
  50. package/templates/warlock/src/app/auth/controllers/me.controller.ts +0 -13
  51. package/templates/warlock/src/app/auth/controllers/refresh-token.controller.ts +0 -29
  52. package/templates/warlock/src/app/auth/controllers/reset-password.controller.ts +0 -23
  53. package/templates/warlock/src/app/auth/main.ts +0 -9
  54. package/templates/warlock/src/app/auth/models/otp/index.ts +0 -1
  55. package/templates/warlock/src/app/auth/models/otp/migrations/22-12-2025_10-30-20.otp-migration.ts +0 -30
  56. package/templates/warlock/src/app/auth/models/otp/otp.model.ts +0 -69
  57. package/templates/warlock/src/app/auth/requests/guarded.request.ts +0 -10
  58. package/templates/warlock/src/app/auth/routes.ts +0 -22
  59. package/templates/warlock/src/app/auth/schema/login.schema.ts +0 -8
  60. package/templates/warlock/src/app/auth/schema/reset-password.schema.ts +0 -9
  61. package/templates/warlock/src/app/auth/services/auth.service.ts +0 -66
  62. package/templates/warlock/src/app/auth/services/forgot-password.service.ts +0 -28
  63. package/templates/warlock/src/app/auth/services/otp.service.ts +0 -173
  64. package/templates/warlock/src/app/auth/services/reset-password.service.ts +0 -39
  65. package/templates/warlock/src/app/auth/utils/auth-error-code.ts +0 -6
  66. package/templates/warlock/src/app/auth/utils/locales.ts +0 -89
  67. package/templates/warlock/src/app/auth/utils/types.ts +0 -14
  68. package/templates/warlock/src/app/posts/controllers/create-new-post.controller.ts +0 -21
  69. package/templates/warlock/src/app/posts/controllers/update-post.controller.ts +0 -30
  70. package/templates/warlock/src/app/posts/models/post/migrations/09-01-2026_02-07-51-post.migration.ts +0 -15
  71. package/templates/warlock/src/app/posts/models/post/post.model.ts +0 -23
  72. package/templates/warlock/src/app/posts/resources/post.resource.ts +0 -14
  73. package/templates/warlock/src/app/posts/routes.ts +0 -8
  74. package/templates/warlock/src/app/posts/schema/create-post.schema.ts +0 -9
  75. package/templates/warlock/src/app/posts/schema/update-post.schema.ts +0 -9
  76. package/templates/warlock/src/app/shared/components/HomePageComponent.tsx +0 -229
  77. package/templates/warlock/src/app/shared/controllers/home-page.controller.ts +0 -18
  78. package/templates/warlock/src/app/shared/controllers/home-page.controller.tsx +0 -8
  79. package/templates/warlock/src/app/shared/routes.ts +0 -4
  80. package/templates/warlock/src/app/shared/services/scheduler.service.ts +0 -3
  81. package/templates/warlock/src/app/shared/tests/infrastructure.test.ts +0 -22
  82. package/templates/warlock/src/app/shared/utils/global-columns-schema.ts +0 -8
  83. package/templates/warlock/src/app/shared/utils/locales.ts +0 -766
  84. package/templates/warlock/src/app/shared/utils/router.ts +0 -30
  85. package/templates/warlock/src/app/uploads/controllers/fetch-uploaded-file.controller.ts +0 -33
  86. package/templates/warlock/src/app/uploads/routes.ts +0 -4
  87. package/templates/warlock/src/app/users/commands/hello-world.command.ts +0 -8
  88. package/templates/warlock/src/app/users/controllers/create-new-user.controller.ts +0 -27
  89. package/templates/warlock/src/app/users/controllers/list-users.controller.ts +0 -12
  90. package/templates/warlock/src/app/users/events/inject-created-by-user.into-model.event.ts +0 -32
  91. package/templates/warlock/src/app/users/events/sync.ts +0 -5
  92. package/templates/warlock/src/app/users/main.ts +0 -5
  93. package/templates/warlock/src/app/users/models/user/index.ts +0 -1
  94. package/templates/warlock/src/app/users/models/user/migrations/11-12-2025_23-58-03-user.migration.ts +0 -15
  95. package/templates/warlock/src/app/users/models/user/user.model.ts +0 -64
  96. package/templates/warlock/src/app/users/repositories/users.repository.ts +0 -23
  97. package/templates/warlock/src/app/users/resources/user.resource.ts +0 -14
  98. package/templates/warlock/src/app/users/routes.ts +0 -8
  99. package/templates/warlock/src/app/users/schema/create-user.schema.ts +0 -11
  100. package/templates/warlock/src/app/users/seeds/users.seed.ts +0 -21
  101. package/templates/warlock/src/app/users/services/get-users.service.ts +0 -5
  102. package/templates/warlock/src/app/users/services/list-users.service.ts +0 -17
  103. package/templates/warlock/src/app/users/services/login-social.ts +0 -19
  104. package/templates/warlock/src/config/app.ts +0 -12
  105. package/templates/warlock/src/config/auth.ts +0 -20
  106. package/templates/warlock/src/config/cache.ts +0 -59
  107. package/templates/warlock/src/config/database.ts +0 -65
  108. package/templates/warlock/src/config/http.ts +0 -23
  109. package/templates/warlock/src/config/log.ts +0 -22
  110. package/templates/warlock/src/config/mail.ts +0 -16
  111. package/templates/warlock/src/config/repository.ts +0 -11
  112. package/templates/warlock/src/config/storage.ts +0 -34
  113. package/templates/warlock/src/config/tests.ts +0 -5
  114. package/templates/warlock/src/config/validation.ts +0 -7
  115. package/templates/warlock/storage/.gitignore +0 -2
  116. package/templates/warlock/tsconfig.json +0 -27
  117. package/templates/warlock/warlock.config.ts +0 -15
  118. package/templates/warlock/yarn.lock +0 -2332
@@ -1,74 +0,0 @@
1
- {
2
- "name": "wow2",
3
- "version": "1.0.0",
4
- "private": true,
5
- "type": "module",
6
- "scripts": {
7
- "dev": "warlock dev",
8
- "build": "tsc && warlock build",
9
- "start": "warlock start",
10
- "seed": "warlock seed",
11
- "migrate": "warlock migrate",
12
- "migrate.fresh": "warlock migrate --fresh",
13
- "migrate.list": "warlock migrate --list",
14
- "jwt": "warlock jwt.generate",
15
- "gen": "warlock generate.module",
16
- "gen.s": "warlock.generate.service",
17
- "gen.m": "warlock.generate.model",
18
- "gen.c": "warlock.generate.controller",
19
- "gen.mig": "warlock generate.migration",
20
- "gen.md": "warlock generate.model",
21
- "gen.r": "warlock generate.repository",
22
- "gen.rs": "warlock generate.resource",
23
- "gen.v": "warlock generate.validation",
24
- "serve": "yarn build && nohup warlock start > /dev/null 2>&1",
25
- "lint": "npx eslint --fix ./src --max-warnings=0",
26
- "format": "npx prettier --write ./src/**/*.{js,jsx,ts,tsx,css,md,json} --config ./.prettierrc.json",
27
- "tsc": "npx tsc --noEmit",
28
- "prepare": "huskier-init && husky install",
29
- "postinstall": "agent-kit init && agent-kit sync || echo skills-sync-skipped",
30
- "skills:sync": "agent-kit sync",
31
- "skills:watch": "agent-kit watch",
32
- "lf": "find . -type d ( -name 'node_modules' -o -name '.git' ) -prune -o -type f -exec dos2unix {} ;"
33
- },
34
- "dependencies": {
35
- "@mongez/reinforcements": "^3.1.16",
36
- "@mongez/localization": "^3.4.6",
37
- "@mongez/supportive-is": "^2.1.3",
38
- "@warlock.js/auth": "4.0.119",
39
- "@warlock.js/cache": "4.0.119",
40
- "@warlock.js/cascade": "4.0.119",
41
- "@warlock.js/scheduler": "4.0.119",
42
- "@warlock.js/core": "4.0.119",
43
- "@warlock.js/fs": "4.0.119",
44
- "@warlock.js/logger": "4.0.119",
45
- "@warlock.js/seal": "4.0.119",
46
- "dayjs": "^1.11.19"
47
- },
48
- "devDependencies": {
49
- "@mongez/agent-kit": "^1.0.17",
50
- "@mongez/huskier": "^3.0.0",
51
- "@types/node": "^25.0.3",
52
- "@types/prettier": "^3.0.0",
53
- "@typescript-eslint/eslint-plugin": "^8.50.0",
54
- "@typescript-eslint/parser": "^8.50.0",
55
- "eslint": "^9.39.2",
56
- "eslint-config-prettier": "^10.1.8",
57
- "eslint-plugin-prettier": "^5.5.4",
58
- "eslint-plugin-unused-imports": "^4.3.0",
59
- "prettier": "^3.7.4",
60
- "prettier-plugin-organize-imports": "^4.3.0",
61
- "typescript": "^5.9.3",
62
- "husky": "^8.0.0",
63
- "vitest": "^4.0.6"
64
- },
65
- "huskier": {
66
- "hooks": {
67
- "pre-commit": [
68
- "yarn format",
69
- "yarn lint",
70
- "yarn tsc"
71
- ]
72
- }
73
- }
74
- }
@@ -1,523 +0,0 @@
1
- /* Warlock.js Homepage Styles */
2
-
3
- * {
4
- margin: 0;
5
- padding: 0;
6
- box-sizing: border-box;
7
- }
8
-
9
- body {
10
- font-family:
11
- "Inter",
12
- -apple-system,
13
- BlinkMacSystemFont,
14
- "Segoe UI",
15
- Roboto,
16
- Oxygen,
17
- Ubuntu,
18
- Cantarell,
19
- sans-serif;
20
- background: #0a0a0f;
21
- color: #e4e4e7;
22
- line-height: 1.6;
23
- overflow-x: hidden;
24
- }
25
-
26
- .warlock-home {
27
- min-height: 100vh;
28
- position: relative;
29
- overflow: hidden;
30
- }
31
-
32
- /* Animated Background */
33
- .warlock-home::before {
34
- content: "";
35
- position: fixed;
36
- top: -50%;
37
- left: -50%;
38
- width: 200%;
39
- height: 200%;
40
- background:
41
- radial-gradient(
42
- circle at 20% 50%,
43
- rgba(234, 179, 8, 0.08) 0%,
44
- transparent 50%
45
- ),
46
- radial-gradient(
47
- circle at 80% 80%,
48
- rgba(34, 197, 94, 0.06) 0%,
49
- transparent 50%
50
- ),
51
- radial-gradient(
52
- circle at 40% 20%,
53
- rgba(234, 179, 8, 0.05) 0%,
54
- transparent 50%
55
- );
56
- animation: backgroundFloat 20s ease-in-out infinite;
57
- z-index: 0;
58
- }
59
-
60
- @keyframes backgroundFloat {
61
- 0%,
62
- 100% {
63
- transform: translate(0, 0) rotate(0deg);
64
- }
65
- 33% {
66
- transform: translate(30px, -30px) rotate(1deg);
67
- }
68
- 66% {
69
- transform: translate(-20px, 20px) rotate(-1deg);
70
- }
71
- }
72
-
73
- /* Container */
74
- .warlock-container {
75
- max-width: 1200px;
76
- margin: 0 auto;
77
- padding: 0 2rem;
78
- position: relative;
79
- z-index: 1;
80
- }
81
-
82
- /* Header */
83
- .warlock-header {
84
- padding: 2rem 0;
85
- display: flex;
86
- justify-content: space-between;
87
- align-items: center;
88
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
89
- backdrop-filter: blur(10px);
90
- }
91
-
92
- .warlock-logo {
93
- display: flex;
94
- align-items: center;
95
- gap: 1rem;
96
- font-size: 1.5rem;
97
- font-weight: 700;
98
- color: #fbbf24;
99
- text-decoration: none;
100
- transition: transform 0.3s ease;
101
- }
102
-
103
- .warlock-logo:hover {
104
- transform: scale(1.05);
105
- }
106
-
107
- .warlock-logo-icon {
108
- font-size: 2rem;
109
- animation: pulse 2s ease-in-out infinite;
110
- }
111
-
112
- @keyframes pulse {
113
- 0%,
114
- 100% {
115
- opacity: 1;
116
- transform: scale(1);
117
- }
118
- 50% {
119
- opacity: 0.8;
120
- transform: scale(1.1);
121
- }
122
- }
123
-
124
- .warlock-nav {
125
- display: flex;
126
- gap: 2rem;
127
- align-items: center;
128
- }
129
-
130
- .warlock-nav a {
131
- color: #a1a1aa;
132
- text-decoration: none;
133
- font-weight: 500;
134
- transition: color 0.3s ease;
135
- position: relative;
136
- }
137
-
138
- .warlock-nav a::after {
139
- content: "";
140
- position: absolute;
141
- bottom: -4px;
142
- left: 0;
143
- width: 0;
144
- height: 2px;
145
- background: linear-gradient(90deg, #fbbf24, #22c55e);
146
- transition: width 0.3s ease;
147
- }
148
-
149
- .warlock-nav a:hover {
150
- color: #fbbf24;
151
- }
152
-
153
- .warlock-nav a:hover::after {
154
- width: 100%;
155
- }
156
-
157
- /* Hero Section */
158
- .warlock-hero {
159
- padding: 8rem 0;
160
- text-align: center;
161
- }
162
-
163
- .warlock-hero h1 {
164
- font-size: 4.5rem;
165
- font-weight: 900;
166
- margin-bottom: 1.5rem;
167
- background: linear-gradient(135deg, #fbbf24 0%, #22c55e 100%);
168
- -webkit-background-clip: text;
169
- -webkit-text-fill-color: transparent;
170
- background-clip: text;
171
- line-height: 1.2;
172
- animation: fadeInUp 0.8s ease-out;
173
- }
174
-
175
- .warlock-hero p {
176
- font-size: 1.5rem;
177
- color: #a1a1aa;
178
- margin-bottom: 3rem;
179
- max-width: 700px;
180
- margin-left: auto;
181
- margin-right: auto;
182
- animation: fadeInUp 0.8s ease-out 0.2s both;
183
- }
184
-
185
- @keyframes fadeInUp {
186
- from {
187
- opacity: 0;
188
- transform: translateY(30px);
189
- }
190
- to {
191
- opacity: 1;
192
- transform: translateY(0);
193
- }
194
- }
195
-
196
- .warlock-cta {
197
- display: flex;
198
- gap: 1.5rem;
199
- justify-content: center;
200
- flex-wrap: wrap;
201
- animation: fadeInUp 0.8s ease-out 0.4s both;
202
- }
203
-
204
- .warlock-btn {
205
- padding: 1rem 2.5rem;
206
- font-size: 1.1rem;
207
- font-weight: 600;
208
- text-decoration: none;
209
- border-radius: 12px;
210
- transition: all 0.3s ease;
211
- display: inline-flex;
212
- align-items: center;
213
- gap: 0.5rem;
214
- position: relative;
215
- overflow: hidden;
216
- }
217
-
218
- .warlock-btn::before {
219
- content: "";
220
- position: absolute;
221
- top: 50%;
222
- left: 50%;
223
- width: 0;
224
- height: 0;
225
- border-radius: 50%;
226
- background: rgba(255, 255, 255, 0.2);
227
- transform: translate(-50%, -50%);
228
- transition:
229
- width 0.6s ease,
230
- height 0.6s ease;
231
- }
232
-
233
- .warlock-btn:hover::before {
234
- width: 300px;
235
- height: 300px;
236
- }
237
-
238
- .warlock-btn-primary {
239
- background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
240
- color: #0a0a0f;
241
- box-shadow: 0 10px 30px rgba(251, 191, 36, 0.3);
242
- }
243
-
244
- .warlock-btn-primary:hover {
245
- transform: translateY(-3px);
246
- box-shadow: 0 15px 40px rgba(251, 191, 36, 0.4);
247
- }
248
-
249
- .warlock-btn-secondary {
250
- background: rgba(255, 255, 255, 0.05);
251
- color: #e4e4e7;
252
- border: 2px solid rgba(255, 255, 255, 0.1);
253
- backdrop-filter: blur(10px);
254
- }
255
-
256
- .warlock-btn-secondary:hover {
257
- background: rgba(255, 255, 255, 0.1);
258
- border-color: rgba(251, 191, 36, 0.3);
259
- transform: translateY(-3px);
260
- }
261
-
262
- /* Features Section */
263
- .warlock-features {
264
- padding: 6rem 0;
265
- }
266
-
267
- .warlock-section-title {
268
- text-align: center;
269
- font-size: 3rem;
270
- font-weight: 800;
271
- margin-bottom: 1rem;
272
- background: linear-gradient(135deg, #fbbf24 0%, #22c55e 100%);
273
- -webkit-background-clip: text;
274
- -webkit-text-fill-color: transparent;
275
- background-clip: text;
276
- }
277
-
278
- .warlock-section-subtitle {
279
- text-align: center;
280
- font-size: 1.25rem;
281
- color: #71717a;
282
- margin-bottom: 4rem;
283
- }
284
-
285
- .warlock-features-grid {
286
- display: grid;
287
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
288
- gap: 2rem;
289
- }
290
-
291
- .warlock-feature-card {
292
- background: rgba(255, 255, 255, 0.02);
293
- border: 1px solid rgba(255, 255, 255, 0.05);
294
- border-radius: 16px;
295
- padding: 2.5rem;
296
- transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
297
- backdrop-filter: blur(10px);
298
- position: relative;
299
- overflow: hidden;
300
- }
301
-
302
- .warlock-feature-card::before {
303
- content: "";
304
- position: absolute;
305
- top: 0;
306
- left: 0;
307
- right: 0;
308
- height: 3px;
309
- background: linear-gradient(90deg, #fbbf24, #22c55e);
310
- transform: scaleX(0);
311
- transform-origin: left;
312
- transition: transform 0.4s ease;
313
- }
314
-
315
- .warlock-feature-card:hover::before {
316
- transform: scaleX(1);
317
- }
318
-
319
- .warlock-feature-card:hover {
320
- transform: translateY(-8px);
321
- background: rgba(255, 255, 255, 0.05);
322
- border-color: rgba(251, 191, 36, 0.2);
323
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
324
- }
325
-
326
- .warlock-feature-icon {
327
- font-size: 3rem;
328
- margin-bottom: 1.5rem;
329
- display: block;
330
- }
331
-
332
- .warlock-feature-card h3 {
333
- font-size: 1.5rem;
334
- font-weight: 700;
335
- margin-bottom: 1rem;
336
- color: #fbbf24;
337
- }
338
-
339
- .warlock-feature-card p {
340
- color: #a1a1aa;
341
- line-height: 1.8;
342
- }
343
-
344
- /* Quick Start Section */
345
- .warlock-quickstart {
346
- padding: 6rem 0;
347
- background: rgba(255, 255, 255, 0.01);
348
- border-top: 1px solid rgba(255, 255, 255, 0.05);
349
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
350
- }
351
-
352
- .warlock-code-block {
353
- background: rgba(0, 0, 0, 0.4);
354
- border: 1px solid rgba(255, 255, 255, 0.1);
355
- border-radius: 16px;
356
- padding: 2rem;
357
- margin-top: 2rem;
358
- position: relative;
359
- overflow: hidden;
360
- backdrop-filter: blur(20px);
361
- }
362
-
363
- .warlock-code-header {
364
- display: flex;
365
- align-items: center;
366
- gap: 0.5rem;
367
- margin-bottom: 1.5rem;
368
- padding-bottom: 1rem;
369
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
370
- }
371
-
372
- .warlock-code-dot {
373
- width: 12px;
374
- height: 12px;
375
- border-radius: 50%;
376
- }
377
-
378
- .warlock-code-dot:nth-child(1) {
379
- background: #ef4444;
380
- }
381
- .warlock-code-dot:nth-child(2) {
382
- background: #f59e0b;
383
- }
384
- .warlock-code-dot:nth-child(3) {
385
- background: #22c55e;
386
- }
387
-
388
- .warlock-code-content {
389
- font-family: "Fira Code", "Courier New", monospace;
390
- font-size: 1rem;
391
- line-height: 2;
392
- color: #e4e4e7;
393
- }
394
-
395
- .warlock-code-line {
396
- display: block;
397
- transition: background 0.2s ease;
398
- padding: 0.25rem 0.5rem;
399
- border-radius: 4px;
400
- }
401
-
402
- .warlock-code-line:hover {
403
- background: rgba(251, 191, 36, 0.1);
404
- }
405
-
406
- .warlock-code-comment {
407
- color: #71717a;
408
- }
409
-
410
- .warlock-code-command {
411
- color: #22c55e;
412
- }
413
-
414
- .warlock-code-flag {
415
- color: #fbbf24;
416
- }
417
-
418
- .warlock-code-string {
419
- color: #06b6d4;
420
- }
421
-
422
- /* Footer */
423
- .warlock-footer {
424
- padding: 4rem 0 2rem;
425
- text-align: center;
426
- border-top: 1px solid rgba(255, 255, 255, 0.05);
427
- }
428
-
429
- .warlock-social-links {
430
- display: flex;
431
- justify-content: center;
432
- gap: 2rem;
433
- margin-bottom: 2rem;
434
- }
435
-
436
- .warlock-social-link {
437
- display: inline-flex;
438
- align-items: center;
439
- gap: 0.75rem;
440
- padding: 1rem 2rem;
441
- background: rgba(255, 255, 255, 0.03);
442
- border: 1px solid rgba(255, 255, 255, 0.1);
443
- border-radius: 12px;
444
- color: #e4e4e7;
445
- text-decoration: none;
446
- font-weight: 600;
447
- transition: all 0.3s ease;
448
- backdrop-filter: blur(10px);
449
- }
450
-
451
- .warlock-social-link:hover {
452
- background: rgba(255, 255, 255, 0.08);
453
- border-color: rgba(251, 191, 36, 0.3);
454
- transform: translateY(-3px);
455
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
456
- }
457
-
458
- .warlock-social-icon {
459
- font-size: 1.5rem;
460
- }
461
-
462
- .warlock-footer-text {
463
- color: #71717a;
464
- font-size: 0.95rem;
465
- }
466
-
467
- .warlock-footer-text a {
468
- color: #fbbf24;
469
- text-decoration: none;
470
- transition: color 0.3s ease;
471
- }
472
-
473
- .warlock-footer-text a:hover {
474
- color: #f59e0b;
475
- }
476
-
477
- /* Responsive Design */
478
- @media (max-width: 768px) {
479
- .warlock-hero h1 {
480
- font-size: 3rem;
481
- }
482
-
483
- .warlock-hero p {
484
- font-size: 1.25rem;
485
- }
486
-
487
- .warlock-section-title {
488
- font-size: 2.25rem;
489
- }
490
-
491
- .warlock-features-grid {
492
- grid-template-columns: 1fr;
493
- }
494
-
495
- .warlock-nav {
496
- display: none;
497
- }
498
-
499
- .warlock-social-links {
500
- flex-direction: column;
501
- gap: 1rem;
502
- }
503
-
504
- .warlock-cta {
505
- flex-direction: column;
506
- }
507
-
508
- .warlock-btn {
509
- width: 100%;
510
- justify-content: center;
511
- }
512
- }
513
-
514
- /* Smooth Scroll */
515
- html {
516
- scroll-behavior: smooth;
517
- }
518
-
519
- /* Selection */
520
- ::selection {
521
- background: rgba(251, 191, 36, 0.3);
522
- color: #fbbf24;
523
- }