Compare commits

...

6 Commits

Author SHA1 Message Date
Flatlogic Bot
9e63d9d44f Music added 2025-09-18 14:47:23 +00:00
Flatlogic Bot
648d70a6dd Music Icon 2025-09-18 14:44:33 +00:00
Flatlogic Bot
8a4e09d491 Futuristic font 2025-09-17 13:41:43 +00:00
Flatlogic Bot
83525c1423 Neon calendar 2025-09-17 13:28:30 +00:00
Flatlogic Bot
d8875292fa Order form 2025-09-17 13:07:03 +00:00
Flatlogic Bot
f9549456ea Neon font 2025-09-17 13:00:28 +00:00
3 changed files with 606 additions and 125 deletions

395
assets/css/custom.css Normal file
View File

@ -0,0 +1,395 @@
html, h1, h2, h3, h4, h5, h6 {
font-family: 'Orbitron', sans-serif;
}
html, body, a, button {
cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAb5JREFUWEftl/1NAzEQhV/5/y8DugA6gA6gA+gAOkA6gA6gA+gA6gA6ACpIB3Sg/MhZco0skVwS88/lJcnP5HO+S5K9Vqo9gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/gP8B/g-), auto;
}
body {
background-color: #000010;
color: #FFFFFF;
font-family: 'Orbitron', sans-serif;
}
.navbar {
background-color: rgba(16, 16, 32, 0.8);
backdrop-filter: blur(10px);
}
.navbar-brand, .nav-link {
color: #FFFFFF !important;
}
.nav-link:hover {
color: #00BFFF !important;
}
.hero {
height: 100vh;
background: url('https://preview.redd.it/1920x1080-futuristic-digital-art-of-men-and-city-at-night-v0-vni5e3auiyw91.jpg?auto=webp&s=6393927bf49cec89bf66e020a914be54c8edc7c3') no-repeat center center/cover;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.hero-overlay {
background-color: rgba(0, 0, 0, 0.6);
padding: 2rem;
border-radius: 8px;
}
.hero h1 {
font-size: 4rem;
font-weight: 700;
background: linear-gradient(45deg, #00BFFF, #FF00FF);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.btn-primary {
background: linear-gradient(45deg, #00BFFF, #FF00FF);
border: none;
padding: 0.75rem 1.5rem;
font-weight: 700;
transition: transform 0.2s;
}
.btn-primary:hover {
transform: scale(1.05);
}
.section {
padding: 6rem 0;
}
.exhibit-card {
background-color: #101020;
border: 1px solid #00BFFF;
border-radius: 8px;
overflow: hidden;
transition: transform 0.8s ease-out, opacity 0.8s ease-out, box-shadow 0.3s;
box-shadow: 0 0 5px #00BFFF, 0 0 10px #00BFFF, 0 0 15px #00BFFF;
opacity: 0; /* Start hidden */
}
.exhibit-card.hidden-left {
transform: translateX(-100px);
}
.exhibit-card.hidden-right {
transform: translateX(100px);
}
.exhibit-card.hidden-bottom {
transform: translateY(100px);
}
.exhibit-card.visible {
opacity: 1;
transform: translateX(0) translateY(0);
}
.exhibit-card:hover {
transform: translateY(-10px);
box-shadow: 0 0 15px #FF00FF, 0 0 25px #FF00FF, 0 0 35px #FF00FF;
}
.exhibit-card img {
width: 100%;
aspect-ratio: 4 / 3;
object-fit: cover;
}
.exhibit-card .card-body {
padding: 1.5rem;
}
.exhibit-card .card-title {
color: #FFFFFF;
text-shadow: 0 0 5px #FFFFFF, 0 0 10px #00BFFF, 0 0 15px #00BFFF;
}
.exhibit-card .card-text {
color: #E0E0E0;
text-shadow: 0 0 3px #FFFFFF, 0 0 8px #00BFFF;
}
section h2 {
color: #FFFFFF;
text-shadow: 0 0 8px #FFFFFF, 0 0 15px #00BFFF, 0 0 20px #00BFFF;
}
.full-width-section {
height: 70vh;
background-size: cover;
background-position: center;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
position: relative;
}
.full-width-section .overlay-content {
position: relative;
z-index: 2;
color: white;
background-color: rgba(0, 0, 0, 0.5);
padding: 2rem;
border-radius: 8px;
}
.full-width-section::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.3);
z-index: 1;
}
#tickets {
position: relative;
background: #000000 !important;
}
#tickets::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.7);
z-index: 1;
}
#tickets .container {
position: relative;
z-index: 2;
}
#tickets .ticket-form-container {
background-color: #000000 !important;
padding: 2rem;
border-radius: 8px;
border: 1px solid #00BFFF;
box-shadow: 0 0 15px #00BFFF;
}
.ticket-form-container .form-label {
color: #FFFFFF;
text-shadow: 0 0 5px #FFFFFF, 0 0 10px #00BFFF;
}
/* Date Picker */
.ticket-form-container .form-control[type="date"] {
color-scheme: dark;
position: relative;
}
/* Calendar Icon Styling */
.ticket-form-container .form-control[type="date"]::-webkit-calendar-picker-indicator {
cursor: pointer;
opacity: 1;
filter: invert(80%) sepia(100%) saturate(300%) hue-rotate(280deg) drop-shadow(0 0 6px #ff00ff); /* Glowing pink icon */
transition: filter 0.3s ease;
}
.ticket-form-container .form-control[type="date"]::-webkit-calendar-picker-indicator:hover {
filter: invert(90%) sepia(100%) saturate(500%) hue-rotate(180deg) drop-shadow(0 0 10px #00BFFF); /* Glowing cyan on hover */
}
/* --- Flatpickr Neon Theme --- */
.flatpickr-calendar {
background: #0a001f;
border: 1px solid #ff00ff;
border-radius: 8px;
box-shadow: 0 0 15px #ff00ff;
width: 300px;
font-family: 'Orbitron', sans-serif;
}
.flatpickr-months .flatpickr-month {
color: #fff;
fill: #fff;
text-shadow: 0 0 5px #ff00ff;
}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
color: #ff00ff;
fill: #ff00ff;
transition: all 0.3s ease;
}
.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
color: #00BFFF;
fill: #00BFFF;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
background: #0a001f;
border: 1px solid #ff00ff;
color: #fff;
}
.flatpickr-current-month .numInput {
background: transparent;
color: #fff;
border: none;
text-shadow: 0 0 5px #ff00ff;
}
.flatpickr-weekdays {
background: #101020;
}
span.flatpickr-weekday {
color: #ff00ff;
font-weight: bold;
text-shadow: 0 0 3px #ff00ff;
}
.flatpickr-day {
color: #ccc;
border: 1px solid transparent;
transition: all 0.3s ease;
}
.flatpickr-day:hover {
background: #101020;
border-color: #00BFFF;
color: #00BFFF;
}
.flatpickr-day.today {
border-color: #ff00ff;
color: #ff00ff;
text-shadow: 0 0 5px #ff00ff;
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
background: #ff00ff;
border-color: #ff00ff;
color: #000;
box-shadow: 0 0 10px #ff00ff;
}
.flatpickr-day.disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
color: #444;
}
.holo-relics-img {
object-position: top;
}
/* --- Choices.js Neon Theme --- */
.choices {
margin-bottom: 1rem;
font-family: 'Orbitron', sans-serif;
}
.choices__inner {
background-color: #0a001f;
color: #BC13FE; /* MODIFIED: Neon Purple */
border: 1px solid #ff00ff;
box-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff, 0 0 20px #ff00ff,
inset 0 0 5px rgba(255, 0, 255, 0.5);
border-radius: 8px;
padding: .375rem .75rem;
transition: all 0.3s ease;
min-height: auto;
}
.choices.is-open .choices__inner {
border-color: #00BFFF;
box-shadow: 0 0 10px #00BFFF, 0 0 20px #00BFFF, 0 0 40px #00BFFF,
inset 0 0 10px rgba(0, 191, 255, 0.6);
}
.choices__list--dropdown {
background-color: #0a001f;
border: 1px solid #00BFFF;
border-radius: 8px;
box-shadow: 0 0 15px #00BFFF;
margin-top: 5px;
color: #39FF14; /* MODIFIED: Neon Green */
}
.choices__item {
padding: 10px;
}
.choices__item--selectable.is-highlighted {
background-color: #BC13FE; /* MODIFIED: Neon Purple */
color: #000; /* MODIFIED: Black */
}
.choices__list [role=option] {
color: #39FF14; /* MODIFIED: Neon Green */
}
.choices__list--dropdown .choices__item--selectable.is-highlighted {
background-color: #BC13FE; /* MODIFIED: Neon Purple */
color: #000; /* MODIFIED: Black */
}
.choices__pointer {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ff00ff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: center;
background-size: 16px 12px;
height: 100%;
width: 20px;
margin-top: 0;
border: none;
transition: transform 0.3s ease;
}
.choices.is-open .choices__pointer {
transform: rotate(-180deg);
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2300BFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}
.choices__item--choice {
padding: 0.5rem 1rem;
}
#music-toggle {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 1000;
cursor: pointer;
background-color: rgba(16, 16, 32, 0.8);
padding: 1rem;
border-radius: 50%;
border: 1px solid #00BFFF;
box-shadow: 0 0 15px #00BFFF;
width: 50px;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
}
#music-toggle i {
font-size: 20px;
color: #FFFFFF;
text-shadow: 0 0 5px #FFFFFF, 0 0 10px #00BFFF;
}

33
assets/js/main.js Normal file
View File

@ -0,0 +1,33 @@
document.addEventListener('DOMContentLoaded', () => {
const observerOptions = {
root: null,
rootMargin: '0px',
threshold: 0.1
};
const observer = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
observer.unobserve(entry.target);
}
});
}, observerOptions);
const hiddenElements = document.querySelectorAll('.hidden-left, .hidden-right, .hidden-bottom');
hiddenElements.forEach(el => observer.observe(el));
flatpickr("#visit-date", {
dateFormat: "Y-m-d",
});
const ticketType = new Choices('#ticket-type', {
searchEnabled: false,
itemSelectText: ''
});
const ticketQuantity = new Choices('#ticket-quantity', {
searchEnabled: false,
itemSelectText: ''
});
});

301
index.php
View File

@ -1,131 +1,184 @@
<?php <!DOCTYPE html>
declare(strict_types=1);
@ini_set('display_errors', '1');
@error_reporting(E_ALL);
@date_default_timezone_set('UTC');
$phpVersion = PHP_VERSION;
$now = date('Y-m-d H:i:s');
?>
<!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8" /> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>New Style</title> <title>Digital Museum</title>
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap" rel="stylesheet">
<style> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
:root { <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
--bg-color-start: #6a11cb; <link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
--bg-color-end: #2575fc; <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
--text-color: #ffffff; <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/choices.js/public/assets/styles/choices.min.css"/>
--card-bg-color: rgba(255, 255, 255, 0.01);
--card-border-color: rgba(255, 255, 255, 0.1);
}
body {
margin: 0;
font-family: 'Inter', sans-serif;
background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
color: var(--text-color);
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
text-align: center;
overflow: hidden;
position: relative;
}
body::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M-10 10L110 10M10 -10L10 110" stroke-width="1" stroke="rgba(255,255,255,0.05)"/></svg>');
animation: bg-pan 20s linear infinite;
z-index: -1;
}
@keyframes bg-pan {
0% { background-position: 0% 0%; }
100% { background-position: 100% 100%; }
}
main {
padding: 2rem;
}
.card {
background: var(--card-bg-color);
border: 1px solid var(--card-border-color);
border-radius: 16px;
padding: 2rem;
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1);
}
.loader {
margin: 1.25rem auto 1.25rem;
width: 48px;
height: 48px;
border: 3px solid rgba(255, 255, 255, 0.25);
border-top-color: #fff;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.hint {
opacity: 0.9;
}
.sr-only {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap; border: 0;
}
h1 {
font-size: 3rem;
font-weight: 700;
margin: 0 0 1rem;
letter-spacing: -1px;
}
p {
margin: 0.5rem 0;
font-size: 1.1rem;
}
code {
background: rgba(0,0,0,0.2);
padding: 2px 6px;
border-radius: 4px;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
footer {
position: absolute;
bottom: 1rem;
font-size: 0.8rem;
opacity: 0.7;
}
</style>
</head> </head>
<body> <body>
<main> <div id="music-toggle">
<div class="card"> <i class="fas fa-play"></i>
<h1>Analyzing your requirements and generating your website…</h1>
<div class="loader" role="status" aria-live="polite" aria-label="Applying initial changes">
<span class="sr-only">Loading…</span>
</div>
<p class="hint">Flatlogic AI is collecting your requirements and applying the first changes.</p>
<p class="hint">This page will update automatically as the plan is implemented.</p>
<p>Runtime: PHP <code><?= htmlspecialchars($phpVersion) ?></code> — UTC <code><?= htmlspecialchars($now) ?></code></p>
</div> </div>
</main> <audio id="background-music" loop>
<footer> <source src="https://www.fesliyanstudios.com/download-link.php?src=i&id=2" type="audio/mpeg">
Page updated: <?= htmlspecialchars($now) ?> (UTC) </audio>
</footer>
<nav class="navbar navbar-expand-lg navbar-dark fixed-top">
<div class="container">
<a class="navbar-brand" href="#">Digital Museum</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="#exhibits">Exhibits</a></li>
<li class="nav-item"><a class="nav-link" href="#schedule">Schedule</a></li>
<li class="nav-item"><a class="nav-link" href="#tickets">Tickets</a></li>
</ul>
</div>
</div>
</nav>
<header class="hero">
<div class="hero-overlay">
<h1 class="display-3">Experience the Future of Art</h1>
<p class="lead">Explore our collection of digital marvels.</p>
<a href="#tickets" class="btn btn-primary btn-lg">Get Tickets</a>
</div>
</header>
<section id="exhibits" class="section">
<div class="container">
<h2 class="text-center mb-5">Featured Exhibits</h2>
<div class="row">
<div class="col-md-4 mb-4">
<div class="exhibit-card hidden-left">
<img src="https://media.istockphoto.com/id/1367089822/vector/blue-glowing-swirl-light-effect-magic-abstract-frame-power-energy-of-circular-element.jpg?s=612x612&w=0&k=20&c=d5kDHchWlUENE1MtqJiiUmCt7SNEYQGlU6y0JvpKAP0=" alt="Abstract digital sculpture with flowing lights.">
<div class="card-body">
<h5 class="card-title">Luminous Forms</h5>
<p class="card-text">A dance of light and shadow, sculpted in the digital realm.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-4">
<div class="exhibit-card hidden-bottom">
<img src="https://fydn.imgix.net/m/x1000/1f3fcb96-543b-4e38-929d-ad1e13a46c61.jpg?q=75&auto=format,compress&w=480&dpr=1" alt="Interactive holographic display of ancient artifacts." class="holo-relics-img">
<div class="card-body">
<h5 class="card-title">Holo relics</h5>
<p class="card-text">Ancient history brought to life through interactive holography.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-4">
<div class="exhibit-card hidden-right">
<img src="https://media.licdn.com/dms/image/v2/D4E12AQHegyw27WmVOA/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1669022700627?e=2147483647&v=beta&t=sCWZCe6juhtnPhHwKvSshY07hUoloLMaSj_I6XxoeqE" alt="A virtual reality experience of a surreal landscape.">
<div class="card-body">
<h5 class="card-title">VR Dreams</h5>
<p class="card-text">Step into another reality and explore breathtaking virtual worlds.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="full-width-section" style="background-image: url('https://d3hjf51r9j54j7.cloudfront.net/wp-content/uploads/sites/9/2023/12/webversion-1USE.jpg');">
<div class="overlay-content">
<h2>Section 1 Title</h2>
<p>Description for section 1.</p>
</div>
</section>
<section class="full-width-section" style="background-image: url('https://afar.brightspotcdn.com/dims4/default/850f1aa/2147483647/strip/false/crop/1600x1067+0+0/resize/1486x991!/quality/90/?url=https%3A%2F%2Fk3-prod-afar-media.s3.us-west-2.amazonaws.com%2Fbrightspot%2Faa%2F3a%2F506c18cc148ac2e4a2cba8f8f42a%2Foriginal-14787.jpg');">
<div class="overlay-content">
<h2>Section 2 Title</h2>
<p>Description for section 2.</p>
</div>
</section>
<section class="full-width-section" style="background-image: url('https://cdn.i-scmp.com/sites/default/files/d8/images/methode/2020/06/11/ec246d82-252f-11ea-9939-941d1970c7f1_image_hires_164843.jpg');">
<div class="overlay-content">
<h2>Section 3 Title</h2>
<p>Description for section 3.</p>
</div>
</section>
<section id="tickets" class="section">
<div class="container">
<h2 class="text-center mb-5">Buy Tickets</h2>
<div class="row justify-content-center">
<div class="col-md-8 col-lg-6">
<div class="ticket-form-container">
<form>
<div class="mb-3">
<label for="ticket-type" class="form-label">Tariff</label>
<select class="form-select" id="ticket-type" aria-label="Select ticket type">
<option selected>Choose tariff...</option>
<option value="adult">Adult</option>
<option value="child">Child</option>
<option value="family">Family</option>
</select>
</div>
<div class="mb-3">
<label for="ticket-quantity" class="form-label">Number of tickets</label>
<select class="form-select" id="ticket-quantity" aria-label="Select number of tickets">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</.option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div>
<div class="mb-3">
<label for="visit-date" class="form-label">Date of visit</label>
<input type="date" class="form-control" id="visit-date">
</div>
<div class="text-center mt-4">
<button type="submit" class="btn btn-primary btn-lg">Buy Now</button>
</div>
</form>
</div>
</div>
</div>
</div>
</section>
<footer class="py-4 text-center text-muted">
<div class="container">
<p>&copy; 2025 Digital Museum. All rights reserved.</p>
<p style="font-size: 0.8rem; color: #888;">Music by <a href="https://www.fesliyanstudios.com" target="_blank" rel="noopener noreferrer">David Fesliyan (FesliyanStudios.com)</a></p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
<script src="https://cdn.jsdelivr.net/npm/choices.js/public/assets/scripts/choices.min.js"></script>
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const audio = document.getElementById('background-music');
const toggleButton = document.getElementById('music-toggle');
const icon = toggleButton.querySelector('i');
if (audio && toggleButton && icon) {
audio.volume = 0.5;
toggleButton.addEventListener('click', () => {
if (audio.paused) {
audio.play().catch(error => console.error("Audio play failed:", error));
icon.classList.remove('fa-play');
icon.classList.add('fa-pause');
} else {
audio.pause();
icon.classList.remove('fa-pause');
icon.classList.add('fa-play');
}
});
}
});
</script>
</body> </body>
</html> </html>