have a great night & take good care.<center>
<div class="trf-news-wrap">
<div class="trf-news-header">
FORUM NEWS
</div>
<div class="trf-news-fader">
<div class="trf-news-item">
Forum upgraded and optimised for SMF 2.1.7.
</div>
<div class="trf-news-item">
Blurr Blurr Blurr On & On Enjoy add your info here to be displayed.
</div>
<div class="trf-news-item">
Enter your info here to be displayed on the block.
</div>
<div class="trf-news-item">
New members are always welcome to join the discussion.
</div>
</div>
</div>
<style>
.trf-news-wrap{
width:100%;
margin:0;
border:1px solid #8ca3a3;
background:#f7f7f7;
overflow:hidden;
box-sizing:border-box;
font-family:Arial,Helvetica,sans-serif;
}
/* Kernal theme bar */
.trf-news-header{
padding:8px 12px;
font-size:18px;
font-weight:bold;
color:#fff;
text-shadow:1px 1px 1px rgba(0,0,0,.4);
background:
linear-gradient(
to bottom,
#4f8d8d 0%,
#3b7474 50%,
#2c5f5f 100%
);
border-bottom:1px solid #d8d8d8;
}
.trf-news-fader{
position:relative;
height:48px;
background:#ffffff;
overflow:hidden;
}
.trf-news-item{
position:absolute;
width:100%;
left:0;
top:0;
padding:14px 10px;
text-align:center;
color:#333;
opacity:0;
animation:trfFadeNews 16s infinite;
}
.trf-news-item:nth-child(1){
animation-delay:0s;
}
.trf-news-item:nth-child(2){
animation-delay:4s;
}
.trf-news-item:nth-child(3){
animation-delay:8s;
}
.trf-news-item:nth-child(4){
animation-delay:12s;
}
@keyframes trfFadeNews{
0%{
opacity:0;
}
5%{
opacity:1;
}
20%{
opacity:1;
}
25%{
opacity:0;
}
100%{
opacity:0;
}
}
@media (max-width:600px){
.trf-news-fader{
height:60px;
}
.trf-news-item{
font-size:14px;
line-height:1.4;
padding:10px;
}
}
<center/>
<!-- ==========================================================
Kernal Components Library (KERNAL CODED) V 1.6
Updated the Banner system on here to display more banners
as needed Code Kernal 2026!
========================================================== -->
<style>
.kcl-wrapper{
--bg:#dfe5ea;
--card:#ffffff;
--card2:#f4f4f4;
--border:#c6d2da;
--hover:#8aa0ac;
--shadow:rgba(0,0,0,.18);
font-family:Arial,sans-serif;
}
.kcl-wrapper *,
.kcl-wrapper *:before,
.kcl-wrapper *:after{
box-sizing:border-box;
}
.carousel{
position:relative;
overflow:hidden;
background:var(--bg);
border-top:1px solid var(--border);
border-bottom:1px solid var(--border);
}
.slide{
display:none;
padding:12px 10px;
}
.slide.active{
display:block;
animation:fade .8s ease;
}
.grid{
max-width:1200px;
margin:auto;
display:flex;
justify-content:center;
align-items:center;
flex-wrap:wrap;
gap:10px;
}
.card{
display:flex;
justify-content:center;
align-items:center;
width:220px;
height:60px;
padding:5px;
background:linear-gradient(#fff,var(--card2));
border:1px solid var(--border);
border-radius:5px;
overflow:hidden;
text-decoration:none;
transition:.25s ease;
}
.card:hover{
border-color:var(--hover);
box-shadow:0 8px 18px var(--shadow);
transform:translateY(-3px) scale(1.02);
}
.card img{
width:100%;
height:100%;
object-fit:contain;
}
@keyframes fade{
from{
opacity:.2;
}
to{
opacity:1;
}
}
@media(max-width:768px){
.grid{
flex-direction:column;
}
.card{
width:90%;
max-width:320px;
}
}
</style>
<div class="kcl-wrapper">
<div class="carousel" id="kcl-carousel">
<div class="slide active">
<div class="grid">
<a class="card" href="https://www.tinyportal.net" target="_blank">
<img src="https://rapidforum.co.uk/forum/Advertise/TinyPortalv8.jpg">
</a>
<a class="card" href="https://www.drbobsgunbits.com" target="_blank">
<img src="https://rapidforum.co.uk/forum/Advertise/DrBob.jpg">
</a>
<a class="card" href="https://www.customstock.co.uk" target="_blank">
<img src="https://rapidforum.co.uk/forum/Advertise/customstocks.jpg">
</a>
<a class="card" href="https://www.airgunbuyer.com" target="_blank">
<img src="https://rapidforum.co.uk/forum/Advertise/BlackpoolAirguns_234x60px.jpg">
</a>
</div>
</div>
<div class="slide">
<div class="grid">
<a class="card" href="https://bamfordguns.co.uk/" target="_blank">
<img src="https://rapidforum.co.uk/forum/Advertise/Bamfords.jpg">
</a>
<a class="card" href="https://www.cheshiregunroom.com/" target="_blank">
<img src="https://rapidforum.co.uk/forum/Advertise/CheshireGunRoom.jpg">
</a>
<a class="card" href="https://www.jackpyke.co.uk/" target="_blank">
<img src="https://rapidforum.co.uk/forum/Advertise/JackPyke.jpg">
</a>
<a class="card" href="https://www.yorkshiresportingguns.co.uk/" target="_blank">
<img src="https://rapidforum.co.uk/forum/Advertise/YorkshireSportingGuns5.jpg">
</a>
</div>
</div>
</div>
</div>
<script>
(function(){
const carousel=document.getElementById("kcl-carousel");
const slides=carousel.querySelectorAll(".slide");
let current=0;
let timer;
function nextSlide(){
slides[current].classList.remove("active");
current++;
if(current >= slides.length){
current=0;
}
slides[current].classList.add("active");
}
function startCarousel(){
timer=setInterval(nextSlide,8000);
}
function stopCarousel(){
clearInterval(timer);
}
carousel.addEventListener("mouseenter",stopCarousel);
carousel.addEventListener("mouseleave",startCarousel);
startCarousel();
})();
</script><style>
#radioPlayer{
width:194px;
background:#1d1d1d;
border-radius:16px;
padding:15px;
color:#fff;
font-family:Arial,Helvetica,sans-serif;
text-align:center;
box-shadow:0 4px 20px rgba(0,0,0,.5);
}
.logo{
width:90px;
height:90px;
border-radius:12px;
object-fit:cover;
display:block;
margin:0 auto 10px;
}
.station{
font-size:20px;
font-weight:bold;
margin-bottom:6px;
}
.live{
display:inline-block;
background:#d00000;
color:#fff;
font-size:11px;
font-weight:bold;
padding:4px 10px;
border-radius:20px;
animation:pulse 1.2s infinite;
}
@keyframes pulse{
0%{opacity:1;}
50%{opacity:.45;}
100%{opacity:1;}
}
.songBox{
margin:15px 0;
background:#2a2a2a;
border-radius:8px;
padding:8px;
overflow:hidden;
}
.songTitle{
white-space:nowrap;
display:inline-block;
animation:scrollText 15s linear infinite;
}
@keyframes scrollText{
0%{transform:translateX(100%);}
100%{transform:translateX(-100%);}
}
/* BUTTON FIXED */
button{
width:100%;
background:#0084ff !important;
color:#fff !important;
border:none;
border-radius:8px;
padding:0px;
font-size:15px;
cursor:pointer;
margin-bottom:10px;
outline:none;
}
/* prevent white background after click */
button:focus,
button:active{
background:#0084ff !important;
color:#fff !important;
outline:none;
box-shadow:none;
}
/* hover state */
button:hover{
background:#1694ff !important;
}
button::-moz-focus-inner{
border:0;
}
.volumeLabel{
font-size:12px;
color:#ccc;
margin-bottom:4px;
}
input[type=range]{
width:100%;
}
.footer{
margin-top:12px;
font-size:11px;
color:#888;
}
</style>
<div id="radioPlayer">
<img src="http://acrossthemiles.net/pics/album_art.1726880335.jpg" class="logo">
<div class="station">
SouthBay Radio
</div>
<div class="live">
● LIVE
</div>
<div class="songBox">
<div class="songTitle" id="songTitle">
Loading current song...
</div>
</div>
<button id="playButton">
▶ Play
</button>
<div class="volumeLabel">
🔊 Volume
</div>
<input type="range"
id="volume"
min="0"
max="1"
step="0.01"
value="0.25">
<div class="footer">
Streaming 24/7
</div>
</div>
<audio id="radio">
<source src="http://southbayradio.org:8115/live.mp3" type="audio/mpeg">
</audio>
<script>
const radio = document.getElementById("radio");
const playButton = document.getElementById("playButton");
const volume = document.getElementById("volume");
radio.volume = 0.25;
playButton.onclick = function(){
if(radio.paused){
radio.volume = 0.25;
volume.value = 0.25;
radio.play();
playButton.innerHTML = "⏸ Pause";
}else{
radio.pause();
playButton.innerHTML = "▶ Play";
}
};
volume.oninput = function(){
radio.volume = this.value;
};
async function loadSong(){
try{
const response = await fetch("nowplaying.php");
const json = await response.json();
let source = json.icestats.source;
let title = Array.isArray(source)
? source[0].title
: source.title;
document.getElementById("songTitle").textContent =
title || "Unknown Title";
}catch(e){
document.getElementById("songTitle").textContent =
"Now Playing unavailable";
}
}
loadSong();
setInterval(loadSong,15000);
</script>
Page created in 0.073 seconds with 22 queries.