Netlify
tcp/443 tcp/80
cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2a06:98c1:3120::3:8443 · www.moeku.org
2026-01-26 01:03
Open service 2a06:98c1:3121::3:8443 · www.moeku.org
2026-01-26 01:03
Open service 2a06:98c1:3120::3:80 · www.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Length: 0
Connection: close
Location: https://www.moeku.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ADGpi7xlxC4zLGKeEd0DKM9BtG4GQ1IuM3mgrgatBGdJCa7z8mIYD%2BnBtxU5uC3%2FhjSsnqhrYTU0yB9TPvEFVIDSTLvQVWLd%2FhwojE7QcNQLVut00zX9%2B1I%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=11,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9c3c1692ee771d7b-YYZ
alt-svc: h3=":443"; ma=86400
Open service 188.114.97.3:80 · www.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Length: 0
Connection: close
Location: https://www.moeku.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fnnHnuSeJstoIV%2FkttQdXfIhHNmWVFCnwTw3P1gC3MsECe1OALRow7WNGWfT8lBEhgVoRUjS8Wyi7KVGOaIcv7kPnZN18tctetley6o%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=7,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9c3c1692e81a99af-BOM
alt-svc: h3=":443"; ma=86400
Open service 2a05:d014:58f:6200::259:80 · origin.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Mon, 26 Jan 2026 01:03:06 GMT Location: https://origin.moeku.org/ Server: Netlify X-Nf-Request-Id: 01KFVX6V3ESYACKQH1KDJJVV9Z Content-Length: 40 Connection: close Redirecting to https://origin.moeku.org/
Open service 188.114.97.3:443 · www.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 33
Connection: close
location: https://moeku.org/
Server: cloudflare
strict-transport-security: max-age=31536000
x-nf-request-id: 01KFVX6P4D8GWT7FGGMA7AVH2F
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=19,cfOrigin;dur=239
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=1UsF0c7dZx4C54Mwty5pfU6suDOkQNfOlWJjmA718oOcwkAg%2FKO4k%2Fg1JqZC2qVDiiSPfYdI09wHST8x1NMiVlsJIP6wtm8Qd26Aef8%3D"}]}
CF-RAY: 9c3c16933bc8916e-FRA
alt-svc: h3=":443"; ma=86400
Redirecting to https://moeku.org/
Open service 2606:4700:4407::ac40:9052:443 · moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Ray: 9c3c16934ca9d15b-EWR
CF-Cache-Status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: public, max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Strict-Transport-Security: max-age=31536000
Vary: Accept-Encoding
access-control-allow-credentials: true
cache-status: "Netlify Edge"; fwd=stale
x-frame-options: DENY
x-nf-request-id: 01KFVX6P3TWWR8PAGX9MQ1EA5A
x-xss-protection: 1; mode=block
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=148,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=4O%2BnTDuus5ys53WKi7k1ozormPzXJJUM2ECMSNfZ3t2qEKoqgDL8kDcuYJyy3E%2BE8twBNTScKD3%2FtoDqQoCC2lh3p5nGv2Z%2FmrLSiwUOwUDKpF0PVg%3D%3D"}]}
alt-svc: h3=":443"; ma=86400
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 2a06:98c1:310d::6812:2bae:443 · moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Ray: 9c3c1692dd30ac96-YYZ
CF-Cache-Status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 1
Cache-Control: public, max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Strict-Transport-Security: max-age=31536000
Vary: Accept-Encoding
access-control-allow-credentials: true
cache-status: "Netlify Edge"; hit
x-frame-options: DENY
x-nf-request-id: 01KFVX6NZ7QRHYXSJTS2A6JZ1S
x-xss-protection: 1; mode=block
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=42,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2BzE6tFjluoj1bT8hRXmrB8%2BO7mP2aOj4HFw1Q1YWptE2sVSQp0ok4nEYiP%2BPy20oehgMjki7d1%2FdUNADtknrsPfm8wsRAxzqnm5JI0HSC9PLEYlNiw%3D%3D"}]}
alt-svc: h3=":443"; ma=86400
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 172.64.144.82:80 · moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Length: 0
Connection: close
Location: https://moeku.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=m5JNyHx61pHrmtjo6M5b0QmlqrMc%2BPR0mZaXvxBUFfRkENL9jO6V7ClbVrmARGgt%2FBVCu8VS1ywrhpjFa7XAL3qNUuGBhuDjzQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=10,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9c3c1691eb3fda5a-SJC
alt-svc: h3=":443"; ma=86400
Open service 35.157.26.135:80 · origin.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Mon, 26 Jan 2026 01:03:05 GMT Location: https://origin.moeku.org/ Server: Netlify X-Nf-Request-Id: 01KFVX6SNTH8TFY7EB1DETKFG3 Content-Length: 40 Connection: close Redirecting to https://origin.moeku.org/
Open service 104.18.43.174:8443 · moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Ray: 9c3c16921dcdd29c-FRA
CF-Cache-Status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: public, max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Strict-Transport-Security: max-age=31536000
Vary: Accept-Encoding
access-control-allow-credentials: true
cache-status: "Netlify Edge"; fwd=miss
x-frame-options: DENY
x-nf-request-id: 01KFVX6NYNZYWQ9C20D22XPJNQ
x-xss-protection: 1; mode=block
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=260,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=sbAPVVSt178GfNoK%2BrZFubZZs2cB9UtszbYmyMZfWPAyvKpaPDlpZr5hxGID8d5vxfPPPRq57cPlMz%2BGjcVzSyNpsC6hUW9ZFQ%3D%3D"}]}
alt-svc: h3=":8443"; ma=86400
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 2a06:98c1:3121::3:443 · www.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:02 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 33
Connection: close
location: https://moeku.org/
Server: cloudflare
strict-transport-security: max-age=31536000
x-nf-request-id: 01KFVX6PGRNRZP1T9NEEAYEECS
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=120,cfOrigin;dur=338
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Gjo%2F5DagjkjnS5UQzbYhl9f85sxnFih3q77gRYt2aHi50QiP4%2FQ9VkZZm3Y2pSLso014%2B9bXrmPQRCM0Ur7ReGX0vSCgliyZYPK8n5VOOWEd2SoAi6EDVi0%3D"}]}
CF-RAY: 9c3c1694bb6a48ef-BOM
alt-svc: h3=":443"; ma=86400
Redirecting to https://moeku.org/
Open service 2a05:d014:58f:6200::258:443 · origin.moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 2
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 6836
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.tailwindcss.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; media-src 'self' https: blob:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' https:; object-src 'none'; base-uri 'self';
Content-Type: text/html; charset=UTF-8
Date: Mon, 26 Jan 2026 01:03:02 GMT
Etag: "8b6a0c48564c729e4a3f27f5ac5dca1a-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Frame-Options: DENY
X-Nf-Request-Id: 01KFVX6PTF7P2RN6Y2W967XVAK
X-Xss-Protection: 1; mode=block
Connection: close
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 104.18.43.174:443 · moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Date: Mon, 26 Jan 2026 01:03:02 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Cache-Status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 3
Cache-Control: public, max-age=600
Server: cloudflare
Strict-Transport-Security: max-age=31536000
Vary: Accept-Encoding
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Uuxd0oubE3XN1%2FDqJUXdHhsTeekEz78UK4RoLXSnZIb2RutqWrzuOjvmtxaMAQnQNDN7ftzMDbeh6pwEmZIYOhLJayN5%2Bd5oCNnEvNpirKU%3D"}]}
access-control-allow-credentials: true
cache-status: "Netlify Edge"; hit
x-frame-options: DENY
x-nf-request-id: 01KFVX6PFTP1YBYMNMGXABHKAG
x-xss-protection: 1; mode=block
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=52,cfOrigin;dur=0
CF-RAY: 9c3c1695fa31c151-BLR
alt-svc: h3=":443"; ma=86400
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 63.176.8.218:80 · origin.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Mon, 26 Jan 2026 01:03:06 GMT Location: https://origin.moeku.org/ Server: Netlify X-Nf-Request-Id: 01KFVX6TRN45R92V0FFX3YD555 Content-Length: 40 Connection: close Redirecting to https://origin.moeku.org/
Open service 188.114.97.3:8443 · www.moeku.org
2026-01-26 01:03
Open service 63.176.8.218:443 · origin.moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 1
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 6836
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.tailwindcss.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; media-src 'self' https: blob:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' https:; object-src 'none'; base-uri 'self';
Content-Type: text/html; charset=UTF-8
Date: Mon, 26 Jan 2026 01:03:01 GMT
Etag: "8b6a0c48564c729e4a3f27f5ac5dca1a-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Frame-Options: DENY
X-Nf-Request-Id: 01KFVX6P0JQFT6089NXKH5PJTF
X-Xss-Protection: 1; mode=block
Connection: close
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 2606:4700:4407::ac40:9052:8443 · moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Ray: 9c3c1694ccf6cdde-SIN
CF-Cache-Status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 2
Cache-Control: public, max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Strict-Transport-Security: max-age=31536000
Vary: Accept-Encoding
access-control-allow-credentials: true
cache-status: "Netlify Edge"; hit
x-frame-options: DENY
x-nf-request-id: 01KFVX6P97KCD03D05PWB2KVH1
x-xss-protection: 1; mode=block
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=57,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=CVuxbwjXjTsSpQY2L%2BRZ%2BDR0jNBrR4N7kOeVL1GDQjwFfKfnC%2BkDtyP8eVyzqGCBrJOBGAupgBLNNFM%2BucYqqWbUrWbiuKOf%2FmJpwnQDUBzVhmcKbA%3D%3D"}]}
alt-svc: h3=":8443"; ma=86400
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 172.64.144.82:443 · moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Ray: 9c3c1692cb43ac75-YYZ
CF-Cache-Status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 1
Cache-Control: public, max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Strict-Transport-Security: max-age=31536000
Vary: Accept-Encoding
access-control-allow-credentials: true
cache-status: "Netlify Edge"; hit
x-frame-options: DENY
x-nf-request-id: 01KFVX6P0BF6DSBZ1BNCPSA5YB
x-xss-protection: 1; mode=block
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=98,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=3Hd2XOOuwAMPk2sB7Im78rRBGfyDemzVJ49liQYmct%2BwakBSvAadyGkrFg9m%2FosOnmrHvWmkO8owpner60EYpvTkaYAS6CDdyw%3D%3D"}]}
alt-svc: h3=":443"; ma=86400
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 2606:4700:4407::ac40:9052:80 · moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Length: 0
Connection: close
Location: https://moeku.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=T942wa6UDQGwWbBKOKHDb2%2FLXR%2BVNWUGgtHLBxGyCY55%2BsWdWqUw%2BTwcCQOELzjhd%2BSYq1%2FUAxhImCY1vAS9KGAeaFwqVi6vQxNoiwiIz7TEtwcZ2g%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=10,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9c3c16917cf43104-SIN
alt-svc: h3=":443"; ma=86400
Open service 35.157.26.135:443 · origin.moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 2
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 6836
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.tailwindcss.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; media-src 'self' https: blob:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' https:; object-src 'none'; base-uri 'self';
Content-Type: text/html; charset=UTF-8
Date: Mon, 26 Jan 2026 01:03:02 GMT
Etag: "8b6a0c48564c729e4a3f27f5ac5dca1a-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Frame-Options: DENY
X-Nf-Request-Id: 01KFVX6PCTF719N27BPHSYFQQ0
X-Xss-Protection: 1; mode=block
Connection: close
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 2a06:98c1:310d::6812:2bae:80 · moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Length: 0
Connection: close
Location: https://moeku.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=4sHYV0bSuFGz4mJvKl9TPjh5evIyjm%2FUclxSSL01PS0a2ZuO%2FW0b2G2Op0AG%2BZCcP4KgW8QjA%2BZeJMkF%2BaYDZHIE0ohlpgGji43Rgu09GD7dOoelyQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=10,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9c3c16917ee946dc-EWR
alt-svc: h3=":443"; ma=86400
Open service 104.18.43.174:80 · moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Length: 0
Connection: close
Location: https://moeku.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=4hVvuimHHxbGoNGeXRSDF9jjmI7JnSGastKTLaru13ir%2FzOt8EwXrYmycIJaC17dnhYYmX3xYEqR%2FkAh9gD2%2FxyHc%2BK%2FO755RQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=8,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9c3c1691be81dbfe-FRA
alt-svc: h3=":443"; ma=86400
Open service 2a06:98c1:310d::6812:2bae:8443 · moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Date: Mon, 26 Jan 2026 01:03:02 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Ray: 9c3c16948e1f0519-SIN
CF-Cache-Status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: public, max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Strict-Transport-Security: max-age=31536000
Vary: Accept-Encoding
access-control-allow-credentials: true
cache-status: "Netlify Edge"; fwd=miss
x-frame-options: DENY
x-nf-request-id: 01KFVX6PDX30MVQ0YYXWP8WN49
x-xss-protection: 1; mode=block
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=465,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=VcO9ifBgAjBhs9q4QzOpQ8c2hawJ9oHG5iU3RH9q7Q9ohEiFeWomxnYranrmAeUFaYahrgFgmutF%2F2MQN9runHMFkf8kcaEesBIBcyh2zFTS3do%3D"}]}
alt-svc: h3=":8443"; ma=86400
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 2a06:98c1:3121::3:80 · www.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Length: 0
Connection: close
Location: https://www.moeku.org/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=MdO2SUNgUkbp1IEE9lbuo7L4On4dBpGkGSx2theUL%2BrxyiQbU4l8A4D7IUyAmurafPNQpahUUa9o2AZB8CMEkWojgwMhXm2M4bdBmtySrDuCmYdJAOjdTYo%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfEdge;dur=10,cfOrigin;dur=0
Server: cloudflare
CF-RAY: 9c3c16914f2e1aea-EWR
alt-svc: h3=":443"; ma=86400
Open service 2a05:d014:58f:6200::259:443 · origin.moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 2
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 6836
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.tailwindcss.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; media-src 'self' https: blob:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' https:; object-src 'none'; base-uri 'self';
Content-Type: text/html; charset=UTF-8
Date: Mon, 26 Jan 2026 01:03:02 GMT
Etag: "8b6a0c48564c729e4a3f27f5ac5dca1a-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Frame-Options: DENY
X-Nf-Request-Id: 01KFVX6Q08B5VPB7GDKHFGTAD0
X-Xss-Protection: 1; mode=block
Connection: close
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 172.64.144.82:8443 · moeku.org
2026-01-26 01:03
HTTP/1.1 200 OK
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
CF-Ray: 9c3c1692f9f31c20-FRA
CF-Cache-Status: DYNAMIC
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: public, max-age=600
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Strict-Transport-Security: max-age=31536000
Vary: Accept-Encoding
access-control-allow-credentials: true
cache-status: "Netlify Edge"; fwd=miss
x-frame-options: DENY
x-nf-request-id: 01KFVX6P4576JX6Q8XH6YNFHXJ
x-xss-protection: 1; mode=block
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=327,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fl7WZ5Wrst9AQMdwzahAHud6p0Ndggx3vioPwGJ%2FIKOSIMonxj%2BhBVPx2cLXtaXCPoQHvfL89JaulY0su85%2FT0EM7nLTu876ag%3D%3D"}]}
alt-svc: h3=":8443"; ma=86400
Page title: Moeku's 导航页
<!DOCTYPE html>
<html lang="en" class="transition-colors duration-700">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Moeku's 导航页</title>
<!-- Tailwind CDN retained as requested -->
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&family=Press+Start+2P&display=swap" rel="stylesheet">
<style>
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
overflow-x: hidden;
/* Mobile adaptation: Prevent pull-to-refresh on mobile games */
overscroll-behavior: none;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 175, 204, 0.8);
border-radius: 10px;
border: 2px solid transparent;
background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
background: rgba(244, 114, 182, 0.6);
}
/* Smooth Spring Animations */
.ease-spring {
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ease-silk {
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
/* Floats */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Breathing Animation (Subtle) */
@keyframes breathe {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-3px) scale(1.005); }
}
.animate-breathe {
animation: breathe 6s ease-in-out infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.animate-spin-slow {
animation: spin-slow 8s linear infinite;
}
/* CSS Mascot: Slime */
.slime-body {
border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
animation: slime-morph 4s ease-in-out infinite;
}
@keyframes slime-morph {
0%, 100% { border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform: scaleY(1); }
50% { border-radius: 45% 45% 45% 45% / 55% 55% 40% 40%; transform: scaleY(0.95) translateY(5px); }
}
/* Sakura Petal Interaction */
.sakura-petal {
position: absolute;
top: -10%;
border-radius: 100% 0 100% 0;
animation-name: fall-sway;
animation-timing-function: linear;
cursor: pointer; /* Make clickable */
z-index: 5;
pointer-events: auto;
}
.sakura-petal:active {
transform: scale(1.5);
}
@keyframes fall-sway {
0% {
opacity: 0;
top: -10%;
transform: translateX(0) rotate(0deg);
}
10% {
opacity: 1;
}
100% {
opacity: 0;
top: 110%;
transform: translateX(20vw) rotate(360deg);
}
}
/* Loading Screen */
.loader-bar {
width: 0%;
animation: load-progress 2s ease-out forwards;
}
@keyframes load-progress {
0% { width: 0%; }
100% { width: 100%; }
}
/* RETRO GAME CRT EFFECT */
.scanline {
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
pointer-events: none;
z-index: 50;
}
.retro-font {
font-family: 'Press Start 2P', cursive;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.anima
Open service 2a06:98c1:3120::3:443 · www.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 01:03:01 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 33
Connection: close
location: https://moeku.org/
Server: cloudflare
strict-transport-security: max-age=31536000
x-nf-request-id: 01KFVX6NVZCEKWH5S24R9YNJAC
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=16,cfOrigin;dur=168
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=xqMHb%2BcWySeSgVscRDSm008DJGDlQOuFhPMM0jXkn58rqCVeGCa5BU6KiwNRCg8oL5XhfDuIOn4DeYpu6hmUPCRiqATbocxlELSv9xf9NISbRvh%2BcYUhe5E%3D"}]}
CF-RAY: 9c3c16921e174887-LHR
alt-svc: h3=":443"; ma=86400
Redirecting to https://moeku.org/
Open service 2a05:d014:58f:6200::258:80 · origin.moeku.org
2026-01-26 01:03
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Mon, 26 Jan 2026 01:03:05 GMT Location: https://origin.moeku.org/ Server: Netlify X-Nf-Request-Id: 01KFVX6SRBVRTQ717E0SNN29FS Content-Length: 40 Connection: close Redirecting to https://origin.moeku.org/
Open service 63.176.8.218:443 · proxy.moeku.org
2026-01-11 17:33
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 8
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 87788
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cloud.umami.is https://giscus.app; connect-src 'self' https://cloud.umami.is https://giscus.app; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; frame-src https://giscus.app https://www.youtube.com https://player.bilibili.com https://cloud.guguwo.top https://eopfapi.2b2x.cn https://www.bilibili.com
Content-Type: text/html; charset=UTF-8
Date: Sun, 11 Jan 2026 17:33:45 GMT
Etag: "2eabce81eb24cbe0701c312f45a94c0a-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KEQ1XZH89D8N212ENJ6CYBE7
Connection: close
Page title: Moeku's Blog - 技术分享与实践
<!DOCTYPE html><html lang="zh-CN" class="bg-[var(--page-bg)] transition text-[14px] md:text-[16px]" data-overlayscrollbars-initialize data-astro-cid-sckkx6r4 style="--bannerOffset: 15vh;--banner-height-home: 65vh;--banner-height: 35vh;--configHue: 361;--page-width: 75rem;--bg-url: url(https://t.alcy.cc/pc);--bg-enable: 1;--bg-position: center;--bg-size: cover;--bg-repeat: no-repeat;--bg-attachment: fixed;--bg-opacity: 0.5;"> <head><title>Moeku's Blog - 技术分享与实践</title><meta charset="UTF-8"><meta name="description" content="Moeku's Blog - 技术分享与实践"><meta name="author" content="卡介菌"><meta property="og:site_name" content="Moeku's Blog"><meta property="og:url" content="https://blog.moeku.org/"><meta property="og:title" content="Moeku's Blog - 技术分享与实践"><meta property="og:description" content="Moeku's Blog - 技术分享与实践"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://blog.moeku.org/"><meta name="twitter:title" content="Moeku's Blog - 技术分享与实践"><meta name="twitter:description" content="Moeku's Blog - 技术分享与实践"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v5.13.10"><link rel="icon" href="https://q2.qlogo.cn/headimg_dl?dst_uin=719571357&spec=0"><!-- Set the theme before the page is rendered to avoid a flash --><script>(function(){const DEFAULT_THEME = "auto";
const LIGHT_MODE = "light";
const DARK_MODE = "dark";
const AUTO_MODE = "auto";
const BANNER_HEIGHT_EXTEND = 30;
const PAGE_WIDTH = 75;
const configHue = 361;
// Load the theme from local storage
const theme = localStorage.getItem('theme') || DEFAULT_THEME;
switch (theme) {
case LIGHT_MODE:
document.documentElement.classList.remove('dark');
break
case DARK_MODE:
document.documentElement.classList.add('dark');
break
case AUTO_MODE:
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
}
// Load the hue from local storage
const hue = localStorage.getItem('hue') || configHue;
document.documentElement.style.setProperty('--hue', hue);
// calculate the --banner-height-extend, which needs to be a multiple of 4 to avoid blurry text
let offset = Math.floor(window.innerHeight * (BANNER_HEIGHT_EXTEND / 100));
offset = offset - offset % 4;
document.documentElement.style.setProperty('--banner-height-extend', `${offset}px`);
// Background image loading detection
const bgUrl = getComputedStyle(document.documentElement).getPropertyValue('--bg-url').trim();
const bgEnable = getComputedStyle(document.documentElement).getPropertyValue('--bg-enable').trim();
if (bgUrl && bgUrl !== 'none' && bgEnable === '1') {
const img = new Image();
const urlMatch = bgUrl.match(/url\(["']?([^"')]+)["']?\)/);
if (urlMatch) {
img.onload = function() {
// 背景图片完全加载后,显示背景并启用卡片透明效果
document.body.classList.add('bg-loaded');
document.documentElement.style.setProperty('--card-bg', 'var(--card-bg-transparent)');
document.documentElement.style.setProperty('--float-panel-bg', 'var(--float-panel-bg-transparent)');
};
img.onerror = function() {
// Keep cards opaque if background image fails to load
console.warn('Background image failed to load, keeping cards opaque');
};
img.src = urlMatch[1];
}
}
})();</script><!-- defines global css variables. This will be applied to <html> <body> and some other elements idk why --><link rel="alternate" type="application/rss+xml" title="卡介菌" href="https://blog.moeku.org/rss.xml"><link rel="stylesheet" href="/_astro/Layout.DSulWsr7.css">
<link rel="stylesheet" href="/_astro/Layout.y4KPJ9hc.css">
<link rel="stylesheet" href="/_astro/_page_.CP4uqx2-.css">
<link rel="stylesheet" href="/_astro/_page_.DKIiDKBZ
Open service 63.176.8.218:80 · proxy.moeku.org
2026-01-11 17:33
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Sun, 11 Jan 2026 17:33:54 GMT Location: https://proxy.moeku.org/ Server: Netlify X-Nf-Request-Id: 01KEQ1Y8SR3T3G3N2RCBC8M5X2 Content-Length: 39 Connection: close Redirecting to https://proxy.moeku.org/
Open service 35.157.26.135:443 · proxy.moeku.org
2026-01-11 17:33
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 3
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 87788
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cloud.umami.is https://giscus.app; connect-src 'self' https://cloud.umami.is https://giscus.app; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; frame-src https://giscus.app https://www.youtube.com https://player.bilibili.com https://cloud.guguwo.top https://eopfapi.2b2x.cn https://www.bilibili.com
Content-Type: text/html; charset=UTF-8
Date: Sun, 11 Jan 2026 17:33:46 GMT
Etag: "2eabce81eb24cbe0701c312f45a94c0a-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KEQ1Y0MYTEQ9XEER6RP9DFMN
Connection: close
Page title: Moeku's Blog - 技术分享与实践
<!DOCTYPE html><html lang="zh-CN" class="bg-[var(--page-bg)] transition text-[14px] md:text-[16px]" data-overlayscrollbars-initialize data-astro-cid-sckkx6r4 style="--bannerOffset: 15vh;--banner-height-home: 65vh;--banner-height: 35vh;--configHue: 361;--page-width: 75rem;--bg-url: url(https://t.alcy.cc/pc);--bg-enable: 1;--bg-position: center;--bg-size: cover;--bg-repeat: no-repeat;--bg-attachment: fixed;--bg-opacity: 0.5;"> <head><title>Moeku's Blog - 技术分享与实践</title><meta charset="UTF-8"><meta name="description" content="Moeku's Blog - 技术分享与实践"><meta name="author" content="卡介菌"><meta property="og:site_name" content="Moeku's Blog"><meta property="og:url" content="https://blog.moeku.org/"><meta property="og:title" content="Moeku's Blog - 技术分享与实践"><meta property="og:description" content="Moeku's Blog - 技术分享与实践"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://blog.moeku.org/"><meta name="twitter:title" content="Moeku's Blog - 技术分享与实践"><meta name="twitter:description" content="Moeku's Blog - 技术分享与实践"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v5.13.10"><link rel="icon" href="https://q2.qlogo.cn/headimg_dl?dst_uin=719571357&spec=0"><!-- Set the theme before the page is rendered to avoid a flash --><script>(function(){const DEFAULT_THEME = "auto";
const LIGHT_MODE = "light";
const DARK_MODE = "dark";
const AUTO_MODE = "auto";
const BANNER_HEIGHT_EXTEND = 30;
const PAGE_WIDTH = 75;
const configHue = 361;
// Load the theme from local storage
const theme = localStorage.getItem('theme') || DEFAULT_THEME;
switch (theme) {
case LIGHT_MODE:
document.documentElement.classList.remove('dark');
break
case DARK_MODE:
document.documentElement.classList.add('dark');
break
case AUTO_MODE:
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
}
// Load the hue from local storage
const hue = localStorage.getItem('hue') || configHue;
document.documentElement.style.setProperty('--hue', hue);
// calculate the --banner-height-extend, which needs to be a multiple of 4 to avoid blurry text
let offset = Math.floor(window.innerHeight * (BANNER_HEIGHT_EXTEND / 100));
offset = offset - offset % 4;
document.documentElement.style.setProperty('--banner-height-extend', `${offset}px`);
// Background image loading detection
const bgUrl = getComputedStyle(document.documentElement).getPropertyValue('--bg-url').trim();
const bgEnable = getComputedStyle(document.documentElement).getPropertyValue('--bg-enable').trim();
if (bgUrl && bgUrl !== 'none' && bgEnable === '1') {
const img = new Image();
const urlMatch = bgUrl.match(/url\(["']?([^"')]+)["']?\)/);
if (urlMatch) {
img.onload = function() {
// 背景图片完全加载后,显示背景并启用卡片透明效果
document.body.classList.add('bg-loaded');
document.documentElement.style.setProperty('--card-bg', 'var(--card-bg-transparent)');
document.documentElement.style.setProperty('--float-panel-bg', 'var(--float-panel-bg-transparent)');
};
img.onerror = function() {
// Keep cards opaque if background image fails to load
console.warn('Background image failed to load, keeping cards opaque');
};
img.src = urlMatch[1];
}
}
})();</script><!-- defines global css variables. This will be applied to <html> <body> and some other elements idk why --><link rel="alternate" type="application/rss+xml" title="卡介菌" href="https://blog.moeku.org/rss.xml"><link rel="stylesheet" href="/_astro/Layout.DSulWsr7.css">
<link rel="stylesheet" href="/_astro/Layout.y4KPJ9hc.css">
<link rel="stylesheet" href="/_astro/_page_.CP4uqx2-.css">
<link rel="stylesheet" href="/_astro/_page_.DKIiDKBZ
Open service 2a05:d014:58f:6200::259:80 · proxy.moeku.org
2026-01-11 17:33
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Sun, 11 Jan 2026 17:33:53 GMT Location: https://proxy.moeku.org/ Server: Netlify X-Nf-Request-Id: 01KEQ1Y7EGY2VYSAZM13Y2GNV1 Content-Length: 39 Connection: close Redirecting to https://proxy.moeku.org/
Open service 2a05:d014:58f:6200::259:443 · proxy.moeku.org
2026-01-11 17:33
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 0
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 87788
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cloud.umami.is https://giscus.app; connect-src 'self' https://cloud.umami.is https://giscus.app; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; frame-src https://giscus.app https://www.youtube.com https://player.bilibili.com https://cloud.guguwo.top https://eopfapi.2b2x.cn https://www.bilibili.com
Content-Type: text/html; charset=UTF-8
Date: Sun, 11 Jan 2026 17:33:45 GMT
Etag: "2eabce81eb24cbe0701c312f45a94c0a-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KEQ1XZRCZCB908W3XPK53S5T
Connection: close
Page title: Moeku's Blog - 技术分享与实践
<!DOCTYPE html><html lang="zh-CN" class="bg-[var(--page-bg)] transition text-[14px] md:text-[16px]" data-overlayscrollbars-initialize data-astro-cid-sckkx6r4 style="--bannerOffset: 15vh;--banner-height-home: 65vh;--banner-height: 35vh;--configHue: 361;--page-width: 75rem;--bg-url: url(https://t.alcy.cc/pc);--bg-enable: 1;--bg-position: center;--bg-size: cover;--bg-repeat: no-repeat;--bg-attachment: fixed;--bg-opacity: 0.5;"> <head><title>Moeku's Blog - 技术分享与实践</title><meta charset="UTF-8"><meta name="description" content="Moeku's Blog - 技术分享与实践"><meta name="author" content="卡介菌"><meta property="og:site_name" content="Moeku's Blog"><meta property="og:url" content="https://blog.moeku.org/"><meta property="og:title" content="Moeku's Blog - 技术分享与实践"><meta property="og:description" content="Moeku's Blog - 技术分享与实践"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://blog.moeku.org/"><meta name="twitter:title" content="Moeku's Blog - 技术分享与实践"><meta name="twitter:description" content="Moeku's Blog - 技术分享与实践"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v5.13.10"><link rel="icon" href="https://q2.qlogo.cn/headimg_dl?dst_uin=719571357&spec=0"><!-- Set the theme before the page is rendered to avoid a flash --><script>(function(){const DEFAULT_THEME = "auto";
const LIGHT_MODE = "light";
const DARK_MODE = "dark";
const AUTO_MODE = "auto";
const BANNER_HEIGHT_EXTEND = 30;
const PAGE_WIDTH = 75;
const configHue = 361;
// Load the theme from local storage
const theme = localStorage.getItem('theme') || DEFAULT_THEME;
switch (theme) {
case LIGHT_MODE:
document.documentElement.classList.remove('dark');
break
case DARK_MODE:
document.documentElement.classList.add('dark');
break
case AUTO_MODE:
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
}
// Load the hue from local storage
const hue = localStorage.getItem('hue') || configHue;
document.documentElement.style.setProperty('--hue', hue);
// calculate the --banner-height-extend, which needs to be a multiple of 4 to avoid blurry text
let offset = Math.floor(window.innerHeight * (BANNER_HEIGHT_EXTEND / 100));
offset = offset - offset % 4;
document.documentElement.style.setProperty('--banner-height-extend', `${offset}px`);
// Background image loading detection
const bgUrl = getComputedStyle(document.documentElement).getPropertyValue('--bg-url').trim();
const bgEnable = getComputedStyle(document.documentElement).getPropertyValue('--bg-enable').trim();
if (bgUrl && bgUrl !== 'none' && bgEnable === '1') {
const img = new Image();
const urlMatch = bgUrl.match(/url\(["']?([^"')]+)["']?\)/);
if (urlMatch) {
img.onload = function() {
// 背景图片完全加载后,显示背景并启用卡片透明效果
document.body.classList.add('bg-loaded');
document.documentElement.style.setProperty('--card-bg', 'var(--card-bg-transparent)');
document.documentElement.style.setProperty('--float-panel-bg', 'var(--float-panel-bg-transparent)');
};
img.onerror = function() {
// Keep cards opaque if background image fails to load
console.warn('Background image failed to load, keeping cards opaque');
};
img.src = urlMatch[1];
}
}
})();</script><!-- defines global css variables. This will be applied to <html> <body> and some other elements idk why --><link rel="alternate" type="application/rss+xml" title="卡介菌" href="https://blog.moeku.org/rss.xml"><link rel="stylesheet" href="/_astro/Layout.DSulWsr7.css">
<link rel="stylesheet" href="/_astro/Layout.y4KPJ9hc.css">
<link rel="stylesheet" href="/_astro/_page_.CP4uqx2-.css">
<link rel="stylesheet" href="/_astro/_page_.DKIiDKBZ
Open service 2a05:d014:58f:6200::258:443 · proxy.moeku.org
2026-01-11 17:33
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 0
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; fwd=miss
Content-Length: 87788
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cloud.umami.is https://giscus.app; connect-src 'self' https://cloud.umami.is https://giscus.app; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; frame-src https://giscus.app https://www.youtube.com https://player.bilibili.com https://cloud.guguwo.top https://eopfapi.2b2x.cn https://www.bilibili.com
Content-Type: text/html; charset=UTF-8
Date: Sun, 11 Jan 2026 17:33:45 GMT
Etag: "2eabce81eb24cbe0701c312f45a94c0a-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KEQ1XZR0K4F5EZP2673WBQ2J
Connection: close
Page title: Moeku's Blog - 技术分享与实践
<!DOCTYPE html><html lang="zh-CN" class="bg-[var(--page-bg)] transition text-[14px] md:text-[16px]" data-overlayscrollbars-initialize data-astro-cid-sckkx6r4 style="--bannerOffset: 15vh;--banner-height-home: 65vh;--banner-height: 35vh;--configHue: 361;--page-width: 75rem;--bg-url: url(https://t.alcy.cc/pc);--bg-enable: 1;--bg-position: center;--bg-size: cover;--bg-repeat: no-repeat;--bg-attachment: fixed;--bg-opacity: 0.5;"> <head><title>Moeku's Blog - 技术分享与实践</title><meta charset="UTF-8"><meta name="description" content="Moeku's Blog - 技术分享与实践"><meta name="author" content="卡介菌"><meta property="og:site_name" content="Moeku's Blog"><meta property="og:url" content="https://blog.moeku.org/"><meta property="og:title" content="Moeku's Blog - 技术分享与实践"><meta property="og:description" content="Moeku's Blog - 技术分享与实践"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://blog.moeku.org/"><meta name="twitter:title" content="Moeku's Blog - 技术分享与实践"><meta name="twitter:description" content="Moeku's Blog - 技术分享与实践"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v5.13.10"><link rel="icon" href="https://q2.qlogo.cn/headimg_dl?dst_uin=719571357&spec=0"><!-- Set the theme before the page is rendered to avoid a flash --><script>(function(){const DEFAULT_THEME = "auto";
const LIGHT_MODE = "light";
const DARK_MODE = "dark";
const AUTO_MODE = "auto";
const BANNER_HEIGHT_EXTEND = 30;
const PAGE_WIDTH = 75;
const configHue = 361;
// Load the theme from local storage
const theme = localStorage.getItem('theme') || DEFAULT_THEME;
switch (theme) {
case LIGHT_MODE:
document.documentElement.classList.remove('dark');
break
case DARK_MODE:
document.documentElement.classList.add('dark');
break
case AUTO_MODE:
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
}
// Load the hue from local storage
const hue = localStorage.getItem('hue') || configHue;
document.documentElement.style.setProperty('--hue', hue);
// calculate the --banner-height-extend, which needs to be a multiple of 4 to avoid blurry text
let offset = Math.floor(window.innerHeight * (BANNER_HEIGHT_EXTEND / 100));
offset = offset - offset % 4;
document.documentElement.style.setProperty('--banner-height-extend', `${offset}px`);
// Background image loading detection
const bgUrl = getComputedStyle(document.documentElement).getPropertyValue('--bg-url').trim();
const bgEnable = getComputedStyle(document.documentElement).getPropertyValue('--bg-enable').trim();
if (bgUrl && bgUrl !== 'none' && bgEnable === '1') {
const img = new Image();
const urlMatch = bgUrl.match(/url\(["']?([^"')]+)["']?\)/);
if (urlMatch) {
img.onload = function() {
// 背景图片完全加载后,显示背景并启用卡片透明效果
document.body.classList.add('bg-loaded');
document.documentElement.style.setProperty('--card-bg', 'var(--card-bg-transparent)');
document.documentElement.style.setProperty('--float-panel-bg', 'var(--float-panel-bg-transparent)');
};
img.onerror = function() {
// Keep cards opaque if background image fails to load
console.warn('Background image failed to load, keeping cards opaque');
};
img.src = urlMatch[1];
}
}
})();</script><!-- defines global css variables. This will be applied to <html> <body> and some other elements idk why --><link rel="alternate" type="application/rss+xml" title="卡介菌" href="https://blog.moeku.org/rss.xml"><link rel="stylesheet" href="/_astro/Layout.DSulWsr7.css">
<link rel="stylesheet" href="/_astro/Layout.y4KPJ9hc.css">
<link rel="stylesheet" href="/_astro/_page_.CP4uqx2-.css">
<link rel="stylesheet" href="/_astro/_page_.DKIiDKBZ
Open service 35.157.26.135:80 · proxy.moeku.org
2026-01-11 17:33
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Sun, 11 Jan 2026 17:33:53 GMT Location: https://proxy.moeku.org/ Server: Netlify X-Nf-Request-Id: 01KEQ1Y7ARTF0D14XN9TGQFG0R Content-Length: 39 Connection: close Redirecting to https://proxy.moeku.org/
Open service 2a05:d014:58f:6200::258:80 · proxy.moeku.org
2026-01-11 17:33
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Sun, 11 Jan 2026 17:33:53 GMT Location: https://proxy.moeku.org/ Server: Netlify X-Nf-Request-Id: 01KEQ1Y7AK6X0HNFCKMYAT7S0E Content-Length: 39 Connection: close Redirecting to https://proxy.moeku.org/