<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<title>Harry Styles – Private Collection ✨</title>
<style>
* { box-sizing: border-box; }
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe
UI", Roboto, Arial, sans-serif;
color: white;
overflow-x: hidden;
background: linear-gradient(270deg, #ff9ad5, #ff6ec7,
#ffb6f0, #ff6ec7);
background-size: 800% 800%;
animation: gradientMove 12s ease infinite;
}
@keyframes gradientMove {
0% {background-position: 0% 50%;}
50% {background-position: 100% 50%;}
100% {background-position: 0% 50%;}
}
body::before {
content: "";
position: fixed;
width: 200%;
height: 200%;
background-image: radial-gradient(white 1px,
transparent 1px);
background-size: 28px 28px;
opacity: 0.15;
animation: sparkle 60s linear infinite;
pointer-events: none;
}
@keyframes sparkle {
from { transform: translate(0,0); }
to { transform: translate(-200px,-200px); }
}
header {
text-align: center;
padding: 30px 20px 10px 20px;
}
.container {
max-width: 650px;
margin: auto;
padding: 20px;
}
.song-list {
list-style: none;
padding: 0;
}
.song-list li {
margin-bottom: 12px;
}
.song-list button {
width: 100%;
padding: 15px;
border-radius: 16px;
border: none;
font-weight: bold;
background: white;
color: #ff2fa6;
cursor: pointer;
}
.page {
display: none;
animation: fadeIn 0.4s ease forwards;
}
@keyframes fadeIn {
from {opacity: 0; transform: translateY(15px);}
to {opacity: 1; transform: translateY(0);}
}
.active {
display: block;
}
.back-btn {
margin-bottom: 18px;
padding: 10px 15px;
background: white;
color: #ff2fa6;
border-radius: 12px;
border: none;
cursor: pointer;
}
.lyrics {
background: rgba(255,255,255,0.95);
color: #333;
padding: 18px;
border-radius: 16px;
white-space: pre-wrap;
}
/* PASSWORD OVERLAY */
#loginOverlay {
position: fixed;
inset: 0;
background: rgba(0,0,0,0.85);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.login-box {
background: white;
padding: 30px;
border-radius: 20px;
text-align: center;
width: 90%;
max-width: 400px;
}
.login-box h2 {
margin-top: 0;
color: #ff2fa6;
}
.login-box input {
width: 100%;
padding: 12px;
margin: 15px 0;
border-radius: 10px;
border: 1px solid #ccc;
}
.login-box button {
padding: 12px 20px;
border-radius: 12px;
border: none;
background: #ff2fa6;
color: white;
font-weight: bold;
cursor: pointer;
}
.error {
color: red;
font-size: 0.9rem;
}
</style>
</head>
<body>
<!-- PASSWORD SCREEN -->
<div id="loginOverlay">
<div class="login-box">
<h2>🔒 Passwort
eingeben</h2>
<input type="password"
id="passwordInput" placeholder="Passwort">
<button
onclick="checkPassword()">Login</button>
<div class="error"
id="errorMsg"></div>
</div>
</div>
<header>
<h1>Harry Styles</h1>
<p>Private Song Collection ✨</p>
</header>
<div class="container">
<div id="home" class="page active">
<h2>Setlist</h2>
<ul
class="song-list"></ul>
</div>
</div>
<script>
const correctPassword = "harry123"; // ← HIER Passwort ändern
function checkPassword() {
const input =
document.getElementById("passwordInput").value;
if (input === correctPassword) {
document.getElementById("loginOverlay").style.display = "none";
} else {
document.getElementById("errorMsg").textContent = "Falsches Passwort!";
}
}
const songs = [
"Are You Listening Yet?","Golden","Adore You","Watermelon Sugar",
"Music for a Sushi Restaurant","Taste Back","Coming Up Roses","Fine Line",
"Italian Girls (Interlude)","American Girls","Keep Driving","Ready,
Steady, Go!",
"Dance No More","Treat People With Kindness","Pop","Season 2 Weight Loss",
"Carla's Song / Satellite","Aperture","Matilda","Sign of the Times","As It
Was"
];
const lyrics = [
`Text 1`,`Text 2`,`Text 3`,`Text 4`,`Text 5`,
`Text 6`,`Text 7`,`Text 8`,`Text 9`,`Text 10`,
`Text 11`,`Text 12`,`Text 13`,`Text 14`,`Text 15`,
`Text 16`,`Text 17`,`Text 18`,`Text 19`,`Text 20`,
`Text 21`
];
const container = document.querySelector(".container");
const songList = document.querySelector(".song-list");
songs.forEach((title, index) => {
const li = document.createElement("li");
li.innerHTML = `<button
onclick="showPage('s${index}')">${title}</button>`;
songList.appendChild(li);
const page = document.createElement("div");
page.id = "s" + index;
page.className = "page";
page.innerHTML = `
<button class="back-btn"
onclick="showPage('home')">← Zurück</button>
<h2>${title}</h2>
<div
class="lyrics">${lyrics[index]}</div>
`;
container.appendChild(page);
});
function showPage(id) {
document.querySelectorAll(".page").forEach(p =>
p.classList.remove("active"));
document.getElementById(id).classList.add("active");
window.scrollTo({ top: 0, behavior: "smooth" });
}
</script>
</body>
</html>