Remove the Academy films
Test and deploy / test-and-deploy (push) Successful in 1m3s

The generated videos weren't good enough — pull the films card, its
styles, and the video assets. The service-worker hardening stays: media
paths bypass the cache (Range/206 responses) and only full 200 responses
are cached.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
2026-08-11 19:02:03 -04:00
co-authored by Claude Fable 5
parent cc735aba82
commit e9f2393c96
8 changed files with 0 additions and 69 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.
-42
View File
@@ -64,48 +64,6 @@
<main class="page-content">
<div id="academy-menu"></div>
<section class="panel-card" id="academy-films">
<div class="panel-head">
<h2>Films — the physics in motion</h2>
</div>
<div class="panel-body">
<p class="muted" style="margin-top: 0">
Two short macro films of what the lessons teach — every shot
generated on the local roaster's GPU.
</p>
<div class="academy-films-grid">
<figure class="academy-film">
<video
src="/academy-video/roast-physics.mp4?v=__ASSET_VERSION__"
poster="/academy-video/roast-physics-poster.jpg?v=__ASSET_VERSION__"
controls
muted
loop
playsinline
preload="metadata"
></video>
<figcaption>
The roast — charge · drying · Maillard · first crack · drop
</figcaption>
</figure>
<figure class="academy-film">
<video
src="/academy-video/brew-physics.mp4?v=__ASSET_VERSION__"
poster="/academy-video/brew-physics-poster.jpg?v=__ASSET_VERSION__"
controls
muted
loop
playsinline
preload="metadata"
></video>
<figcaption>
The brew — grind · bloom · immersion · espresso
</figcaption>
</figure>
</div>
</div>
</section>
<section class="panel-card hidden" id="academy-player">
<div class="panel-head">
<div>
-22
View File
@@ -3190,28 +3190,6 @@ select.f {
border-color: var(--ember);
}
.academy-films-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 16px;
}
.academy-film {
margin: 0;
}
.academy-film video {
display: block;
width: 100%;
border-radius: var(--radius-lg);
border: 1px solid var(--line);
background: #1b1614;
}
.academy-film figcaption {
margin-top: 8px;
font-size: 12.5px;
color: var(--ink-2);
text-align: center;
}
/* Scene animations — restarted per slide because the SVG is rebuilt. */
@keyframes ac-draw-kf { from { stroke-dashoffset: 900; } to { stroke-dashoffset: 0; } }
.ac-draw { stroke-dasharray: 900; animation: ac-draw-kf 2.6s ease-out forwards; }
-4
View File
@@ -97,9 +97,6 @@ function renderMenu() {
function openLesson(track, lesson, index) {
current = { track, lesson, index };
$("academy-menu").classList.add("hidden");
$("academy-films")?.classList.add("hidden");
// Pause any playing film so it doesn't run (and download) behind the lesson.
for (const video of document.querySelectorAll("#academy-films video")) video.pause();
$("academy-player").classList.remove("hidden");
renderSlide();
}
@@ -109,7 +106,6 @@ function closeLesson() {
current = null;
$("academy-player").classList.add("hidden");
$("academy-menu").classList.remove("hidden");
$("academy-films")?.classList.remove("hidden");
renderMenu(); // reflect fresh progress
}
-1
View File
@@ -67,7 +67,6 @@ self.addEventListener("fetch", (event) => {
url.pathname.startsWith("/api/") ||
// Media streams use Range requests (206 responses the Cache API rejects) and are far
// too large to belong in the static cache — let the browser handle them natively.
url.pathname.startsWith("/academy-video/") ||
url.pathname.startsWith("/academy-audio/")
)
return;