/* Global resets used on every Bucket page */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg-page);color:var(--ink-700);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--selection-bg);color:#fff}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-display);text-wrap:pretty}
p{text-wrap:pretty}
button{font-family:inherit}
@keyframes floatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes floatB{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes pulseGlow{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.7;transform:scale(1.14)}}
@keyframes nodePulse{0%,100%{transform:scale(1);opacity:.35}50%{transform:scale(1.9);opacity:0}}
@keyframes flowDash{to{stroke-dashoffset:-24}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}
@keyframes typing{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-4px)}}
@keyframes softGlow{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,0),0 24px 60px -30px rgba(37,99,235,.35)}50%{box-shadow:0 0 0 8px rgba(37,99,235,.08),0 24px 60px -30px rgba(37,99,235,.6)}}
@keyframes ripple{0%{transform:scale(.4);opacity:.6}100%{transform:scale(3);opacity:0}}
@keyframes spinSlow{to{transform:rotate(360deg)}}