.bar { position: absolute; left: 12px; right: 12px; bottom: calc(16px + env(safe-area-inset-bottom)); height: 62px; padding: 0 6px; box-sizing: border-box; display: flex; justify-content: space-around; align-items: center; border-radius: var(--radius-pill); background: var(--color-text); } /* The one grape pill, shared by every item: BottomBar sets its left and width to the active item's and slides it between items. */ .pill { position: absolute; top: 10px; height: 42px; z-index: 0; border-radius: var(--radius-pill); background: var(--color-accent); pointer-events: none; } /* The whole bar height is the tap target; the 42 px pill sits behind it. Items stay above the pill. */ .item { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 6px; height: 62px; min-width: 44px; padding: 0 13px; box-sizing: border-box; color: var(--color-neutral-400); text-decoration: none; white-space: nowrap; transition: color .2s; } .item[aria-current='page'] { color: var(--on-accent); } .label { font-family: var(--font-body); font-size: 13px; font-weight: 700; } /* Inactive items are icon-only on screen but keep their name for assistive tech. */ .hiddenLabel { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }