feat: Add book viewer at /book with shared design system

- Add html/index.html: book viewer with auto-discovering sidebar,
  prev/next navigation, keyboard shortcuts, and URL hash persistence
- Add html/book-page.css: shared stylesheet for all book pages derived
  from fabula-ultima-sheet.css (dark theme, CSS variables, Cinzel/
  Crimson Text fonts, common class styles)
- Add book.js entry point so webpack injects the shared CSS into the
  book viewer; update webpack.config.js for two entry points, split
  CSS chunk, CopyWebpackPlugin for book pages, and /book dev server
  rewrite rule
- Add scripts/strip_watermark.py: removes "Guest Customer (Order
  #52072168)" watermark artifacts from all 210 book pages
- Add scripts/restyle_book.py: strips per-page <style> blocks and
  injects <link rel="stylesheet" href="book-page.css"> into all pages
- Update Justfile deploy to scp -r dist/* for the new /book subtree

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-06 03:36:35 +00:00
parent 58552b536f
commit c75cd188c1
220 changed files with 12685 additions and 10 deletions

37
html/152.html Normal file
View File

@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cooking Skill Delicacies</title>
<link rel="stylesheet" href="book-page.css">
</head>
<body>
<div class="container">
<h2>Delicacies (Cooking Skill)</h2>
<p>When you use the <strong>Cooking Skill</strong>, you combine two or three ingredients to generate a special delicacy with powerful effects that will be applied to its targets.</p>
<h3>Rules of Creation</h3>
<ul>
<li>Every different combination of two tastes (even if its the same taste used twice!) will add an effect to the delicacy.</li>
<li>When you combine two tastes you never combined before, determine the effect of that combination by rolling a d12 and consulting the chart on the next page; most entries also require you to make a choice (such as a specific damage type or status effect). Once youre done, record the resulting effect on your cookbook sheet: from this moment on, that taste combination will always produce that exact effect when you use it.</li>
<li>No two combinations of tastes in your cookbook sheet can have identical effects. When you determine the effect of a new combination, you must make your choices in such a way that the resulting effect has no precedents (for instance, by selecting a different damage type or status effect); if you cant, reroll the d12.</li>
<li>When completed, your cookbook sheet will feature a total of 15 effects, one for each possible pair of tastes.</li>
</ul>
<h3>Example Usage</h3>
<p>Consider the following scenario:</p>
<p>You combine three ingredients, one of them salty and two of them bitter. The resulting delicacy features two combinations (bitter + bitter and bitter + salty), which means it will have two different effects.</p>
<p>In the past, you combined <strong>bitter + bitter</strong> and rolled a 4, meaning the effect allows for MP recovery; conversely, you never combined <strong>bitter + salty</strong> before, so you must determine this combinations effect by rolling dice.</p>
<p>You roll a 1, and must choose a status effect for this effect; since you already chose recovery from weak for the sour + sweet combination in the past, you decide to opt for dazed. From now on, the bitter + salty combination will always allow you to heal the target from dazed.</p>
<p>Now that youve done this, you know that your delicacy allows every target to heal from the <strong>dazed</strong> status effect and also recover 40 Mind Points.</p>
<h3>Important Notes</h3>
<ul>
<li>Delicacies created through the Cooking Skill have an immediate effect and are then destroyed; if you want to prepare foods with unique effects and use them later, you must instead use the rules for <strong>Projects</strong> (see Core Rulebook, page 134).</li>
</ul>
</div>
</body>
</html>