Files

129 lines
3.8 KiB
PHP

<?php
// Simple maintenance page for FlixCooks
?>
<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FlixCooks | Wartungsmodus</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&family=Playfair+Display:wght@600&display=swap');
:root {
--bg-1: #12141c;
--bg-2: #1c1f2a;
--text: #dce1eb;
--muted: #8c93a3;
--accent: #6c7ea0;
}
* { box-sizing: border-box; }
body {
margin: 0;
min-height: 100vh;
display: grid;
place-items: center;
background: radial-gradient(circle at 20% 20%, rgba(255,255,255,0.05), transparent 35%),
radial-gradient(circle at 80% 0%, rgba(255,255,255,0.04), transparent 30%),
linear-gradient(135deg, var(--bg-1), var(--bg-2));
color: var(--text);
font-family: 'Montserrat', system-ui, sans-serif;
overflow: hidden;
}
.grain {
position: fixed;
inset: 0;
background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 0);
background-size: 22px 22px;
opacity: 0.35;
pointer-events: none;
mix-blend-mode: screen;
}
.wrap {
text-align: center;
padding: 32px 18px 48px;
}
h1 {
font-family: 'Playfair Display', serif;
font-size: clamp(42px, 6vw, 68px);
margin: 0 0 18px;
letter-spacing: -0.01em;
}
.sub {
margin: 0 0 10px;
text-transform: uppercase;
letter-spacing: 0.24em;
font-weight: 600;
color: var(--muted);
}
.copy { color: var(--muted); margin: 0 0 22px; }
.countdown {
margin-top: -6px;
color: var(--ink);
}
.divider { width: 90px; height: 1px; background: rgba(255,255,255,0.18); margin: 16px auto 12px; }
.dots { display: inline-flex; gap: 8px; align-items: center; justify-content: center; }
.dot {
width: 10px; height: 10px;
border-radius: 50%;
background: rgba(255,255,255,0.32);
animation: pulse 1.4s infinite ease-in-out;
}
.dot:nth-child(2) { animation-delay: 0.15s; }
.dot:nth-child(3) { animation-delay: 0.3s; }
@keyframes pulse {
0%, 80%, 100% { opacity: 0.2; transform: translateY(0); }
40% { opacity: 1; transform: translateY(-4px); }
}
</style>
</head>
<body>
<div class="grain"></div>
<div class="wrap">
<h1>FlixCooks</h1>
<div class="divider"></div>
<p class="sub">Website in Bearbeitung</p>
<p class="copy">Wird in Kürze veröffentlicht</p>
<p id="countdown" class="copy countdown" aria-live="polite">Countdown lädt...</p>
<div class="dots" aria-label="Lädt">
<span class="dot"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
</div>
</body>
<script>
function nextTarget() {
const now = new Date();
const target = new Date(now);
// Aim for today at 18:00; if already passed, roll to tomorrow.
target.setHours(18, 0, 0, 0);
if (now > target) {
target.setDate(target.getDate() + 1);
}
return target;
}
function updateCountdown() {
const el = document.getElementById('countdown');
if (!el) return;
const now = new Date();
let target = nextTarget();
if (now > target) {
target = nextTarget();
}
const diff = target - now;
if (diff <= 0) {
el.textContent = 'Live now';
return;
}
const hours = Math.floor(diff / 36e5);
const minutes = Math.floor((diff % 36e5) / 6e4);
const seconds = Math.floor((diff % 6e4) / 1000);
el.textContent = `Countdown: ${hours.toString().padStart(2,'0')}:${minutes.toString().padStart(2,'0')}:${seconds.toString().padStart(2,'0')}`;
}
updateCountdown();
setInterval(updateCountdown, 1000);
</script>
</html>