joint-stress-tool/films/prevention-protocol/index.html

111 lines
5.4 KiB
HTML
Raw Permalink Normal View History

2026-07-19 18:45:29 +02:00
<!doctype html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Prevention Protocol — Albert Karaca</title>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
<style>
body{margin:0;background:#0a0f14;color:#d4af37;font-family:'Georgia',serif}
#root{position:relative;width:1920px;height:1080px;overflow:hidden}
.clip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center}
.scene-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0.6}
.overlay{position:absolute;inset:0;background:rgba(10,15,20,0.7)}
h1{font-size:80px;margin:0;padding:0 40px;line-height:1.2;letter-spacing:4px;text-transform:uppercase;color:#d4af37}
h2{font-size:48px;margin-top:60px;padding:0 80px;line-height:1.4;color:#e0e7ff}
.timestamp{position:absolute;bottom:40px;left:40px;font-family:'Courier New',monospace;font-size:24px;color:#556070}
.credit{position:absolute;bottom:40px;right:40px;font-family:'Courier New',monospace;font-size:18px;color:#556070;text-align:right}
</style>
</head>
<body>
<div id="root" data-composition-id="main" data-start="0" data-width="1920" data-height="1080" data-duration="60">
<!-- AUDIO ELEMENTS (REQUIRED for voice playback) -->
<audio id="voice-s1" src="audio/s1.wav" data-start="0"></audio>
<audio id="voice-s2" src="audio/s2.wav" data-start="15"></audio>
<audio id="voice-s3" src="audio/s3.wav" data-start="30"></audio>
<audio id="voice-s4" src="audio/s4.wav" data-start="45"></audio>
<audio id="bgm" src="audio/music.mp3" data-start="0" data-volume="0.12"></audio>
<!-- SCENE 1: Title Card (0-15s) -->
<section id="s1" class="clip" data-start="0" data-duration="15" data-track-index="1">
<div class="scene-bg" style="background-image:url('https://images.pexels.com/photos/34071454/pexels-photo-34071454.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')"></div>
<div class="overlay"></div>
<div>
<h1>PREVENTION<br>PROTOCOL</h1>
<h2>Albert Karaca • Saint Anthony, Idaho</h2>
</div>
<div class="timestamp">CYCLE: PRE-SHIFT INSPECTION</div>
<div class="credit">DISCIPLINE IS THE FOUNDATION</div>
</section>
<!-- SCENE 2: The Floor (15-30s) -->
<section id="s2" class="clip" data-start="15" data-duration="15" data-track-index="1">
<div class="scene-bg" style="background-image:url('https://images.pexels.com/photos/30314282/pexels-photo-30314282.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')"></div>
<div class="overlay"></div>
<div>
<h1>THIRTY YEARS</h1>
<h2>CASINO FLOOR COMPLIANCE • MODEL RAILROAD PRECISION</h2>
</div>
<div class="timestamp">ACCURACY: 99.4%</div>
<div class="credit">ZERO DEVIATION TOLERATED</div>
</section>
<!-- SCENE 3: The Tools (30-45s) -->
<section id="s3" class="clip" data-start="30" data-duration="15" data-track-index="1">
<div class="scene-bg" style="background-image:url('https://images.pexels.com/photos/9018269/pexels-photo-9018269.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')"></div>
<div class="overlay"></div>
<div>
<h1>THE TOOLS</h1>
<h2>CALIBRATED CALIPER • HAND-FORGED CHISEL • SPIRIT LEVEL</h2>
</div>
<div class="timestamp">TOLERANCE: 0.001"</div>
<div class="credit">EVERY BLADE SHARPENED</div>
</section>
<!-- SCENE 4: The Protocol (45-60s) -->
<section id="s4" class="clip" data-start="45" data-duration="15" data-track-index="1">
<div class="scene-bg" style="background-image:url('https://images.pexels.com/photos/796634/pexels-photo-796634.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')"></div>
<div class="overlay"></div>
<div>
<h1>THE PROTOCOL</h1>
<h2>INSPECT • PLAN • EXECUTE • VERIFY</h2>
</div>
<div class="timestamp">TRIPLE-VERIFIED LOGS</div>
<div class="credit">THE PERFECT JOINT HOLDS FOREVER</div>
</section>
</div>
<script>
window.__timelines = window.__timelines || {};
const tl = gsap.timeline({ paused: true });
// SCENE 1 animations (0-15s)
tl.to("#s1 h1", { opacity: 0, y: 0, duration: 0, startAt:{opacity:0,y:50} }, 0.5);
tl.to("#s1 h1", { opacity: 1, y: 0, duration: 2.5, ease: "power3.out" }, 0.5);
tl.to("#s1 h2", { opacity: 0, y: 0, duration: 0, startAt:{opacity:0,y:30} }, 3);
tl.to("#s1 h2", { opacity: 1, y: 0, duration: 2, ease: "power3.out" }, 3);
// SCENE 2 animations (15-30s)
tl.to("#s2 h1", { opacity: 0, y: 0, duration: 0, startAt:{opacity:0,y:50} }, 15.5);
tl.to("#s2 h1", { opacity: 1, y: 0, duration: 2.5, ease: "power3.out" }, 15.5);
tl.to("#s2 h2", { opacity: 0, y: 0, duration: 0, startAt:{opacity:0,y:30} }, 18);
tl.to("#s2 h2", { opacity: 1, y: 0, duration: 2, ease: "power3.out" }, 18);
// SCENE 3 animations (30-45s)
tl.to("#s3 h1", { opacity: 0, y: 0, duration: 0, startAt:{opacity:0,y:50} }, 30.5);
tl.to("#s3 h1", { opacity: 1, y: 0, duration: 2.5, ease: "power3.out" }, 30.5);
tl.to("#s3 h2", { opacity: 0, y: 0, duration: 0, startAt:{opacity:0,y:30} }, 33);
tl.to("#s3 h2", { opacity: 1, y: 0, duration: 2, ease: "power3.out" }, 33);
// SCENE 4 animations (45-60s)
tl.to("#s4 h1", { opacity: 0, y: 0, duration: 0, startAt:{opacity:0,y:50} }, 45.5);
tl.to("#s4 h1", { opacity: 1, y: 0, duration: 2.5, ease: "power3.out" }, 45.5);
tl.to("#s4 h2", { opacity: 0, y: 0, duration: 0, startAt:{opacity:0,y:30} }, 48);
tl.to("#s4 h2", { opacity: 1, y: 0, duration: 2, ease: "power3.out" }, 48);
window.__timelines["main"] = tl;
</script>
</body>
</html>