/* 彩虹橋小窗台：手機版「窗台往上捲時縮小、固定在頂端」（2026-11-11 v1.7.0，站長）。腳本：room-sticky.js。規劃：docs/彩虹橋_手機窗台固定_規劃.md
   只有 JS 判斷「窄螢幕或觸控裝置、直放」時才加 html.rm-sticky-on（桌機、橫放手機完全不受影響）。
   做法：窗台（.rm-scene）改 fixed，高度由捲動位置算出（JS 設 style.height）；下面內容的上方預留完整窗台高度（--rm-full），所以縮到最小之前內容就是正常捲動，
   縮到最小後內容從固定的窗台下面滑過。3D 畫布（#rmRoom）本身不改大小（room.js 的 ResizeObserver 會重設 WebGL），只用 transform 位移，露出「窗台那一帶」，外框 overflow:hidden 裁切。 */
html.rm-sticky-on .rm-main { padding-top: var(--rm-full, 0); }
html.rm-sticky-on .rm-scene { position: fixed; top: 0; left: 0; right: 0; z-index: 20; }
html.rm-sticky-on .rm-scene .rm-room { will-change: transform; }
/* 底邊的波浪：.rm-wave 掛在 #rmRoom 底部，#rmRoom 縮小時被位移出畫面 → 用 JS 算的 --rm-wave-y 把它移回「目前露出範圍」的底邊，縮小後仍是波浪（站長 2026-11-11：不要變成直線） */
html.rm-sticky-on .rm-wave { transform: translateY(var(--rm-wave-y, 0px)); }
/* 縮小後右上角的關注／編輯／分享會被裁到一半，先收起來（捲回頂端就有） */
html.rm-sticky-on .rm-fab { transition: opacity .2s; }
html.rm-sticky-on.rm-sticky-collapsed .rm-fab { opacity: 0; pointer-events: none; }
/* 錨點捲動（通知信連結 #msgs、禮物區塊）不要被固定的窗台蓋住標題 */
html.rm-sticky-on .rm-msgs, html.rm-sticky-on .rm-gifts { scroll-margin-top: calc(var(--rm-min, 230px) + .8rem); }
