96 lines
4.7 KiB
HTML
96 lines
4.7 KiB
HTML
|
|
<!doctype html>
|
||
|
|
<html><head><meta charset="UTF-8"/>
|
||
|
|
<title>The Wind Line</title>
|
||
|
|
<meta property="og:type" content="website">
|
||
|
|
<meta property="og:title" content="The Wind Line">
|
||
|
|
<meta property="og:description" content="STABLE ARC ARGON PURITY: 99.9% THE BREACH WIND VELOCITY: 8 m/s GO / STOP CRITICAL: v > 8 m/s AWS D1.1 · SECT 5.2">
|
||
|
|
<meta property="og:url" content="https://bernardo-zubko.4ort.net/">
|
||
|
|
<meta name="twitter:card" content="summary">
|
||
|
|
<meta name="description" content="STABLE ARC ARGON PURITY: 99.9% THE BREACH WIND VELOCITY: 8 m/s GO / STOP CRITICAL: v > 8 m/s AWS D1.1 · SECT 5.2">
|
||
|
|
<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}
|
||
|
|
|
||
|
|
/* Scene 1: The Still Arc */
|
||
|
|
#s1-bg{background:radial-gradient(circle at 50% 50%, #fff 0%, #ffd700 8%, #ff8c00 15%, #000 40%)}
|
||
|
|
#s1-text{font-size:72px;text-align:center;letter-spacing:4px}
|
||
|
|
#s1-label{font-size:24px;margin-top:2rem;opacity:0.8}
|
||
|
|
|
||
|
|
/* Scene 2: The Breach */
|
||
|
|
#s2-bg{background:linear-gradient(135deg, #000 0%, #3d2817 40%, #ff4500 60%, #8b0000 100%)}
|
||
|
|
#s2-text{font-size:72px;text-align:center;letter-spacing:4px;color:#ff4500}
|
||
|
|
#s2-label{font-size:24px;margin-top:2rem;opacity:0.8;color:#ffa500}
|
||
|
|
|
||
|
|
/* Scene 3: The Verdict */
|
||
|
|
#s3-bg{background:repeating-linear-gradient(90deg, #000 0px, #000 100px, #1a1a1a 100px, #1a1a1a 200px)}
|
||
|
|
#s3-text{font-size:96px;text-align:center;letter-spacing:8px;border:4px solid #fff;padding:2rem}
|
||
|
|
#s3-math{font-size:48px;margin-top:2rem;color:#87ceeb}
|
||
|
|
#s3-source{font-size:20px;margin-top:3rem;opacity:0.6}
|
||
|
|
|
||
|
|
.fade-in{animation: fadeIn 2s ease-out forwards}
|
||
|
|
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
|
||
|
|
</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="60">
|
||
|
|
|
||
|
|
<!-- Audio references -->
|
||
|
|
<audio id="voice-s1" src="audio/s1.wav" data-start="0"></audio>
|
||
|
|
<audio id="voice-s2" src="audio/s2.wav" data-start="20"></audio>
|
||
|
|
<audio id="voice-s3" src="audio/s3.wav" data-start="40"></audio>
|
||
|
|
<audio id="bgm" src="audio/music.mp3" data-start="0" data-volume="0.12"></audio>
|
||
|
|
|
||
|
|
<!-- Scene 1: The Still Arc (0-20s) -->
|
||
|
|
<section id="s1" class="clip" data-start="0" data-duration="20" data-track-index="1">
|
||
|
|
<div id="s1-bg" style="position:absolute;inset:0"></div>
|
||
|
|
<div id="s1-text" style="position:relative;z-index:2">
|
||
|
|
STABLE ARC<br>
|
||
|
|
<span id="s1-label">ARGON PURITY: 99.9%</span>
|
||
|
|
</div>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<!-- Scene 2: The Breach (20-40s) -->
|
||
|
|
<section id="s2" class="clip" data-start="20" data-duration="20" data-track-index="1">
|
||
|
|
<div id="s2-bg" style="position:absolute;inset:0"></div>
|
||
|
|
<div id="s2-text" style="position:relative;z-index:2">
|
||
|
|
THE BREACH<br>
|
||
|
|
<span id="s2-label">WIND VELOCITY: 8 m/s</span>
|
||
|
|
</div>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<!-- Scene 3: The Verdict (40-60s) -->
|
||
|
|
<section id="s3" class="clip" data-start="40" data-duration="20" data-track-index="1">
|
||
|
|
<div id="s3-bg" style="position:absolute;inset:0"></div>
|
||
|
|
<div style="position:relative;z-index:2;text-align:center">
|
||
|
|
<div id="s3-text">GO / STOP</div>
|
||
|
|
<div id="s3-math">CRITICAL: v > 8 m/s</div>
|
||
|
|
<div id="s3-source">AWS D1.1 · SECT 5.2</div>
|
||
|
|
</div>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
</div>
|
||
|
|
<script>
|
||
|
|
window.__timelines = window.__timelines || {};
|
||
|
|
const tl = gsap.timeline({ paused: true });
|
||
|
|
|
||
|
|
// Scene 1: Fade in the stable arc
|
||
|
|
tl.to("#s1-text", { opacity: 1, scale: 1, duration: 3, ease: "power2.out" }, 0.5);
|
||
|
|
tl.to("#s1-label", { opacity: 1, y: 0, duration: 2, ease: "power1.out" }, 2);
|
||
|
|
|
||
|
|
// Transition 1→2: Collapse effect
|
||
|
|
tl.to("#s1-bg", { filter: "blur(20px)", scale: 1.5, duration: 2, ease: "expo.in" }, 17);
|
||
|
|
tl.to("#s2-text", { opacity: 1, scale: 0.95, duration: 2, ease: "power2.out" }, 20.5);
|
||
|
|
tl.to("#s2-label", { opacity: 1, color: "#ff4500", duration: 3, ease: "power1.out" }, 22);
|
||
|
|
|
||
|
|
// Transition 2→3: Hard cut to verdict
|
||
|
|
tl.to("#s2-bg", { opacity: 0, duration: 0.5, ease: "steps(1)" }, 38);
|
||
|
|
tl.to("#s3-text", { opacity: 1, borderWidth: "8px", duration: 1, ease: "none" }, 40);
|
||
|
|
tl.to("#s3-math", { opacity: 1, x: 0, duration: 2, ease: "power2.out" }, 42);
|
||
|
|
tl.to("#s3-source", { opacity: 1, letterSpacing: "2px", duration: 3, ease: "power1.out" }, 45);
|
||
|
|
|
||
|
|
window.__timelines["main"] = tl;
|
||
|
|
</script>
|
||
|
|
</body></html>
|