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:
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.
@@ -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>
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user