rawreel/index.html

291 lines
7.6 KiB
HTML
Raw Normal View History

2025-03-12 07:58:33 +00:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Raw Reel Social</title>
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<style>
2025-03-12 08:53:19 +00:00
/* RESET & BOX-SIZING */
2025-03-12 07:58:33 +00:00
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
2025-03-12 08:53:19 +00:00
/* BASIC BODY SETUP: BLACK BACKDROP */
2025-03-12 07:58:33 +00:00
html, body {
width: 100%;
height: 100%;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
color: #fff;
2025-03-12 08:53:19 +00:00
background: #000; /* Plain black base */
overflow: hidden; /* Keep “single screen” if it fits */
2025-03-12 07:58:33 +00:00
}
/*
2025-03-12 08:53:19 +00:00
STARFIELD: behind everything (z-index: -2),
so we can layer a pink grid in front of it.
2025-03-12 07:58:33 +00:00
*/
2025-03-12 08:53:19 +00:00
#starfield {
2025-03-12 07:58:33 +00:00
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -2;
2025-03-12 08:53:19 +00:00
background: transparent; /* so black or the overlay is visible */
2025-03-12 07:58:33 +00:00
}
/*
2025-03-12 08:53:19 +00:00
PINK GRID: body::before
- 2 repeating-linear-gradients for horizontal & vertical lines
- 2px bright pink lines, each cell 40px tall/wide
- Slight angle: -15deg
- Slowly scroll upward
2025-03-12 07:58:33 +00:00
*/
2025-03-12 08:53:19 +00:00
body::before {
content: "";
2025-03-12 07:58:33 +00:00
position: fixed;
top: 0;
left: 0;
2025-03-12 08:53:19 +00:00
width: 200%;
height: 200%;
z-index: -1; /* in front of starfield, behind content */
pointer-events: none; /* ignore clicks */
/*
We'll do each set of lines in bright pink:
- (A) horizontal lines repeating every 40px, with a 2px thick line
- (B) vertical lines similarly
*/
background:
/* Horizontal lines */
repeating-linear-gradient(
0deg,
rgba(255,0,212,1) 0px, /* line color start */
rgba(255,0,212,1) 2px, /* line color end (2px thick) */
transparent 2px, /* transparent gap */
transparent 40px /* next line after 40px total */
),
/* Vertical lines */
repeating-linear-gradient(
90deg,
rgba(255,0,212,1) 0px,
rgba(255,0,212,1) 2px,
transparent 2px,
transparent 40px
);
background-size: 100% 100%, 100% 100%;
/* Slight angle + small shift so grid definitely covers the screen */
transform: rotate(-15deg) translate(-10%, -10%);
transform-origin: center;
animation: scrollGrid 30s linear infinite;
2025-03-12 07:58:33 +00:00
}
/*
2025-03-12 08:53:19 +00:00
Animate background-position to scroll upward:
We'll shift it from top (0) to -1200px over 30s, then repeat.
Increase or decrease 1200 if you want slower/faster or more noticeable movement.
*/
@keyframes scrollGrid {
0% { background-position: 0 0, 0 0; }
100% { background-position: 0 -1200px, 0 -1200px; }
}
/*
MAIN CONTAINER
- Full viewport height
- Evenly space out items (logo, tagline, video, contact, button)
2025-03-12 07:58:33 +00:00
*/
.container {
display: flex;
flex-direction: column;
justify-content: space-evenly;
align-items: center;
width: 100%;
height: 100vh;
text-align: center;
padding: 1rem;
2025-03-12 08:53:19 +00:00
/* z-index: auto (in front of grid), so content is visible over the grid */
2025-03-12 07:58:33 +00:00
}
2025-03-12 08:53:19 +00:00
/* LOGO */
2025-03-12 07:58:33 +00:00
.logo {
max-width: 90%;
max-height: 150px;
transition: transform 0.4s ease;
filter: drop-shadow(0 0 10px rgba(255,255,255,0.5));
}
.logo:hover {
transform: scale(1.05);
}
2025-03-12 08:53:19 +00:00
/* TAGLINE (Hero Statement) */
2025-03-12 07:58:33 +00:00
.tagline {
font-size: 2rem;
font-weight: 700;
line-height: 1.2;
text-shadow: 0 0 5px #fff, 0 0 10px magenta, 0 0 15px cyan;
animation: flicker 3s infinite;
margin: 0 0 0.5rem;
}
@keyframes flicker {
0% { opacity: 1; }
20% { opacity: 0.8; }
22% { opacity: 1; }
63% { opacity: 1; }
64% { opacity: 0.9; }
65% { opacity: 1; }
80% { opacity: 1; }
82% { opacity: 0.8; }
83% { opacity: 1; }
100% { opacity: 1; }
}
2025-03-12 08:53:19 +00:00
/* MAIN VIDEO */
2025-03-12 07:58:33 +00:00
.video-container {
width: 80%;
max-width: 800px;
2025-03-12 08:53:19 +00:00
max-height: 50vh; /* keep it from dominating small screens */
2025-03-12 07:58:33 +00:00
border-radius: 12px;
overflow: hidden;
box-shadow: 0 8px 20px rgba(0,0,0,0.5), 0 0 10px rgba(255,255,255,0.2);
}
.video-container video {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 12px;
}
2025-03-12 08:53:19 +00:00
/* CONTACT INFO */
2025-03-12 07:58:33 +00:00
.contact-info {
line-height: 1.4;
}
.contact-info h2,
.contact-info h3 {
margin: 0.2rem 0;
text-shadow: 0 0 3px #fff, 0 0 5px magenta;
}
2025-03-12 08:53:19 +00:00
/* CALL TO ACTION (CTA) */
2025-03-12 07:58:33 +00:00
.cta-btn {
display: inline-block;
text-decoration: none;
color: #fff;
background: linear-gradient(45deg, #ff00d4, #00f0ff);
border: none;
padding: 1rem 1.5rem;
font-size: 1rem;
font-weight: 600;
border-radius: 30px;
cursor: pointer;
box-shadow: 0 0 10px rgba(255,0,212,0.7), 0 0 20px rgba(0,240,255,0.5);
transition: transform 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease;
}
.cta-btn:hover {
transform: scale(1.05);
box-shadow: 0 0 15px rgba(255,0,212,1), 0 0 30px rgba(0,240,255,0.8);
opacity: 0.9;
}
2025-03-12 08:53:19 +00:00
/* MOBILE TWEAKS */
2025-03-12 07:58:33 +00:00
@media (max-width: 480px) {
.tagline {
font-size: 1.4rem;
}
.video-container {
width: 90%;
max-height: 40vh;
}
.cta-btn {
width: auto;
font-size: 0.9rem;
}
}
</style>
</head>
<body>
2025-03-12 08:53:19 +00:00
<!-- STARFIELD behind the grid (z-index: -2) -->
2025-03-12 07:58:33 +00:00
<canvas id="starfield"></canvas>
<div class="container">
<img src="logo.png" alt="Raw Reel Social Logo" class="logo" />
<h1 class="tagline">Short-form social videos that boost your brand.</h1>
<div class="video-container">
2025-03-12 08:53:19 +00:00
<video src="https://storage.googleapis.com/rawreelsocial-videos/teaser.mp4" controls></video>
2025-03-12 07:58:33 +00:00
</div>
<div class="contact-info">
<h2>Demetri Pirpiris</h2>
<h3>(773) 440-1040</h3>
</div>
<a href="mailto:rawreelsocial@gmail.com" class="cta-btn">Let's Get in Touch</a>
</div>
<script>
2025-03-12 08:53:19 +00:00
/* STARFIELD: animates white stars drifting downward. */
2025-03-12 07:58:33 +00:00
const canvas = document.getElementById('starfield');
const ctx = canvas.getContext('2d');
let stars = [];
2025-03-12 08:53:19 +00:00
const STAR_COUNT = 120; // tweak for more or fewer stars
2025-03-12 07:58:33 +00:00
let w, h;
function initStarfield() {
resizeCanvas();
stars = [];
for (let i = 0; i < STAR_COUNT; i++) {
stars.push({
x: Math.random() * w,
y: Math.random() * h,
2025-03-12 08:53:19 +00:00
speed: 0.5 + Math.random() * 0.5, // star vertical speed
size: Math.random() * 2.5 // star radius
2025-03-12 07:58:33 +00:00
});
}
}
function resizeCanvas() {
w = canvas.width = window.innerWidth;
h = canvas.height = window.innerHeight;
}
function update() {
2025-03-12 08:53:19 +00:00
// Clear to transparent so we see black + pink grid behind.
2025-03-12 07:58:33 +00:00
ctx.clearRect(0, 0, w, h);
2025-03-12 08:53:19 +00:00
// Move & redraw stars
2025-03-12 07:58:33 +00:00
for (let i = 0; i < STAR_COUNT; i++) {
const s = stars[i];
s.y += s.speed;
2025-03-12 08:53:19 +00:00
// If star goes off bottom, respawn at random top position
2025-03-12 07:58:33 +00:00
if (s.y > h) {
s.y = 0;
s.x = Math.random() * w;
}
2025-03-12 08:53:19 +00:00
// Draw star
2025-03-12 07:58:33 +00:00
ctx.beginPath();
2025-03-12 08:53:19 +00:00
ctx.arc(s.x, s.y, s.size, 0, 2 * Math.PI);
2025-03-12 07:58:33 +00:00
ctx.fillStyle = "#fff";
ctx.fill();
}
requestAnimationFrame(update);
}
window.addEventListener('resize', initStarfield);
2025-03-12 08:53:19 +00:00
2025-03-12 07:58:33 +00:00
window.addEventListener('load', () => {
initStarfield();
update();
});
</script>
</body>
</html>