diff --git a/PATCH_NOTES.md b/PATCH_NOTES.md
index 201434d..f5c2c7d 100644
--- a/PATCH_NOTES.md
+++ b/PATCH_NOTES.md
@@ -1,123 +1,25 @@
-# 15.24.35
+# 15.24.53
-- 持ち主不明のかんたんベッドは、最初に利用した個体の所有物になるよう変更。
-- かんたんベッド同士が近すぎる位置に作られにくいよう、配置ブロックと建築位置選定を調整。
-- 複製機にセットされた食べ物の種類を、食べ物探索の優先順位と接触距離ソートに反映。
+- 排泄直後のずんちを通常個体が即座に食べないよう、ずんち専用の摂食保護時間を追加。
+- 通常個体のずんち摂食条件をさらに厳格化し、他の食料が近い場合はずんちを食べないよう再調整。
+- ずんちの風化・乾燥・分解・肥土化の進行速度と量減少速度を低下。
+- 日光浴スプライトの切替を `updateSunbath` に一本化し、`spriteId()` が毎フレーム再抽選しないよう修正。
+- 日光浴中はキャッシュ済み透明キャンバスではなく、読み込み済みの `sunbath` 画像を直接描画するよう修正。
-# 15.24.34
+# 15.24.52
-- ぬいぐるみを添付スプライトに差し替え、白背景を透過化。
-- たりないデータの「関係」と「家族」を1セクションに統合。
-- 観察中の友達/敵対ハイライト判定を相互関係ベースに拡張。
-- かんたんベッドで睡眠中の個体に、親子でも友達でもない個体が寝に来た場合は喧嘩開始。
+- 日光浴中の専用直接描画を停止し、通常のたりない描画経路で `sunbath` スプライトを常時表示するよう修正。
+- 日光浴中は通常描画直前の `spriteId()` で0.5秒ごとに `sunbath` 系スプライトをランダム切替するよう統一。
+- 切替フレーム以外で日光浴スプライトが消える問題を抑止。
+- 持ち主不明のかんたんベッドが放置で徐々に劣化・消滅する処理を追加。
-# Patch Notes 15.24.33
+# 15.24.52
-## 15.24.33
+- 日光浴中の描画を通常表情描画から分離し、毎フレーム必ず sunbath 系スプライトを直接描画するよう修正。
+- 0.5秒ごとのランダム切替は維持しつつ、切替フレーム以外でスプライトが消える問題を抑止。
+- sunbath画像が未ロードの瞬間も、読み込み済み候補またはフォールバックで描画を継続。
-- Version: `15.24.33`.
-- Build: `compact-save-v2`.
-- Added item-bucket dirty tracking, `ensureItemBuckets()`, `itemById()`, `liveItemsOfType()`, and `addItem()` to keep type buckets and id lookup coherent after runtime item additions.
-- Routed common item creation paths through `World.addItem()` for placements, rain water, grass growth/spawn, zunchi burst/spawn, ant corpses/nests, Tarinai death traces, and constructed owned structures.
-- Expanded runtime diagnostics with bucket dirty state, item id-map size, and bucket rebuild counters.
-- Reworked several hot item lookups to use buckets or id-map helpers where safe.
-- Updated regression checks for item-bucket helper availability and direct item push documentation.
-- Added final pre-save runtime-polish report and remaining-work split note.
-- Did not touch save migration, population/family limits, or family-tree UI.
+# 15.24.50
-# Patch Notes 15.24.31
-
-## 15.24.31
-
-- Version: `15.24.31`.
-- Build: `social-balance-runtime-polish`.
-- Fixed social-action balance regression where conflict could dominate too often after ActionSpec migration.
-- Reduced normal conflict pressure, lowered fight/intimidation priority, and raised mate/bond selection weight.
-- Added pair-level fight cooldown guards so one pair/individual cannot trigger repeated fight starts in the same burst.
-- Shortened intimidation/defeated display timers.
-- Preserved fight mochi as a strong forced exception while reducing ordinary proximity-fight probability.
-- Added regression checks for social balance constants and fight re-entry guards.
-- Did not touch save migration, population/family limits, or family-tree UI.
-
-# Patch Notes 15.24.30
-
-## 15.24.30
-
-- Version: `15.24.30`.
-- Build: `action-spec-sunbath-runtime-check`.
-- Moved `sunbath` into `createSunbathActionSpec()` and registered it directly in `TARINAI_ACTION_DEFINITIONS`.
-- Removed the remaining `configureTarinaiNeedActions()` late-binding bridge.
-- Kept the existing sunbath body/timer subsystem intact; player-visible sunbath behavior should remain unchanged.
-- Updated regression checks so late action patching is treated as a failure.
-- Did not touch save migration, population/family limits, or family-tree UI.
-
-# Patch Notes 15.24.29
-
-## 15.24.29
-- Migrated social/fear/combat/mate/birth runtime actions into ActionSpec factories.
-- Kept family data, family tree UI, population limits, and save migration untouched.
-- Added regression checks for pass 3 ActionSpec migration.
-- Build: `action-spec-social-runtime-check`.
-
-# Patch Notes 15.24.28
-
-## 15.24.28
-
-- Added centralized behavior-text composition through `composeTarinaiBehaviorText()` and `patchBehaviorTextFromComposer()`.
-- Added `textTarinaiAction()` to the ActionSpec lifecycle helpers.
-- Kept existing explicit live behavior text as the default display fallback so player-facing wording does not churn during normal observation.
-- Added a player-visible diff check comparing the current build against the initial 15.24.20 ZIP.
-- Kept save migration, population/family caps, and family-tree UI out of scope.
-
-# Patch Notes 15.24.25
-
-## 15.24.25
-
-- Added `scripts/regression_check.py` and `docs/REGRESSION_CHECKLIST.md` to freeze the current generated-file, syntax, and ActionSpec lifecycle baseline.
-- Expanded `js/tarinai_action_spec.js` with explicit lifecycle helpers: `selectTarinaiActionTarget`, `canStartTarinaiAction`, `startTarinaiAction`, `tickTarinaiAction`, `finishTarinaiAction`, and `failTarinaiAction`.
-- Migrated need-action definitions from legacy `condition/run/update` shape toward explicit `selectTarget/canStart/start/tick` ActionSpec fields.
-- Routed priority/action eligibility through `canStartTarinaiAction()` while preserving legacy fallback behavior.
-- Added finish/fail lifecycle calls for completed or failed action ticks.
-- Kept save migration, population caps, family caps, and family-tree UI out of scope.
-
-# Patch Notes 15.24.23
-
-## 15.24.23
-
-- Added coarse-grained spatial invalidation via `markSpatialDirty()` + `ensureSpatial()` for the main update loop.
-- Reduced redundant spatial rebuilds around item, ball, ant, and Tarinai update phases while keeping direct `rebuildSpatial()` calls compatible.
-- Added per-type item buckets in `updateItemCounts()` and switched ball-ball collision setup to `itemsOfType("ball")`.
-- Reworked render layering into a cached dynamic render stack so expensive y-sort work runs on a short interval or count/signature change, not every paint.
-- Kept population and family-tree UI behavior unchanged.
-
-# Patch Notes 15.24.22
-
-- Added `activeBehavior` as the authoritative runtime behavior layer above legacy state timers.
-- Added `forcedBehaviorQueue` and `forceBehavior()` hook for external forced actions such as love mochi, fight mochi, and drugs.
-- Re-routed love mochi, fight mochi, and sleep drug effects through forced need actions.
-- Converted eating, panic, fighting, intimidation, and birth ritual display/scheduling to behavior-backed actions.
-- Split social need pressure internally into bond/family/mate/conflict/fear parts and used those parts in social action selection.
-- Weighted fulfill action selection by its internal reason parts.
-- Reduced direct old-style birth starts: proximity now raises mate pressure; ritual starts when mate behavior is active or forced.
-- UI action text now prefers `activeBehavior` over stale thoughts or intent strings.
-
-## 15.24.22
-- `js/tarinai_action_spec.js` を追加し、行動を `ActionSpec` として登録できる共通層を導入。
-- 既存の `condition` / `run` / `update` を維持しつつ、`canStart` / `start` / `tick` / `finish` / `fail` / `text` に段階移行できる互換ラッパーを追加。
-- `TARINAI_ACTIONS` を `TARINAI_ACTION_DEFINITIONS` から登録生成する形に変更。既存参照は維持。
-- 行動開始・継続処理を `startTarinaiAction()` / `tickTarinaiAction()` 経由へ移行。
-- `behavior` に `specId` / `specKind` を保持し、表示・旧API互換と行動仕様の対応を追いやすくした。
-
-## 15.24.21
-- 外部強制行動を queued / active / retry / expire の状態機械に拡張。
-- 強制行動の source / forcedReasonText を activeBehavior に保持し、旧タイマー同期で失われにくくした。
-- 関係欲求の開始判定を social 大分類ではなく bond / family / mate / conflict のサブ欲求に寄せた。
-- 食事行動を activeBehavior 内で対象接近から摂食完了まで完結するよう整理。
-- 行動選択時に高い未選択欲求がある場合、「眠たいけど、食べている」のように対立理由を表示。
-
-## 15.24.21
-- 外部強制行動を強化。薬・餅から `forceBehavior()` 経由で優先割込み、対象再探索、失敗時再試行を行うようにした。
-- へこ餅、けんか餅、ねむり薬の強制行動優先度を更新。
-- 喧嘩対象が Item 等になった場合の `relationTo is not a function` エラーを防止。
-- 睡眠欲求を概日圧 `circadianSleepPressure` 中心に変更。夜は大きく上昇、昼下がりは微増、それ以外は減衰。
-- 初期生成時、夜なら睡眠欲求が高めになるよう初期エネルギーと概日圧を調整。
+- 日光浴中のスプライトを、通常表情ロックとは別枠で固定。
+- sunbath 系スプライトを初期ロード対象へ追加。
diff --git a/README.md b/README.md
index a5324c1..6ba173d 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Tarinai Colony Observation Game
-Buildless single-page browser simulation. Open `index.html`; no package manager, transpiler, server API, or module loader is required. Runtime order is explicit `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+