Builds the type schema and position math for a docked/floating tile model that fixes the off-viewport bug at its root. Docked tiles derive position from anchor+slot+live viewport (cannot strand). Floating tiles clamp persisted x/y on load/resize. Resolution layer is isolated — nothing rendered yet.
v103.1.02026-06-02
·tile.types.ts: mode "docked"|"floating" on TileLayoutEntry; slot on TileAnchor for edge-index-based docking
·tileUtils.ts: three pure functions (viewport passed in, NOT read from window): clampToViewport, resolveDockedPosition (cumulative slot stacking + height-cap + overflow flag), resolveLivePosition (mode dispatch — the single function .1.1 will call)
·THE BUG PROOF: x:3092 on VP_1400 clamps to ≤1112 by construction; right edge on 3 viewport widths (1400/3400/800) gives 3 different x values — never frozen
·9 Playwright unit tests including slot stacking, overflow/fairShare cap, and the stranded-tile clamp
·computeAnchorPos kept (back-compat until .1.1 migrates callers); no rendering changes