85 lines
5.1 KiB
HTML
85 lines
5.1 KiB
HTML
<!doctype html>
|
|
<html><head><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:#2c2218;color:#f4e9d8;font-family:Georgia,'Times New Roman',serif}
|
|
#root{position:relative;width:1920px;height:1080px;overflow:hidden}
|
|
.clip{position:absolute;inset:0;display:grid;place-items:center}
|
|
.film-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0}
|
|
.veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(44,34,24,.35) 0%,rgba(44,34,24,.82) 100%);opacity:0}
|
|
.card{position:relative;max-width:1500px;text-align:center;padding:60px 90px;
|
|
border:3px solid #d8a05a;opacity:0}
|
|
.card h1{font-size:108px;line-height:1.12;margin:0 0 30px;font-weight:400;
|
|
text-shadow:0 4px 30px rgba(0,0,0,.5)}
|
|
.card p{font-size:52px;font-style:italic;margin:0;color:#ecd9bd;opacity:0}
|
|
.rule{width:220px;height:4px;background:#d8a05a;margin:0 auto 40px;border-radius:2px}
|
|
.small{font-family:'Courier New',monospace;font-size:26px;letter-spacing:.35em;
|
|
text-transform:uppercase;color:#b98d5a;margin-top:40px}
|
|
</style></head>
|
|
<body>
|
|
<div id="root" data-composition-id="main" data-start="0" data-width="1920" data-height="1080" data-duration="40">
|
|
|
|
<audio id="voice-s1" src="audio/s1.wav" data-start="0"></audio>
|
|
<audio id="voice-s2" src="audio/s2.wav" data-start="10"></audio>
|
|
<audio id="voice-s3" src="audio/s3.wav" data-start="20"></audio>
|
|
<audio id="voice-s4" src="audio/s4.wav" data-start="30"></audio>
|
|
<audio id="bgm" src="audio/music.mp3" data-start="0" data-volume="0.16"></audio>
|
|
|
|
<section id="s1" class="clip" data-start="0" data-duration="10" data-track-index="1">
|
|
<div class="film-bg" id="bg1" style="background-image:url('https://pixabay.com/get/g4ebf5c4fb4bfeeb09ae783b8f7b7f59a9814a893506ebf360a8ec981e31a8ae4e27a70f300e88571ebcecbaaf7d1cf317b5fdf8e4d188d62b2e63f2bd56aabdb_1280.jpg')"></div>
|
|
<div class="veil" id="veil1"></div>
|
|
<div class="card" id="c1"><h1>Grafting Heirlooms</h1><div class="rule"></div><p>"A wound that heals into a family line"</p><div class="small">Jasper, Georgia</div></div>
|
|
</section>
|
|
|
|
<section id="s2" class="clip" data-start="10" data-duration="10" data-track-index="1">
|
|
<div class="film-bg" id="bg2" style="background-image:url('https://images.pexels.com/photos/8754412/pexels-photo-8754412.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')"></div>
|
|
<div class="veil" id="veil2"></div>
|
|
<div class="card" id="c2"><h1>The Splice</h1><div class="rule"></div><p>Take a bud from a tree your grandmama planted</p></div>
|
|
</section>
|
|
|
|
<section id="s3" class="clip" data-start="20" data-duration="10" data-track-index="1">
|
|
<div class="film-bg" id="bg3" style="background-image:url('https://pixabay.com/get/g4ebf5c4fb4bfeeb09ae783b8f7b7f59a9814a893506ebf360a8ec981e31a8ae4e27a70f300e88571ebcecbaaf7d1cf317b5fdf8e4d188d62b2e63f2bd56aabdb_1280.jpg')"></div>
|
|
<div class="veil" id="veil3"></div>
|
|
<div class="card" id="c3"><h1>Not From Seed</h1><div class="rule"></div><p>A peach won't come true from the pit — only hand to hand</p></div>
|
|
</section>
|
|
|
|
<section id="s4" class="clip" data-start="30" data-duration="10" data-track-index="1">
|
|
<div class="film-bg" id="bg4" style="background-image:url('https://images.pexels.com/photos/8754412/pexels-photo-8754412.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')"></div>
|
|
<div class="veil" id="veil4"></div>
|
|
<div class="card" id="c4"><h1>Still Bearing</h1><div class="rule"></div><p>Each spring the scarf joint swells and sets leaf — for your kin</p></div>
|
|
</section>
|
|
|
|
</div>
|
|
<script>
|
|
window.__timelines = window.__timelines || {};
|
|
const tl = gsap.timeline({ paused: true });
|
|
|
|
// scene 1
|
|
tl.to("#bg1", { opacity: 1, duration: 1.6, ease: "power2.out" }, 0.2);
|
|
tl.to("#veil1", { opacity: 1, duration: 1.6 }, 0.2);
|
|
tl.to("#c1", { opacity: 1, y: 0, duration: 1.0, ease: "power3.out" }, 1.0);
|
|
tl.from("#c1 .rule", { scaleX: 0, transformOrigin: "center", duration: 0.8 }, 1.4);
|
|
tl.to("#c1 p", { opacity: 1, duration: 0.9 }, 2.2);
|
|
tl.to("#c1 .small", { opacity: 1, duration: 0.6 }, 3.0);
|
|
// scene 2
|
|
tl.to("#c1", { autoAlpha: 0 }, 9.2);
|
|
tl.to("#bg2", { opacity: 1, duration: 1.6, ease: "power2.out" }, 9.9);
|
|
tl.to("#veil2", { opacity: 1, duration: 1.6 }, 9.9);
|
|
tl.to("#c2", { opacity: 1, y: 0, duration: 1.0 }, 10.6);
|
|
tl.to("#c2 p", { opacity: 1, duration: 0.9 }, 12.0);
|
|
// scene 3
|
|
tl.to("#c2", { autoAlpha: 0 }, 19.2);
|
|
tl.to("#bg3", { opacity: 1, duration: 1.6, ease: "power2.out" }, 19.9);
|
|
tl.to("#veil3", { opacity: 1, duration: 1.6 }, 19.9);
|
|
tl.to("#c3", { opacity: 1, y: 0, duration: 1.0 }, 20.6);
|
|
tl.to("#c3 p", { opacity: 1, duration: 0.9 }, 22.0);
|
|
// scene 4
|
|
tl.to("#c3", { autoAlpha: 0 }, 29.2);
|
|
tl.to("#bg4", { opacity: 1, duration: 1.6, ease: "power2.out" }, 29.9);
|
|
tl.to("#veil4", { opacity: 1, duration: 1.6 }, 29.9);
|
|
tl.to("#c4", { opacity: 1, y: 0, duration: 1.0 }, 30.6);
|
|
tl.to("#c4 p", { opacity: 1, duration: 0.9 }, 32.0);
|
|
|
|
window.__timelines["main"] = tl;
|
|
</script>
|
|
</body></html> |