49 lines
2.6 KiB
JavaScript
49 lines
2.6 KiB
JavaScript
const PAGE = `<!doctype html>
|
|
<html lang="ko">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="color-scheme" content="light">
|
|
<title>긴급 보안 점검 중</title>
|
|
<style>
|
|
:root { color-scheme: light; font-family: Pretendard, "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #172033; background: #f4f7fb; }
|
|
* { box-sizing: border-box; }
|
|
body { min-height: 100vh; margin: 0; display: grid; place-items: center; padding: 24px; }
|
|
main { width: min(100%, 560px); padding: 48px 40px; text-align: center; background: #fff; border: 1px solid #e5eaf2; border-radius: 24px; box-shadow: 0 18px 55px rgba(31, 55, 92, .09); }
|
|
.mark { width: 58px; height: 58px; margin: 0 auto 24px; display: grid; place-items: center; border-radius: 18px; color: #1456d9; background: #eaf1ff; font-size: 27px; font-weight: 800; }
|
|
.label { margin: 0 0 12px; color: #2459b8; font-size: 13px; font-weight: 750; letter-spacing: .08em; }
|
|
h1 { margin: 0; font-size: clamp(27px, 6vw, 36px); line-height: 1.3; letter-spacing: -.04em; }
|
|
.lead { margin: 18px 0 0; color: #4b5870; font-size: 16px; line-height: 1.8; word-break: keep-all; }
|
|
.divider { height: 1px; margin: 30px 0 24px; background: #e9edf4; }
|
|
.en { margin: 0; color: #657188; font-size: 14px; line-height: 1.75; }
|
|
footer { margin-top: 30px; color: #8791a3; font-size: 12px; }
|
|
@media (max-width: 480px) { main { padding: 38px 24px; border-radius: 20px; } }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<main>
|
|
<div class="mark" aria-hidden="true">!</div>
|
|
<p class="label">SERVICE NOTICE</p>
|
|
<h1>긴급 보안 점검 중입니다</h1>
|
|
<p class="lead">안전한 서비스 제공을 위해 긴급 보안 패치를 적용하고 있습니다.<br>점검이 끝나는 대로 서비스를 다시 열겠습니다.</p>
|
|
<div class="divider" role="presentation"></div>
|
|
<p class="en" lang="en">We are applying an urgent security update to protect the service.<br>We will restore access as soon as maintenance is complete.</p>
|
|
<footer>불편을 드려 죄송합니다. 잠시 후 다시 방문해 주세요.</footer>
|
|
</main>
|
|
</body>
|
|
</html>`;
|
|
|
|
export default {
|
|
async fetch() {
|
|
return new Response(PAGE, {
|
|
status: 503,
|
|
headers: {
|
|
"content-type": "text/html; charset=utf-8",
|
|
"cache-control": "no-store, no-cache, must-revalidate",
|
|
"x-content-type-options": "nosniff",
|
|
"referrer-policy": "no-referrer",
|
|
},
|
|
});
|
|
},
|
|
};
|