read-the-room-film/index.html

86 lines
5.0 KiB
HTML
Raw Permalink Normal View History

2026-08-22 02:46:19 +02:00
<!doctype html>
<html><head>
<meta name="description" content="First bell A room has a sound before it has a meaning. The hum Not silence — the sound of a mind doing work. The other quiet That's not attention. That's…"><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:'Source Serif 4',Georgia,serif}
#root{position:relative;width:1920px;height:1080px;overflow:hidden}
.clip{position:absolute;inset:0;display:grid;place-items:center}
.bg{position:absolute;inset:0;background-size:cover;background-position:center}
.veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,12,.15) 0%,rgba(8,10,12,.35) 55%,rgba(8,10,12,.82) 100%)}
.title{position:relative;z-index:2;max-width:1500px;padding:0 90px;text-align:center;font-size:76px;line-height:1.22;font-weight:600;letter-spacing:.01em;text-shadow:0 2px 26px rgba(0,0,0,.65)}
.kicker{position:relative;z-index:2;font-family:'Space Mono',monospace;font-size:30px;letter-spacing:.34em;text-transform:uppercase;color:#e8c9a0;margin-bottom:34px;text-shadow:0 1px 14px rgba(0,0,0,.6)}
</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="84">
<section id="s1" class="clip" data-start="0" data-duration="18" data-track-index="1">
<div class="bg" style="background-image:url('https://images.pexels.com/photos/37829288/pexels-photo-37829288.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=940&w=1600')"></div>
<div class="veil"></div>
<div style="position:relative;z-index:2;text-align:center">
<p class="kicker">First bell</p>
<h1 class="title" id="t1">A room has a sound before it has a meaning.</h1>
</div>
</section>
<section id="s2" class="clip" data-start="18" data-duration="25" data-track-index="1">
<div class="bg" style="background-image:url('https://images.pexels.com/photos/37812834/pexels-photo-37812834.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=940&w=1600')"></div>
<div class="veil"></div>
<div style="position:relative;z-index:2;text-align:center">
<p class="kicker">The hum</p>
<h1 class="title" id="t2">Not silence — the sound of a mind doing work.</h1>
</div>
</section>
<section id="s3" class="clip" data-start="43" data-duration="19" data-track-index="1">
<div class="bg" style="background-image:url('https://images.pexels.com/photos/256395/pexels-photo-256395.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=940&w=1600')"></div>
<div class="veil"></div>
<div style="position:relative;z-index:2;text-align:center">
<p class="kicker">The other quiet</p>
<h1 class="title" id="t3">That's not attention. That's a queue.</h1>
</div>
</section>
<section id="s4" class="clip" data-start="62" data-duration="22" data-track-index="1">
<div class="bg" style="background-image:url('https://images.pexels.com/photos/6602623/pexels-photo-6602623.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=940&w=1600')"></div>
<div class="veil"></div>
<div style="position:relative;z-index:2;text-align:center">
<p class="kicker">Under the Wasatch</p>
<h1 class="title" id="t4">When the hum comes back, you've earned the room.</h1>
</div>
</section>
<audio id="voice-s1" src="audio/s1.wav" data-start="0"></audio>
<audio id="voice-s2" src="audio/s2.wav" data-start="18"></audio>
<audio id="voice-s3" src="audio/s3.wav" data-start="43"></audio>
<audio id="voice-s4" src="audio/s4.wav" data-start="62"></audio>
<audio id="bgm" src="audio/music.mp3" data-start="0" data-volume="0.16"></audio>
</div>
<script>
window.__timelines = window.__timelines || {};
const tl = gsap.timeline({ paused: true });
// scene cards fade in
tl.fromTo("#t1", {opacity:0, y:34}, {opacity:1, y:0, duration:1.1, ease:"power3.out"}, 0.6);
tl.to("#t1", {opacity:1, y:0, duration:15}, 1.7);
tl.fromTo("#t2", {opacity:0, y:34}, {opacity:1, y:0, duration:1.1, ease:"power3.out"}, 18.6);
tl.to("#t2", {opacity:1, y:0, duration:22}, 19.7);
tl.fromTo("#t3", {opacity:0, y:34}, {opacity:1, y:0, duration:1.1, ease:"power3.out"}, 43.6);
tl.to("#t3", {opacity:1, y:0, duration:16}, 44.7);
tl.fromTo("#t4", {opacity:0, y:34}, {opacity:1, y:0, duration:1.1, ease:"power3.out"}, 62.6);
tl.to("#t4", {opacity:1, y:0, duration:18}, 63.7);
// slow breath on the background images (zoom in, easing out)
tl.fromTo("#s1 .bg", {scale:1.0}, {scale:1.07, duration:17, ease:"power1.out"}, 0);
tl.fromTo("#s2 .bg", {scale:1.0}, {scale:1.07, duration:24, ease:"power1.out"}, 18);
tl.fromTo("#s3 .bg", {scale:1.0}, {scale:1.08, duration:18, ease:"power1.out"}, 43);
tl.fromTo("#s4 .bg", {scale:1.0}, {scale:1.08, duration:21, ease:"power1.out"}, 62);
window.__timelines["main"] = tl;
</script>
</body></html>