diff --git a/booth/templates/base.html b/booth/templates/base.html
index 325d4cd..d334641 100644
--- a/booth/templates/base.html
+++ b/booth/templates/base.html
@@ -622,6 +622,14 @@
.bench-add input[type=url]{flex:2;min-width:0}
.bench-add input[type=text]{flex:1;min-width:0}
+ /* JS-off fallback at phone width (booth-dev's suggestion, 2026-09-23): the
+ rail wraps tallest here, so the fallback is the MEASURED worst case —
+ 205px, the 16-group live maximum at 390px. Overshooting a short rail
+ leaves the tile visible; undershooting hides it. JS on, --rail-h is exact
+ and this changes nothing. */
+ @media (max-width:480px){
+ .item{scroll-margin-top:calc(var(--rail-h, 205px) + 12px)}
+ }
@media (max-width:600px){
main{padding:20px 16px 40px}
.topbar{padding:12px 16px}