89 lines
4.0 KiB
HTML
89 lines
4.0 KiB
HTML
<!doctype html>
|
||
<html><head>
|
||
<meta name="description" content="OCTOBER 1984 KENTUCKY WAREHOUSE STEEL BEAM COUNT: 412 ONE SHORT NOVEMBER 1984 SHIPMENT DELAYED 411 THE LEDGER WAS WRONG DECEMBER 1984 ZERO-FRACTURE…"><meta charset="UTF-8"/>
|
||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||
<style>
|
||
body{margin:0;background:#0b0f14;color:#fff;font-family:"Courier New",monospace}
|
||
#root{position:relative;width:1920px;height:1080px;overflow:hidden}
|
||
.clip{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
|
||
.ledger-line{color:#a8b5c7;font-size:48px;line-height:1.4;margin:10px 0}
|
||
.error-mark{color:#ff3b3b;font-size:48px;font-weight:bold}
|
||
.protocol-seal{color:#4ade80;border:3px solid #4ade80;padding:30px;border-radius:12px;background:rgba(74,222,128,0.1)}
|
||
.date-stamp{position:absolute;top:40px;left:40px;color:#6b7280;font-size:24px}
|
||
.location{position:absolute;top:40px;right:40px;color:#6b7280;font-size:24px}
|
||
</style> <script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||
</head>
|
||
<body>
|
||
<div id="root" data-composition-id="main" data-start="0" data-width="1920" data-height="1080" data-duration="45">
|
||
|
||
<!-- Audio tracks (REQUIRED for voice) -->
|
||
<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="bgm" src="audio/music.mp3" data-start="0" data-volume="0.12"></audio>
|
||
|
||
<!-- SCENE 1: THE ERROR (0–15s) -->
|
||
<section id="s1" class="clip" data-start="0" data-duration="15" data-track-index="1">
|
||
<div class="date-stamp">OCTOBER 1984</div>
|
||
<div class="location">KENTUCKY WAREHOUSE</div>
|
||
<div class="ledger-line">STEEL BEAM COUNT:</div>
|
||
<div class="ledger-line error-mark" id="s1-count">412</div>
|
||
<div class="ledger-line" style="opacity:0" id="s1-note">ONE SHORT</div>
|
||
</section>
|
||
|
||
<!-- SCENE 2: THE DISCOVERY (15–30s) -->
|
||
<section id="s2" class="clip" data-start="15" data-duration="15" data-track-index="1">
|
||
<div class="date-stamp">NOVEMBER 1984</div>
|
||
<div class="location">SHIPMENT DELAYED</div>
|
||
<div class="ledger-line" style="opacity:0" id="s2-count">411</div>
|
||
<div class="ledger-line error-mark" id="s2-truth">THE LEDGER WAS WRONG</div>
|
||
</section>
|
||
|
||
<!-- SCENE 3: THE PROTOCOL (30–45s) -->
|
||
<section id="s3" class="clip" data-start="30" data-duration="15" data-track-index="1">
|
||
<div class="date-stamp">DECEMBER 1984</div>
|
||
<div class="location">ZERO-FRACTURE COVENANT</div>
|
||
<div class="protocol-seal" id="s3-seal">
|
||
<div class="ledger-line">COUNT TWICE</div>
|
||
<div class="ledger-line">VERIFY ONCE</div>
|
||
<div class="ledger-line" style="font-size:24px;margin-top:20px">ERROR = LESSON</div>
|
||
</div>
|
||
</section>
|
||
|
||
</div>
|
||
<script>
|
||
window.__timelines = window.__timelines || {};
|
||
const tl = gsap.timeline({ paused: true });
|
||
|
||
// SCENE 1: Error appears, then corrects to reveal the truth
|
||
tl.to("#s1-count", { opacity: 1, duration: 1.5, ease: "power2.inOut" }, 0.5);
|
||
tl.to("#s1-count", { color: "#ff3b3b", duration: 0.8 }, 4.0);
|
||
tl.to("#s1-note", { opacity: 1, y: 0, duration: 1.2 }, 5.5);
|
||
tl.to("#s1-count", { opacity: 0, duration: 0.6 }, 13.0);
|
||
|
||
// SCENE 2: Truth revealed
|
||
tl.to("#s2-count", { opacity: 1, duration: 1.2 }, 16.0);
|
||
tl.to("#s2-truth", { opacity: 1, y: 0, duration: 1.5 }, 18.0);
|
||
tl.to("#s2-count", { color: "#4ade80", duration: 0.8 }, 22.0);
|
||
tl.to(".clip#s2", { opacity: 0, duration: 0.6 }, 29.0);
|
||
|
||
// SCENE 3: Protocol forged
|
||
tl.to("#s3-seal", {
|
||
scale: 0.8,
|
||
opacity: 0,
|
||
duration: 0.1
|
||
}, 30.0);
|
||
tl.to("#s3-seal", {
|
||
scale: 1,
|
||
opacity: 1,
|
||
duration: 2.0,
|
||
ease: "expo.out"
|
||
}, 31.0);
|
||
tl.to("#s3-seal div:nth-child(1)", { opacity: 1, duration: 0.8 }, 33.0);
|
||
tl.to("#s3-seal div:nth-child(2)", { opacity: 1, duration: 0.8 }, 36.0);
|
||
tl.to("#s3-seal div:nth-child(3)", { opacity: 1, duration: 0.8 }, 39.0);
|
||
|
||
window.__timelines["main"] = tl;
|
||
</script>
|
||
</body></html>
|