.wrap { position: relative; display: inline-flex; } .tip { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(4px); padding: 6px 10px; font-size: 12px; font-weight: 500; line-height: 1.3; color: var(--text-primary); white-space: nowrap; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s; z-index: 50; background: rgba(255, 255, 255, 0.75); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--glass-border); border-radius: 8px; box-shadow: 0 4px 16px rgba(31, 38, 135, 0.12); } .tip::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: rgba(255, 255, 255, 0.75); } .wrap:hover .tip, .wrap:focus-within .tip { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }