2026-08-20 16:48:13 +02:00
<!doctype html>
2026-08-22 00:47:27 +02:00
< html > < head >
< title > Grain & Wash: The Carpenter's Watercolor — André Henríquez< / title >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< meta name = "description" content = "The grain remembers the plane. The wash follows the grain. A 30-second meditation watching pigment follow wood grain." >
< meta property = "og:type" content = "video.other" >
< meta property = "og:title" content = "Grain & Wash: The Carpenter's Watercolor" >
< meta property = "og:description" content = "A 30-second meditation watching pigment follow wood grain." >
< meta property = "og:image" content = "https://images.pexels.com/photos/9823160/pexels-photo-9823160.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" >
< meta charset = "UTF-8" / >
2026-08-20 16:48:13 +02:00
< 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:Inter,system-ui,sans-serif}
#root{position:relative;width:1920px;height:1080px;overflow:hidden}
.clip{position:absolute;inset:0;display:grid;place-items:center}
2026-08-22 00:47:27 +02:00
< / style > < script defer src = "https://analytics.4ort.xyz/script.js" data-website-id = "d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b" > < / script >
< / head >
2026-08-20 16:48:13 +02:00
< body >
< div id = "root" data-composition-id = "grain-wash" data-start = "0" data-width = "1920" data-height = "1080" data-duration = "30" >
< audio id = "voice-s1" src = "audio/voice-s1.wav" data-start = "0" > < / audio >
< section id = "s1" class = "clip" data-start = "0" data-duration = "10" data-track-index = "1" >
< h1 id = "s1-title" > The grain remembers the plane.< / h1 >
< / section >
< audio id = "voice-s2" src = "audio/voice-s2.wav" data-start = "10" > < / audio >
< section id = "s2" class = "clip" data-start = "10" data-duration = "20" data-track-index = "1" >
< h1 id = "s2-title" > The wash follows the grain.< / h1 >
< / section >
< 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.to("#s1-title", { opacity: 1, y: 0, duration: 0.6, ease: "power3.out" }, 0.2);
tl.from("#s2-title", { scale: 1.06, duration: 4, ease: "power1.out" }, 10.5);
window.__timelines["main"] = tl;
< / script >
< / body > < / html >