epcpm commited on
Commit
ca7dd03
·
verified ·
1 Parent(s): 3f0f8a9

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. assets/css/styles.css +649 -0
  2. assets/js/script.js +183 -0
  3. index.html +294 -19
assets/css/styles.css ADDED
@@ -0,0 +1,649 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ :root {
8
+ --primary-color: #6366f1;
9
+ --primary-dark: #4f46e5;
10
+ --secondary-color: #f59e0b;
11
+ --text-dark: #1f2937;
12
+ --text-light: #6b7280;
13
+ --bg-light: #f9fafb;
14
+ --bg-white: #ffffff;
15
+ --border-color: #e5e7eb;
16
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
17
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
18
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
19
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
20
+ }
21
+
22
+ body {
23
+ font-family: 'Noto Sans JP', sans-serif;
24
+ line-height: 1.6;
25
+ color: var(--text-dark);
26
+ background-color: var(--bg-white);
27
+ }
28
+
29
+ .container {
30
+ max-width: 1200px;
31
+ margin: 0 auto;
32
+ padding: 0 20px;
33
+ }
34
+
35
+ /* Header */
36
+ .header {
37
+ position: fixed;
38
+ top: 0;
39
+ width: 100%;
40
+ background: rgba(255, 255, 255, 0.95);
41
+ backdrop-filter: blur(10px);
42
+ z-index: 1000;
43
+ box-shadow: var(--shadow-sm);
44
+ }
45
+
46
+ .navbar {
47
+ padding: 1rem 0;
48
+ }
49
+
50
+ .nav-container {
51
+ max-width: 1200px;
52
+ margin: 0 auto;
53
+ padding: 0 20px;
54
+ display: flex;
55
+ justify-content: space-between;
56
+ align-items: center;
57
+ }
58
+
59
+ .nav-logo h2 {
60
+ color: var(--primary-color);
61
+ font-weight: 700;
62
+ }
63
+
64
+ .nav-menu {
65
+ display: flex;
66
+ list-style: none;
67
+ gap: 2rem;
68
+ }
69
+
70
+ .nav-link {
71
+ text-decoration: none;
72
+ color: var(--text-dark);
73
+ font-weight: 500;
74
+ transition: color 0.3s ease;
75
+ }
76
+
77
+ .nav-link:hover {
78
+ color: var(--primary-color);
79
+ }
80
+
81
+ .hamburger {
82
+ display: none;
83
+ flex-direction: column;
84
+ cursor: pointer;
85
+ }
86
+
87
+ .bar {
88
+ width: 25px;
89
+ height: 3px;
90
+ background-color: var(--text-dark);
91
+ margin: 3px 0;
92
+ transition: 0.3s;
93
+ }
94
+
95
+ /* Hero Section */
96
+ .hero {
97
+ padding: 120px 0 80px;
98
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
99
+ color: white;
100
+ overflow: hidden;
101
+ }
102
+
103
+ .hero-container {
104
+ max-width: 1200px;
105
+ margin: 0 auto;
106
+ padding: 0 20px;
107
+ display: grid;
108
+ grid-template-columns: 1fr 1fr;
109
+ gap: 4rem;
110
+ align-items: center;
111
+ }
112
+
113
+ .hero-title {
114
+ font-size: 3.5rem;
115
+ font-weight: 700;
116
+ margin-bottom: 1.5rem;
117
+ line-height: 1.2;
118
+ }
119
+
120
+ .hero-subtitle {
121
+ font-size: 1.25rem;
122
+ margin-bottom: 2rem;
123
+ opacity: 0.9;
124
+ line-height: 1.8;
125
+ }
126
+
127
+ .hero-buttons {
128
+ display: flex;
129
+ gap: 1rem;
130
+ margin-bottom: 3rem;
131
+ }
132
+
133
+ .btn {
134
+ padding: 12px 30px;
135
+ border: none;
136
+ border-radius: 8px;
137
+ font-size: 1rem;
138
+ font-weight: 600;
139
+ cursor: pointer;
140
+ transition: all 0.3s ease;
141
+ text-decoration: none;
142
+ display: inline-block;
143
+ }
144
+
145
+ .btn-primary {
146
+ background-color: var(--primary-color);
147
+ color: white;
148
+ }
149
+
150
+ .btn-primary:hover {
151
+ background-color: var(--primary-dark);
152
+ transform: translateY(-2px);
153
+ box-shadow: var(--shadow-lg);
154
+ }
155
+
156
+ .btn-secondary {
157
+ background-color: transparent;
158
+ color: white;
159
+ border: 2px solid white;
160
+ }
161
+
162
+ .btn-secondary:hover {
163
+ background-color: white;
164
+ color: var(--primary-color);
165
+ }
166
+
167
+ .btn-large {
168
+ padding: 16px 40px;
169
+ font-size: 1.125rem;
170
+ }
171
+
172
+ .hero-stats {
173
+ display: flex;
174
+ gap: 3rem;
175
+ }
176
+
177
+ .stat-item {
178
+ display: flex;
179
+ flex-direction: column;
180
+ }
181
+
182
+ .stat-number {
183
+ font-size: 2rem;
184
+ font-weight: 700;
185
+ margin-bottom: 0.25rem;
186
+ }
187
+
188
+ .stat-label {
189
+ font-size: 0.875rem;
190
+ opacity: 0.8;
191
+ }
192
+
193
+ .hero-image {
194
+ display: flex;
195
+ justify-content: center;
196
+ align-items: center;
197
+ }
198
+
199
+ .shoe-animation {
200
+ position: relative;
201
+ width: 300px;
202
+ height: 300px;
203
+ }
204
+
205
+ .shoe-icon {
206
+ font-size: 120px;
207
+ position: absolute;
208
+ top: 50%;
209
+ left: 50%;
210
+ transform: translate(-50%, -50%);
211
+ animation: float 3s ease-in-out infinite;
212
+ }
213
+
214
+ .token-ring {
215
+ position: absolute;
216
+ width: 100%;
217
+ height: 100%;
218
+ border: 3px solid rgba(255, 255, 255, 0.3);
219
+ border-radius: 50%;
220
+ animation: rotate 10s linear infinite;
221
+ }
222
+
223
+ .token-ring::before {
224
+ content: '';
225
+ position: absolute;
226
+ width: 20px;
227
+ height: 20px;
228
+ background: white;
229
+ border-radius: 50%;
230
+ top: -10px;
231
+ left: 50%;
232
+ transform: translateX(-50%);
233
+ box-shadow: 0 0 20px rgba(255, 255, 255, 0.8);
234
+ }
235
+
236
+ @keyframes float {
237
+ 0%, 100% { transform: translate(-50%, -50%) translateY(0); }
238
+ 50% { transform: translate(-50%, -50%) translateY(-20px); }
239
+ }
240
+
241
+ @keyframes rotate {
242
+ from { transform: rotate(0deg); }
243
+ to { transform: rotate(360deg); }
244
+ }
245
+
246
+ /* Features Section */
247
+ .features {
248
+ padding: 80px 0;
249
+ background-color: var(--bg-light);
250
+ }
251
+
252
+ .section-title {
253
+ text-align: center;
254
+ font-size: 2.5rem;
255
+ font-weight: 700;
256
+ margin-bottom: 3rem;
257
+ color: var(--text-dark);
258
+ }
259
+
260
+ .features-grid {
261
+ display: grid;
262
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
263
+ gap: 2rem;
264
+ }
265
+
266
+ .feature-card {
267
+ background: white;
268
+ padding: 2rem;
269
+ border-radius: 12px;
270
+ box-shadow: var(--shadow-md);
271
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
272
+ }
273
+
274
+ .feature-card:hover {
275
+ transform: translateY(-5px);
276
+ box-shadow: var(--shadow-xl);
277
+ }
278
+
279
+ .feature-icon {
280
+ font-size: 3rem;
281
+ margin-bottom: 1rem;
282
+ }
283
+
284
+ .feature-card h3 {
285
+ font-size: 1.5rem;
286
+ margin-bottom: 1rem;
287
+ color: var(--text-dark);
288
+ }
289
+
290
+ .feature-card p {
291
+ color: var(--text-light);
292
+ line-height: 1.8;
293
+ }
294
+
295
+ /* How It Works Section */
296
+ .how-it-works {
297
+ padding: 80px 0;
298
+ }
299
+
300
+ .steps-container {
301
+ display: grid;
302
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
303
+ gap: 2rem;
304
+ margin-top: 3rem;
305
+ }
306
+
307
+ .step {
308
+ text-align: center;
309
+ position: relative;
310
+ }
311
+
312
+ .step-number {
313
+ width: 60px;
314
+ height: 60px;
315
+ background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
316
+ color: white;
317
+ border-radius: 50%;
318
+ display: flex;
319
+ align-items: center;
320
+ justify-content: center;
321
+ font-size: 1.5rem;
322
+ font-weight: 700;
323
+ margin: 0 auto 1.5rem;
324
+ }
325
+
326
+ .step-content h3 {
327
+ font-size: 1.25rem;
328
+ margin-bottom: 1rem;
329
+ color: var(--text-dark);
330
+ }
331
+
332
+ .step-content p {
333
+ color: var(--text-light);
334
+ line-height: 1.8;
335
+ }
336
+
337
+ /* Testimonials Section */
338
+ .testimonials {
339
+ padding: 80px 0;
340
+ background-color: var(--bg-light);
341
+ }
342
+
343
+ .testimonials-grid {
344
+ display: grid;
345
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
346
+ gap: 2rem;
347
+ margin-top: 3rem;
348
+ }
349
+
350
+ .testimonial-card {
351
+ background: white;
352
+ padding: 2rem;
353
+ border-radius: 12px;
354
+ box-shadow: var(--shadow-md);
355
+ }
356
+
357
+ .testimonial-content {
358
+ margin-bottom: 1.5rem;
359
+ }
360
+
361
+ .testimonial-content p {
362
+ font-style: italic;
363
+ color: var(--text-dark);
364
+ line-height: 1.8;
365
+ }
366
+
367
+ .testimonial-author {
368
+ display: flex;
369
+ align-items: center;
370
+ gap: 1rem;
371
+ }
372
+
373
+ .author-avatar {
374
+ width: 50px;
375
+ height: 50px;
376
+ background: var(--primary-color);
377
+ color: white;
378
+ border-radius: 50%;
379
+ display: flex;
380
+ align-items: center;
381
+ justify-content: center;
382
+ font-size: 1.5rem;
383
+ }
384
+
385
+ .author-info h4 {
386
+ color: var(--text-dark);
387
+ margin-bottom: 0.25rem;
388
+ }
389
+
390
+ .author-info p {
391
+ color: var(--text-light);
392
+ font-size: 0.875rem;
393
+ }
394
+
395
+ /* FAQ Section */
396
+ .faq {
397
+ padding: 80px 0;
398
+ }
399
+
400
+ .faq-container {
401
+ max-width: 800px;
402
+ margin: 0 auto;
403
+ }
404
+
405
+ .faq-item {
406
+ margin-bottom: 1rem;
407
+ border: 1px solid var(--border-color);
408
+ border-radius: 8px;
409
+ overflow: hidden;
410
+ }
411
+
412
+ .faq-question {
413
+ width: 100%;
414
+ padding: 1.5rem;
415
+ background: white;
416
+ border: none;
417
+ text-align: left;
418
+ font-size: 1.125rem;
419
+ font-weight: 600;
420
+ cursor: pointer;
421
+ display: flex;
422
+ justify-content: space-between;
423
+ align-items: center;
424
+ transition: background-color 0.3s ease;
425
+ }
426
+
427
+ .faq-question:hover {
428
+ background-color: var(--bg-light);
429
+ }
430
+
431
+ .faq-icon {
432
+ font-size: 1.5rem;
433
+ transition: transform 0.3s ease;
434
+ }
435
+
436
+ .faq-item.active .faq-icon {
437
+ transform: rotate(45deg);
438
+ }
439
+
440
+ .faq-answer {
441
+ max-height: 0;
442
+ overflow: hidden;
443
+ transition: max-height 0.3s ease;
444
+ }
445
+
446
+ .faq-item.active .faq-answer {
447
+ max-height: 200px;
448
+ }
449
+
450
+ .faq-answer p {
451
+ padding: 0 1.5rem 1.5rem;
452
+ color: var(--text-light);
453
+ line-height: 1.8;
454
+ }
455
+
456
+ /* CTA Section */
457
+ .cta {
458
+ padding: 80px 0;
459
+ background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
460
+ color: white;
461
+ text-align: center;
462
+ }
463
+
464
+ .cta-content h2 {
465
+ font-size: 2.5rem;
466
+ margin-bottom: 1rem;
467
+ }
468
+
469
+ .cta-content p {
470
+ font-size: 1.25rem;
471
+ margin-bottom: 2rem;
472
+ opacity: 0.9;
473
+ }
474
+
475
+ /* Footer */
476
+ .footer {
477
+ background-color: var(--text-dark);
478
+ color: white;
479
+ padding: 60px 0 20px;
480
+ }
481
+
482
+ .footer-content {
483
+ display: grid;
484
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
485
+ gap: 3rem;
486
+ margin-bottom: 3rem;
487
+ }
488
+
489
+ .footer-section h3,
490
+ .footer-section h4 {
491
+ margin-bottom: 1.5rem;
492
+ }
493
+
494
+ .footer-section p {
495
+ opacity: 0.8;
496
+ line-height: 1.8;
497
+ margin-bottom: 1rem;
498
+ }
499
+
500
+ .footer-section ul {
501
+ list-style: none;
502
+ }
503
+
504
+ .footer-section ul li {
505
+ margin-bottom: 0.75rem;
506
+ }
507
+
508
+ .footer-section ul li a {
509
+ color: white;
510
+ text-decoration: none;
511
+ opacity: 0.8;
512
+ transition: opacity 0.3s ease;
513
+ }
514
+
515
+ .footer-section ul li a:hover {
516
+ opacity: 1;
517
+ }
518
+
519
+ .footer-credit {
520
+ margin-top: 1rem;
521
+ font-size: 0.875rem;
522
+ }
523
+
524
+ .footer-credit a {
525
+ color: var(--secondary-color);
526
+ text-decoration: none;
527
+ }
528
+
529
+ .footer-credit a:hover {
530
+ text-decoration: underline;
531
+ }
532
+
533
+ .footer-bottom {
534
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
535
+ padding-top: 2rem;
536
+ text-align: center;
537
+ opacity: 0.8;
538
+ }
539
+
540
+ /* Responsive Design */
541
+ @media (max-width: 768px) {
542
+ .hamburger {
543
+ display: flex;
544
+ }
545
+
546
+ .nav-menu {
547
+ position: fixed;
548
+ left: -100%;
549
+ top: 70px;
550
+ flex-direction: column;
551
+ background-color: white;
552
+ width: 100%;
553
+ text-align: center;
554
+ transition: 0.3s;
555
+ box-shadow: var(--shadow-lg);
556
+ padding: 2rem 0;
557
+ }
558
+
559
+ .nav-menu.active {
560
+ left: 0;
561
+ }
562
+
563
+ .hero-container {
564
+ grid-template-columns: 1fr;
565
+ text-align: center;
566
+ }
567
+
568
+ .hero-title {
569
+ font-size: 2.5rem;
570
+ }
571
+
572
+ .hero-stats {
573
+ justify-content: center;
574
+ }
575
+
576
+ .features-grid,
577
+ .testimonials-grid {
578
+ grid-template-columns: 1fr;
579
+ }
580
+
581
+ .steps-container {
582
+ grid-template-columns: 1fr;
583
+ }
584
+
585
+ .hero-buttons {
586
+ flex-direction: column;
587
+ align-items: center;
588
+ }
589
+
590
+ .btn {
591
+ width: 200px;
592
+ }
593
+ }
594
+
595
+ @media (max-width: 480px) {
596
+ .hero-title {
597
+ font-size: 2rem;
598
+ }
599
+
600
+ .section-title {
601
+ font-size: 2rem;
602
+ }
603
+
604
+ .cta-content h2 {
605
+ font-size: 2rem;
606
+ }
607
+
608
+ .footer-content {
609
+ grid-template-columns: 1fr;
610
+ text-align: center;
611
+ }
612
+ }
613
+
614
+ /* Smooth scrolling */
615
+ html {
616
+ scroll-behavior: smooth;
617
+ }
618
+
619
+ /* Loading animation */
620
+ .fade-in {
621
+ opacity: 0;
622
+ transform: translateY(20px);
623
+ animation: fadeIn 0.6s ease forwards;
624
+ }
625
+
626
+ @keyframes fadeIn {
627
+ to {
628
+ opacity: 1;
629
+ transform: translateY(0);
630
+ }
631
+ }
632
+
633
+ /* Custom scrollbar */
634
+ ::-webkit-scrollbar {
635
+ width: 10px;
636
+ }
637
+
638
+ ::-webkit-scrollbar-track {
639
+ background: var(--bg-light);
640
+ }
641
+
642
+ ::-webkit-scrollbar-thumb {
643
+ background: var(--primary-color);
644
+ border-radius: 5px;
645
+ }
646
+
647
+ ::-webkit-scrollbar-thumb:hover {
648
+ background: var(--primary-dark);
649
+ }
assets/js/script.js ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Mobile menu toggle
2
+ const hamburger = document.querySelector('.hamburger');
3
+ const navMenu = document.querySelector('.nav-menu');
4
+
5
+ hamburger.addEventListener('click', () => {
6
+ hamburger.classList.toggle('active');
7
+ navMenu.classList.toggle('active');
8
+ });
9
+
10
+ document.querySelectorAll('.nav-link').forEach(n => n.addEventListener('click', () => {
11
+ hamburger.classList.remove('active');
12
+ navMenu.classList.remove('active');
13
+ }));
14
+
15
+ // FAQ Accordion
16
+ const faqItems = document.querySelectorAll('.faq-item');
17
+
18
+ faqItems.forEach(item => {
19
+ const question = item.querySelector('.faq-question');
20
+
21
+ question.addEventListener('click', () => {
22
+ // Close all other items
23
+ faqItems.forEach(otherItem => {
24
+ if (otherItem !== item) {
25
+ otherItem.classList.remove('active');
26
+ }
27
+ });
28
+
29
+ // Toggle current item
30
+ item.classList.toggle('active');
31
+ });
32
+ });
33
+
34
+ // Smooth scroll for navigation links
35
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
36
+ anchor.addEventListener('click', function (e) {
37
+ e.preventDefault();
38
+ const target = document.querySelector(this.getAttribute('href'));
39
+ if (target) {
40
+ target.scrollIntoView({
41
+ behavior: 'smooth',
42
+ block: 'start'
43
+ });
44
+ }
45
+ });
46
+ });
47
+
48
+ // Scroll animations
49
+ const observerOptions = {
50
+ threshold: 0.1,
51
+ rootMargin: '0px 0px -50px 0px'
52
+ };
53
+
54
+ const observer = new IntersectionObserver((entries) => {
55
+ entries.forEach(entry => {
56
+ if (entry.isIntersecting) {
57
+ entry.target.classList.add('fade-in');
58
+ }
59
+ });
60
+ }, observerOptions);
61
+
62
+ // Observe all sections
63
+ document.querySelectorAll('section').forEach(section => {
64
+ observer.observe(section);
65
+ });
66
+
67
+ // Parallax effect for hero section
68
+ window.addEventListener('scroll', () => {
69
+ const scrolled = window.pageYOffset;
70
+ const hero = document.querySelector('.hero');
71
+ if (hero) {
72
+ hero.style.transform = `translateY(${scrolled * 0.5}px)`;
73
+ }
74
+ });
75
+
76
+ // Counter animation for stats
77
+ const animateCounter = (element, target, duration = 2000) => {
78
+ let start = 0;
79
+ const increment = target / (duration / 16);
80
+
81
+ const timer = setInterval(() => {
82
+ start += increment;
83
+ if (start >= target) {
84
+ element.textContent = element.textContent.includes('.') ?
85
+ target.toFixed(1) : target + (element.textContent.includes('+') ? '+' : '');
86
+ clearInterval(timer);
87
+ } else {
88
+ element.textContent = element.textContent.includes('.') ?
89
+ start.toFixed(1) : Math.floor(start) + (element.textContent.includes('+') ? '+' : '');
90
+ }
91
+ }, 16);
92
+ };
93
+
94
+ // Initialize counters when visible
95
+ const statNumbers = document.querySelectorAll('.stat-number');
96
+ const statObserver = new IntersectionObserver((entries) => {
97
+ entries.forEach(entry => {
98
+ if (entry.isIntersecting && !entry.target.classList.contains('animated')) {
99
+ entry.target.classList.add('animated');
100
+ const text = entry.target.textContent;
101
+ const number = parseFloat(text.replace(/[^0-9.]/g, ''));
102
+ animateCounter(entry.target, number);
103
+ }
104
+ });
105
+ }, { threshold: 0.5 });
106
+
107
+ statNumbers.forEach(stat => statObserver.observe(stat));
108
+
109
+ // Button ripple effect
110
+ document.querySelectorAll('.btn').forEach(button => {
111
+ button.addEventListener('click', function(e) {
112
+ const ripple = document.createElement('span');
113
+ const rect = this.getBoundingClientRect();
114
+ const size = Math.max(rect.width, rect.height);
115
+ const x = e.clientX - rect.left - size / 2;
116
+ const y = e.clientY - rect.top - size / 2;
117
+
118
+ ripple.style.width = ripple.style.height = size + 'px';
119
+ ripple.style.left = x + 'px';
120
+ ripple.style.top = y + 'px';
121
+ ripple.classList.add('ripple');
122
+
123
+ this.appendChild(ripple);
124
+
125
+ setTimeout(() => {
126
+ ripple.remove();
127
+ }, 600);
128
+ });
129
+ });
130
+
131
+ // Add ripple styles dynamically
132
+ const style = document.createElement('style');
133
+ style.textContent = `
134
+ .btn {
135
+ position: relative;
136
+ overflow: hidden;
137
+ }
138
+
139
+ .ripple {
140
+ position: absolute;
141
+ border-radius: 50%;
142
+ background: rgba(255, 255, 255, 0.5);
143
+ transform: scale(0);
144
+ animation: ripple-animation 0.6s ease-out;
145
+ pointer-events: none;
146
+ }
147
+
148
+ @keyframes ripple-animation {
149
+ to {
150
+ transform: scale(4);
151
+ opacity: 0;
152
+ }
153
+ }
154
+ `;
155
+ document.head.appendChild(style);
156
+
157
+ // Form submission handling (if any forms are added)
158
+ document.addEventListener('submit', (e) => {
159
+ if (e.target.tagName === 'FORM') {
160
+ e.preventDefault();
161
+ // Add your form handling logic here
162
+ console.log('Form submitted');
163
+ }
164
+ });
165
+
166
+ // Loading animation for page
167
+ window.addEventListener('load', () => {
168
+ document.body.classList.add('loaded');
169
+ });
170
+
171
+ // Add loading styles
172
+ const loadingStyle = document.createElement('style');
173
+ loadingStyle.textContent = `
174
+ body {
175
+ opacity: 0;
176
+ transition: opacity 0.5s ease;
177
+ }
178
+
179
+ body.loaded {
180
+ opacity: 1;
181
+ }
182
+ `;
183
+ document.head.appendChild(loadingStyle);
index.html CHANGED
@@ -1,19 +1,294 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ja">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>最大靴のトーク - 革新的なシューズトークンシステム</title>
7
+ <meta name="description" content="最大靴のトークは、一度の指示で最大限の効果を発揮する革新的なシューズ管理システムです">
8
+ <meta name="keywords" content="シューズ,トークン,管理システム,靴,革新的">
9
+ <link rel="stylesheet" href="assets/css/styles.css">
10
+ <link rel="preconnect" href="https://fonts.googleapis.com">
11
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12
+ <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap" rel="stylesheet">
13
+ </head>
14
+ <body>
15
+ <header class="header">
16
+ <nav class="navbar">
17
+ <div class="nav-container">
18
+ <div class="nav-logo">
19
+ <h2>MaxShoeToken</h2>
20
+ </div>
21
+ <ul class="nav-menu">
22
+ <li class="nav-item">
23
+ <a href="#home" class="nav-link">ホーム</a>
24
+ </li>
25
+ <li class="nav-item">
26
+ <a href="#features" class="nav-link">特徴</a>
27
+ </li>
28
+ <li class="nav-item">
29
+ <a href="#how-it-works" class="nav-link">仕組み</a>
30
+ </li>
31
+ <li class="nav-item">
32
+ <a href="#faq" class="nav-link">FAQ</a>
33
+ </li>
34
+ </ul>
35
+ <div class="hamburger">
36
+ <span class="bar"></span>
37
+ <span class="bar"></span>
38
+ <span class="bar"></span>
39
+ </div>
40
+ </div>
41
+ </nav>
42
+ </header>
43
+
44
+ <main>
45
+ <section id="home" class="hero">
46
+ <div class="hero-container">
47
+ <div class="hero-content">
48
+ <h1 class="hero-title">最大靴のトーク</h1>
49
+ <p class="hero-subtitle">一度の指示で最大限の効果を発揮する<br>革新的なシューズトークンシステム</p>
50
+ <div class="hero-buttons">
51
+ <button class="btn btn-primary">今すぐ始める</button>
52
+ <button class="btn btn-secondary">詳細を見る</button>
53
+ </div>
54
+ <div class="hero-stats">
55
+ <div class="stat-item">
56
+ <span class="stat-number">100万+</span>
57
+ <span class="stat-label">アクティブユーザー</span>
58
+ </div>
59
+ <div class="stat-item">
60
+ <span class="stat-number">99.9%</span>
61
+ <span class="stat-label">成功率</span>
62
+ </div>
63
+ <div class="stat-item">
64
+ <span class="stat-number">24/7</span>
65
+ <span class="stat-label">サポート</span>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <div class="hero-image">
70
+ <div class="shoe-animation">
71
+ <div class="shoe-icon">👟</div>
72
+ <div class="token-ring"></div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </section>
77
+
78
+ <section id="features" class="features">
79
+ <div class="container">
80
+ <h2 class="section-title">主要な特徴</h2>
81
+ <div class="features-grid">
82
+ <div class="feature-card">
83
+ <div class="feature-icon">⚡</div>
84
+ <h3>高速処理</h3>
85
+ <p>一度の指示で瞬時に最適なシューズ設定を適用。待ち時間ゼロのスムーズな体験。</p>
86
+ </div>
87
+ <div class="feature-card">
88
+ <div class="feature-icon">🎯</div>
89
+ <h3>精密制御</h3>
90
+ <p>AI搭載の精密分析で、完璧なフィット感とパフォーマンスを実現。</p>
91
+ </div>
92
+ <div class="feature-card">
93
+ <div class="feature-icon">🔒</div>
94
+ <h3>セキュリティ</h3>
95
+ <p>業界最高レベルの暗号化技術で、あなたのデータを完全に保護。</p>
96
+ </div>
97
+ <div class="feature-card">
98
+ <div class="feature-icon">📊</div>
99
+ <h3>分析ダッシュボード</h3>
100
+ <p>リアルタイムのパフォーマンス分析で、最適な改善点を可視化。</p>
101
+ </div>
102
+ <div class="feature-card">
103
+ <div class="feature-icon">🌐</div>
104
+ <h3>グローバル対応</h3>
105
+ <p>世界50カ国以上で利用可能。多言語サポートでどこでも快適に。</p>
106
+ </div>
107
+ <div class="feature-card">
108
+ <div class="feature-icon">🔄</div>
109
+ <h3>自動最適化</h3>
110
+ <p>継続的な学習により、常に最高の状態を維持する自動調整機能。</p>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ </section>
115
+
116
+ <section id="how-it-works" class="how-it-works">
117
+ <div class="container">
118
+ <h2 class="section-title">仕組み</h2>
119
+ <div class="steps-container">
120
+ <div class="step">
121
+ <div class="step-number">1</div>
122
+ <div class="step-content">
123
+ <h3>トークン生成</h3>
124
+ <p>あなたのシューズ情報と好みを基に、独自のトークンを生成します。</p>
125
+ </div>
126
+ </div>
127
+ <div class="step">
128
+ <div class="step-number">2</div>
129
+ <div class="step-content">
130
+ <h3>指示入力</h3>
131
+ <p>一度の簡単な指示で、希望する設定やモードを選択します。</p>
132
+ </div>
133
+ </div>
134
+ <div class="step">
135
+ <div class="step-number">3</div>
136
+ <div class="step-content">
137
+ <h3>即時適用</h3>
138
+ <p>AIが最適な設定を計算し、瞬時にシューズに適用されます。</p>
139
+ </div>
140
+ </div>
141
+ <div class="step">
142
+ <div class="step-number">4</div>
143
+ <div class="step-content">
144
+ <h3>パフォーマンス計測</h3>
145
+ <p>リアルタイムでパフォーマンスを計測し、次回の改善に活かします。</p>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </section>
151
+
152
+ <section class="testimonials">
153
+ <div class="container">
154
+ <h2 class="section-title">ユーザーの声</h2>
155
+ <div class="testimonials-grid">
156
+ <div class="testimonial-card">
157
+ <div class="testimonial-content">
158
+ <p>"最大靴のトークを使用してから、パフォーマンスが劇的に向上しました。一度の指示で完璧な設定になるのは驚きです!"</p>
159
+ </div>
160
+ <div class="testimonial-author">
161
+ <div class="author-avatar">👤</div>
162
+ <div class="author-info">
163
+ <h4>田中 太郎</h4>
164
+ <p>プロランナー</p>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ <div class="testimonial-card">
169
+ <div class="testimonial-content">
170
+ <p>"設定の手間がなくなり、練習に集中できるようになりました。これほど簡単なシステムは他にありません。"</p>
171
+ </div>
172
+ <div class="testimonial-author">
173
+ <div class="author-avatar">👤</div>
174
+ <div class="author-info">
175
+ <h4>佐藤 花子</h4>
176
+ <p>フィットネス愛好家</p>
177
+ </div>
178
+ </div>
179
+ </div>
180
+ <div class="testimonial-card">
181
+ <div class="testimonial-content">
182
+ <p>"分析ダッシュボードが非常に役立っています。自分のパフォーマンスを客観的に把握できます。"</p>
183
+ </div>
184
+ <div class="testimonial-author">
185
+ <div class="author-avatar">👤</div>
186
+ <div class="author-info">
187
+ <h4>山田 次郎</h4>
188
+ <p>アスリート</p>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ </section>
195
+
196
+ <section id="faq" class="faq">
197
+ <div class="container">
198
+ <h2 class="section-title">よくある質問</h2>
199
+ <div class="faq-container">
200
+ <div class="faq-item">
201
+ <button class="faq-question">
202
+ <span>最大靴のトークとは何ですか?</span>
203
+ <span class="faq-icon">+</span>
204
+ </button>
205
+ <div class="faq-answer">
206
+ <p>最大靴のトークは、一度の指示でシューズの最適な設定を自動的に適用する革新的なシステムです。AI技術を活用し、個々のユーザーに最適なパフォーマンスを提供します。</p>
207
+ </div>
208
+ </div>
209
+ <div class="faq-item">
210
+ <button class="faq-question">
211
+ <span>どのくらいの時間で設定が完了しますか?</span>
212
+ <span class="faq-icon">+</span>
213
+ </button>
214
+ <div class="faq-answer">
215
+ <p>通常、指示から設定の適用までわずか0.5秒で完了します。瞬時に最適な状態に調整されるため、待ち時間を感じることはありません。</p>
216
+ </div>
217
+ </div>
218
+ <div class="faq-item">
219
+ <button class="faq-question">
220
+ <span>対応しているシューズの種類は?</span>
221
+ <span class="faq-icon">+</span>
222
+ </button>
223
+ <div class="faq-answer">
224
+ <p>ランニングシューズ、ウォーキングシューズ、トレーニングシューズなど、主要なカテゴリのほとんどに対応しています。常に新しいモデルのサポートも追加されています。</p>
225
+ </div>
226
+ </div>
227
+ <div class="faq-item">
228
+ <button class="faq-question">
229
+ <span>月額料金はかかりますか?</span>
230
+ <span class="faq-icon">+</span>
231
+ </button>
232
+ <div class="faq-answer">
233
+ <p>基本機能は無料で利用できます。高度な分析機能や優先サポートを含むプレミアムプランもご用意しています。詳細は料金ページをご確認ください。</p>
234
+ </div>
235
+ </div>
236
+ </div>
237
+ </div>
238
+ </section>
239
+
240
+ <section class="cta">
241
+ <div class="container">
242
+ <div class="cta-content">
243
+ <h2>最大靴のトークを今すぐ体験</h2>
244
+ <p>無料アカウント登録で、すべての基本機能を30日間お試しいただけます。</p>
245
+ <button class="btn btn-primary btn-large">無料で始める</button>
246
+ </div>
247
+ </div>
248
+ </section>
249
+ </main>
250
+
251
+ <footer class="footer">
252
+ <div class="container">
253
+ <div class="footer-content">
254
+ <div class="footer-section">
255
+ <h3>MaxShoeToken</h3>
256
+ <p>革新的なシューズトークンシステムで、最高のパフォーマンスを。</p>
257
+ <div class="footer-credit">
258
+ Built with <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank" rel="noopener">anycoder</a>
259
+ </div>
260
+ </div>
261
+ <div class="footer-section">
262
+ <h4>製品</h4>
263
+ <ul>
264
+ <li><a href="#">機能</a></li>
265
+ <li><a href="#">料金プラン</a></li>
266
+ <li><a href="#">対応デバイス</a></li>
267
+ </ul>
268
+ </div>
269
+ <div class="footer-section">
270
+ <h4>サポート</h4>
271
+ <ul>
272
+ <li><a href="#">ヘルプセンター</a></li>
273
+ <li><a href="#">お問い合わせ</a></li>
274
+ <li><a href="#">ユーザーガイド</a></li>
275
+ </ul>
276
+ </div>
277
+ <div class="footer-section">
278
+ <h4>会社</h4>
279
+ <ul>
280
+ <li><a href="#">私たちについて</a></li>
281
+ <li><a href="#">ブログ</a></li>
282
+ <li><a href="#">採用情報</a></li>
283
+ </ul>
284
+ </div>
285
+ </div>
286
+ <div class="footer-bottom">
287
+ <p>&copy; 2024 MaxShoeToken. All rights reserved.</p>
288
+ </div>
289
+ </div>
290
+ </footer>
291
+
292
+ <script src="assets/js/script.js"></script>
293
+ </body>
294
+ </html>