|
7 | 7 | <div class="pointer-events-none absolute inset-0" aria-hidden="true"> |
8 | 8 | <!-- Primary gradient mesh --> |
9 | 9 | <div |
10 | | - class="absolute right-0 top-0 h-[800px] w-[800px] rounded-full bg-[#00D372]/[0.08] blur-3xl" |
| 10 | + class="absolute right-0 top-0 h-[800px] w-[800px] rounded-full bg-primary/[0.08] blur-3xl" |
11 | 11 | style="transform: translate(30%, -20%);" |
12 | 12 | ></div> |
13 | 13 | <!-- Secondary accent --> |
14 | 14 | <div |
15 | | - class="absolute bottom-0 left-0 h-[600px] w-[600px] rounded-full bg-[#00D372]/[0.04] blur-3xl" |
| 15 | + class="absolute bottom-0 left-0 h-[600px] w-[600px] rounded-full bg-primary/[0.04] blur-3xl" |
16 | 16 | style="transform: translate(-40%, 20%);" |
17 | 17 | ></div> |
18 | | - <!-- Subtle grid overlay --> |
19 | | - <div |
20 | | - class="absolute inset-0 opacity-[0.015]" |
21 | | - style="background-image: linear-gradient(rgba(0,0,0,0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.1) 1px, transparent 1px); background-size: 64px 64px;" |
22 | | - ></div> |
23 | 18 | </div> |
24 | 19 |
|
25 | 20 | <div class="relative z-10 mx-auto flex min-h-screen max-w-7xl flex-col justify-center px-6 py-20 lg:px-12"> |
26 | 21 | <!-- Mobile: centered layout --> |
27 | 22 | <div class="lg:hidden mx-auto max-w-xl text-center"> |
28 | 23 | <div class="mb-8 flex flex-wrap items-center justify-center gap-3"> |
29 | 24 | <div |
30 | | - class="flex items-center gap-2 rounded-full border border-[#00D372]/30 bg-[#00D372]/10 px-4 py-2" |
| 25 | + class="flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2" |
31 | 26 | > |
32 | | - <div class="h-2 w-2 rounded-full bg-[#00D372] shadow-[0_0_8px_rgba(0,211,114,0.6)]"></div> |
| 27 | + <div class="h-2 w-2 rounded-full bg-primary shadow-primary/60 shadow-[0_0_8px]"></div> |
33 | 28 | <span class="font-mono text-xs font-medium text-zinc-700">SINCE 2019</span> |
34 | 29 | </div> |
35 | 30 | <div |
|
43 | 38 | <h1 class="mb-10 text-5xl font-bold leading-[1.1] tracking-tight text-zinc-900 sm:text-6xl"> |
44 | 39 | Build<br /> |
45 | 40 | <span class="text-zinc-400">the</span> |
46 | | - <span class="text-[#00D372]">Future</span><br /> |
47 | | - <span class="text-zinc-400">with</span> Code<span class="text-[#00D372]">;</span> |
| 41 | + <span class="text-primary">Future</span><br /> |
| 42 | + <span class="text-zinc-400">with</span> Code<span class="text-primary">;</span> |
48 | 43 | </h1> |
49 | 44 |
|
50 | 45 | <p class="mb-10 mx-auto max-w-md text-lg leading-relaxed text-zinc-600"> |
|
55 | 50 | <div class="flex flex-col items-center gap-4 sm:flex-row sm:justify-center"> |
56 | 51 | <a |
57 | 52 | href="/join" |
58 | | - class="group inline-flex w-full sm:w-auto items-center justify-center gap-2 rounded-lg bg-[#00D372] px-8 py-4 font-semibold text-white shadow-lg shadow-[#00D372]/30 transition-all hover:shadow-xl hover:shadow-[#00D372]/40 focus:outline-none focus:ring-2 focus:ring-[#00D372] focus:ring-offset-2" |
| 53 | + class="group inline-flex w-full sm:w-auto items-center justify-center gap-2 rounded-lg bg-primary px-8 py-4 font-semibold text-white shadow-lg shadow-primary/30 transition-all hover:shadow-xl hover:shadow-primary/40 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2" |
59 | 54 | > |
60 | 55 | <span>参加する</span> |
61 | 56 | <ArrowRight class="h-5 w-5 transition-transform group-hover:translate-x-1" /> |
62 | 57 | </a> |
63 | 58 | <a |
64 | 59 | href="/projects" |
65 | | - class="group inline-flex w-full sm:w-auto items-center justify-center gap-2 rounded-lg bg-zinc-900 px-8 py-4 font-semibold text-white transition-all hover:bg-zinc-800 focus:outline-none focus:ring-2 focus:ring-[#00D372] focus:ring-offset-2" |
| 60 | + class="group inline-flex w-full sm:w-auto items-center justify-center gap-2 rounded-lg bg-zinc-900 px-8 py-4 font-semibold text-white transition-all hover:bg-zinc-800 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2" |
66 | 61 | > |
67 | 62 | プロジェクトを見る |
68 | 63 | <ArrowRight class="h-5 w-5 transition-transform group-hover:translate-x-1" /> |
|
77 | 72 | <!-- Meta badges --> |
78 | 73 | <div class="flex flex-wrap items-center gap-3"> |
79 | 74 | <div |
80 | | - class="flex items-center gap-2.5 rounded-full border border-[#00D372]/30 bg-[#00D372]/[0.08] px-5 py-2.5 backdrop-blur-sm" |
| 75 | + class="flex items-center gap-2.5 rounded-full border border-primary/30 bg-primary/[0.08] px-5 py-2.5 backdrop-blur-sm" |
81 | 76 | > |
82 | | - <div class="h-2 w-2 rounded-full bg-[#00D372] shadow-[0_0_10px_rgba(0,211,114,0.7)] animate-pulse-glow"></div> |
| 77 | + <div class="h-2 w-2 rounded-full bg-primary shadow-primary/70 shadow-[0_0_10px]"></div> |
83 | 78 | <span class="font-mono text-sm font-medium text-zinc-700 tracking-wide">SINCE 2019</span> |
84 | 79 | </div> |
85 | 80 | <div |
|
93 | 88 | <!-- Headline --> |
94 | 89 | <div class="space-y-4"> |
95 | 90 | <h1 class="text-6xl xl:text-7xl font-bold leading-[1.05] tracking-tight text-zinc-900"> |
96 | | - Build the <span class="text-[#00D372]">Future</span><br /> |
97 | | - with Code<span class="text-[#00D372]">;</span> |
| 91 | + Build the <span class="text-primary">Future</span><br /> |
| 92 | + with Code<span class="text-primary">;</span> |
98 | 93 | </h1> |
99 | 94 | </div> |
100 | 95 |
|
|
112 | 107 | <div class="flex flex-wrap items-center gap-4 pt-4"> |
113 | 108 | <a |
114 | 109 | href="/join" |
115 | | - class="group inline-flex items-center gap-2.5 rounded-lg bg-[#00D372] px-8 py-4 font-semibold text-white shadow-lg shadow-[#00D372]/30 transition-all hover:shadow-xl hover:shadow-[#00D372]/40 hover:translate-y-[-2px] focus:outline-none focus:ring-2 focus:ring-[#00D372] focus:ring-offset-2" |
| 110 | + class="group inline-flex items-center gap-2.5 rounded-lg bg-primary px-8 py-4 font-semibold text-white shadow-lg shadow-primary/30 transition-all hover:shadow-xl hover:shadow-primary/40 hover:translate-y-[-2px] focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2" |
116 | 111 | > |
117 | 112 | <span>参加する</span> |
118 | 113 | <ArrowRight class="h-5 w-5 transition-transform group-hover:translate-x-1" /> |
119 | 114 | </a> |
120 | 115 | <a |
121 | 116 | href="/projects" |
122 | | - class="group inline-flex items-center gap-2.5 rounded-lg border border-zinc-900 bg-zinc-900 px-8 py-4 font-semibold text-white transition-all hover:bg-zinc-800 hover:border-zinc-800 focus:outline-none focus:ring-2 focus:ring-[#00D372] focus:ring-offset-2" |
| 117 | + class="group inline-flex items-center gap-2.5 rounded-lg border border-zinc-900 bg-zinc-900 px-8 py-4 font-semibold text-white transition-all hover:bg-zinc-800 hover:border-zinc-800 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2" |
123 | 118 | > |
124 | 119 | <span>プロジェクトを見る</span> |
125 | 120 | <ArrowRight class="h-5 w-5 transition-transform group-hover:translate-x-1" /> |
|
133 | 128 | <div class="relative h-[600px]"> |
134 | 129 | <!-- Card 1: Code snippet --> |
135 | 130 | <div |
136 | | - class="absolute left-0 top-0 w-full rounded-2xl border border-zinc-200/80 bg-white/80 p-8 shadow-2xl shadow-zinc-900/5 backdrop-blur-sm animate-float-1" |
| 131 | + class="absolute left-0 top-0 w-full rounded-2xl border border-zinc-200/80 bg-white/80 p-8 shadow-2xl shadow-zinc-900/5 backdrop-blur-sm animate-float" |
137 | 132 | > |
138 | 133 | <div class="flex items-center justify-between mb-6"> |
139 | 134 | <div class="flex items-center gap-2"> |
|
144 | 139 | <span class="font-mono text-xs text-zinc-400">main.ts</span> |
145 | 140 | </div> |
146 | 141 | <pre class="font-mono text-sm leading-relaxed text-zinc-700"><code>{@html `<span class="text-zinc-500">const</span> <span class="text-zinc-900">mission</span> = { |
147 | | - <span class="text-[#00D372]">learn</span>: <span class="text-zinc-600">"最新技術"</span>, |
148 | | - <span class="text-[#00D372]">build</span>: <span class="text-zinc-600">"実用プロダクト"</span>, |
149 | | - <span class="text-[#00D372]">share</span>: <span class="text-zinc-600">"知見と経験"</span> |
| 142 | + <span class="text-primary">learn</span>: <span class="text-zinc-600">"最新技術"</span>, |
| 143 | + <span class="text-primary">build</span>: <span class="text-zinc-600">"実用プロダクト"</span>, |
| 144 | + <span class="text-primary">share</span>: <span class="text-zinc-600">"知見と経験"</span> |
150 | 145 | };`}</code></pre> |
151 | 146 | </div> |
152 | 147 |
|
153 | 148 | <!-- Card 2: Stats --> |
154 | 149 | <div |
155 | | - class="absolute right-0 top-48 w-80 rounded-2xl border border-zinc-200/80 bg-white/90 p-6 shadow-xl shadow-zinc-900/5 backdrop-blur-sm animate-float-2" |
| 150 | + class="absolute right-0 top-48 w-80 rounded-2xl border border-zinc-200/80 bg-white/90 p-6 shadow-xl shadow-zinc-900/5 backdrop-blur-sm animate-float" |
156 | 151 | > |
157 | 152 | <div class="space-y-4"> |
158 | 153 | <div class="flex items-baseline gap-3"> |
159 | 154 | <div class="text-4xl font-bold text-zinc-900">100+</div> |
160 | 155 | <div class="font-mono text-sm text-zinc-500">メンバー</div> |
161 | 156 | </div> |
162 | 157 | <div class="flex items-baseline gap-3"> |
163 | | - <div class="text-4xl font-bold text-[#00D372]">50+</div> |
| 158 | + <div class="text-4xl font-bold text-primary">50+</div> |
164 | 159 | <div class="font-mono text-sm text-zinc-500">プロジェクト</div> |
165 | 160 | </div> |
166 | 161 | <div class="flex items-baseline gap-3"> |
|
172 | 167 |
|
173 | 168 | <!-- Card 3: Tech tags --> |
174 | 169 | <div |
175 | | - class="absolute left-12 bottom-0 rounded-2xl border border-zinc-200/80 bg-white/80 p-6 shadow-xl shadow-zinc-900/5 backdrop-blur-sm animate-float-3" |
| 170 | + class="absolute left-12 bottom-0 rounded-2xl border border-zinc-200/80 bg-white/80 p-6 shadow-xl shadow-zinc-900/5 backdrop-blur-sm animate-float" |
176 | 171 | > |
177 | 172 | <div class="flex flex-wrap gap-2"> |
178 | 173 | <span class="rounded-lg bg-zinc-100 px-3 py-1.5 font-mono text-xs text-zinc-700">TypeScript</span> |
179 | 174 | <span class="rounded-lg bg-zinc-100 px-3 py-1.5 font-mono text-xs text-zinc-700">React</span> |
180 | 175 | <span class="rounded-lg bg-zinc-100 px-3 py-1.5 font-mono text-xs text-zinc-700">Svelte</span> |
181 | 176 | <span class="rounded-lg bg-zinc-100 px-3 py-1.5 font-mono text-xs text-zinc-700">Python</span> |
182 | 177 | <span class="rounded-lg bg-zinc-100 px-3 py-1.5 font-mono text-xs text-zinc-700">Go</span> |
183 | | - <span class="rounded-lg bg-[#00D372]/10 px-3 py-1.5 font-mono text-xs text-[#00D372] font-medium">+More</span> |
| 178 | + <span class="rounded-lg bg-primary/10 px-3 py-1.5 font-mono text-xs text-primary font-medium">+More</span> |
184 | 179 | </div> |
185 | 180 | </div> |
186 | 181 | </div> |
|
223 | 218 | } |
224 | 219 |
|
225 | 220 | /* Floating cards */ |
226 | | - @keyframes float-1 { |
227 | | - 0%, 100% { |
228 | | - transform: translateY(0px) rotate(0deg); |
229 | | - } |
230 | | - 50% { |
231 | | - transform: translateY(-12px) rotate(-1deg); |
232 | | - } |
233 | | - } |
234 | | -
|
235 | | - @keyframes float-2 { |
236 | | - 0%, 100% { |
237 | | - transform: translateY(0px) rotate(0deg); |
238 | | - } |
239 | | - 50% { |
240 | | - transform: translateY(-16px) rotate(1deg); |
241 | | - } |
242 | | - } |
243 | | -
|
244 | | - @keyframes float-3 { |
245 | | - 0%, 100% { |
246 | | - transform: translateY(0px) rotate(0deg); |
247 | | - } |
248 | | - 50% { |
249 | | - transform: translateY(-10px) rotate(-0.5deg); |
250 | | - } |
251 | | - } |
252 | | -
|
253 | | - .animate-float-1 { |
254 | | - animation: float-1 8s ease-in-out infinite; |
255 | | - } |
256 | | -
|
257 | | - .animate-float-2 { |
258 | | - animation: float-2 7s ease-in-out infinite 0.5s; |
259 | | - } |
260 | | -
|
261 | | - .animate-float-3 { |
262 | | - animation: float-3 9s ease-in-out infinite 1s; |
263 | | - } |
264 | | -
|
265 | | - /* Pulse glow effect */ |
266 | | - @keyframes pulse-glow { |
| 221 | + @keyframes float { |
267 | 222 | 0%, 100% { |
268 | | - box-shadow: 0 0 10px rgba(0, 211, 114, 0.7); |
| 223 | + transform: translateY(0px); |
269 | 224 | } |
270 | 225 | 50% { |
271 | | - box-shadow: 0 0 20px rgba(0, 211, 114, 0.9); |
| 226 | + transform: translateY(-12px); |
272 | 227 | } |
273 | 228 | } |
274 | 229 |
|
275 | | - .animate-pulse-glow { |
276 | | - animation: pulse-glow 2s ease-in-out infinite; |
| 230 | + .animate-float { |
| 231 | + animation: float 8s ease-in-out infinite; |
277 | 232 | } |
278 | 233 | </style> |
0 commit comments