/* Vestibule hidden menu — production styling. * The menu is injected by content.js as a fixed-position overlay at the * top-center of the viewport. It slides down when the mouse touches the * top 3px of the screen, slides back up after 1.5s of mouse-leave. */ #vestibule-menu { position: fixed; top: 0; left: 50%; transform: translateX(-50%) translateY(-100%); z-index: 2147483647; /* max int — always on top of host page */ display: flex; align-items: center; gap: 4px; padding: 6px 10px; background: rgba(15, 17, 22, 0.96); border: 1px solid rgba(255, 255, 255, 0.12); border-top: none; border-radius: 0 0 10px 10px; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4); font-family: -apple-system, "Segoe UI", system-ui, sans-serif; font-size: 14px; color: #e8eaed; opacity: 0; transition: transform 180ms ease, opacity 180ms ease; pointer-events: none; user-select: none; } #vestibule-menu.vestibule-visible { transform: translateX(-50%) translateY(0); opacity: 1; pointer-events: auto; } #vestibule-menu button { background: transparent; border: 1px solid transparent; color: inherit; font: inherit; font-size: 16px; padding: 4px 8px; border-radius: 6px; cursor: pointer; line-height: 1; min-width: 28px; } #vestibule-menu button:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.15); } #vestibule-menu button:active { background: rgba(255, 255, 255, 0.18); } #vestibule-menu button:focus-visible { outline: 2px solid #6aa6ff; outline-offset: 1px; } #vestibule-menu .vestibule-divider { width: 1px; height: 20px; background: rgba(255, 255, 255, 0.15); margin: 0 2px; } /* Lock overlay — shown after session reset (idle timeout or wake). * Covers the entire viewport with a dark blur, presents a single * "Unlock" CTA. The host page is still loaded behind it (so a tab * refresh isn't required on unlock) but cannot be interacted with. */ #vestibule-lock-overlay { position: fixed; inset: 0; z-index: 2147483646; /* one less than the hidden menu */ display: flex; align-items: center; justify-content: center; background: rgba(8, 10, 14, 0.92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-family: -apple-system, "Segoe UI", system-ui, sans-serif; color: #e8eaed; } #vestibule-lock-overlay .vestibule-lock-card { text-align: center; max-width: 480px; padding: 32px 48px; background: rgba(28, 32, 40, 0.95); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.6); } #vestibule-lock-overlay h1 { margin: 0 0 16px; font-size: 22px; font-weight: 600; color: #fff; } #vestibule-lock-overlay p { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: #b8bcc4; } #vestibule-lock-overlay button { margin-top: 16px; padding: 10px 24px; background: #3b82f6; border: none; border-radius: 8px; color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: background 120ms ease; } #vestibule-lock-overlay button:hover { background: #2563eb; } #vestibule-lock-overlay button:active { background: #1d4ed8; }