/* Only a small local window participates in layout; spacers retain native scrolling. */
.viewport-window { overflow-anchor:none; }
.viewport-row { display:flow-root; }
[data-viewport-top],[data-viewport-bottom] { width:1px;pointer-events:none; }
.viewport-history-control { min-height:38px;display:flex;align-items:center;justify-content:center;gap:10px;padding:4px 0 10px;color:var(--muted);font-size:11px; }
.viewport-history-control button { border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:16px;padding:7px 14px; }
/* Rasterize the unchanged artwork once, independently of the moving transcript. */
.chat-view { isolation:isolate; }
.transcript-wallpaper { position:absolute;inset:0;z-index:-1;pointer-events:none;contain:strict;will-change:transform; }
.messages[data-layered-wallpaper] { background-image:none!important;background-color:transparent!important;will-change:scroll-position; }
.chat-view.secret-mode > .transcript-wallpaper { display:none; }
