/* Global reset, base typography, and keyframes. The reset and keyframes are
   ported verbatim from the original shell so rendering is unchanged. */
*, *::before, *::after { box-sizing: border-box; }
* { min-width: 0; }
html, body {
  margin: 0;
  padding: 0;
  background: var(--c-bg);
  font-family: var(--font-sans);
  color: var(--c-text);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
#root { max-width: 100vw; }
button { font-family: inherit; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--c-black); outline-offset: 2px; }

@keyframes y-flow-l2r { from { background-position-x: 0; } to { background-position-x: 24px; } }
@keyframes y-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.4; transform: scale(0.85); } }
@keyframes act-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes cur-ping { from { transform: scale(0.4); opacity: 0.85; } to { transform: scale(2.6); opacity: 0; } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
