@pheem49/mint 1.5.0 → 1.5.2

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 (101) hide show
  1. package/README.md +35 -1
  2. package/main.js +28 -14
  3. package/mint-cli-logic.js +3 -119
  4. package/mint-cli.js +201 -500
  5. package/models/Shiroko_Model/Shiroko/Shiroko_Core/72d86db84cfa9730b894c241fd24c0db.png +0 -0
  6. package/models/Shiroko_Model/Shiroko/Shiroko_Core/items_pinned_to_model.json +14 -0
  7. package/models/Shiroko_Model/Shiroko/Shiroko_Core//345/221/206/347/214/253.exp3.json +40 -0
  8. package/models/Shiroko_Model/Shiroko/Shiroko_Core//345/221/206/347/214/253/347/234/274/347/217/240/346/221/207/346/231/203.exp3.json +15 -0
  9. package/models/Shiroko_Model/Shiroko/Shiroko_Core//345/233/264/350/243/231.exp3.json +10 -0
  10. package/models/Shiroko_Model/Shiroko/Shiroko_Core//346/213/215/347/205/247.exp3.json +50 -0
  11. package/models/Shiroko_Model/Shiroko/Shiroko_Core//346/213/277/347/254/224.exp3.json +10 -0
  12. package/models/Shiroko_Model/Shiroko/Shiroko_Core//347/202/271/344/270/200/344/270/213.exp3.json +15 -0
  13. package/models/Shiroko_Model/Shiroko/Shiroko_Core//347/214/253/345/222/252/346/273/244/351/225/234.exp3.json +10 -0
  14. package/models/Shiroko_Model/Shiroko/Shiroko_Core//347/234/274/351/225/234.exp3.json +10 -0
  15. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_00.png +0 -0
  16. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_01.png +0 -0
  17. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_02.png +0 -0
  18. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_03.png +0 -0
  19. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.cdi3.json +1498 -0
  20. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.moc3 +0 -0
  21. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.model3.json +47 -0
  22. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.physics3.json +6658 -0
  23. package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.vtube.json +1299 -0
  24. package/models/Shiroko_Model/Shiroko//342/232/241/351/253/230/344/272/256/342/232/241/344/275/277/347/224/250/346/225/231/347/250/213/344/270/216/346/263/250/346/204/217/344/272/213/351/241/271.txt +23 -0
  25. package/package.json +40 -17
  26. package/src/AI_Brain/Gemini_API.js +147 -46
  27. package/src/AI_Brain/autonomous_brain.js +2 -1
  28. package/src/AI_Brain/memory_store.js +299 -3
  29. package/src/AI_Brain/proactive_engine.js +12 -2
  30. package/src/Automation_Layer/browser_automation.js +26 -24
  31. package/src/CLI/approval_handler.js +42 -0
  32. package/src/CLI/chat_router.js +18 -6
  33. package/src/CLI/chat_ui.js +583 -52
  34. package/src/CLI/cli_colors.js +32 -0
  35. package/src/CLI/cli_formatters.js +89 -0
  36. package/src/CLI/code_agent.js +369 -71
  37. package/src/CLI/image_input.js +90 -0
  38. package/src/CLI/intent_detectors.js +181 -0
  39. package/src/CLI/interactive_chat.js +479 -0
  40. package/src/CLI/list_features.js +3 -0
  41. package/src/CLI/onboarding.js +72 -15
  42. package/src/CLI/repo_summarizer.js +282 -0
  43. package/src/CLI/semantic_code_search.js +312 -0
  44. package/src/CLI/skill_manager.js +41 -0
  45. package/src/CLI/slash_command_handler.js +418 -0
  46. package/src/CLI/symbol_indexer.js +231 -0
  47. package/src/CLI/updater.js +6 -4
  48. package/src/Channels/discord_bridge.js +11 -13
  49. package/src/Channels/line_bridge.js +10 -10
  50. package/src/Channels/slack_bridge.js +7 -12
  51. package/src/Channels/telegram_bridge.js +6 -14
  52. package/src/Channels/whatsapp_bridge.js +11 -9
  53. package/src/System/action_executor.js +59 -10
  54. package/src/System/chat_history_manager.js +20 -12
  55. package/src/System/config_manager.js +31 -1
  56. package/src/System/granular_automation.js +122 -53
  57. package/src/System/optional_require.js +23 -0
  58. package/src/System/proactive_loop.js +19 -3
  59. package/src/System/safety_manager.js +108 -0
  60. package/src/System/sandbox_runner.js +182 -0
  61. package/src/System/system_automation.js +127 -81
  62. package/src/System/system_info.js +70 -0
  63. package/src/System/tool_registry.js +280 -0
  64. package/src/System/window_manager.js +4 -2
  65. package/src/UI/live2d_manager.js +566 -0
  66. package/src/UI/renderer.js +339 -21
  67. package/src/UI/settings.css +655 -420
  68. package/src/UI/settings.html +478 -432
  69. package/src/UI/settings.js +10 -8
  70. package/src/UI/styles.css +516 -31
  71. package/.codex +0 -0
  72. package/docs/assets/Agent_Mint.png +0 -0
  73. package/docs/assets/CLI_Screen.png +0 -0
  74. package/docs/assets/Settings.png +0 -0
  75. package/docs/assets/icon.png +0 -0
  76. package/docs/guide.html +0 -632
  77. package/docs/index.html +0 -133
  78. package/docs/style.css +0 -579
  79. package/index.html +0 -16
  80. package/src/UI/index.html +0 -126
  81. package/tech_news.txt +0 -3
  82. package/test_knowledge.txt +0 -3
  83. package/tests/action_executor_safety.test.js +0 -67
  84. package/tests/agent_orchestrator.test.js +0 -41
  85. package/tests/chat_router.test.js +0 -42
  86. package/tests/code_agent.test.js +0 -69
  87. package/tests/config_manager.test.js +0 -141
  88. package/tests/docker.test.js +0 -46
  89. package/tests/file_operations.test.js +0 -57
  90. package/tests/gmail.test.js +0 -135
  91. package/tests/gmail_auth.test.js +0 -129
  92. package/tests/google_calendar.test.js +0 -113
  93. package/tests/google_tts_urls.test.js +0 -24
  94. package/tests/memory_store.test.js +0 -185
  95. package/tests/notion.test.js +0 -121
  96. package/tests/provider_routing.test.js +0 -83
  97. package/tests/safety_manager.test.js +0 -40
  98. package/tests/spotify.test.js +0 -201
  99. package/tests/system_monitor.test.js +0 -37
  100. package/tests/updater.test.js +0 -32
  101. package/tests/workspace_manager.test.js +0 -56
package/docs/index.html DELETED
@@ -1,133 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Mint | Experience the Future of Desktop Assistance</title>
7
- <meta name="description" content="A powerful Electron-based AI desktop assistant powered by Google Gemini, featuring screen vision, web automation, and proactive suggestions.">
8
- <link rel="stylesheet" href="style.css">
9
- <script src="https://unpkg.com/@phosphor-icons/web"></script>
10
- <link rel="icon" type="image/png" href="assets/icon.png">
11
- </head>
12
- <body>
13
- <div class="bg-glow"></div>
14
- <div class="floating-blobs">
15
- <div class="blob blob-1"></div>
16
- <div class="blob blob-2"></div>
17
- <div class="blob blob-3"></div>
18
- </div>
19
- <nav>
20
- <div class="logo-container">
21
- <img src="assets/icon.png" alt="Mint Logo">
22
- <span>Agent Mint</span>
23
- </div>
24
- <div class="nav-links">
25
- <a href="#features">Features</a>
26
- <a href="guide.html">Documentation</a>
27
- <a href="https://www.npmjs.com/package/@pheem49/mint">Resources</a>
28
- <a href="https://github.com/Pheem49/Mint" class="github-link">GitHub</a>
29
- </div>
30
- </nav>
31
-
32
- <header class="hero">
33
- <h1>Experience the Future <br>of Desktop Assistance</h1>
34
- <p>Mint features a <b>Unified Agent Loop</b> that combines screen vision, web automation, and proactive AI to supercharge your workflow. Powered by Google Gemini 3 Flash.</p>
35
-
36
- <div class="install-container" id="install-cmd">
37
- <span>$</span>
38
- <code>npm install -g @pheem49/mint@latest</code>
39
- <button class="copy-btn" title="Copy to clipboard" onclick="copyCommand()">
40
- <i class="ph ph-copy"></i>
41
- </button>
42
- </div>
43
-
44
- <div class="hero-preview">
45
- <div class="preview-badge">Terminal Interface</div>
46
- <img src="assets/CLI_Screen.png" alt="Mint CLI Preview">
47
- </div>
48
-
49
- <section class="desktop-showcase">
50
- <div class="showcase-header">
51
- <img src="assets/icon.png" alt="Mint Icon" class="section-icon">
52
- <h2>Modern Desktop Interface</h2>
53
- <p>Enjoy a premium, glassmorphism-inspired GUI designed for the modern desktop environment. Manage your AI companion and customize your experience with ease.</p>
54
- </div>
55
-
56
- <div class="showcase-group">
57
- <div class="showcase-images">
58
- <div class="image-wrapper main-ui">
59
- <img src="assets/Agent_Mint.png" alt="Agent Mint Main UI">
60
- <span>Main Interface</span>
61
- </div>
62
- <div class="image-wrapper settings-ui">
63
- <img src="assets/Settings.png" alt="Mint Settings UI">
64
- <span>Settings & Controls</span>
65
- </div>
66
- </div>
67
-
68
- <div class="showcase-text-combined">
69
- <div class="text-block">
70
- <h3><i class="ph ph-sparkle"></i> Intelligent Companion</h3>
71
- <p>A sleek, floating chat interface that provides powerful AI capabilities without cluttering your workspace.</p>
72
- </div>
73
- <div class="text-block">
74
- <h3><i class="ph ph-sliders"></i> Granular Controls</h3>
75
- <p>Fully customize your experience. Manage API keys, switch models, and toggle proactive features with ease.</p>
76
- </div>
77
- </div>
78
- </div>
79
- </section>
80
-
81
- <section class="downloads">
82
- <div class="download-container">
83
- <h2>Get the Latest Release</h2>
84
- <p>Download the latest stable binaries for Linux including <b>.deb</b> and <b>.AppImage</b> formats directly from our GitHub releases page.</p>
85
- <a href="https://github.com/Pheem49/Mint/releases" class="download-btn" target="_blank">
86
- <i class="ph ph-download-simple"></i>
87
- Download Latest Binaries
88
- </a>
89
- </div>
90
- </section>
91
- </header>
92
-
93
- <section class="features" id="features">
94
- <div class="feature-card">
95
- <div class="feature-icon">
96
- <i class="ph ph-eye"></i>
97
- </div>
98
- <h3>Screen Vision</h3>
99
- <p>Mint can see what you see. It understands your active applications and provides context-aware assistance.</p>
100
- </div>
101
- <div class="feature-card">
102
- <div class="feature-icon">
103
- <i class="ph ph-browser"></i>
104
- </div>
105
- <h3>Web Automation</h3>
106
- <p>Automate repetitive web tasks effortlessly. Mint can browse, interact, and extract data for you.</p>
107
- </div>
108
- <div class="feature-card">
109
- <div class="feature-icon">
110
- <i class="ph ph-lightning"></i>
111
- </div>
112
- <h3>Proactive Suggestions</h3>
113
- <p>Mint doesn't just wait for you. It suggests optimizations and help before you even ask, powered by smart context analysis.</p>
114
- </div>
115
- </section>
116
-
117
- <footer>
118
- <p>&copy; 2026 Mint Project. Version 1.4.3. Powered by Google Gemini. Created by Pheem49.</p>
119
- </footer>
120
-
121
- <script>
122
- function copyCommand() {
123
- const cmd = "npm install -g @pheem49/mint@latest";
124
- navigator.clipboard.writeText(cmd);
125
- const icon = document.querySelector('.copy-btn i');
126
- icon.classList.replace('ph-copy', 'ph-check');
127
- setTimeout(() => {
128
- icon.classList.replace('ph-check', 'ph-copy');
129
- }, 2000);
130
- }
131
- </script>
132
- </body>
133
- </html>
package/docs/style.css DELETED
@@ -1,579 +0,0 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Outfit:wght@600;700;800&display=swap');
2
-
3
- :root {
4
- --bg-color: #050505;
5
- --accent-mint: #00ffa3;
6
- --accent-blue: #00e0ff;
7
- --text-primary: #ffffff;
8
- --text-secondary: #a1a1aa;
9
- --glass-bg: rgba(255, 255, 255, 0.03);
10
- --glass-border: rgba(255, 255, 255, 0.1);
11
- --card-bg: rgba(20, 20, 23, 0.6);
12
- --font-heading: 'Outfit', sans-serif;
13
- --font-body: 'Inter', sans-serif;
14
- }
15
-
16
- html {
17
- scroll-behavior: smooth;
18
- }
19
-
20
- * {
21
- margin: 0;
22
- padding: 0;
23
- box-sizing: border-box;
24
- }
25
-
26
- body {
27
- background-color: var(--bg-color);
28
- color: var(--text-primary);
29
- font-family: var(--font-body);
30
- line-height: 1.6;
31
- overflow-x: hidden;
32
- }
33
-
34
- /* Background Gradients & Texture */
35
- .bg-glow {
36
- position: fixed;
37
- top: 0;
38
- left: 0;
39
- width: 100%;
40
- height: 100%;
41
- z-index: -1;
42
- background:
43
- radial-gradient(circle at 0% 0%, rgba(0, 255, 163, 0.03) 0%, transparent 40%),
44
- radial-gradient(circle at 100% 100%, rgba(0, 224, 255, 0.03) 0%, transparent 40%),
45
- var(--bg-color);
46
- }
47
-
48
- .bg-glow::before {
49
- content: '';
50
- position: absolute;
51
- top: 0;
52
- left: 0;
53
- width: 100%;
54
- height: 100%;
55
- background-image: radial-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px);
56
- background-size: 40px 40px;
57
- opacity: 0.5;
58
- mask-image: radial-gradient(ellipse at center, black, transparent 80%);
59
- }
60
-
61
- /* Floating Blobs */
62
- .floating-blobs {
63
- position: fixed;
64
- top: 0;
65
- left: 0;
66
- width: 100%;
67
- height: 100%;
68
- z-index: -1;
69
- overflow: hidden;
70
- pointer-events: none;
71
- }
72
-
73
- .blob {
74
- position: absolute;
75
- border-radius: 50%;
76
- filter: blur(120px);
77
- opacity: 0.15;
78
- animation: float 20s infinite alternate cubic-bezier(0.45, 0, 0.55, 1);
79
- }
80
-
81
- .blob-1 {
82
- width: 600px;
83
- height: 600px;
84
- background: var(--accent-mint);
85
- top: -200px;
86
- left: -100px;
87
- animation-duration: 25s;
88
- }
89
-
90
- .blob-2 {
91
- width: 500px;
92
- height: 500px;
93
- background: var(--accent-blue);
94
- bottom: -100px;
95
- right: -100px;
96
- animation-duration: 30s;
97
- animation-delay: -5s;
98
- }
99
-
100
- .blob-3 {
101
- width: 400px;
102
- height: 400px;
103
- background: #8b5cf6;
104
- top: 40%;
105
- left: 50%;
106
- opacity: 0.08;
107
- animation-duration: 22s;
108
- animation-delay: -10s;
109
- }
110
-
111
- @keyframes float {
112
- 0% { transform: translate(0, 0) scale(1); }
113
- 100% { transform: translate(100px, 50px) scale(1.1); }
114
- }
115
-
116
- /* Navigation */
117
- nav {
118
- display: flex;
119
- justify-content: space-between;
120
- align-items: center;
121
- padding: 1.5rem 10%;
122
- position: fixed;
123
- top: 0;
124
- width: 100%;
125
- z-index: 1000;
126
- backdrop-filter: blur(12px);
127
- border-bottom: 1px solid var(--glass-border);
128
- background: var(--glass-bg);
129
- }
130
-
131
- .logo-container {
132
- display: flex;
133
- align-items: center;
134
- gap: 0.75rem;
135
- font-family: var(--font-heading);
136
- font-size: 1.5rem;
137
- letter-spacing: -0.5px;
138
- }
139
-
140
- .logo-container img {
141
- height: 32px;
142
- border-radius: 6px;
143
- }
144
-
145
- .nav-links {
146
- display: flex;
147
- gap: 2rem;
148
- }
149
-
150
- .nav-links a {
151
- text-decoration: none;
152
- color: var(--text-secondary);
153
- font-size: 0.95rem;
154
- font-weight: 500;
155
- transition: color 0.3s ease;
156
- }
157
-
158
- .nav-links a:hover {
159
- color: var(--accent-mint);
160
- }
161
-
162
- .github-link {
163
- background: var(--text-primary);
164
- color: var(--bg-color) !important;
165
- padding: 0.5rem 1.25rem;
166
- border-radius: 100px;
167
- font-weight: 600 !important;
168
- }
169
-
170
- /* Hero Section */
171
- .hero {
172
- min-height: 90vh;
173
- display: flex;
174
- flex-direction: column;
175
- justify-content: center;
176
- align-items: center;
177
- text-align: center;
178
- padding: 120px 20px 60px;
179
- position: relative;
180
- }
181
-
182
- .hero::after {
183
- content: '';
184
- position: absolute;
185
- bottom: 0;
186
- left: 0;
187
- width: 100%;
188
- height: 300px;
189
- background: linear-gradient(to top, var(--bg-color), transparent);
190
- pointer-events: none;
191
- }
192
-
193
- .hero h1 {
194
- font-family: var(--font-heading);
195
- font-size: clamp(3rem, 8vw, 5.5rem);
196
- line-height: 1.1;
197
- margin-bottom: 1.5rem;
198
- background: linear-gradient(to bottom right, #fff 50%, #999);
199
- -webkit-background-clip: text;
200
- background-clip: text;
201
- -webkit-text-fill-color: transparent;
202
- z-index: 1;
203
- }
204
-
205
- .hero p {
206
- font-size: 1.25rem;
207
- color: var(--text-secondary);
208
- max-width: 700px;
209
- margin-bottom: 3rem;
210
- z-index: 1;
211
- }
212
-
213
- /* Install Command */
214
- .install-container {
215
- background: #0a0a0c;
216
- border: 1px solid var(--glass-border);
217
- padding: 0.75rem 1.5rem;
218
- border-radius: 12px;
219
- display: flex;
220
- align-items: center;
221
- gap: 1rem;
222
- font-family: 'Courier New', Courier, monospace;
223
- position: relative;
224
- z-index: 1;
225
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
226
- transition: border-color 0.3s ease, box-shadow 0.3s ease;
227
- margin-bottom: 4rem;
228
- }
229
-
230
- .hero-preview {
231
- margin-top: 4rem;
232
- width: 95%;
233
- max-width: 1100px;
234
- z-index: 1;
235
- border-radius: 24px;
236
- padding: 2rem;
237
- background: rgba(20, 20, 23, 0.4);
238
- border: 1px solid rgba(139, 92, 246, 0.4);
239
- box-shadow: 0 40px 100px rgba(0, 0, 0, 0.6);
240
- animation: slideUp 1s cubic-bezier(0.16, 1, 0.3, 1);
241
- backdrop-filter: blur(10px);
242
- }
243
-
244
- .hero-preview img {
245
- width: 100%;
246
- display: block;
247
- border-radius: 12px;
248
- border: 1px solid rgba(255, 255, 255, 0.05);
249
- }
250
-
251
- .preview-badge {
252
- position: absolute;
253
- top: -15px;
254
- left: 50%;
255
- transform: translateX(-50%);
256
- background: var(--accent-mint);
257
- color: #000;
258
- padding: 0.4rem 1.2rem;
259
- border-radius: 100px;
260
- font-size: 0.8rem;
261
- font-weight: 800;
262
- text-transform: uppercase;
263
- letter-spacing: 1px;
264
- box-shadow: 0 10px 20px rgba(0, 255, 163, 0.3);
265
- }
266
-
267
- @keyframes slideUp {
268
- from {
269
- opacity: 0;
270
- transform: translateY(40px);
271
- }
272
- to {
273
- opacity: 1;
274
- transform: translateY(0);
275
- }
276
- }
277
-
278
- .install-container:hover {
279
- border-color: var(--accent-mint);
280
- box-shadow: 0 0 30px rgba(0, 255, 163, 0.15);
281
- }
282
-
283
- .install-container span {
284
- color: var(--accent-mint);
285
- }
286
-
287
- .install-container code {
288
- color: #fff;
289
- font-size: 1.1rem;
290
- }
291
-
292
- .copy-btn {
293
- background: none;
294
- border: none;
295
- color: var(--text-secondary);
296
- cursor: pointer;
297
- padding: 5px;
298
- transition: color 0.3s;
299
- }
300
-
301
- .copy-btn:hover {
302
- color: #fff;
303
- }
304
-
305
- /* Features Section */
306
- .features {
307
- padding: 100px 10%;
308
- display: grid;
309
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
310
- gap: 2rem;
311
- position: relative;
312
- z-index: 1;
313
- }
314
-
315
- .feature-card {
316
- background: var(--card-bg);
317
- border: 1px solid var(--glass-border);
318
- padding: 2.5rem;
319
- border-radius: 24px;
320
- transition: transform 0.3s ease, border-color 0.3s ease;
321
- backdrop-filter: blur(5px);
322
- }
323
-
324
- .feature-card:hover {
325
- transform: translateY(-10px);
326
- border-color: var(--accent-mint);
327
- }
328
-
329
- .feature-icon {
330
- width: 48px;
331
- height: 48px;
332
- background: rgba(0, 255, 163, 0.1);
333
- border-radius: 12px;
334
- display: flex;
335
- align-items: center;
336
- justify-content: center;
337
- color: var(--accent-mint);
338
- margin-bottom: 1.5rem;
339
- font-size: 1.5rem;
340
- }
341
-
342
- .feature-card h3 {
343
- font-family: var(--font-heading);
344
- font-size: 1.5rem;
345
- margin-bottom: 1rem;
346
- }
347
-
348
- .feature-card p {
349
- color: var(--text-secondary);
350
- font-size: 1rem;
351
- }
352
-
353
- /* Desktop Showcase */
354
- .desktop-showcase {
355
- padding: 100px 10%;
356
- z-index: 1;
357
- position: relative;
358
- }
359
-
360
- .showcase-header {
361
- text-align: center;
362
- margin-bottom: 5rem;
363
- }
364
-
365
- .section-icon {
366
- width: 64px;
367
- height: 64px;
368
- margin-bottom: 1.5rem;
369
- filter: drop-shadow(0 0 20px rgba(0, 255, 163, 0.4));
370
- }
371
-
372
- .showcase-header h2 {
373
- font-family: var(--font-heading);
374
- font-size: 3.5rem;
375
- margin-bottom: 1rem;
376
- }
377
-
378
- .showcase-header p {
379
- color: var(--text-secondary);
380
- font-size: 1.2rem;
381
- max-width: 600px;
382
- margin: 0 auto;
383
- }
384
-
385
- .showcase-group {
386
- display: flex;
387
- flex-direction: column;
388
- align-items: center;
389
- gap: 4rem;
390
- }
391
-
392
- .showcase-images {
393
- display: flex;
394
- justify-content: center;
395
- align-items: flex-start;
396
- gap: 2rem;
397
- width: 100%;
398
- }
399
-
400
- .image-wrapper {
401
- flex: 1;
402
- max-width: 450px;
403
- background: rgba(255, 255, 255, 0.02);
404
- border: 1px solid var(--glass-border);
405
- padding: 0.75rem;
406
- border-radius: 20px;
407
- position: relative;
408
- backdrop-filter: blur(10px);
409
- transition: transform 0.4s ease;
410
- }
411
-
412
- .image-wrapper:hover {
413
- transform: translateY(-10px);
414
- border-color: var(--accent-mint);
415
- }
416
-
417
- .image-wrapper img {
418
- width: 100%;
419
- display: block;
420
- border-radius: 12px;
421
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
422
- }
423
-
424
- .image-wrapper span {
425
- display: block;
426
- text-align: center;
427
- margin-top: 1rem;
428
- font-size: 0.85rem;
429
- color: var(--text-secondary);
430
- font-weight: 500;
431
- }
432
-
433
- .showcase-text-combined {
434
- display: grid;
435
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
436
- gap: 3rem;
437
- width: 100%;
438
- max-width: 900px;
439
- margin-top: 2rem;
440
- }
441
-
442
- .text-block {
443
- text-align: left;
444
- }
445
-
446
- .text-block h3 {
447
- font-family: var(--font-heading);
448
- font-size: 1.5rem;
449
- margin-bottom: 0.75rem;
450
- color: var(--accent-mint);
451
- display: flex;
452
- align-items: center;
453
- gap: 0.5rem;
454
- }
455
-
456
- .text-block p {
457
- font-size: 1rem;
458
- color: var(--text-secondary);
459
- line-height: 1.6;
460
- }
461
-
462
- /* Downloads Section */
463
- .downloads {
464
- padding: 100px 10% 60px;
465
- display: flex;
466
- justify-content: center;
467
- z-index: 5;
468
- position: relative;
469
- }
470
-
471
- .download-container {
472
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
473
- border: 1px solid var(--glass-border);
474
- padding: 3.5rem;
475
- border-radius: 32px;
476
- max-width: 800px;
477
- text-align: center;
478
- backdrop-filter: blur(15px);
479
- box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
480
- z-index: 10;
481
- }
482
-
483
- .download-container h2 {
484
- font-family: var(--font-heading);
485
- font-size: 2.5rem;
486
- margin-bottom: 1.5rem;
487
- }
488
-
489
- .download-container p {
490
- color: var(--text-secondary);
491
- font-size: 1.1rem;
492
- margin-bottom: 2.5rem;
493
- line-height: 1.8;
494
- }
495
-
496
- .download-container b {
497
- color: var(--text-primary);
498
- }
499
-
500
- .download-btn {
501
- display: inline-flex;
502
- align-items: center;
503
- gap: 0.75rem;
504
- background: var(--accent-mint);
505
- color: #000;
506
- text-decoration: none;
507
- padding: 1.25rem 2.5rem;
508
- border-radius: 100px;
509
- font-weight: 700;
510
- font-size: 1.1rem;
511
- transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
512
- box-shadow: 0 10px 30px rgba(0, 255, 163, 0.3);
513
- cursor: pointer;
514
- position: relative;
515
- z-index: 11;
516
- }
517
-
518
- .download-btn:hover {
519
- transform: scale(1.05);
520
- box-shadow: 0 15px 40px rgba(0, 255, 163, 0.5);
521
- background: #fff;
522
- }
523
-
524
- .download-btn i {
525
- font-size: 1.4rem;
526
- }
527
-
528
- .download-card h4 {
529
- font-family: var(--font-heading);
530
- font-size: 1.25rem;
531
- margin-bottom: 1rem;
532
- display: flex;
533
- align-items: center;
534
- gap: 0.75rem;
535
- }
536
-
537
- .download-card h4 i {
538
- color: var(--accent-blue);
539
- }
540
-
541
- .download-card pre {
542
- background: #000;
543
- padding: 1rem;
544
- border-radius: 8px;
545
- font-size: 0.9rem;
546
- color: var(--accent-mint);
547
- margin-top: 1rem;
548
- overflow-x: auto;
549
- border: 1px solid rgba(255, 255, 255, 0.05);
550
- }
551
-
552
- .download-card p {
553
- color: var(--text-secondary);
554
- font-size: 0.95rem;
555
- }
556
-
557
- /* Footer */
558
- footer {
559
- padding: 60px 10% 40px;
560
- border-top: 1px solid var(--glass-border);
561
- text-align: center;
562
- color: var(--text-secondary);
563
- font-size: 0.9rem;
564
- }
565
-
566
- /* Responsive */
567
- @media (max-width: 768px) {
568
- .nav-links {
569
- display: none;
570
- }
571
-
572
- .hero h1 {
573
- font-size: 3.5rem;
574
- }
575
-
576
- .hero p {
577
- font-size: 1.1rem;
578
- }
579
- }