78 lines
5.1 KiB
HTML
78 lines
5.1 KiB
HTML
<!doctype html>
|
|
<html><head>
|
|
<meta name="description" content="Four Colors on a Quilt Frame Every quilt I ever made starts the same way — a pile of scraps and one stubborn question. — Carolyn Stanfill · Burlington, NC…"><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:#2c1e16;color:#f5ecd7;font-family:Georgia,serif}
|
|
#root{position:relative;width:1920px;height:1080px;overflow:hidden;background:#2c1e16}
|
|
.clip{position:absolute;inset:0;display:grid;place-items:center}
|
|
.pad{font-family:Georgia,serif;font-size:64px;line-height:1.2;text-align:center;max-width:1400px;margin:0 auto;color:#f5ecd7}
|
|
.kicker{font-size:30px;letter-spacing:6px;text-transform:uppercase;color:#c98a5e;margin-bottom:30px}
|
|
.big{font-size:96px;line-height:1.15;font-style:italic;color:#fdf3d9}
|
|
.sewnote{font-size:34px;color:#b8a080;margin-top:40px;font-style:italic}
|
|
.q{width:1500px;height:900px;border-collapse:collapse}
|
|
.q td{border:6px solid #2c1e16;border-radius:6px}
|
|
.c1{background:#b03a2e}.c2{background:#e6a23c}.c3{background:#2f6d57}.c4{background:#d9c79a}
|
|
.scrim{position:absolute;inset:0;background:radial-gradient(ellipse at center,#2c1e16 20%,#1a110c 90%);opacity:.35}
|
|
</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="70">
|
|
<section id="s1" class="clip" data-start="0" data-duration="13" data-track-index="1">
|
|
<div style="text-align:center;padding:80px">
|
|
<div class="kicker">Four Colors on a Quilt Frame</div>
|
|
<div class="pad">Every quilt I ever made starts the same way —<br/>a pile of scraps and one stubborn question.</div>
|
|
<div class="sewnote">— Carolyn Stanfill · Burlington, NC</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="s2" class="clip" data-start="13" data-duration="11" data-track-index="1">
|
|
<div style="text-align:center">
|
|
<table class="q" id="quilt1"><tr><td class="c1"></td><td class="c2"></td><td class="c1"></td><td class="c3"></td></tr><tr><td class="c3"></td><td class="c4"></td><td class="c2"></td><td class="c1"></td></tr><tr><td class="c2"></td><td class="c1"></td><td class="c3"></td><td class="c4"></td></tr></table>
|
|
<div class="pad" style="margin-top:40px;font-size:56px">No two patches that touch<br/>may wear the same color.</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="s3" class="clip" data-start="24" data-duration="15" data-track-index="1">
|
|
<div style="text-align:center">
|
|
<div class="kicker">Guthrie's Problem · 1852</div>
|
|
<div class="pad big">Four colors are always enough.</div>
|
|
<div class="pad" style="margin-top:30px;font-size:40px">Every map. Every quilt. Every country.<br/>Guaranteed.</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="s4" class="clip" data-start="39" data-duration="17" data-track-index="1">
|
|
<div style="text-align:center;padding:80px">
|
|
<div class="kicker">The Computer Proved It · 1976</div>
|
|
<div class="pad">For 124 years it stayed unproven.<br/>Then Kenneth Appel and Wolfgang Haken<br/>checked 1,936 cases — by machine.</div>
|
|
<div class="sewnote">the first great theorem proven by a computer</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="s5" class="clip" data-start="56" data-duration="14" data-track-index="1">
|
|
<table class="q" id="quilt2"><tr><td class="c4"></td><td class="c1"></td><td class="c4"></td><td class="c2"></td></tr><tr><td class="c2"></td><td class="c3"></td><td class="c1"></td><td class="c4"></td></tr><tr><td class="c1"></td><td class="c2"></td><td class="c3"></td><td class="c1"></td></tr></table>
|
|
<div class="scrim"></div>
|
|
<div class="pad" style="position:absolute;max-width:1200px;font-size:52px">It's not magic, darling —<br/>it's math, with the soul of a quilt.</div>
|
|
</section>
|
|
|
|
<audio id="voice-s1" src="audio/s1.wav" data-start="0"></audio>
|
|
<audio id="voice-s2" src="audio/s2.wav" data-start="13"></audio>
|
|
<audio id="voice-s3" src="audio/s3.wav" data-start="24"></audio>
|
|
<audio id="voice-s4" src="audio/s4.wav" data-start="39"></audio>
|
|
<audio id="voice-s5" src="audio/s5.wav" data-start="56"></audio>
|
|
<audio id="bgm" src="audio/music.mp3" data-start="0" data-volume="0.15"></audio>
|
|
</div>
|
|
<script>
|
|
window.__timelines = window.__timelines || {};
|
|
const tl = gsap.timeline({ paused: true });
|
|
tl.from("#s1 .pad", { opacity: 0, y: 40, duration: 1, ease: "power3.out" }, 0.4);
|
|
tl.from("#quilt1", { opacity: 0, scale: 1.08, duration: 1.4, ease: "power2.out" }, 13.2);
|
|
tl.from("#s2 .pad", { opacity: 0, y: 30, duration: 1, ease: "power3.out" }, 15.0);
|
|
tl.from("#s3 .big", { opacity: 0, y: 60, scale: 1.03, duration: 1.2, ease: "power3.out" }, 24.3);
|
|
tl.from("#s3 .pad", { opacity: 0, y: 30, duration: 1, ease: "power3.out" }, 26.5);
|
|
tl.from("#s4 .pad", { opacity: 0, y: 40, duration: 1.2, ease: "power3.out" }, 39.3);
|
|
tl.to("#quilt2", { opacity: 0.35, scale: 1.05, duration: 6, ease: "none" }, 56.2);
|
|
tl.from("#s5 .pad", { opacity: 0, y: 40, duration: 1.4, ease: "power3.out" }, 57.0);
|
|
window.__timelines["main"] = tl;
|
|
</script>
|
|
</body></html> |