Files
fabula-ultima-html/html/134.html
Drew Malzahn c75cd188c1 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>
2026-06-06 03:36:35 +00:00

69 lines
3.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Character Abilities Reference</title>
<link rel="stylesheet" href="book-page.css">
</head>
<body>
<header>
<h1>PROTAGONISTS</h1>
<h2>Chapter Activity Targets</h2>
</header>
<section class="abilities">
<p class="section-header">Camp Activities & Abilities:</p>
<ul class="ability-list">
<li class="ability-item">
<span class="ability-title">Massage</span>
<span class="target-indicator">Target: One ally</span>
<p>Once before the next rest, if the target is about to pay a Mind Point cost, they may halve that MP cost. This benefit cannot be applied to a Rituals MP cost.</p>
</li>
<li class="ability-item">
<span class="ability-title">Midnight Oil</span>
<span class="target-indicator">Target: Yourself</span>
<p>You generate 3 points of progress for a single Project of your choice.</p>
</li>
<li class="ability-item">
<span class="ability-title">Pep Talk</span>
<span class="target-indicator">Target: One ally</span>
<p>Once before the next rest, if the target is about to recover Mind Points, they may double the amount of Mind Points recovered.</p>
</li>
<li class="ability-item">
<span class="ability-title">Planning</span>
<span class="target-indicator">Target: One ally</span>
<p>Once before the next rest, after the target performs a Group Check as leader or performs a Check to examine someone or something, they may add a bonus of <strong style="color: #27ae60;">+4</strong> to the Result of that Check.</p>
</li>
<li class="ability-item">
<span class="ability-title">Sleep Soundly</span>
<span class="target-indicator">Target: Yourself</span>
<p>Once before the next rest, you may perform an additional action on your turn during a conflict scene. This action must be used to perform the Equipment, Hinder, or Inventory action.</p>
</li>
<li class="ability-item">
<span class="ability-title">Training</span>
<span class="target-indicator">Target: Yourself</span>
<p>Once before the next rest, if you are about to suffer one or more status effects from the same source, you may instead choose not to suffer any of those status effects.</p>
</li>
</ul>
<div class="notes-section">
<strong>Note on Creation:</strong> You might create new Camp Activities for your characters; if you do so, try to keep them on the same power level as these. Then again, if your group has a passion for fantasy cooking, you might change this rule so that each Activity is instead a special dish created by your character, and always has one ally as the target—sharing is caring, after all!
</div>
</section>
<div class="variants">
<h2>Options and Variants</h2>
</div>
</body>
</html>