<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WAVE FM | Live Radio & Podcasts</title>
<!-- Google Fonts for modern typography -->
<link rel="preconnect" href="https://googleapis.com">
<link rel="preconnect" href="https://gstatic.com" crossorigin>
<link href="https://googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap" rel="stylesheet">
<style>
/* Base Reset & Variables */
:root {
--bg-primary: #0f172a;
--bg-secondary: #1e293b;
--accent: #8b5cf6;
--accent-hover: #a78bfa;
--text-main: #f8fafc;
--text-muted: #94a3b8;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', sans-serif;
background-color: var(--bg-primary);
color: var(--text-main);
line-height: 1.6;
padding-bottom: 100px; /* Space for sticky player */
}
a {
color: inherit;
text-decoration: none;
}
/* Header Navigation */
header {
background-color: rgba(30, 41, 59, 0.8);
backdrop-filter: blur(10px);
position: sticky;
top: 0;
z-index: 100;
border-bottom: 1px solid #334155;
}
.nav-container {
max-width: 1200px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
}
.logo {
font-size: 1.5rem;
font-weight: 700;
letter-spacing: -1px;
color: var(--text-main);
}
.logo span {
color: var(--accent);
}
.nav-links {
display: flex;
list-style: none;
gap: 2rem;
}
.nav-links a:hover {
color: var(--accent);
transition: color 0.3s;
}
/* Hero Section */
.hero {
max-width: 1200px;
margin: 3rem auto;
padding: 0 2rem;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: center;
}
@media (max-width: 768px) {
.hero {
grid-template-columns: 1fr;
gap: 2rem;
text-align: center;
}
}
.hero-text h1 {
font-size: 3.5rem;
line-height: 1.2;
margin-bottom: 1rem;
}
.hero-text p {
color: var(--text-muted);
font-size: 1.2rem;
margin-bottom: 2rem;
}
.btn-main {
background-color: var(--accent);
padding: 0.75rem 2rem;
border-radius: 50px;
font-weight: 600;
display: inline-block;
cursor: pointer;
}
.btn-main:hover {
background-color: var(--accent-hover);
transition: background 0.3s;
}
/* Layout Grid for Main Sections */
.main-layout {
max-width: 1200px;
margin: 0 auto;
padding: 0 2rem;
display: grid;
grid-template-columns: 2fr 1fr;
gap: 3rem;
}
@media (max-width: 992px) {
.main-layout {
grid-template-columns: 1fr;
}
}
section h2 {
font-size: 1.75rem;
margin-bottom: 1.5rem;
border-left: 4px solid var(--accent);
padding-left: 0.75rem;
}
/* Card Component (Podcasts & News) */
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 1.5rem;
margin-bottom: 3rem;
}
.card {
background-color: var(--bg-secondary);
border-radius: 12px;
overflow: hidden;
border: 1px solid #334155;
transition: transform 0.3s;
}
.card:hover {
transform: translateY(-5px);
}
.card-img {
width: 100%;
height: 160px;
background: linear-gradient(45deg, #475569, #334155);
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
color: var(--text-muted);
}
.card-body {
padding: 1rem;
}
.card-title {
font-size: 1.1rem;
font-weight: 600;
margin-bottom: 0.5rem;
}
.card-meta {
color: var(--text-muted);
font-size: 0.85rem;
}
/* Schedule Sidebar */
.schedule-list {
background-color: var(--bg-secondary);
border-radius: 12px;
padding: 1.5rem;
border: 1px solid #334155;
}
.schedule-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 0;
border-bottom: 1px solid #334155;
}
.schedule-item:last-child {
border-bottom: none;
}
.schedule-time {
color: var(--accent);
font-weight: 600;
font-size: 0.9rem;
}
.schedule-show {
font-weight: 600;
text-align: right;
}
.schedule-host {
font-size: 0.8rem;
color: var(--text-muted);
}
.live-tag {
background-color: #ef4444;
color: white;
font-size: 0.75rem;
padding: 0.2rem 0.5rem;
border-radius: 4px;
text-transform: uppercase;
font-weight: bold;
}
/* Sticky Footer Audio Player */
.sticky-player {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background-color: var(--bg-secondary);
border-top: 1px solid #334155;
padding: 1rem 2rem;
z-index: 1000;
}
.player-container {
max-width: 1200px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 1rem;
}
.now-playing {
display: flex;
align-items: center;
gap: 1rem;
}
.track-art {
width: 50px;
height: 50px;
background-color: var(--accent);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
}
.track-details h4 {
font-size: 1rem;
font-weight: 600;
}
.track-details p {
font-size: 0.85rem;
color: var(--text-muted);
}
.player-controls {
display: flex;
align-items: center;
gap: 1.5rem;
}
/* HTML5 Native Audio element custom styling */
audio {
accent-color: var(--accent);
height: 40px;
}
@media (max-width: 600px) {
.player-container {
flex-direction: column;
text-align: center;
}
audio {
width: 100%;
}
}
</style>
</head>
<body>
<!-- Navigation Header -->
<header>
<div class="nav-container">
<a href="#" class="logo">WAVE<span>FM</span></a>
<nav>
<ul class="nav-links">
<li><a href="#podcasts">Podcasts</a></li>
<li><a href="#schedule">Schedule</a></li>
<li><a href="#news">News</a></li>
</ul>
</nav>
</div>
</header>
<!-- Hero Section -->
<section class="hero">
<div class="hero-text">
<h1>Your Station.<br>Your Music.</h1>
<p>Streaming the best alternative tunes, local hits, and unfiltered podcasts live to your device 24/7.</p>
<a href="#live-player" class="btn-main">Listen Live Now</a>
</div>
<div class="hero-visual">
<!-- Simulated Abstract Art Graphic -->
<div style="width: 100%; height: 300px; background: linear-gradient(135deg, var(--accent), #3b82f6); border-radius: 20px; opacity: 0.8; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 1.5rem;">
📡 Broadcasting Worldwide
</div>
</div>
</section>
<!-- Content Layout Grid -->
<div class="main-layout">
<!-- Left Side content (Podcasts and News) -->
<main>
<!-- Trending Podcasts Section -->
<section id="podcasts">
<h2>Trending Podcasts</h2>
<div class="grid-container">
<div class="card">
<div class="card-img">🎙️ EP 42</div>
<div class="card-body">
<div class="card-title">The Daily Grind</div>
<div class="card-meta">34 mins • Tech & Culture</div>
</div>
</div>
<div class="card">
<div class="card-img">🎵 EP 108</div>
<div class="card-body">
<div class="card-title">Soundtrack Stories</div>
888888888
mmmmmmmmm
ooooooooo
nnnnnnnnn
ttttttttt
uuuuuuuuu
eeeeeeeee
sssssssss
wwwwwwwww
hhhhhhhhh
rrrrrrrrr
fffffffff
iiiiiiiii
ddddddddd
aaaaaaaaa
yyyyyyyyy
888
mmm
ooo
nnn
ttt
uuu
eee
sss
www
hhh
rrr
fff
iii
888
mmm
ooo
nnn
ttt
uuu
eee
sss
www
hhh
rrr
fff
iii
ddd
aaa
yyy
month
88
88
day
88888
88888
UTC
88
88
hour
:
88
88
minute
:
88
88
second
am
pm