/* Shared base */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
button { font-family: inherit; }

/* Reset for things inside artboards so canvas styles don't bleed */
.ab { color: inherit; }

/* Generic code dot */
.dot-r { background:#ef4444 }
.dot-y { background:#f5b850 }
.dot-g { background:#33cc66 }
.tl-dot { width:11px;height:11px;border-radius:50%;display:inline-block }

/* Copied! flash */
@keyframes flash { 0%{opacity:0;transform:translateY(-4px)} 15%,85%{opacity:1;transform:translateY(0)} 100%{opacity:0;transform:translateY(-4px)} }
.copied-flash { animation: flash 1.6s ease forwards; }

/* Subtle pulse for nav dots */
@keyframes pulse { 0%,100%{opacity:.4} 50%{opacity:1} }
.pulse { animation: pulse 2s ease-in-out infinite; }
